推理在Protégé中具有传递性角色

时间:2015-03-03 10:15:12

标签: owl ontology protege reasoning transitive-closure

我在Protégé中使用传递角色进行推理时遇到了问题。

我创建了一个简单的本体论:

“任何杆都是某些发动机的一部分。”

“任何发动机都是某辆车的一部分。”

“PartOf关系是传递性的。”

我希望Protégé在DL-metrics中将这个DL识别为S并推断出来 “任何杆都是某辆车的一部分”,但似乎只是忽略了传递性公理。问题是为什么。

(我使用了不同版本的Protégé(4.3和5.0)和不同的reasoners。 我怀疑我没有设置一些重要的复选框选项。)

我附上了我的本体论:

<?xml version="1.0"?>


<!DOCTYPE Ontology [
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY xml "http://www.w3.org/XML/1998/namespace" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>


<Ontology xmlns="http://www.w3.org/2002/07/owl#"
 xml:base="http://www.semanticweb.org/ирина/ontologies/2015/2/untitled-ontology-9"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:xml="http://www.w3.org/XML/1998/namespace"
 ontologyIRI="http://www.semanticweb.org/ирина/ontologies/2015/2/untitled-ontology-9">
<Prefix name="rdf" IRI="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
<Prefix name="rdfs" IRI="http://www.w3.org/2000/01/rdf-schema#"/>
<Prefix name="xsd" IRI="http://www.w3.org/2001/XMLSchema#"/>
<Prefix name="owl" IRI="http://www.w3.org/2002/07/owl#"/>
<Declaration>
    <Class IRI="#Car"/>
</Declaration>
<Declaration>
    <Class IRI="#Engine"/>
</Declaration>
<Declaration>
    <Class IRI="#Rod"/>
</Declaration>
<Declaration>
    <ObjectProperty IRI="#isPartOf"/>
</Declaration>
<SubClassOf>
    <Class IRI="#Engine"/>
    <ObjectSomeValuesFrom>
        <ObjectProperty IRI="#isPartOf"/>
        <Class IRI="#Car"/>
    </ObjectSomeValuesFrom>
</SubClassOf>
<SubClassOf>
    <Class IRI="#Rod"/>
    <ObjectSomeValuesFrom>
        <ObjectProperty IRI="#isPartOf"/>
        <Class IRI="#Engine"/>
    </ObjectSomeValuesFrom>
</SubClassOf>
<TransitiveObjectProperty>
    <ObjectProperty IRI="#isPartOf"/>
</TransitiveObjectProperty>
</Ontology>



<!-- Generated by the OWL API (version 3.5.0) http://owlapi.sourceforge.net -->

1 个答案:

答案 0 :(得分:1)

  

我希望Protégé在DL-metrics中将此DL识别为S

识别传递性并将其标记为+。整体表现力是ALE +(嗯,EL +可能会更好),这是正确的,因为它还没有看到否定。

  

并推断“任何杆都是某辆车的一部分”,但似乎只是忽略了传递性公理。问题是为什么。

答案是双重的。目前还不清楚你在这里期待什么,我推测你想在isPartOf some Car的匿名子类区域中看到Rod。 Protege没有这样做,因为通常这种方法需要在类名和任意表达式之间进行分类,并且有无数个表达式包含任何单个类。

另一方面,Protege 确实考虑了传递性公理。如果使用以下定义添加命名类PartOfCar <EquivalentClasses> <Class IRI="#PartOfCar"/> <ObjectSomeValuesFrom> <ObjectProperty IRI="#isPartOf"/> <Class IRI="#Car"/> </ObjectSomeValuesFrom> </EquivalentClasses>

然后,Protege会将EngineRod分类为PartOfCar的子类。