Search Mailing List Archives
[protege-owl] Finding if A is the same type of individual as B
martin.oconnor at stanford.edu
Fri Aug 10 11:00:10 PDT 2007
Firstly, these questions cannot be answered in SWRL itself. SWRL is
based on OWL DL so does not allow direct reasoning about classes. As a
consequence, it does not allow the use of rdf:type in rules.
However, I have implemented sets of built-ins libraries that support
both ABox and TBox queries in SWRL . However, these libraries
should only be used in SWRL queries  and should not be used to make
inferences if you are concerned about formal safety.
So the rdf:type usage in Thomas' rules should be replaced by the
abox:hasClass built-in; also, the individuals can be referred to
abox:hasClass(invidualA1, ?c) ^ abox:hasClass(individualA2, ?c)
With the same open world caveat mentioned by Thomas, you can write:
abox:hasClass(individualA1, ?c1) ^ abox:hasClass(individualA2, ?c2) ^
Quoting Thomas Russ <tar at ISI.EDU>:
> OK, I'll take a stab at these, although I must confess that I haven't
> really done any work with SWRL, so there may be some omissions and
> On Aug 10, 2007, at 6:44 AM, Patil, Lalit wrote:
>> I want to find out if the following could be represented in SWRL?
>> a. AClass, BClass are OWL concepts, such that BClass is subClassOf
>> b. individualA1, and individualA2 are instances of Aclass
>> c. individualB1, is instance of Bclass
>> Is there an SWRL property or a combination of properties that be
>> used to
>> determing if
>> 1. individualA1 and individualA2 are instances of the same class
> You should be able to check this easily by just using the same
> variable for the class of each one. I think "rdf:type" is the
> appropriate relation (but I'm not completely sure).
> rdf:type(?a1, ?c) ^ rdf:type(?a2, ?c)
>> 2. individualA1 and individual are instances of different classes
> This is a bit harder, especially if there are hierarchical relations
> between the classes. Probably the best you can hope to do is to show
> that the individuals are members of disjoint classes? Otherwise you
> start running into problems with open-world reasoning.
> rdf:type(?i1, ?c1) ^ rdf:type(?i2, ?c2) ^ tbox:isDisjointWith(?
> c1, ?c2)
>> Currently, sameAs (differentFrom) helps in finding if individuals have
>> the same (different) identity. However, in the above case, the
>> is different, but the similarity (or difference) is based on the
>> from which it is instantiated.
>> Lalit Patil
>> protege-owl mailing list
>> protege-owl at lists.stanford.edu
>> Instructions for unsubscribing: http://protege.stanford.edu/doc/
> protege-owl mailing list
> protege-owl at lists.stanford.edu
> Instructions for unsubscribing:
More information about the protege-owl