如何推断 owl 中有 2 个以上 属性 的个体
How to infer individual with more than 2 property in owl
我有一个 ontology 和 Animal_Lover 类。如果人们拥有超过 2 只宠物,他们就是 Animal_Lover。我如何在我的 ontology 中执行此操作?
<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.example.com/test"
xml:base="http://www.example.com/test"
xmlns:test="http://www.example.com/test#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.example.com/test"/>
<owl:ObjectProperty rdf:about="http://www.example.com/test#hasPet"/>
<owl:Class rdf:about="http://www.example.com/test#Animal_Lover">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="http://www.example.com/test#hasOwner"/>
<owl:minQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">2</owl:minQualifiedCardinality>
<owl:onClass rdf:resource="http://www.example.com/test#Mammal"/>
</owl:Restriction>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="http://www.example.com/test#Person"/>
</owl:Class>
<!-- http://www.example.com/test#Mammal -->
<owl:Class rdf:about="http://www.example.com/test#Mammal"/>
<!-- http://www.example.com/test#Person -->
<owl:Class rdf:about="http://www.example.com/test#Person">
<rdfs:subClassOf rdf:resource="http://www.example.com/test#Mammal"/>
</owl:Class>
<!-- http://www.example.com/test#Smith -->
<owl:NamedIndividual rdf:about="http://www.example.com/test#Smith">
<rdf:type rdf:resource="http://www.example.com/test#Person"/>
<test:hasPet rdf:resource="http://www.example.com/test#Lulu"/>
<test:hasPet rdf:resource="http://www.example.com/test#Nala"/>
<test:hasPet rdf:resource="http://www.example.com/test#Tank"/>
</owl:NamedIndividual>
</rdf:RDF>
我希望史密斯被推断成为Animal_Lover。
但是此代码在 owl(或 GraphDB)中不起作用。
有什么问题?
感谢您的帮助。
存在三个问题:
- 首先,"Nala"和"Tank"很可能是宠物璐璐的两个昵称。所以也许 Smith 只有一只宠物,它的名字叫 Lulu,人们出于某些原因喜欢称它为 Nala 或 Tank。
- 其次,只有使用
hasOnwer
属性 才能进行推理。您正在使用 hasPet
。
- 第三,你没有说Lula、Nala、Tank是哺乳动物。如果它们是鱼,那么你不能推断史密斯是动物爱好者(!)
我有一个 ontology 和 Animal_Lover 类。如果人们拥有超过 2 只宠物,他们就是 Animal_Lover。我如何在我的 ontology 中执行此操作?
<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.example.com/test"
xml:base="http://www.example.com/test"
xmlns:test="http://www.example.com/test#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.example.com/test"/>
<owl:ObjectProperty rdf:about="http://www.example.com/test#hasPet"/>
<owl:Class rdf:about="http://www.example.com/test#Animal_Lover">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="http://www.example.com/test#hasOwner"/>
<owl:minQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">2</owl:minQualifiedCardinality>
<owl:onClass rdf:resource="http://www.example.com/test#Mammal"/>
</owl:Restriction>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="http://www.example.com/test#Person"/>
</owl:Class>
<!-- http://www.example.com/test#Mammal -->
<owl:Class rdf:about="http://www.example.com/test#Mammal"/>
<!-- http://www.example.com/test#Person -->
<owl:Class rdf:about="http://www.example.com/test#Person">
<rdfs:subClassOf rdf:resource="http://www.example.com/test#Mammal"/>
</owl:Class>
<!-- http://www.example.com/test#Smith -->
<owl:NamedIndividual rdf:about="http://www.example.com/test#Smith">
<rdf:type rdf:resource="http://www.example.com/test#Person"/>
<test:hasPet rdf:resource="http://www.example.com/test#Lulu"/>
<test:hasPet rdf:resource="http://www.example.com/test#Nala"/>
<test:hasPet rdf:resource="http://www.example.com/test#Tank"/>
</owl:NamedIndividual>
</rdf:RDF>
我希望史密斯被推断成为Animal_Lover。 但是此代码在 owl(或 GraphDB)中不起作用。 有什么问题?
感谢您的帮助。
存在三个问题:
- 首先,"Nala"和"Tank"很可能是宠物璐璐的两个昵称。所以也许 Smith 只有一只宠物,它的名字叫 Lulu,人们出于某些原因喜欢称它为 Nala 或 Tank。
- 其次,只有使用
hasOnwer
属性 才能进行推理。您正在使用hasPet
。 - 第三,你没有说Lula、Nala、Tank是哺乳动物。如果它们是鱼,那么你不能推断史密斯是动物爱好者(!)