model - 我必须使用哪个推理器来验证给定的示例?
问题描述
我已经使用 Jena Lib 创建了一个模型,我想根据特定的 schema.rdf 对其进行验证。但是,当我开始验证时,它说一切正常,但我的模型中存在严重的架构违规,如下所示。在我的示例中,问题是现在我有一个具有属性“has-component”但“has-component”作为属性的主题在“#Component”-class 只允许的架构中。
我现在的问题是:验证后我可以使用哪个推理器来获取错误消息?
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>
[....]
解决方案
推荐阅读
- tensorflow - Keras:改变步幅似乎并没有改变 conv2d/conv3d 中的参数数量
- if-statement - 在 SASS 中的 if 语句中使用“每个循环变量”
- r - 电源点损坏使用官员
- c# - 如何在uwp中的ListView的选定项目上显示选中的复选框
- sat - 我正在使用 Sugar(基于 SAT 的约束求解器)进行实验
- python - 使用 Asana api 在 Asana 中创建带有附件的任务
- javascript - 动态添加输入字段值jQuery
- ios - 如何防止iOS应用被暂停
- c++ - std::initializer 列表全局/静态对象的生命周期
- python - 将flask应用程序部署到nginx web服务器后,swagger记录未加载