问题
How to express:
Barack doesn’t like anything that Donald likes.
in Protege?
My attempt:
I have Barack
and Donald
as individuals and like
as a property, however, when clicking on Barack
, the best I can get is:
Barack like Donald
which is not good. Any ideas?
The answer appears to not be working.
回答1:
In the individuals tab, where you can assert the type (not object property assertion) of an individual, you write (for Barack):
likes only (not (inverse likes value Donald))
or
likes only (not (inverse likes some {Donald}))
(Both are equivalent).
@MikeKinghan is insofar right as it was a slight overstatement (indeed, the statement you gave does not imply Barack liking anything). As for you not getting any interesting inferences in Protege, do not forget the open world assumption. Here is a working example, consisting of three axioms:
a1: EquivalentClasses(:PeopleDislikingMexicanBorderWall ObjectComplementOf(ObjectHasValue(:likes :MexicanBorderWall)))
a2: ClassAssertion(ObjectAllValuesFrom(:likes ObjectComplementOf(ObjectSomeValuesFrom(ObjectInverseOf(:likes) ObjectOneOf(:Donald)))) :Barack)
a3: ObjectPropertyAssertion(:likes :Donald :MexicanBorderWall)
If you add these statements, the reasoner will correctly infer that Barack is an instance of PeopleDislikingMexicanBorderWall.
来源:https://stackoverflow.com/questions/35687045/barack-doesn-t-like-anything-that-donald-likes