使用D2RQ

时间:2016-09-04 11:58:31

标签: rdf apache-jena d2rq

如果我使用默认的d2rq映射文件(ttl),我的所有列都会映射到rdf属性。例如。 colum ID成为Property" 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/

1 个答案:

答案 0 :(得分:0)

我找到了为属性添加第二个(OWL)类型三元组的解决方案(如果不触及代码,似乎无法使用替换自动生成属性的解决方案)。

您必须通过添加额外的Property三元组来更新您的ttl文件(owldatatypeproperty不是由d2rq创建的,它是由我介绍的!):

map:owldatatypeproperty a d2rq:AdditionalProperty;
    d2rq:propertyName rdf:type;
    d2rq:propertyValue <http://www.w3.org/2002/07/owl#DatatypeProperty>;
    .   

然后,您必须通过引用additonal属性扩展属性桥定义:

map:abc_ID a d2rq:PropertyBridge;
    .....
    d2rq:datatype xsd:integer;
    d2rq:additionalPropertyDefinitionProperty map:owldatatypeproperty;
    .

多数民众赞成。

简要说明见[1]

[1] http://d2rq.org/d2rq-language#additionalproperty