如果我使用默认的d2rq映射文件(ttl),我的所有列都映射到rdf属性。例如,列ID变成属性"hasID"(重命名后)。
<rdf:Description rdf:about="http://www.semanticweb.org/adoxx/ontologies/2016/5/untitled-ontology-24#hasId">
<rdfs:label>hasId</rdfs:label>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Description>
我想替换rdf属性三元组或添加一个进一步的类型三元组,以便我的结果是
<rdf:Description rdf:about="http://www.semanticweb.org/adoxx/ontologies/2016/5/untitled-ontology-24#hasId">
<rdfs:label>hasId</rdfs:label>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
</rdf:Description>
文档[1]说明类型是自动生成的。
你知道如何得到这样的结果吗?我需要区分DatatypeProperty和ObjectProperty,以便在OWL-API中正确导入它们[2]。
[1] http://d2rq.org/d2rq-language[2] https://sourceforge.net/p/owlapi/mailman/message/35333117/
我找到了向属性添加第二个(OWL)类型三元组的解决方案(替换自动生成的属性的解决方案似乎无法在不触及代码的情况下使用)。
你必须通过添加额外的属性三重来更新你的ttl文件(owldatatypeproperty不是由d2rq创建的,它是由我介绍的!):
map:owldatatypeproperty a d2rq:AdditionalProperty;
d2rq:propertyName rdf:type;
d2rq:propertyValue <http://www.w3.org/2002/07/owl#DatatypeProperty>;
.
那么你必须通过引用额外的属性来扩展属性桥定义:
map:abc_ID a d2rq:PropertyBridge;
.....
d2rq:datatype xsd:integer;
d2rq:additionalPropertyDefinitionProperty map:owldatatypeproperty;
.
这它。
在[1]
提供了一个简短的描述[1] http://d2rq.org/d2rq-language additionalproperty