我必须使用哪个推理机来验证给定的示例?

问题描述

我已经用耶拿(Jena Lib)创建了一个模型,我想针对特定的schema.rdf对其进行验证。但是,当我开始验证时,一切正常,但是我的模型中有一个严重的架构冲突,如下所示。 在我的示例中,问题在于,现在我有一个主题,其主题具有属性“ has-component”,而“ has-component”作为属性仅存在于“ #Component”类所允许的架构中。
我现在的问题是:验证后,我可以使用哪个推理机来获取错误消息?

PS:我尝试使用耶拿的所有参数使用几乎所有不同的推理器,但是仍然无法正常工作。

我的代码是:

Model schema = RDFDataMgr.loadModel("schema.rdf");
Model data = RDFDataMgr.loadModel("data.rdf");
Resource config = ModelFactory.createDefaultModel()
          .createResource()
          .addProperty(reasonerVocabulary.PROPsetRDFSLevel,"full");        
reasoner reasoner = RDFSRulereasonerFactory.theInstance().create(config);
InfModel infmodel = ModelFactory.createInfModel(reasoner,schema,Metadata);

ValidityReport validityReport = infmodel.validate();
if (validityReport.isValid()) {
    System.out.println("OK");
} else {
    System.out.println("Conflicts");
    for (Iterator i = validityReport.getReports(); i.hasNext();) {
        System.out.println(" - " + i.next());
    }
}

data.rdf中的示例:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-Syntax-ns#"
    xmlns:ixsr="http://ixsr.abokom.de/ixsr#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> 
[....]
  <ixsr:Topic rdf:about="http://ixsr.lebfy.de/topics/05d2c8268b68ff6444a49358ca7fe925/1/de-de">
    <ixsr:has-component rdf:resource="http://ixsr.lebfy.de/Metadata/85e7506eb2e33f90c0a802687f559f0c"/>
    <ixsr:title xml:lang="de-de">Kontaktdaten</ixsr:title>
    <ixsr:relates-to-component rdf:resource="http://ixsr.lebfy.de/Metadata/85e7506eb2e33f90c0a802687f559f0c"/>
    <ixsr:relates-to-product-feature rdf:resource="http://ixsr.lebfy.de/Metadata/dbbb7334b2e2a9e5c0a8026860d20c17"/>
    <ixsr:relates-to-product-feature rdf:resource="http://ixsr.lebfy.de/Metadata/10b4c299b2ddae19c0a8026824aa7410"/>
    <ixsr:relates-to-product-feature rdf:resource="http://ixsr.lebfy.de/Metadata/b63e4b15b2dc2d83c0a8026877f6aa88"/>
    <ixsr:dateOfCreation xml:lang="de-de">2020-08-06T12:24:07.285+02:00</ixsr:dateOfCreation>
  </ixsr:Topic>
[....]

schema.rdf中的示例:

<rdf:RDF xmlns:ixsr="http://ixsr.abokom.de/ixsr#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-Syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xml:base="http://ixsr.abokom.de/ixsr#" xml:lang="en">
[....]
<rdf:Property rdf:about="http://ixsr.abokom.de/ixsr#has-component">
<rdfs:label xml:lang="de">hat Komponente</rdfs:label>
<rdfs:label xml:lang="en">has component</rdfs:label>
<rdfs:subPropertyOf rdf:resource="http://ixsr.abokom.de/ixsr#ixsrRelationConcept"/>
<rdfs:domain rdf:resource="http://ixsr.abokom.de/ixsr#Component"/>
<rdfs:range rdf:resource="http://ixsr.abokom.de/ixsr#Component"/>
<ixsr:description xml:lang="en"/>
<rdfs:comment xml:lang="en">Relates to a component that is part of another component.</rdfs:comment>
<rdfs:comment xml:lang="de">Verweist auf eine Kompoente,die Teil einer anderen Komponente ist.</rdfs:comment>
<schema:domainIncludes rdf:resource="http://ixsr.abokom.de/ixsr#Component"/>
<schema:rangeIncludes rdf:resource="http://ixsr.abokom.de/ixsr#Component"/>
<ixsr:description xml:lang="en">Cardinality: http://ixsr.abokom.de/ixsr#Component [0..*]</ixsr:description>
</rdf:Property>
[....]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...