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