Custom Data Types


Question about data types: let’s say I’m working on a collection where each item has several types of identifiers. One is a uuid, another is archival reference code, another is an id from another system, etc. What’s the best way to indicate what type each one is in the identifier field? Would I need to add custom data types?

Similarly, let’s say I have subjects in each record that are coming from separate thesaurus, ie one from Getty, one from LCSH. How would I indicate that? Is ‘type’ the only possible metadata attribute? Could there be an ‘authority’ attribute, for instance?

My worry is that I feel like I might need to add a lot of custom data types and am wondering if this is a misuse of data type in the first place.

Second, if data types are the best route here, is a module needed to expressly add each additional custom data type or might there a way to freely add them through the interface?


Joseph Anderson

You can implicitly indicate type by entering a URI, which should include scheme and authority. This applies to identifiers and subjects from published authorities. Other than that there’s no way in Omeka S to add “meta” attributes to values. I suppose you could add a custom data type (yes, via a module) that lets you specify a custom attribute per value.

Thanks, Jim.

I see that in the Value Suggest module, they are using data type to indicate the controlled vocabulary. I will play around with that.

Though, not sure if you guys are taking a wish list for future upgrades, but it does seem like the option of other meta attributes might be helpful, in addition to the built-in ‘data-type’ and ‘language’ attributes. In addition to these scenarios, I can think that it might be useful in the creator/contributor fields to define roles, for instance.

Another option I looked at was using the alternate labels in the resource templates, but it seems the alternates are limited to just a single use. Meaning I can’t create a resource template that would have a dc.identifier as ‘uuid’ and another dc.identifier as ‘reference code’. Only one alternate label can be used.



Hi Joseph,

The way I handle this is with the Custom Ontology module. It allows you to create new properties, that can be assigned in resource templates, just like the classic DC terms and types. The new properties have their labels and comments.

This is probably a hack from a pure linked data point of view, but gets the job done in my case.

Hope this helps.

I’ll check it out. Seems like probably the right way to go—thanks!

@jimsafley Follow-up question, Jim:
I’ve been playing around with custom data types, but am I correct that any custom data can only be set through the Resource Templates?

That is, is there a way once I’ve added my new data type for it to show up in addition to ‘text’ ‘uri’ ‘omeka resource’ as a default option? My issue is that once you set the custom data type in the resource template, it’s the ONLY data type that you can then use for that property.



Yes, that’s correct. Once you set a data type to a property it’s the only data type that can be used for that property. I believe I’ve seen modules that extend this behavior to allow a selection of data types beyond text, resource, and URI for all resources, but I’m not sure where I’ve seen it.

I pushed a patch upstream to allow the user to let user choose any vocabulary for value suggest, but there are some improvements to do to limit to a pre-selection of vocabularies.
In fact, the resource template select for the datatype should be a multi-select, but it requires a (small) core change that is not yet accepted upstream.

Yeah, that would be very helpful. Our institution often uses a mix of LOC and Getty for our subject authorities. I imagine it’s not completely uncommon.

This topic was automatically closed 250 days after the last reply. New replies are no longer allowed.