问题描述
我已经用耶拿(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 (将#修改为@)