We define a class A as owl:equivalentClass and a class A2 as rdfs:subClassOf based on the intersection (AND) of instances having a relation a_to_b and a_to_c with an instance of B or C respectively. Please see the example:
:A rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
owl:onProperty :a_to_b ;
owl:someValuesFrom :B
]
[ rdf:type owl:Restriction ;
owl:onProperty :a_to_c ;
owl:someValuesFrom :C
]
) ;
rdf:type owl:Class
] .
Here as a subclass:
:A2 rdf:type owl:Class ;
rdfs:subClassOf [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
owl:onProperty :a_to_b ;
owl:someValuesFrom :B
]
[ rdf:type owl:Restriction ;
owl:onProperty :a_to_c ;
owl:someValuesFrom :C
]
) ;
rdf:type owl:Class
] .
What is the reason to use owl:equivalentClass and when would I use rdfs:subClassOf? The distinction and what is really expressed at the end is not fully clear to me.
My further observation / questions:
a) When I create an instance x with triples: (x, a_to_b, b1) and (x, a_to_c, c1), x is automatically reasoned as a type of A but not of A2. (Using Protege with Hermit Reasoner) (c1 is type of C and b1 is type of B).
b) When I create an instance y and assign y the type A and A2 manually, would this be an issue if y has no relation to an instance of B via a_to_b and no relation to an instance of C via a_to_c? The Hermit Reasoner does not show any signs of an issue but is that not a necessary (must be fulfilled) condition for class A?
c) Are these statements true for A:
c1) If I know that z is from type A, it must have a relation a_to_b with an instance of B and it must have a relation a_to_C with an instance of C.
c2) If I know that z have a relation a_to_b with an instance of B and it have a relation a_to_C with an instance of C, z must be of type A.
c3) A is the class of all things that have a relation a_to_b with an instance of B and have a relation a_to_C with an instance of C.
Can I say c1 and c3 also about A2 or how to the statements change?
The meaning is not clear to me. I hope someone can clarify things. Thanks in advance