【问题标题】:How to make clean a Jena InfModel result?如何清洁 Jena InfModel 结果?
【发布时间】:2014-07-04 08:51:25
【问题描述】:

我正在研究耶拿的推理。我从Jena official tutorial开始 我正在尝试使用以下代码在控制台中显示InfModel 结果:

infModel.write(System.out, "RDF/XML-ABBREV");

但结果并不干净,它显示了许多不必要的信息。它显示了这一点:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns="urn:x-hp:eg/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" > 
  <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#double">
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Datatype"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#float">
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Datatype"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#short"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#byte"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#decimal"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#date"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#duration"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedLong"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedShort"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#nonPositiveInteger"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#long"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedInt"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#time"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedByte"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#unsignedLong">
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Datatype"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedLong"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#long"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#time"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#duration"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#date"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
    <owl:equivalentClass rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedLong"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#backwardCompatibleWith">
    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Ontology"/>
    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Ontology"/>
    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#backwardCompatibleWith"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#unsignedByte">
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Datatype"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedLong"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedInt"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#long"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#byte"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#short"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedByte"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedShort"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#time"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#duration"/>
    <owl:disjointWith rdf:resource="http://www.w3.org/2001/XMLSchema#date"/>
    <owl:equivalentClass rdf:resource="http://www.w3.org/2001/XMLSchema#unsignedByte"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A0">
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    <rdf:type rdf:resource="urn:x-hp:eg/Bundle"/>
    <rdf:type rdf:resource="urn:x-hp:eg/GameBundle"/>
    <owl:sameAs rdf:nodeID="A0"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#hexBinary">
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Datatype"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#Restriction">
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <owl:equivalentClass rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
  </rdf:Description>
  <rdf:Description rdf:about="urn:x-hp:eg/Bundle">
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <rdfs:subClassOf rdf:resource="urn:x-hp:eg/Bundle"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
    <owl:equivalentClass rdf:resource="urn:x-hp:eg/Bundle"/>
  </rdf:Description>
</rdf:RDF>

您知道如何最恰当地显示 InfModel 吗? 谢谢你的帮助。

【问题讨论】:

    标签: java jena owl inference


    【解决方案1】:

    但是结果不干净,

    结果非常干净;它是格式良好的数据,具有从您提供的数据中得出的逻辑推论。

    它显示了许多不必要的信息。

    我不确定您的意思是:(i) 数据不正确(即,它不一定来自输入)或 (ii) 它只是您不感兴趣的数据(即,它是您不需要的数据)。 (i) 不正确;推断的陈述来自数据。例如,xsd:float is 与 xsd:date 不相交。 (ii) 可能是正确的;你还没有告诉使用你需要什么数据,你不需要什么,所以我们不能真正说出你想要或不想要什么数据。你也没有展示你的代码,所以很难知道你的推理是从哪里来的。

    如果您正在使用 Pellet,那么您可能对 Pellet 常见问题解答中的 How can I extract all inferences? 感兴趣,其中描述了 ModelExtractor 的使用:

       // Create an inference extractor
       ModelExtractor extractor = new ModelExtractor(model);
    
       // Extract default set of inferences
       Model inferences = extractor.extractModel();
    

    如果您不使用 Pellet,那么您仍然可以使用 Jena 模型的 listStatements 来列出模型中的一些语句。您可以创建一个选择器,它只提取您认为“必要”的语句。 (不过,除非您告诉我们什么是“必要的”,否则我们无法真正帮助您实现 Selector。)

    listStatements

    StmtIterator listStatements(Selectors)

    列出匹配选择器的语句。声明被认为是 如果在 s 上调用 s 的测试方法返回 true,则匹配。

    Model 还有一个 add(StmtIterator) 方法,因此您可以列出 InfModel 中的Statements,并将它们添加到另一个模型,然后打印第二个模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      • 1970-01-01
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多