我想验证本体并在出现任何错误时抛出错误.
我必须做的最多验证看起来像这样:我有一个这样的类:
<owl:Class rdf:about="&schema;ExampleClass">
<rdfs:subClassOf rdf:resource="&schema;SuperClass"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&schema;myProperty"/>
<owl:onClass rdf:resource="&schema;OtherClass"/>
<owl:qualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:qualifiedCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Run Code Online (Sandbox Code Playgroud)
(有趣的部分是第二个subClassOf.)在Protege中这意味着ExampleClass is subClass of myProperty exactly 1 OtherClass.
所以我想验证只有一个myProperty值:一个类型为OtherClass的个体.
是否可以验证这样的规则?如果有一个规则可以为所有类使用此建模执行此操作(并且可能还至少为1,正好为2,...),那将是完美的.
另一个问题是:是否有一个现成的封闭世界推理器正在为我做这个?