RE: Why the encapsulation?

Hi, Emanuele!

>-----Original Message-----
>From: public-owl-dev-request@w3.org 
>[mailto:public-owl-dev-request@w3.org] On Behalf Of Emanuele D'Arrigo
>Sent: Sunday, September 23, 2007 2:08 PM
>To: public-owl-dev-request@w3.org
>Subject: Why the encapsulation?
>
>
>Hi there, newbie here, typing from the UK.
>
>I'm in the process of evaluating the various SemanticWeb-related
>technologies for the company I work for, with the aim at providing
>recommendations for the architecture of the internal Asset Management
>System (*).
>
>I've read a fair amount of W3 documents on the subject but
>there is something I don't quite understand in OWL and RDF.
>
>Take the following property description from the OWL
>Language Reference:
>
><owl:ObjectProperty rdf:ID="hasBankAccount">
> <rdfs:domain>
>   <owl:Class>
>     <owl:unionOf rdf:parseType="Collection">
>       <owl:Class rdf:about="#Person"/>
>       <owl:Class rdf:about="#Corporation"/>
>     </owl:unionOf>
>   </owl:Class>
> </rdfs:domain>
></owl:ObjectProperty>
>
>Why the domain has to be declared as an anonymous
>class and then as a union? Couldn't it be declared
>simply like this:
>
><owl:ObjectProperty rdf:ID="hasBankAccount">
> <rdfs:domain>
>       <owl:Class rdf:about="#Person"/>
>       <owl:Class rdf:about="#Corporation"/>
> </rdfs:domain>

This is simply a syntax error: You have to give a /single/ resource to the
'rdfs:domain' property, but you put in /two/ of them. Note that in the first
definition above, the 'owl:unionOf' property does not really get two classes
as its objects, but it gets an instance of class 'rdf:List' as its /single/
object. This is achieved via the additional 'rdf:parseType="Collection"'
attribute in the 'owl:unionOf' element, and this is a shortcut for a much
longer expression (rdf:List expressions are pretty ugly). The list itself
then has two classes as its elements. It is the specific semantics of
'owl:unionOf' to build a union class from all the classes occuring within
its object list.

>What's the rationale behind the further encapsulation?

You need to give a /single/ owl:Class as the object of the 'domain'
property. Thus, if you want to put in a complex class, like a union of
classes, you can do it in the way above: Build an anonymous class, and make
it the owl:unionOf all classes, which are elements of the object list.

Cheers,
Michael

>
>Manu
>
>(*) I work in the Visual Effects/Computer Generated
>Imagery field. For us an asset can be anything from
>a file to a magnetic tape, from a DVD-R to a specific
>computer, from a meeting room to a person. The
>relationships between these assets are sometimes
>static but often dynamic. A semantics-aware application
>based on an amorphous network of triples sounds
>like an extremely flexible approach but I have to
>wrap my head around a few key issues (one of which
>is the question above) and I have to evaluate if RDF
>and OWL, as powerful as they are, are already too
>powerful for our needs.
>
>
>

--
Dipl.-Inform. Michael Schneider
FZI Forschungszentrum Informatik Karlsruhe
Abtl. Information Process Engineering (IPE)
Tel  : +49-721-9654-726
Fax  : +49-721-9654-727
Email: Michael.Schneider@fzi.de
Web  : http://www.fzi.de/ipe/eng/mitarbeiter.php?id=555

FZI Forschungszentrum Informatik an der Universität Karlsruhe
Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
Tel.: +49-721-9654-0, Fax: +49-721-9654-959
Stiftung des bürgerlichen Rechts
Az: 14-0563.1 Regierungspräsidium Karlsruhe
Vorstand: Rüdiger Dillmann, Michael Flor, Jivka Ovtcharova, Rudi Studer
Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus

Received on Sunday, 23 September 2007 15:10:35 UTC