Re: New syntax spec

>>>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