DataProperties in Subclass expression

Viewed 152

I tried working with the OWL2-RL rules build into graphdb. I am obviously doing something wrong or understood something wrong. Here is my toy ontology.

<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.semanticweb.org/rlehmann/ontologies/2017/10/untitled-ontology-182#"
     xml:base="http://www.semanticweb.org/rlehmann/ontologies/2017/10/untitled-ontology-182"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:xml="http://www.w3.org/XML/1998/namespace"
     xmlns:untitled-ontology-182="http://www.semanticweb.org/rlehmann/ontologies/2017/10/untitled-ontology-182#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:ontology="http://www.some/ontology/">
    <owl:Ontology rdf:about="http://www.semanticweb.org/rlehmann/ontologies/2017/10/untitled-ontology-182"/>

    <!-- http://www.some/ontology/hasValue -->
    <owl:DatatypeProperty rdf:about="http://www.some/ontology/hasValue">
         <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>

    <!-- http://www.some/ontology/ClassA -->
    <owl:Class rdf:about="http://www.some/ontology/ClassA"/>

    <!-- http://www.some/ontology/InvA -->
    <owl:NamedIndividual rdf:about="http://www.some/ontology/InvA">
        <rdf:type rdf:resource="http://www.some/ontology/ClassA"/>
        <ontology:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#string">StringValue</ontology:hasValue>
    </owl:NamedIndividual>

    <!-- http://www.some/ontology/InvB -->
    <owl:NamedIndividual rdf:about="http://www.some/ontology/InvB">
        <ontology:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#string">FooBar</ontology:hasValue>
    </owl:NamedIndividual>


    <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.some/ontology/hasValue"/>
        <owl:someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
        <rdfs:subClassOf rdf:resource="http://www.some/ontology/ClassA"/>
    </owl:Restriction>
</rdf:RDF>

If I did not misunderstand Table 2 in OWL2-Profiles this ontology should be in OWL2 RL profile. I would expect "InvB" to be classified as type ClassA. But it doesn't. It actually does with reasoners (HermiT, Pellet, ...) but not with Rules (Drools, Graphdb) is this a gap in the specification.

How can my Ontology be "repaired" or is there any workaround?

Cheers,

Robert

1 Answers
Related