问题描述
<owl:ObjectProperty rdf:about="http://www.semanticweb.org/herve/ontologies/2020/animals#isFriendOf">
<rdfs:domain rdf:resource="http://www.semanticweb.org/herve/ontologies/2020/animals#Dog"/>
<rdfs:domain rdf:resource="http://www.semanticweb.org/herve/ontologies/2020/animals#Man"/>
<rdfs:range>
<owl:Restriction>
<owl:onProperty rdf:resource="http://www.semanticweb.org/herve/ontologies/2020/animals#isFriendOf"/>
<owl:maxQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxQualifiedCardinality>
<owl:onClass rdf:resource="http://www.semanticweb.org/herve/ontologies/2020/animals#Man"/>
</owl:Restriction>
</rdfs:range>
</owl:ObjectProperty>
我尝试在JENA中了解此限制的特征。我得到“ isFriendOf” ObjectProperty并列出范围:
ExtendedIterator ranges = objProperty.listRange();
while (ranges.hasNext()) {
OntResource resource = (OntResource) ranges.next();
if (resource instanceof OntClass) {
OntClass onClass = (OntClass) resource;
if (onClass.isRestriction()) {
Restriction restriction = onClass.asRestriction();
...
}
}
}
但是限制不是MaxCardinalityRestriction。此条件的评估返回false:
if (restriction.isMaxCardinalityRestriction()) {
MaxCardinalityRestriction restriction = restriction.asMaxCardinalityRestriction();
}
我了解为什么它不起作用,因为这是MaxQualifiedCardinalityRestriction(MaxCardinalityQRestriction?)而不是MaxCardinalityRestriction。但是,Restriction类中没有API可以获取这种特定的限制类型。
我该如何使用API?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)