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".
Use cases:
- 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
Like this:
crm:P14i_performed owl:propertyChainAxiom (skos:exactMatch crm:P14i_performed).
What's your advice?