- From: Guus Schreiber <schreiber@cs.vu.nl>
- Date: Tue, 08 Jul 2003 16:05:24 +0200
- To: Jim Hendler <hendler@cs.umd.edu>, WebOnt WG <www-webont-wg@w3.org>
Jim Hendler wrote:
> OK, history is we received a request from Bijan Parsia to add daml:item
> to OWL. I passed his mail to the group [1] - he explained that DAML-S
> finds daml:item important because they need to be able to build "typed
> lists".
> Jeremy responded [2] to point out that if we added this it would be to
> Full, not DL, since DL doesn't allow the use of lists. Jeremy is
> correct, but that doesn't answer the question - Bijan didn't ask to add
> it to DL, he asked to add it to OWL (i.e. Full would address his issue).
> Today I said on the telecon that I thought this related to the issue of
> lists, and was told it didn't - but all the previous email about this
> issue has been in the context of lists, and we have it indexed under
> issue 5.5 which is the issue of lists.
> So I would like to ask if anyone would actually oppose the addition of
> owl:item to Owl Full. Otherwise I will (in separate email) propose we
> open issue 5.5, add to the closing text the inclusion of owl:item in Owl
> Full, and then reclose the issue.
> -JH
One (esthetic) reason for not having owl:item is that it breaks the
"same-vocabulary" principle for OWL Full and OWL DL.
I must admit I'm somewhat in the dark about the meaning of daml:item. In
the original DAML+OIL documentation (http://www.daml.org) the only
description of daml:item I could find is in the following:
[[
<rdf:Property rdf:ID="item">
<rdfs:comment>
for item(L, I) read: I is an item in L; either first(L, I)
or item(R, I) where rest(L, R).
</rdfs:comment>
<rdfs:domain rdf:resource="#List"/>
</rdf:Property>
]]
(I may be looking at the wrong documents, but is definitely not easy to
find any sort of info on daml:item.)
I assume the definition in the comment slot is sloppy ("rest(L,R)"
should be replace with a recursive defintion?!).
Bijan writes that he uses this to specify restrictions on list elements.
I'm intersted to see an example. I tried to think of one for Reference,
e.g. a list of opera's (note: didn't check the RDF/XML):
1) without owl:item
<rdfs:Class rdf:ID="OperaList">
<rdfs:subClassOf rdf:resource="&rdf;List"/>
<rdfs:subClassOf>
<Restriction>
<onProperty rdf:resource="&rdf;first"/>
<allValuesFrom rdf:resource="#Opera"/>
</Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<Restriction>
<onProperty rdf:resource="&rdf;rest"/>
<allValuesFrom rdf:resource="#OperaList"/>
</Restriction>
</rdfs:subClassOf>
</rdfs:Class>
2) with owl:item
<rdfs:Class rdf:ID="OperaList">
<rdfs:subClassOf rdf:resource="&rdf;List"/>
<rdfs:subClassOf>
<Restriction>
<onProperty rdf:resource="&owl:item"/>
<allValuesFrom rdf:resource="#Opera"/>
</Restriction>
</rdfs:subClassOf>
</rdfs:Class>
I agree 2) is neater, but I'm not sure it is worth the effort and the
esthetic sacrifice.
Guus
PS. I actually encountered similr examples when writing a OWL schema of
OWL, where notions like ClassList, IndividualList and LiteralList are
needed to specify the range of intersection/unionOf and oneOf.
>
>
> [1] http://lists.w3.org/Archives/Public/www-webont-wg/2003Jun/0290.html
> [2]
>
--
Free University Amsterdam, Computer Science
De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands
Tel: +31 20 444 7739/7718
E-mail: schreiber@cs.vu.nl
Home page: http://www.cs.vu.nl/~guus/
Received on Tuesday, 8 July 2003 10:05:27 UTC