In OWL, is it possible to assert that a class is not "empty"?

98 Views Asked by At

Given the different types of axioms available in OWL, is it possible to assert that a class is not "empty"? Or in other words, can we assert that there exists at least one individual that is part of the specified class?

So, basically I am looking for an equivalence of:

ObjectAssertNotEmpty(a:SomeClass)
2

There are 2 best solutions below

2
Henriette Harmse On

That is exactly what the model theoretic underpinning of Description Logics aim to do is to assume that all concepts (or OWL classes) are not empty. When a reasoner is run over an ontology, it will give an error if a class is found to be empty. Such a class is deemed to be unsatisfiable. That is the basis of satisfiability checking (and consistency checking, since satisfiability checking can be translated to consistency checking).

enter image description here See An introduction to Description Logics text for details.

Here is a simple example ontology to illustrate this:

Class: A
Class: NotA
    EquivalentTo: not (A)

Class: B
     EquivalentTo: A and NotA

 
Individual: b
    Types: B

Note that class B will be equivalent to owl:Nothing which is the empty set. Now setting individual b to be an instance of B will lead to an inconsistency with explanation as shown below.

The answer as given by @IS4 will only work if SomeClass is found to be satisfiable (that is not empty), otherwise the reasoner will give an inconsistency.

Explanation of inconsistency

6
IS4 On

In an RDF serialization, all it takes is to identify such an individual:

[] a a:SomeClass .

I presume the OWL syntax should be able to specify it this way:

ClassAssertion( a:SomeClass a:SomeIndividual )

It doesn't matter that you call the individual a:SomeIndividual here, it could very well be owl:sameAs any other individual. Once you state that something is in the class, it follows that the class is not empty.