I got some drawings by Rembrandt in a British Museum database, and some paintings by Rembrandt in a RKD database. He's referred to as
bm-people:Rembrandt in one, and
rkd-artists:rembrandt in the other. I use CIDOC CRM, so Rembrandt is related through
crm:P14i_performed to the drawing/painting Production events.
The current representation is:
bm-people:Rembrandt a skos:Concept; skos:inScheme bm-people: ; skos:prefLabel "Rembrandt". rkd-artists:rembrandt a skos:Concept; skos:inScheme rkd-artists: ; skos:prefLabel "Rembrandt".
- The user can search for artists using a thesaurus auto-complete function. It relies on skos:inScheme and a further property of the ConceptScheme to collect all values for completion.
- If the user selects a value Rembrandt that's correlated between the two thesauri, he should see all works by Rembrandt, no matter which Rembrandt URI they relate to.
Aside: If you look in VIAF, you'll see Rembrandt correlated between 19 sources, including national libraries and Getty ULAN. There's a thousand names and a bunch of extra info about him.
If you look at the VIAF RDF record, you'll see he's represented as a
foaf:Person (with a bunch of names). There are also 19
skos:Concepts from the 19 sources (including more names as
skos:altLabel), which link back to the main VIAF URI using foaf:focus:
<skos:Concept rdf:about="http://viaf.org/viaf/sourceID/BNF%7C11940484#skos:Concept"> <foaf:focus rdf:resource="http://viaf.org/viaf/64013650"/>
There are also some owl:sameAs links equating the
foaf:Person to URIs in other known sources:
<owl:sameAs rdf:resource="http://dbpedia.org/resource/Rembrandt"/> <owl:sameAs rdf:resource="http://d-nb.info/gnd/11859964X"/> <owl:sameAs rdf:resource="http://libris.kb.se/resource/auth/197544"/> <owl:sameAs rdf:resource="http://www.idref.fr/027341925/id"/>
It would have been great if the BM and RKD thesauri were correlated to VIAF but they're not. end-aside
The question: which is the best way to correlate
skos:Concepts representing the same resource?
I know that both the SKOS Primer and Reference say one should use
skos:exactMatch and not
owl:sameAs. They warn of "undesirable entailments that would follow from using
owl:sameAs" but the example they give is a bit weak: "a concept cannot possess two different preferred labels in the same language". Frankly, that doesn't scare me much:
- when both labels coincide that doesn't matter
- when you use all prefLabels and altLabels for auto-complete, that's a plus
If I use
skos:exactMatch and not
owl:sameAs, I'll face these difficulties:
- Need to merge the labels of these concepts because it would be silly to offer labels that are the same
- Lose the OWLIM sameAs optimization
- Need to implement custom inferences eg
crm:P14i_performed owl:propertyChainAxiom (skos:exactMatch crm:P14i_performed).
What's your advice?