-
Notifications
You must be signed in to change notification settings - Fork 35
conversion:keys
- The owl:keys enhancement is a qualification that restricts the behavior of conversion:links_via.
- This conversion:Enhancement is loosely analogous to owl:key.
The page describes how to use the conversion:keys enhancement to constrain how the conversion:links_via enhancement links to external Resources.
The following example uses the same identifiers to refer to two different things. The distinguishing factor here is the type of thing being referenced. So, the "state CA" is distinguished enough from the "company CA".
bash-3.2$ cat manual/test.csv contains:
name,state,company
susy,CA,CA
paul,MA,MA
The graph shown below has descriptions for states and companies with the identifiers "CA" and "MA". We'll use this graph and the conversion:keys enhancement to refer to the correct thing when converting the strings "CA" and "MA".
bash-3.2$ cat manual/links-via.ttl contains:
@prefix dcterms: <http://purl.org/dc/terms/> .
<http://dbpedia.org/resource/M._A._Hanna_Company>
a <http://dbpedia.org/ontology/Company>;
dcterms:identifier "MA" .
<http://logd.tw.rpi.edu/id/us/state/Massachusetts>
a <http://dbpedia.org/class/yago/StatesOfTheUnitedStates>.
<http://dbpedia.org/resource/Computer_Associates>
a <http://dbpedia.org/ontology/Company>;
dcterms:identifier "CA" .
<http://logd.tw.rpi.edu/id/us/state/California>
a <http://dbpedia.org/class/yago/StatesOfTheUnitedStates>.
Without the owl:keys qualification to conversion:links_via, we get undesirable sameAs assertions. The URIs created for columns 2 and 3 are both sameAs the state and company.
value_of_state:CA # The URI created for column 2
dcterms:identifier "CA" ;
rdfs:label "CA" ;
owl:sameAs dbpedia:Computer_Associates, <http://logd.tw.rpi.edu/id/us/state/California> .
value_of_company:CA # The URI created for column 3
dcterms:identifier "CA" ;
rdfs:label "CA" ;
owl:sameAs dbpedia:Computer_Associates , <http://logd.tw.rpi.edu/id/us/state/California> .
The conversion:keys enhancement modifies the behavior of conversion:links_via by specifying additional properties that the target Resource must also exhibit in order to satisfy linking to it. In the example below, we indicate that in order for the URI from column 2 (value_of_state:CA) to link to a URI in the links-via graph, the Resource in the links-via graph must also have the property rdf:type with value http://dbpedia.org/class/yago/StatesOfTheUnitedStates. Similarly, we indicate that in order for the URI from column 3 (value_of_company:CA) to link to a URI in the links-via graph, the Resource in the links-via graph must also have the property rdf:type with value http://dbpedia.org/ontology/Company. The example redundantly states the same "property-value" condition a second time as an illustration for how to specify multiple properties.
conversion:enhance [
ov:csvCol 2;
...
conversion:links_via <links-via.ttl>;
conversion:keys [
# The resources that we try to link to MUST also be described with each predicate-object in this collection.
dcterms:hasPart [
conversion:predicate rdf:type;
conversion:object <http://dbpedia.org/class/yago/StatesOfTheUnitedStates>;
], [
conversion:predicate rdf:type; # More than one predicate-object pair could be specified,
# this example is being redundant.
conversion:object <http://dbpedia.org/class/yago/StatesOfTheUnitedStates>;
];
];
];
...
conversion:enhance [
ov:csvCol 3;
...
conversion:links_via <links-via.ttl>;
conversion:keys [
# The resources that we try to link to MUST also be described with each predicate-object in this collection.
dcterms:hasPart [
conversion:predicate rdf:type;
conversion:object <http://dbpedia.org/ontology/Company>;
], [
conversion:predicate rdf:type; # More than one predicate-object pair could be specified,
# this example is being redundant.
conversion:object <http://dbpedia.org/ontology/Company>;
];
];
];