W3C home > Mailing lists > Public > public-powderwg@w3.org > December 2007

Re: Open Issues: DR scope

From: Andrea Perego <andrea.perego@uninsubria.it>
Date: Thu, 06 Dec 2007 14:18:36 +0100
Message-ID: <4757F6AC.6060705@uninsubria.it>
To: Public POWDER <public-powderwg@w3.org>

Thanks, Stasinos.

Actually, the DR scope definition I included in my mail [1] just
corresponds to the last proposal reported in Phil's mail [2]. I haven't
checked it with Protégé, so I cannot tell you.

Anyway, the correctness of the less verbose solution proposed by Kevin
[3] is confirmed also by an example in the OWL Guide (Section 4.1) [3].
There an explanation is provided about the difference between
rdfs:subclassOf and owl:equivalentClass which may be useful to make
clear this point:

The property owl:equivalentClass is used to indicate that two classes
have precisely the same instances. [...]

<owl:Class rdf:ID="TexasThings">
      <owl:onProperty rdf:resource="#locatedIn" />
      <owl:someValuesFrom rdf:resource="#TexasRegion" />

TexasThings are exactly those things located in the Texas region. The
difference between using owl:equivalentClass here and using
rdfs:subClassOf is the difference between a necessary condition and a
necessary and sufficient condition. With subClassOf, things that are
located in Texas are not necessarily TexasThings. But, using
owl:equivalentClass, if something is located in Texas, then it must be
in the class of TexasThings.

Relation	 | Implications
subClassOf	 | TexasThings(x) implies locatedIn(x,y) and
                 | TexasRegion(y)
equivalentClass  | TexasThings(x) implies locatedIn(x,y) and
                 | TexasRegion(y)
                 | locatedIn(x,y) and TexasRegion(y) implies
                 | TexasThings(x)

To tie together properties in a similar fashion, we use

In other words, the main difference if that owl:equivalentClass is a
symmetric property (i.e., A owl:equivalentClass B implies also B
owl:equivalentClass A), whereas rdfs:subclassOf is asymmetric (i.e., A
rdfs:subclassOf B does not imply also B rdfs:subclassOf A).

>From a different point of view: saying the TexasThings is a subclass of
the entities located in Texas, does not mean that all what is located in
Texas is a Texas thing. For instance, if TexasThings denotes "inanimate"
objects, you cannot say that a Texan guy is a Texas thing. This means
that TexasThings denotes a subset of the entities which are located in
Texas. This is why rdfs:subclassOf denotes a necessary but not
sufficient condition: to be a Texas thing you *must* be located in
Texas, but being located in Texas is not enough to be considered a
TexasThing. By contrast, if you say the TexasThings is equivalent to
being located in Texas, you can say both that Texas things are located
in Texas, and that all what is located in Texas is a Texas thing.

This is why we must use owl:equivalentClass when defining a DR scope
(thanks to Phil for having pointed this out).

However, based on this, I'm not sure whether the example in my mail [1]
is correct:

1  <owl:Class rdf:ID="ResourceOnExampleDotOrg">
2    <owl:equivalentClass>
3      <owl:Class>
4        <rdfs:subClassOf>
5          <owl:Restriction>
6            <owl:onProperty rdf:resource="&wdr;includeHost" />
7            <owl:hasValue>example.org</owl:hasValue>
8          </owl:Restriction>
9        </rdfs:subClassOf>
10     </owl:Class>
11   </owl:equivalentClass>
12 </owl:Class>

The problem I see here is that we have a class definition which uses the
rdfs:subclassOf property:

3      <owl:Class>
4        <rdfs:subClassOf>
5          <owl:Restriction>
6            <owl:onProperty rdf:resource="&wdr;includeHost" />
7            <owl:hasValue>example.org</owl:hasValue>
8          </owl:Restriction>
9        </rdfs:subClassOf>
10     </owl:Class>

This means that the resources denoted by this owl:Class are a subset of
the resources hosted by example.org, which however also means that, if a
resource is hosted by example.org, it is not necessarily one of the
resources denoted by that owl:Class.

Now if we say that ResourceOnExampleDotOrg is equivalent to

3      <owl:Class>
4        <rdfs:subClassOf>
5          <owl:Restriction>
6            <owl:onProperty rdf:resource="&wdr;includeHost" />
7            <owl:hasValue>example.org</owl:hasValue>
8          </owl:Restriction>
9        </rdfs:subClassOf>
10     </owl:Class>

we have the same problem (correct me, Stasinos, if I'm wrong). That is,
the resources denoted by ResourceOnExampleDotOrg are hosted by
example.org, but not all the resources hosted by example.org are
instances of ResourceOnExampleDotOrg.

So, as far as I can understand, the DR scope definition proposed by
Kevin in [3] is the correct one:

 1 <owl:Class rdf:ID="ResourceOnExampleDotOrg">
 2   <owl:equivalentClass>
 3     <owl:Restriction>
 4       <owl:onProperty rdf:resource="&wdr;includeHost" />
 5       <owl:hasValue>example.org</owl:hasValue>
 6     </owl:Restriction>
 7   </owl:equivalentClass>
 8 </owl:Class>



Stasinos Konstantopoulos wrote:
> There's multiple ways to formulate in OWL the same abstract logical
> formula, so both formulations (Kevin's and Andrea's) are perfectly valid
> OWL fragments saying exactly the same thing. There's a lot more like
> these two, and, in more complex cases, there isn't going be any
> minimal-verbose ordering between them.
> I haven't checked this, but I think that Andrea's more verbose
> formulation is due to some Protege normalization. (Andrea?)
> s
> On Wed Dec  5 13:33:13 2007 Smith, Kevin, VF-Group said:
>> Hi Andrea,
>> What puzzles me is the need for owl:equivalentClass, and rdfs:subClassOf
>> (without an rdf:resource). My (admittedly poor) understanding was that
>> using equivalentClass you would have:
>> 1  <owl:Class rdf:ID="ResourceOnExampleDotOrg">
>> 2    <owl:equivalentClass>
>> 3        <owl:Restriction>
>> 4            <owl:onProperty rdf:resource="&wdr;includeHost" />
>> 5            <owl:hasValue>example.org</owl:hasValue>
>> 6          </owl:Restriction>
>> 7   </owl:equivalentClass>
>> 8 </owl:Class> 
>> (ref [1])
>> ...and that if you used subClassOf you would do something like (note
>> insertion of rdf:ID="AllResources"):
>> 1  <owl:Class rdf:ID="ResourceOnExampleDotOrg">
>> 4    <rdfs:subClassOf rdf:ID="AllResources">
>> 5       <owl:Restriction>
>> 6         <owl:onProperty rdf:resource="&wdr;includeHost" />
>> 7          <owl:hasValue>example.org</owl:hasValue>
>> 8         </owl:Restriction>
>> 9    </rdfs:subClassOf>
>> 12 </owl:Class>
>> (ref [2])
>> I'm sure your example is correct, I'm just not sure why - please could
>> you help my understanding :)
>> Cheers
>> Kevin
>> [1] http://www.w3.org/TR/2004/REC-owl-guide-20040210/#equivalentClass1
>> [2]
>> http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DefiningSimpleClasses
>> -----Original Message-----
>> From: public-powderwg-request@w3.org
>> [mailto:public-powderwg-request@w3.org] On Behalf Of Andrea Perego
>> Sent: 05 December 2007 08:36
>> To: Public POWDER
>> Subject: Open Issues: DR scope
>> I would like again to ask for feedback about an issue which must be
>> urgently solved, that is, how the scope of a DR is defined.
>> The current solution is the following:
>> 1  <owl:Class rdf:ID="ResourceOnExampleDotOrg">
>> 2    <owl:equivalentClass>
>> 3      <owl:Class>
>> 4        <rdfs:subClassOf>
>> 5          <owl:Restriction>
>> 6            <owl:onProperty rdf:resource="&wdr;includeHost" />
>> 7            <owl:hasValue>example.org</owl:hasValue>
>> 8          </owl:Restriction>
>> 9        </rdfs:subClassOf>
>> 10     </owl:Class>
>> 11   </owl:equivalentClass>
>> 12 </owl:Class>
>> which literally means "all the resources having a URI host component
>> ending with example.org" (i.e., "all the resources hosted by
>> *.example.org").
>> So, the question is: does anybody agree that this the correct way to
>> define a DR scope? If it isn't, which are the alternative solutions?
>> Andrea
Received on Thursday, 6 December 2007 13:14:02 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:06:03 UTC