使用D2RQ将类型triple添加到rdf文档

使用D2RQ将类型triple添加到rdf文档,rdf,apache-jena,d2rq,Rdf,Apache Jena,D2rq,如果使用默认的d2rq映射文件(ttl),则所有列都映射到rdf属性。例如,列ID成为属性“hasID”(重命名后) 哈西德 我想替换rdf属性三元组或添加另一个类型三元组,这样我的结果是 <rdf:Description rdf:about="http://www.semanticweb.org/adoxx/ontologies/2016/5/untitled-ontology-24#hasId"> <rdfs:label>hasId&l

如果使用默认的d2rq映射文件(ttl),则所有列都映射到rdf属性。例如,列ID成为属性“hasID”(重命名后)


哈西德
我想替换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]
[2]

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

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

就这样

[1]中提供了简短的说明


[1]

我已经检查了代码。我认为如果不更改代码(在第261行的Mapping.java中设置),就不可能替换type属性。我更改了标记,因为这与Jena有关,而不是与owlapi有关。Owlapi需要声明,因为OWL需要声明,所以任何与OWL兼容的库都应该具有相同的行为。这是与OWL-API兼容的解决方案。
      <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>
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;
    .