New module: Custom Ontology (create specific classes and properties)

Custom Ontology is a module for Omeka S that allows to create specific classes and properties to describe resources when no standard ontologies are available. It is useful to manage internal properties, or for researchers who are creating new data. The properties and classes are available via the standard api of Omeka S too, like any other ontology.

In fact, this module is a replacement of an existing feature on Omeka Classic, where it was allowed to edit and create item types, equivalent of resource classes and resource templates, and to create new elements, equivalent of properties. In Omeka S, in order to share data and to follow the standards of the semantic web, this feature was not ported.

Note that it is always recommended to search and use existing ontologies first, because it will be simpler to share data and to link them semantically. If the properties are known only by you and are not described anywhere, it will be hard to match them and to make relations with other.

This module avoids to create a specific rdf vocabulary, turtle or n3 file too, so anybody can use Omeka S like wished, with any documents or resources.

Furthermore, it makes old Omeka Classic sites fully upgradable automatically into Omeka S via the plugin Upgrade To Omeka S.


This is the first time I’m using this Forum.

Omeka S is a wonderful platform! I’m using for the most diverse applications, namely an Ethnomusicology database (my work) - a platform where we are combining all our previous Filemaker databases; a Research Unit Managing System (my work); an NGO Managing Database (my volunteering); a Musical Theatre Database (my PhD); and my band’s music database (my loving hobby).

Obviously, for the “professional” cases, we use worldwide approved ontologies, but still: there are lots of properties that are very detailed. So, we developed a Custom Ontology in our work that will be submitted so it can be used by everyone, once reviewed, of course.

BUT there are two problems when trying to update the Ontology with this module.

  1. If I remove it and load an updated one with new properties, all the properties and data I wrote on my Items simply disappeared.

  2. Seeing this, I tried another way:

When I first created the Ontology, I saved the Turtle file and kept it.

Then I edited the Turtle file and loaded in Custom Ontology for the update

When the confirmation layout showed up for me to confirm the new properties, a strange thing happened:

All of the previous properties are duplicated, but with the prefix name merged. I’ll give you an example:

Previous property: inetmd:name

When I try to update, the Module adds a new property called:


It duplicates the property: I have two “Name” properties: one “inetmd:name” and another “inetmd:inetmd:name”

Can you help my on this? I stopped working with my Omeka S instances because I need these new properties on my Ontology.

Thank you in advance for your help,


1 Like

There is a bug somewhere…
First, always keep and check backups before managing properties.
On the first point, this is normal. If your remove a default vocabulary, the metadata that use the properties of this vocabulary disappear.
On the second point, it seems to be either a bug in the Omeka S vocabulary update process, either a issue in your manually updated turtle. Can I have the two files to check them?

As private message if private files.

Hello! Thank you for your quick response.

Here are the files on an open link from Google Drive:

Custom Vocal Files Google Drive

  1. Original in Textpad (text I used to build the Vocabulary)
  2. Original turtle file created from the original text file
  3. New turtle file with three new properties
  4. Print Screen with merged Prefix and Property Name

Thank you so much for your help


You modified the namespace url between the two loads, so the module cannot know it and it recreated a new one. The namespace url is the most important thing of an ontology and the only thing that cannot be changed in the Omeka interface for vocabularies. Fix it via sql if you really need (adminer or phpmysql).

To update a vocabulary, since you have the turtle, you can use the Omeka interface too (menu Vocabularies > Edit your vocabulary > Update via file). Anyway, the namespace should be the original one.

Hello Daniel,

Thank you so much for your help!

So, I tried and everything remained the same. I noticed the error in the namespace, so I tried to do everything from scratch on another Omeka S instance: the one that manages my Research Center.

Started with a Word file, where I wrote all the Properties, namespace, etc.

Accessed the Module and created the Vocab, saving the original Turtle file.

After that, I simply added a new property and it still merged the Prefix to the Label, creating duplicate properties.

I edited the Turtle on Mac’s Text Edit.

And also tried creating a new Turtle with the module, simulating the creation of a new Vocab (no finishing it, only saving a new Turtle file).

Can it be a bug?

I placed the Word and first original Turtle file on the Google Drive link I shared with you.

Thank you again for your help. This is really important because, as soon as we have to add new Properties, our work is forced to stop.

Again: thank you!

Custom Vocab Files Google Drive

Hello, my friend Isaac found out the problem:

The Turtle file that is created by the Custom Ontology Module has two bars / missing:

@prefix knmb:**/** .**/** a owl:Ontology ;
dcterms:title “Ontologia Kanimambo” ;

Maybe when we are writing the NameSpace on the Module when we are creating the Ontology has to have the bar?

Thank you so much!

I find the first issue: In fact, you use Mac, and Apple doesn’t respect standards (the lines in a mac text file are separated with a "\r" (return to first column), not a "\n" (new line)), so the code didn’t manage it. I’m updating it for that (v 3.0.4).

For your last message, the "/" belongs to the namespace uri, and the module doesn’t change it, so if you don’t set it, it won’t be added. And is not the same namespace than

I see a spelling mistake for rumo:nationatlity. Also, it’s important to have a namespace uri with a “/” or a “#” at the end. It will simplify your long term management of the ontology, as all of the common ontologies.