How is: "A subclassOf of B, C" interpreted? As AND or OR in rdfs / owl / description logic? - owl

Is the following interpreted as the intersection (AND) in the sense that members of class A are members of B and C; or as the disjunction (OR) that members of A are a member of B, or a member of C, or member of both?
A rdf:type owl:Class ;
rdfs:subClassOf some B;
rdfs:subClassOf only C.
Thanks for clarification how this is interpreted!
I found it as AND: Protege OWL Subclass of two classes
But Hermit breaks it and uses single axioms (e.g. A rdfs:subclassOf B) as explanation for A to B. I thought that would not be possible ...? Since I would say that A is a subclassOf (B and C) and not only A.

I can quote RDFS, and considering OWL should follow from that, I don't expect any difference there:
If a class C is a subclass of a class C', then all instances of C will also be instances of C'. The rdfs:subClassOf property may be used to state that one class is a subclass of another.
Class inheritance axioms in RDFS are built so that a contradiction can never occur, thus a statement like this can only be "additive" in a sense. Additionally, from the nature of triples in RDF, we know that A rdfs:subClassOf B, C. means A rdfs:subClassOf B. A rdfs:subClassOf C..
Expressed in the language of sets, such a construction means A ⊆ B ∧ A ⊆ C. Any member of A is also a member of B, and any member of A is also a member of C, thus any member of A must be a member of both B and C. We can see that A ⊆ (B ∩ C), from the duality of set and logical operators.
Expressed equivalently, any member of B not found in C must also not be in A (and the same for B and C swapped).

Related

Defining a subclass of owl:ObjectProperty with domains/range constraint

I am defining an ontology that contains several properties that share range/domain restrictions.
ns:synonym a owl:ObjectProperty ;
rdfs:domain ontolex:LexicalEntry ;
rdfs:range ontolex:LexicalEntry .
ns:antoym a owl:ObjectProperty ;
rdfs:domain ontolex:LexicalEntry ;
rdfs:range ontolex:LexicalEntry .
ns:meronym a owl:ObjectProperty ;
rdfs:domain ontolex:LexicalEntry ;
rdfs:range ontolex:LexicalEntry .
...
I would like to define a subclass of owl:ObjectProperty that will contain all these individual properties.
dbnary:NymProperty a rdfs:Class ;
rdfs:subClassOf owl:ObjectProperty;
<<where individuals has range XXX and domain YYY>> .
ns:synonym a dbnary:NymProperty.
ns:antoym a dbnary:NymProperty.
ns:meronym a dbnary:NymProperty.
...
Is it possible to do this in OWL ? What should I have instead of <<where individuals has range XXX and domain YYY>> ?
What is the impact (necessary reasoning, etc.) on the users of the ontology ?
I need this class of property to be defined as I would like to use these property individuals as range of another relation.
Is it possible to do this in OWL ?
No, but yes.
No because...
When someone asks if something can be expressed in OWL, they usually ask if it is allowed in an OWL Ontology, which is formally defined in the OWL 2 Web Ontology Language Structural Specification and Functional-Style Syntax. According to this specification, it is not possible to define a subclass of owl:ObjectProperty. Most tools that are described as "OWL tools", such as OWL editors (e.g., Protégé) or OWL APIs (e.g., the OWL API) or OWL reasoners (e.g., HermiT) are implementing this specification, which constrains what is allowed in an OWL ontology. In particular, not all RDF graphs can be processed correctly or completely by these tools.
Yes because...
OWL, in its broader definition, comprises multiple standards, including the OWL 2 Web Ontology Language RDF-Based Semantics that defines the notion of an OWL 2 Full ontology, which is a synonym of RDF Graph but with the intention of interpreting it according to the RDF-based semantics of OWL. The RDF-based semantics gives a meaning to any RDF graph, including those that would not be valid representations of OWL Ontologies. According to this formal semantics, it is possible to have subclasses of anything, including owl:ObjectProperty, which would match your requirements. However, the downside is that the RDF-based semantics is an undecidable logic. So the tools that are able to reason with OWL Full ontologies are incomplete. Some triplestore implement a partial axiomatisation of OWL RDF-based semantics, but some valid entailment cannot be derived with these tools.
Note that many existing ontologies do not match the requirements for being standard OWL 2 ontologies. Yet, they are simple enough to be used in many applications. Tools that implement the RDFS semantics of the RDF specification can be seen as simple, incomplete implementations of the OWL 2 RDF-based semantics. Some tools implement a superset of RDFS that can deal with more OWL constructs, but they are still incomplete.
With that said, it is generally ill-advised to use the owl: vocabulary in the definition of an RDF vocabulary, because the logical and practical consequences are hard to foresee. So use this kind of modelling responsibly.

read OWL 2 Axiom in plain english

I am trying to understand the following axioms of OWL 2 but don't know what kind of axioms they are. here R is role and C is class
∃R ⊑ C
∃R ⊑ ∃R.C
C ⊑ ¬∃R
∃R ⊑ ¬C
As far i think 1 gives information about Range of R,but i am not sure. Thanks
The only way to make sense of these axioms is to understand the semantics of the Description Logic constructors used:
∃R is the short form of ∃R.T (where T refers to the top concept which represents the complete domain). Mathematically
(∃R.T)^I = {x ∈ δ^I | A y exists such that (x, y) ∈ R^I and y ∈ T^I}
This states that ∃R.T represents the set of individuals consisting of x such that x is associated via relation R to at least 1 individual y that is in top (the domain of discourse). If we had ∃R.C rather than T, y will be in C.
C ⊑ D states that all individuals of type C are also of type D. That is C is a subset of D.
∃R ⊑ C means all the individuals linked to at least 1 individual via relation R is a subset of C. That is why ∃R ⊑ C is also known as a domain axiom because it enforces that for all relations (x, y) in R, that x will be of type C.
¬C defines all the individuals that are not of type C in the domain of interpretation.
Going through the rest of these axioms in a similar way will help you to understand their meaning.

Protégé & Reasoning: Infer sameIndividualAs with enumerated classes

So, here is something with OWL / Protégé I can't quite understand:
Let's say I have a class Clazz which is an enumerated class containing only the individuals I1 and I2. I then create a third individual I3 and declare it to be of type Clazz.
If I now start a reasoner, I would expect it to infer a sameIndividualAs between all (or at least some) of the indidivuals. This is not the case, I tested with both Hermit and Pellet reasoners.
If I explicitly state the three individuals to be different from each other, the ontology becomes inconsistent. Can anyone tell me why the individuals are not showing up to be sameIndividualAs in Protégé in the first case?
As there is no unique name assumption in OWL, the ontology is consistent until it is explicitly asserted that the manually typed individual is owl:differentFrom all of the individuals defining the class (the set restricted with owl:oneOf). If that's not asserted, in case there is more than one individual, the only inference that can be made is that, in your case, I1and I2 are members of the class Clazz. I3 should be the same as one of the individuals, but there is no information to decide as which. You can remove this ambiguity by making Clazz defined as owl:oneOf :I1. Then there will be no ambiguity and sufficient information to infer that :I3 owl:sameAs :I1.

OWL-DL; determining if an expression is legal

In SHOIN(D) that is equivalent to the DL family used by OWL-DL;
Is this expression legal:
F ⊑ (≤1 r. D) ⊓ (¬ (=0 r. D))
Where F, D are concepts, r is a role. I want to express that each instance of F is related to at most one instance of D through r, and not to zero instances.
In general, how to decide that some expression is legal w. r. t. a specific variation of DL? I thought that using BNF syntax of the variation may be what I'm targeting.
One easy way is to check whether you can write it in Protege. Most of the things that you can write in Protege will be legal OWL-DL. In Protege you can write:
F SubClassOf ((r max 1 D) and not(r exactly 0 D))
Of course, saying that something has at most 1 value, and not exactly one would be exactly the same as saying that it has exactly 1:
F SubClassOf r exactly 1 D
But there are a few things that you'll be able to do in Protege that won't be legal OWL-DL. The more direct way to find out what these are is the standard, specifically §11 Global Restrictions on Axioms in OWL 2 DL. Generally the only problems you might run into is trying to use composite properties where you're not allowed to.
If you don't want to check by hand, then you could try uploading your ontology into the OWL Validator and selecting the OWL2 DL profile.

What are the rules used by a reasoner

In OWL.
I know that if
ObjectProperty AB
and
AB domain A
and
AB range B
and
A subClassOf AB something
then the reasoner can infer that
A subClassOf B
1- What is the notion behind this inference?
2- Is there any references that explains the whole set of rules for how does the reasoner works, i.e. what are the rules that a reasoner applies to turn implicit knowledge into explicit one? like this one presented in the example above?
The reasoning behind these inferences follows the rules outlined here:
http://www.w3.org/TR/owl2-direct-semantics/#Object_Property_Expression_Axioms

Resources