Creating new elements for Islamic architecture

I'm developing a website documenting Islamic architectural history. I would like to add new elements such as "waqf" which is the legal endowment that sets up the building or charitable institution. I have read the omeka article on creating new elements but is it possible have a more beginner friendly example?

I'm not sure if you can add new elements to Dublin Core, but you can easily add new Item Types or new elements to the Item Types.

If you have Omeka 2.0+, go to your dashboard and on the left-hand panel and click "Item Types." There will be a green button at the top where you can "Add an Item Type." When adding (or editing) an Item Type, you can assign any elements you want to the item type - either choose from an existing Item Type Metadata element, or create a new one. Then you can reorder them, etc.

Since you wanted an example, here's how I set up my site. My website is for any and all information about a man who worked to save a subspecies of wolves. I use four main item types - Archive (for items such as documents, images, videos, physical objects, etc to do with his work), Biographies (for biographies of people important to his work), Wolves (for biographies of the named wolves in his breeding program), and Memories (for interviews with people or user-shared stories of memories of this man). I fill in the Dublin Core metadata for indexing purposes (but hide it from the public using the "Hide Elements" plugin) and then fill out the Item Type Metadata for each item type, which is displayed to the public. I can make Item Type Metadata elements that make more sense to the reader this way - for instance, I added "Volume," "Issue," and "Page Numbers" to the "Archive" item type since Dublin Core did not have such fields. Now these will be displayed as their own elements when available.

Hope that helps!

I would like to create a new element set. I have looked at examples of element sets on github and started to create my own. After creating a .php and .ini file i uploaded it to plugins but it says its not an actual plugin when i try to install it from my admin/plugins. Most likely I did something wrong with the coding since I am learning.

Thank you Kecan! What happens to the metadata though when you do that? Is it saved as the original element or as the 'modified' one you changed?

You're welcome!

If you create a new Item Type and create custom elements for it, it will be saved as Item Type metadata, rather than Dublin Core metadata. For my Omeka site, I copied much of the Item Type metadata into the Dublin Core metadata fields wherever they fit (so each record has substantial "proper" metadata), but my main concern is the presentation of the information to the user, which is why I rely more heavily on Item Type metadata.

Does that answer your question?

I use 2.x and use a plugin to define added metadata elements.

My plugin code is a bit different from yours for what fields define an element, and has the insert operation within the hookInstall() function, etc., but it has the same approach - edit the element definitions in a source file and run a program to register them into Omeka.

I chose to do this rather than enter them by hand using the web based method described by kecan.

It led to a big programming effort to get it working right. I would not have used a plugin if I had known the effort to get it right.

There are a lot of tricky details to managing the added metadata by way of a plugin. It's "relatively" simple to have a plugin add a group of metadata element definitions the first time. But then what about the case when it is installed into a system that already has the added elements. Is that an "Update" operation or "Do nothing" operation? Then serious complexity hits when uninstalling the plugin as the operation to remove the added metadata elements. Removing the elements is a bit tricky to get right.

If you are not extremely comfortable with PHP and SQL, you should avoid managing the added metadata element definitions by way of a plugin.

Rather than help you get deeper into a hole by talking about your code on github, I'd advise you to just accept that using the admin web interface to register the definitions is the best way to go.

kecan's description is clear about an important aspect - adding new metadata elements should be done within Item Type Metadata.

Follow his advice and add a new item type, such as "Buildings" and define your set of Elements for it. Be aware that the names of the elements must be unique within Omeka and not match any existing element name defined in any other type.

You should not define a new Metadata Element Set to hold your added elements, which seems like a reasonable way to handle adding new metadata elements. At least it seemed reasonable when I did it. Your code on github uses the insert_element_set() function, so maybe you have the same view. Don't do it.

This is because the CSV Import plugin, which you might want to use if you have an approach to do batch operations for registering information into Omeka, only handles metadata values that are for elements in the two standard Element Sets - Item Type Metadata, or Dublin Core. It will not handle importing metadata for elements in added Element Sets.