- From: Dave Beckett <dave.beckett@bristol.ac.uk>
- Date: Thu, 13 Sep 2001 14:32:10 +0100
- To: www-rdf-comments <www-rdf-comments@w3.org>
- CC: Rick Jelliffe <ricko@allette.com.au>
>>>Rick Jelliffe said:
> From: "Dave Beckett" <dave.beckett@bristol.ac.uk>
>
> > > Do you mean this:
> > > [attributes]=set(idAboutAttr?, bagIdAttr?, typeAttr?, propAttr* )
> >
> > True (and this is a bit better) but since propAttr also matches
> > "rdf:type", how do I express that when rdf:type is seen, typeAttr
> > should be accepted in priority to propAttr.
>
> What does "priority" mean? Do you mean
> [attributes]=set(idAboutAttr?, bagIdAttr?, (typeAttr | propAttr*)? )
yes - | has a left-to-right priority where the first matching term is
taken, in the notation
http://www.w3.org/TR/2001/WD-rdf-syntax-grammar-20010906/#section-Infoset-Grammar-Notation
That might be a better way to express it i.e. replacing propertyAttr*
with (typeAttr | propAttr*)? throughout.
Another alternative might be to define a term propertyAttrs and use
that like this:
element(....
[attributes]=set(idAboutAttr?, bagIdAttr?, propertyAttrs)
...)
propertyAttrs := (typeAttr | propAttr*)?
so that it is precisely clear what are the attributes that generate
properties.
This is rather a mess. Removing typeAttr completely is tempting but
that would loose the constraint that the attribute always takes a
URI-ref value, which would have to be expressed in some other way.
Dave
Received on Thursday, 13 September 2001 09:32:12 UTC