I'm using Protegé to create an OWL ontology and I have Question.
I have the following set up:
(relation1)
ClassA isTriggeredBy ClassB
(relation1)
ClassC isTriggeredBy ClassD
Nevertheless the relation should be either (ClassA, ClassB) or (ClassC,ClassD). I don't want combinations like (ClassA, ClassD) to be possible since it makes no sense from the ontology semantic perspective. I tried to avoid that by specifying the following in the Object Property Description of relation1 isTriggeredBy:
Domain (intersection)
ClassA or ClassC
Ranges (intersection)
ClassB or ClassD
and I added local constraints in both Class Description of ClassA and ClassC:
Description:ClassA
SubClass Of
isTriggeredBy some ClassB
Description:ClassC
SubClass of
isTriggeredBy some ClassD
But I don't know if this is correct. Moreover I don't know if this the more appropriate way to do this or if it necessary to create different object properties.
Thanks for the attention and support,
pLs
To answer your question, it is important to understand the reason for using domain and range restrictions. If have
what you want to achieve is that whenever you know that an individual
ais related viaisTriggeredByto individualb, the reasoner can infer thatais of typeAandbis of typeB.If you have
it can at most infer that individual
ais of typeClassA or ClassCand individualbis of typeClassB or ClassD. That is even with the added axiomsyou will not get to differentiate between the relations (
ClassA,ClassB) and (ClassC,ClassD).A way to achieve this differentiation is to use subproperties:
Then when you have an individual
athat is associated viaisTriggeredByBto individualb, it will infer thatais of typeClassAandbis of typeClassB.