Sparql 为什么protege不';在这种情况下,无法推断数据属性

Sparql 为什么protege不';在这种情况下,无法推断数据属性,sparql,semantic-web,owl,ontology,protege,Sparql,Semantic Web,Owl,Ontology,Protege,我有一个类Rates1.0,它是该类的一个子类,谓词ratesBy的值1.0f,如下所示: <!-- http://semanticrecommender.com/rs#Rates1.0 --> <owl:Class rdf:about="http://semanticrecommender.com/rs#Rates1.0"> <rdfs:subClassOf rdf:resource="http://semanticrecommender.com/rs#R

我有一个类
Rates1.0
,它是该类的一个子类,谓词
ratesBy
的值
1.0f
,如下所示:

<!-- http://semanticrecommender.com/rs#Rates1.0 -->
<owl:Class rdf:about="http://semanticrecommender.com/rs#Rates1.0">
    <rdfs:subClassOf rdf:resource="http://semanticrecommender.com/rs#Rates"/>
    <rdfs:subClassOf>
        <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>
    </rdfs:subClassOf>
</owl:Class>
<!-- http://semanticrecommender.com/rs#ratesBy -->

<owl:DatatypeProperty rdf:about="http://semanticrecommender.com/rs#ratesBy">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
    <rdfs:domain rdf:resource="http://semanticrecommender.com/rs#Rates"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
</owl:DatatypeProperty>
我定义了一个
Rates1.0
的实例,称之为
r1
,我在protege中运行reasoner,但是reasoner根本没有推断r1有一个数据属性
ratesBy
,为什么

我说所有的
Rates1.0
都有一个
ratesBy
1.0f
,并且
ratesBy
是功能性的

更新 这是r1实例的定义

 <!-- http://www.MusicSemanticOntology.com/mso#r1 -->

    <owl:NamedIndividual rdf:about="http://www.MusicSemanticOntology.com/mso#r1">
        <rdf:type rdf:resource="http://semanticrecommender.com/rs#Rates1.0"/>
        <rs:about rdf:resource="http://music.org/musicontology/mo#5th_Symphony"/>
        <rs:createdOn rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2016-01-01T00:00:00</rs:createdOn>
    </owl:NamedIndividual>

2016-01-01T00:00:00
更新2 即使我说Rates1.0是
(ratesBy value 1.0f)和(ratesBy正好是1 float)的一个子类,
仍然不能推断r1应该有ratesBy


提示:我知道使用equivlent而不是子类可以解决问题,但我需要知道为什么子类在这种情况下不起作用

我想您希望:r1个人的类型是rs:Rates,而不是rs:Rates1.0?@scottenninger不,我希望它是Rates1.0,以便发现原因(推断)默认情况下,它有一个带有floatProtégé类型的值1的ratesBy prediate,可能不会显示数据类型属性推断。您可能需要特别启用显示它们。例如,请参阅@aksw的答案,但也请参阅RDF tribbles。