使用 D2RQ 将类型三元组添加到 rdf 文档

Add type triple to rdf document using D2RQ

如果我使用默认的 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] 指出类型是自动生成的。

你知道如何得到这样的结果吗?我需要区分 Datatype属性 和 Object属性 以便将它们正确导入 OWL-API [2].

[1]http://d2rq.org/d2rq-language [2]https://sourceforge.net/p/owlapi/mailman/message/35333117/

我找到了向 属性 添加第二个 (OWL) 类型三元组的解决方案(替换自动生成的 属性 的解决方案似乎不可用代码)。

您必须通过添加额外的 属性 三元组来更新您的 ttl 文件(owldatatype属性 不是由 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