Rdf 为什么推理不起作用

Rdf 为什么推理不起作用,rdf,semantic-web,owl,rdfs,Rdf,Semantic Web,Owl,Rdfs,我有两个本体,我把它们连接在一个大的本体中 <!-- http://www.MusicSemanticOntology/mso#r1 --> <owl:NamedIndividual rdf:about="http://www.MusicSemanticOntology/mso#r1"> <rdf:type rdf:resource="http://semanticrecommender.com/rs#Rates"/>

我有两个本体,我把它们连接在一个大的本体中

  <!-- 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>
这是在大本体中

  <!-- 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>

1956-06-25T04:00:00-05:00
1
如您所见,实例r1来自Rangs,它有createdOn和ratesBy谓词

我有这门课:

<!-- 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>

0.8
0.9
1

当我运行reaonsoner时,为什么r1不是表单类?虽然它的rangeBy的值是1,它与about有关系,它有非强制性的createdOn谓词,about的值(即第5个虹吸)来自type
recommended
,但它不能推断出
r1
属于
Likes
类型,因为它没有足够的信息来这样做


您已经将类
Likes
定义为限制的子类。这意味着您已经定义了类成员资格的必要条件(即,如果某个对象是
Likes
的实例,那么它必须具有必要的属性值),但是您还没有定义这些条件是否足够(也就是说,如果某个对象具有这些属性值,那么它必须是
Likes
的实例)。对于具有指定的
ratesBy
值但又不是
Likes
类实例的某个对象来说,这是完全有效的。解决方法是将其定义为
owl:equivalentClass
而不是
rdfs:subassof
它不会推断
r1
属于
Likes
类型,因为它确实是专家们没有足够的信息这样做

您已将类
Likes
定义为限制的子类。这意味着您已定义类成员资格的必要条件(即,如果某个对象是
Likes
的实例,则它必须具有必要的属性值),但您尚未定义这些条件是否也足够(也就是说,如果某个对象具有这些属性值,那么它必须是
Likes
的实例)。对于具有指定的
ratesBy
值但又不是
Likes
类的实例的对象来说,这是完全有效的。解决方法是将其定义为
owl:equivalentClass
而不是
rdfs:subassof