我无法获得JENA限制的特征

问题描述

我有一个在Protégé中定义的猫头鹰模型,但有以下限制:

    <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 (将#修改为@)