why protege leitet in diesem Fall keine Dateneigenschaft ab

Ich habe ein klasseRates1.0 das ist eine Unterklasse der Klasse die einen Wert hat1.0f für das PrädikatratesBy wie die folgenden

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

das PrädikatratesBy ist sowohl eine Dateneigenschaft als auch eine Funktion wie folgt:

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

Ich definiere eine Instanz vonRates1.0 nennenr1, Ich führe den Reasoner in Protege aus, aber der Reasoner schließt nicht daraus, dass r1 eine data-Eigenschaft hat.ratesBy überhaupt, warum bitte?

Ich sagte, dass alleRates1.0 haben eineratesBy mit Wert1.0f, und dieratesBy ist funktionsfähig

Aktualisiere

Dies ist die Definition von r1 instance

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

Auch wenn ich sagte, dass Rates1.0 eine Unterklasse von @ i(ratesBy value 1.0f) and (ratesBy exactly 1 float) noch nicht gefolgert, dass r1 ratesBy @ haben soll

Tipp: Ich weiß, dass die Verwendung von equvlent anstelle der Unterklasse gelöst wird, aber ich muss wissen, warum die Unterklasse in diesem Szenario nicht funktioniert.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage