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

-------- Original Message --------
Subject: Re: About the Approach 1, Representing Classes As Property
Values on the Semantic Web
Date: Tue, 15 May 2012 17:55:52 +0200
From: Bene Rodriguez <benedicto.rodriguez@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 Wednesday, 16 May 2012 07:54:48 UTC