0

I have a class Rates1.0 that is a sub class of the class the has a value 1.0f for the predicate ratesBy as the following:

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

the predicate ratesBy is both data property and functional as the following:

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

I define an instance of Rates1.0 call it r1, I run the reasoner in protege, but the reasoner doesn't infer that r1 has a data property ratesBy at all, why please?

I said that all Rates1.0 have a ratesBy with value 1.0f, and the ratesBy is functional

Update

This is the definition of 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

Even if I said that Rates1.0 is a sub class of (ratesBy value 1.0f) and (ratesBy exactly 1 float) still not infered that r1 should have ratesBy

Hint: i know the using equvlent instead of sub class will solve but i need to know why sub class doesn't work in this scenario

Ania David
  • 1,168
  • 1
  • 15
  • 36
  • I think you want the type of the :r1 individual to be rs:Rates, not rs:Rates1.0? – scotthenninger Mar 10 '16 at 16:32
  • 1
    @scotthenninger no no i want it to be Rates1.0 so the reason can discover (infer) that it has a ratesBy prediate with value 1 of type float – Ania David Mar 10 '16 at 16:51
  • Protégé might not show data type property inferences by default. You may need to specifically enable showing them. – Joshua Taylor Mar 10 '16 at 16:56
  • 1
    Eg, see the answer to http://stackoverflow.com/questions/21499126/ontology-property-definition-in-protégé-owl-swrl – Joshua Taylor Mar 10 '16 at 16:59
  • @JoshuaTaylor first do you know how can I show them? secondly, it does show some of the other inferences, third, i already explored the ontology to jena sparql end point, and there is no the desired tribbles. Honestly this one is driving me crazy, why no inference, it is logical correct. even in the case of requivelent class not working, – Ania David Mar 10 '16 at 17:00
  • Did you look at the question that I linked to? – Joshua Taylor Mar 10 '16 at 17:01
  • @JoshuaTaylor i just finished looking, you've mentioned to configure the reaonser to show the data individuals, i did that (it was off) i restarted everything but still nothing :X :X . but i noticed that there you were using peller (more or less) reasoner, while in my protege, i have just one named `HermiT`, is that a problem please? – Ania David Mar 10 '16 at 17:09
  • @JoshuaTaylor funny story, i installed the latest version of protege, and installed the plugin for plellet and when i run it, i got error "patition null pointer exception" :) :) . let's stick to `HermiT`, – Ania David Mar 10 '16 at 17:25
  • I'd suggest to get help for a particular tool and it's configuration on the Protege mailing list. I know that some inferences are shown while others are not, and this has been asked several times on the list, so maybe you'll get better help there. By the way, the reasoner is called Pellet and please use the term triples instead of tribbles :D – UninformedUser Mar 10 '16 at 19:40
  • 1
    @aksw but also see [this resource](http://dbpedia.org/page/Tribble) for RDF tribbles. – Joshua Taylor Mar 10 '16 at 22:01

0 Answers0