Several Import / Data Structure Questions


I am developing plans for importing data from a Collection Management System into Omeka S for internet hosting. I have several related questions:

  1. I assume yes, but just to be completely sure, can I directly load Omeka S tables (presuming of course that I understand the data structure)?

  2. Assuming a yes to #1, is there some other reason I should not do this and instead code to the PHP API?

  3. When developing the resource templates, what is the “correct way” to represent a party in a role relationship (e.g., a project has participants who play a role). In CIDOC-CRM we might model that as an E7-Activity is P14-carried out by E39-Actor in P14.1 the role of E55-Type.

When looking at how to develop resource templates, the way I saw to do this was by having an item of class E7 with a property of P14 pointing to a resource of E39 with the additional Value Annotation feature of with a value indicating Role. Is that “correct?” Is there a different or better way to do this??

As a side note, my import of CIDOC-CRM does not seem to have P14.1 but that is a different problem I think.

  1. Assuming #4 is a “correct” way to design that data structure, referring to the CSV Import module, am I correct that this Value Annotation cannot be mapped on import?

  2. If CSV Import does not handle that mapping, looking at the data model, I assume the the PHP API does provide this as just another insert into the Value table. Is that correct?

Thank you very much for any guidance here.

If you know how to get everything in place, the resource, item, value, etc. table entries, then yes, you can accomplish an import or conversion by directly editing the database if you wish. The main reason to use the API instead would simply be that it manages that for you so the proper entries will be created.

The PHP API does support creation of annotations, it’s a subkey of a value. You’re correct that the CSV Import module doesn’t support annotations at this time.

The question of the role setup I may defer to others. Modeling something like that as a linkage between two resources with an annotation on the value to indicate the role is definitely one option, though.

Thank you. My data pipeline is coded in Python hence the initial thought to directly write to the database, but I am now experimenting with working with the Omeka S APIs from that language. I have found Wragge’s Omeka-s-tools and am evaluating those as well as other approaches.

One follow-up question: Is it correct that the REST API does not support bulk create or am I missing something?

For the role, there is an important feature since Omeka 3.2: value annotation, so you may use it. By the way, for cidoc-crm, there is a module dedicated to it: GitHub - sinanatra/NestedDataTypes: Nested Data Types is a module for Omeka S which allows users to choose a specific resource class as datatype, and inner properties.

Thank you Daniel_KM … I had not seen that module. That will be very useful.

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