为什么推理效果不佳
why inference is not working well
我有两个本体,我将它们合并为一个大 ontology
这是大ontology
<!-- http://www.MusicSemanticOntology/mso#r1 -->
<owl:NamedIndividual rdf:about="http://www.MusicSemanticOntology/mso#r1">
<rdf:type rdf:resource="http://semanticrecommender.com/rs#Rates"/>
<rs:about rdf:resource="http://music.org/musicontology/mo#5th_Symphony"/>
<rs:createdOn rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">1956-06-25T04:00:00-05:00</rs:createdOn>
<rs:ratesBy rdf:datatype="http://www.w3.org/2001/XMLSchema#float">1.0</rs:ratesBy>
</owl:NamedIndividual>
</rdf:RDF>
如您所见,实例 r1 来自 Rangs,它已创建并具有 ratesBy 谓词
我有这个class:
<!-- http://semanticrecommender.com/rs#Likes -->
<owl:Class rdf:about="http://semanticrecommender.com/rs#Likes">
<rdfs:subClassOf>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://semanticrecommender.com/rs#Rates"/>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="http://semanticrecommender.com/rs#ratesBy"/>
<owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.8</owl:hasValue>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="http://semanticrecommender.com/rs#ratesBy"/>
<owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.9</owl:hasValue>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="http://semanticrecommender.com/rs#ratesBy"/>
<owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">1.0</owl:hasValue>
</owl:Restriction>
</owl:unionOf>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>
为什么当我 运行 推理者时 r1 不是 class 喜欢的形式?虽然它的 rangeBy 的值为 1 并且它具有关于的关系,并且它具有非强制性的 createdOn 谓词并且关于的值(即 5th_syphony)来自类型 Recommendable
它不会推断 r1
是 Likes
类型,因为它没有足够的信息来推断。
您已将 class Likes
定义为限制的 subclass。这意味着您已经为 class 成员定义了 necessary 条件(也就是说,if something is an instance of Likes
, then 它必须有必要的 属性 值),但你没有定义这些条件也 sufficient (即, if 某物具有这些 属性 值,则 它必须是 Likes
的一个实例)。具有指定的 ratesBy
值但不是 Likes
class 的实例是完全有效的。对此的解决方法是将其定义为 owl:equivalentClass
而不是 rdfs:subClassOf
。
我有两个本体,我将它们合并为一个大 ontology
这是大ontology
<!-- http://www.MusicSemanticOntology/mso#r1 -->
<owl:NamedIndividual rdf:about="http://www.MusicSemanticOntology/mso#r1">
<rdf:type rdf:resource="http://semanticrecommender.com/rs#Rates"/>
<rs:about rdf:resource="http://music.org/musicontology/mo#5th_Symphony"/>
<rs:createdOn rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">1956-06-25T04:00:00-05:00</rs:createdOn>
<rs:ratesBy rdf:datatype="http://www.w3.org/2001/XMLSchema#float">1.0</rs:ratesBy>
</owl:NamedIndividual>
</rdf:RDF>
如您所见,实例 r1 来自 Rangs,它已创建并具有 ratesBy 谓词
我有这个class:
<!-- http://semanticrecommender.com/rs#Likes -->
<owl:Class rdf:about="http://semanticrecommender.com/rs#Likes">
<rdfs:subClassOf>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://semanticrecommender.com/rs#Rates"/>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="http://semanticrecommender.com/rs#ratesBy"/>
<owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.8</owl:hasValue>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="http://semanticrecommender.com/rs#ratesBy"/>
<owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.9</owl:hasValue>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="http://semanticrecommender.com/rs#ratesBy"/>
<owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">1.0</owl:hasValue>
</owl:Restriction>
</owl:unionOf>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>
为什么当我 运行 推理者时 r1 不是 class 喜欢的形式?虽然它的 rangeBy 的值为 1 并且它具有关于的关系,并且它具有非强制性的 createdOn 谓词并且关于的值(即 5th_syphony)来自类型 Recommendable
它不会推断 r1
是 Likes
类型,因为它没有足够的信息来推断。
您已将 class Likes
定义为限制的 subclass。这意味着您已经为 class 成员定义了 necessary 条件(也就是说,if something is an instance of Likes
, then 它必须有必要的 属性 值),但你没有定义这些条件也 sufficient (即, if 某物具有这些 属性 值,则 它必须是 Likes
的一个实例)。具有指定的 ratesBy
值但不是 Likes
class 的实例是完全有效的。对此的解决方法是将其定义为 owl:equivalentClass
而不是 rdfs:subClassOf
。