Reputation: 138
Assuming GeographicArea as union of Planet, Continent and Region:
<EquivalentClasses> <Class IRI="#GeographicArea"/> <ObjectUnionOf> <Class IRI="#Continent"/> <Class IRI="#Planet"/> <Class IRI="#Region"/> </ObjectUnionOf> </EquivalentClasses>
then there should not be any individual of class GeopgraphicArea
<ClassAssertion>
<Class IRI="#GeographicArea"/>
<NamedIndividual IRI="#Bad"/>
</ClassAssertion>
Bad is obviously NOT a continent, planet or region.
nevertheless hermiT reasoner n Protégé does not report an error.
Why? How could I restrict that no individual could be stated as "GeographicArea" only?
See sample in: http://www.arcdev.hu/test/helloworld.owl
Upvotes: 1
Views: 526
Reputation: 22053
How could I restrict that no individual could be stated as "GeographicArea" only?
You can't, and it doesn't really make sense to do this in a logical environment (which OWL is, after all). OWL reasoning is about logical inference, not about type-checking.
If you require this kind of functionality, you'll have use some custom validation mechanism of your own (I imagine you could do something like this using some clever SPARQL queries or SPIN rules).
Upvotes: 1
Reputation: 852
OWL uses the Open World Assumption, which means that just because Bad
is not yet defined as a continent, planet or region, doesn't mean that it won't be in future. For the reasoner to report an error, you would have to define Bad
as an instance of a class that is disjoint with the other classes.
Upvotes: 2