W3C home > Mailing lists > Public > public-owl-dev@w3.org > April to June 2012

Re: About the Approach 1, Representing Classes As Property Values on the Semantic Web

From: Bene Rodriguez <benedicto.rodriguez@ebusiness-unibw.org>
Date: Tue, 15 May 2012 17:55:52 +0200
Message-ID: <4FB27C88.4030909@ebusiness-unibw.org>
To: Natasha Noy <noy@stanford.edu>
CC: "public-swbp-wg@w3.org" <public-swbp-wg@w3.org>, public-owl-dev@w3.org
Dear Natasha, all,

I was revisiting Approach 1 of Representing Classes As Property Values 
on the Semantic Web (http://www.w3.org/TR/swbp-classes-as-values/) and I 
came across some questions that I would like to capture below.

Regarding the declaration of :BookAboutAnimals in Approach 1.
It seems that the implementation of :BookAboutAnimals listed online as 
an N3 snippet as part of subsection "Considerations when choosing 
approach 1:", does not match the implementation found in the [N3] 
[RDF/XML] files provided in subsection "OWL code for approach 1" listed 
below:

- [N3] http://www.w3.org/TR/swbp-classes-as-values/books1.n3
- [RDF/XML] http://www.w3.org/TR/swbp-classes-as-values/books1.owl

The declaration of :BookAboutAnimals found in the [N3] file above is as 
follows:

13 default:BookAboutAnimals
14       a       owl:Class ;
15       rdfs:subClassOf owl:Thing ;
16       rdfs:subClassOf
17               [ a       owl:Class ;
18                 owl:unionOf ([ a       owl:Restriction ;
19                             owl:onProperty dc:subject ;
20                             owl:someValuesFrom default:Animal
21                           ] [ a       owl:Restriction ;
22                             owl:onProperty dc:subject ;
23                             owl:someValuesFrom
24                                     [ a       owl:Restriction ;
25                                       owl:hasValue default:Animal ;
26                                       owl:onProperty p1:subClassOf
27                                     ]
28                           ])
29               ] .

If we compare the declaration above to that on the snippet listed 
online, two mismatches can be seen:

1) [N3] file, line 26: "p1:subClassOf" seems to be a typo for 
"rdfs:subClassOf".
2) [N3] file, line 20: "owl:someValuesFrom default:Animal" is 
"owl:hasValue Animal" on the snippet listed online.

There is also a new owl:ObjectProperty declared, "p1:subClassOf" on line 
47, I guess because of 1).

In this sense, my questions would be:

- Regarding 1). What was the actual intent? If the intended property is 
in fact rdfs:subClassOf, would we want to apply an OWL restriction on a 
property that is part of the RDF-Schema definition? Wouldn't this turn 
rdfs:subClassOf into an owl:ObjectProperty as a side effect also, 
creating a somewhat odd meta-modeling scenario?

- Regarding 2). What was the intended restriction? owl:someValuesFrom as 
in line 20 above, or owl:hasValue as in the N3 fragment given online? If 
the intended one is owl:hasValue as in the fragment online, the expected 
value would be an individual, while "Animal" is a class. Is this re-use 
of the class "Animal" as value of the property owl:hasValue, also part 
of what Approach 1 is trying to illustrate?

I believe these mismatches between the N3 fragment given online and the 
[N3] file provided, leave some room for ambiguity on what the intended 
implementation of Approach 1 is. Would it be possible to consolidate 
these two sources as originally intended?

Thanks a lot,
Bene Rodriguez

P.S. Some additional info:
These mismatches seem to have propagated to the [RDF/XML] file pointed 
to above as well with a few additional variations.
Comparing the contents of the [RDF/XML] file version (omitted for 
clarity, please view contents on external editor), to that on the 
snippet listed online, we can see:

3) [RDF/XML] file, line 14: A new class "BooksAboutAnimal2" is 
introduced that seems to correspond to ":BookAboutAnimals" on the online 
snippet.
4) [RDF/XML] file, line 32: Again, the property "rdfssubclassof" seems a 
typo for "rdfs:subClassOf".
5) [RDF/XML] file, lines 23-25: Again, the restriction 
"owl:someValuesFrom" is a "owl:hasValue" on the snippet listed online.
6) [RDF/XML] file, line 44: There is a class "BookAboutAnimals" that 
does not correspond to ":BookAboutAnimals" on the online snippet.
7) [RDF/XML] file, line 51: A new class "#AnimalClass" is introduced 
that is not part of the original example.

 From 3) to 7), it seems that the [RDF/XML] serialization does not 
correspond to the [N3] version provided and adds a couple of mismatches, 
which again, makes a bit tricky to guess the originally intended 
implementation.

-- 
Research Associate
E-Business and Web Science Research Group
Department of General Management and E-Business
Universitaet der Bundeswehr Munich (Germany)
p: +49 89 6004-2849
e: benedicto.rodriguez@unibw.org
w: http://purl.org/beroca

On 2/4/09 8:02 PM, Natasha Noy wrote:
> Dear Mark,
>
> I  think you are right -- we didn't technically need the first
> statement as any class is by definition a subclass of itself. It
> doesn't hurt to have it there as it makes things a bit more clear
> (perhaps?)
>
> Natasha
>
>
> On Mar 27, 2009, at 2:09 AM, Sw Fan wrote:
>
>> Dear all,
>>
>> I've a question about the example for the Approach 1 in Representing
>> Classes As Property Values on the Semantic Web. Below is the text
>> extracted from the document:
>>
>> {{
>>
>> For instance, we may want to define a class of all books about
>> animalsóBookAboutAnimalsóthat
>> our animal books will be instances of and we want to restrict the
>> range of
>> values for the dc:subject property for the BookAboutAnimals
>> class to the class Animal and its subclasses. One way to define
>> such restriction is as follows:
>>
>> :BookAboutAnimals
>>        a owl:Class ;
>>        rdfs:subClassOf :Book ;
>>
>>   rdfs:subClassOf
>>                [ a owl:Class ;
>>                  owl:unionOf ([ a owl:Restriction ;
>>                                 owl:onProperty dc:subject ;
>>                                 owl:hasValue Animal
>>
>>   ]
>>                               [ a owl:Restriction ;
>>                                 owl:onProperty dc:subject ;
>>                                 owl:someValuesFrom
>>                                      [ a owl:Restriction
>>   ;
>>                                        owl:onProperty rdfs:subClassOf;
>>                                        owl:hasValue Animal
>>                                      ]
>>                            ])
>>
>>   ] .
>>
>> }}
>>
>> My question is,  why do we have to bother defining a union class
>> above? Since a class is a subclass of itself, so from my
>> understanding,
>>
>>                               [ a owl:Restriction ;
>>                                 owl:onProperty dc:subject ;
>>                                 owl:hasValue Animal
>>                               ]
>>
>> has been subsumed by
>>
>>
>>                               [ a owl:Restriction ;
>>                                 owl:onProperty dc:subject ;
>>                                 owl:someValuesFrom
>>                                      [ a owl:Restriction
>>   ;
>>                                        owl:onProperty rdfs:subClassOf;
>>                                        owl:hasValue Animal
>>                                      ]
>>                               ]
>>
>>
>> Is there anything I missed here? Thank you!
>>
>> Best,
>> Mark
>>
>>
>
>
Received on Saturday, 19 May 2012 05:34:44 GMT

This archive was generated by hypermail 2.3.1 : Wednesday, 27 March 2013 09:32:59 GMT