Reputation: 1531
Consider that we are modeling a domain with the follwoing concepts: Maker
which is a car producer, Model
which is a specific model which hasMaker
a specific unique Maker
. And consider MakerExhibition which is a kind of exhibition that is done by a single Maker
and could show multiple Model
of this Maker
:
Model, Maker, MakerExhibition
hasMaker domain Model
hasMaker range Maker
Model subClassOf hasMaker exactly 1 Maker
hasExhibitionMaker domain MakerExhibition
hasExhibitionMaker range Maker
hasExhibitionModel domain MakerExhibition
hasExhibitionModel range Model
MakerExhibition subClassOf hasExhibitionMaker exactly 1 Maker
QUESTION: How to restrict (using DL or OWL syntax in Protege) that any Model
that appears at at MakerExhibition
through hasExhibitionModel
must have the same MakerExhibition
Maker
?
For example, at a MakerExhibition
for the Maker
BMW, we cannot show a Model
of the Maker
Mercedes!
Upvotes: 1
Views: 56
Reputation: 85813
QUESTION: How to restrict (using DL or OWL syntax in Protege) that any Model that appears at at MakerExhibition through hasExhibitionModel must have the same MakerExhibition Maker?
You want to be able to infer that if a model is shown at a maker exhibition for a particular maker, then that model has the same maker. That is, from
?model ←hasExhibitionModel ?exhibition →hasExhibitionMaker ?maker
you want to infer that
?model →hasMaker ?maker
You can do this using a subproperty axiom:
(inverse hasExhibitionModel) • hasExhibitionMaker SubPropertyOf hasMaker
See the following questions for some more examples:
Upvotes: 1