Friday, September 20, 2019

Aligning Kerameikos more directly with Linked Art

I have been steadily developing a prototype data harvester that will perform some minor alterations to Linked Art-compliant JSON-LD in the XForms backend in order to ingest museum data into Kerameikos.org's SPARQL endpoint. I will write more details later as I complete the prototype (it will be ready for demonstration in time for the Linked Art Face to Face meeting in Oxford in two weeks), but in the course of testing the harvest process on some example JSON-LD from the Indianapolis Museum of Art, I have transitioned the Kerameikos RDF data model to adhere more strictly to the Linked Art profile.

The original data model developed for Kerameikos was a simplified CIDOC-CRM based on examples from the British Museum and feedback from Ontotext's Vladimir Alexiev. The focus of the model was to capture properties directly linked to various categories of Kerameikos SKOS concepts (artists, production places, techniques, shapes, etc.), with only a handful of literals encoded more simply in dcterms than the the CRM approach (e.g, for title and accession number, dcterms:title and dcterms:identifier). Several properties and classes were created in a Kerameikos.org ontology in order to fill gaps in CRM modeling and/or more accurately represent the way in which pottery scholars organize knowledge within their own discipline as opposed to a more general art museum approach. These Kerameikos properties still exist within the hybrid Linked Art data model since a category like "Shape" is more easily and logically connected via a kon:hasShape property rather than creating types of types.

Paging through Indianapolis Museum of Art photos for a vase of Hermonax.

A summary of changes is a follows:
  • Title and Accession number are linked via crm:P1_is_identified_by, which have different classes and types defined by AAT URIs.
  • Static images and IIIF services are Visual Items linked via crm:P138i_has_representation, replacing foaf:depiction. More than one can be accommodated. Thumbnails (foaf:thumbnail) have been tabled until Linked Art develops a stable model for representing more than one size for the same photograph.
  • 3D model links are also crm:P138i_has_representation. The Visual Items are given relevant dcterms:formats.
  • The IIIF manifest is linked as an Information Object with the crm:P138i_has_representation property.
  • The IIIF/3D model updates have resulting in deprecation of the old Europeana Data Model specification.
  • Kerameikos implements the model for dimensions, which are converted to metric in the harvester 


These model changes have necessitated writing a simple XSLT identity transformation to generate new static RDF/XML files our test vase data as well as updates to the underlying SPARQL queries for objects related to SKOS Concepts and the Pelagios data export. Since the new model can accommodate multiple images per vase (with the dcterms:format/dcterms:conformsTo for the Visual Item being necessary to generate UI distinctions for static images vs. IIIF vs. 3D model display in Sketchfab or 3DHop), I switched the queries from SELECT to CONSTRUCT and updated the XSLT to serialize the results to HTML or RDF (for Pelagios) from an RDF/XML model instead of the SPARQL XML response.

CONSTRUCT {?object a crm:E22_Man-Made_Object ;
            dcterms:title ?title ;
            dcterms:identifier ?id ;
            dcterms:publisher ?keeper; 
            crm:P138i_has_representation ?representation ;
            crm:P129i_is_subject_of ?manifest .
          ?representation dcterms:format ?format ;
            dcterms:conformsTo ?conformsTo} WHERE {
%STATEMENTS%
?object crm:P1_is_identified_by ?id1 ;
    crm:P1_is_identified_by ?id2 .
?id1 a crm:E33_E41_Linguistic_Appellation ;
    crm:P190_has_symbolic_content ?title .
?id2 a crm:E42_Identifier ;
    crm:P190_has_symbolic_content ?id .
OPTIONAL {?object crm:P50_has_current_keeper/skos:prefLabel ?keeper .
    FILTER (langMatches(lang(?keeper), "en"))} 
OPTIONAL {?object crm:P138i_has_representation ?representation
    OPTIONAL {?representation dcterms:format ?format}
    OPTIONAL {?representation dcterms:conformsTo ?conformsTo}}
OPTIONAL {?object crm:P129i_is_subject_of ?manifest}
}


No comments:

Post a Comment