首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索owl中OWL类实例实例化的属性?

如何检索owl中OWL类实例实例化的属性?
EN

Stack Overflow用户
提问于 2015-12-23 00:41:51
回答 1查看 431关注 0票数 0

使用OWL,我试图检查一个子类是否实际实例化了对象属性,这些属性使它不同于从父类继承的对象属性。

是否有一种获取实例定义的属性的方法?我目前的方法是尝试获得OWLClass的实例,如下所示:

代码语言:javascript
复制
// OWLClass o_class <---valid OWLClass object (e.g. City, Capital, etc)
Set<OWLNamedIndividual> o_instances = reasoner.getInstances(o_class, true).getFlattened();
for (OWLNamedIndividual> inst : o_instances) {
    //get set of properties defined by each instance
}

我尝试过几种不同的方法,但都没有用。inst.getObjectPropertiesInSignature()什么也不返回。下面显示了我正在使用的一个OWL文件的示例:

代码语言:javascript
复制
<owl:Class rdf:ID="City">
    <owl:Restriction>
        <owl:onProperty>
            <owl:ObjectProperty rdf:about="#hasAccommodation"/>
        </owl:onProperty>
        <owl:someValuesFrom rdf:resource="#LuxuryHotel"/>
    </owl:Restriction>
 </owl:Class>

 <owl:Class rdf:ID="Capital">
     <rdfs:subClassOf>
        <owl:Restriction>
          <owl:someValuesFrom rdf:resource="#Museums"/>
          <owl:onProperty>
            <owl:ObjectProperty rdf:about="#hasActivity"/>
          </owl:onProperty>
        </owl:Restriction>
     </rdfs:subClassOf>
     <rdfs:subClassOf rdf:resource="#City"/>
 </owl:Class>

<Capital rdf:ID="Canberra">
    <hasAccommodation rdf:resource="#FourSeasons"/>
</Capital>
<Capital rdf:ID="Sydney">
    <hasAccommodation rdf:resource="#FourSeasons"/>
    <hasActivity rdf:resource="#CoolMuseum"/>
</Capital>

在上面的示例中,我希望能够检测到Canberra 不使用属性hasActivity,而Sydney使用属性hasActivity。我不知道如何正确地获得这些属性并比较它们。为了简洁起见,我不包括FourSeasons和博物馆的内容。我希望我已经解释得够清楚了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-23 11:38:07

使用由getObjectPropertyValues(OWLOntology ontology)接口提供的OWLIndividual方法。它将返回一个以ObjectPropertyExpression作为键和一组OWLIndivdual作为值的映射。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34426871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档