Re: typed containers in RDF Schema

Hi Garret,

At 09:06 05/04/2002 -0600, Garret Wilson wrote:
>Everyone,
>
>My name is Garret Wilson, and my company, GlobalMentor, Inc., is an
>implementer of RDF. Our Mentoract Reader product, a cross-platform eBook
>reading application ( http://www.globalmentor.com/software/reader/ ) will in
>its next version fully support browsing any embedded RDF in eBooks and HTML
>pages. I'm also the editor of XPackage ( www.xpackage.org ), an RDF-based
>framework for creating packaging information that will be used as a basis of
>the Open eBook Forum's OEB Publication Structure 2.0.

We heard about that.  Its great to have another serious application of RDF.
Dan Brickley is best placed to respond to this question, but as he might 
not be able to respond quickly, I'm sending this reply so you know we have 
heard you.


>I was recently informed that the final version of RDF Schema will not
>include support for so-called "long-range" range constraints for collection
>members.

At the moment I'm not absolutely certain of the status of this decision, 
but I think that is certainly the way the wind is blowing.

RDF Schema is a simple language.  There are many things it cannot 
express.  Other languages, such as that being developed by WEBONT, are 
where more powerful constraints can be expressed.

>This is really a shame, and it makes creating an RDF editor
>difficult.
>
>Imagine you have an RDF editor based on RDF Schema---you tell it the schemas
>you want to use, and it presents the appropriate editors for each property.
>For a "title" property, the editor would be a simple text field, as the
>schema would indicate xsd:string as the range.
>
>But what would we do for a "keywords" property? This should be an rdf:Bag of
>related keywords,

Why does it need to be a bag?  Could you make it simply a bunch of repeated 
properties?  You may have other use cases, e.g. authors, where order is 
significant and repeated properties cannot be used.

>  and each should be a string. Here are the options if RDF
>Schema does not support typed containers:
>
>* We could simply assume that if xsd:string is allowed, then an rdf:Bag of
>xsd:strings is also allowed. (This would be an incorrect use of RDF Schema,
>but it would fulfill the purpose.)

As you say, that would be wrong.


>* We could assume that if an rdf:Bag and xsd:string range are *both*
>allowed, then that implies that only an rdf:Bag of xsd:string is allowed.
>(Again, this is incorrect usage of RDF Schema.)

As you say, that too would be wrong.


>* We could only allow an rdf:Bag for the property, but for values the user
>would be able to enter literals, other properties, etc. This is a correct
>interpretation of RDF Schema, but it isn't really acceptable, and creates a
>huge inconsistency with simple strings.

And as you say, that doesn't meet your requirements.

You could also define your own subclass of bag, bagOfStrings or you could 
add a property to an ordinary bag to indicate the type of its 
membership.  How might that be done?  Basically it boils do to either:

   <rdf:Bag>
     <rdf:type rdf:resource="...#StringContainer/>
     <rdf:li ...

or

   <rdf:Bag>
     <...:memberType rdf:resource=".../string"/>
     <rdf:li ...

Stylistically I prefer the former, but the latter requires only the 
definition of one property, rather than a new class for each datatype.

Your editor would have built in knowledge of these types or that property.

These solutions would work within your own domain but there would be no 
guarantee that other RDF processors would understand them.  Do you have an 
interoperability requirement outside your own application domain?  Thus it 
might be better to borrow something from DAML+OIL to do this.  I don't know 
how off the top of my head, but I'll try to find out.


>This is a real problem,

Absolutely!  This is a good concrete use case.

>  one that I've been trying to address recently both
>in software we're implementing and in our consultations with another large
>company considering implementing RDF. How can we ensure that RDF Schema will
>be able to specify the specific types allowed in a container range?

The WG will consider this.  I'd appreciate your comments on whether

  a) you need a standardized solution to this problem
  b) it needs to be in rdf schema rather than an ontology language built on top

Brian

Received on Saturday, 6 April 2002 04:47:25 UTC