- From: Jeff Heflin <heflin@cse.lehigh.edu>
- Date: Fri, 29 Mar 2002 11:25:25 -0500
- To: Jonathan Borden <jonathan@openhealth.org>
- CC: WebOnt <www-webont-wg@w3.org>
Jonathan Borden wrote: > > Jeff Heflin wrote: > > > > ... Furthermore, there is certainly nothing in the charter that > > says the ontology language's syntax must be formed from RDF triples. > > What is wrong with? (assume daml:collection, and forget about the RDF > expansion into daml:List. etc.) > > <Class rdf:ID="foo"> > <oneOf> > <Thing rdf:resource="#A"/> > <Thing rdf:resource="#B"/> > <Thing rdf:resource="#C"/> > </oneOf> > </Class> > > This really isn't that bad XML. Your right, it isn't bad XML. In fact it is probably how I would suggest such a thing be written in XML. Unfortunately, it's not RDF. A property can only have a single subelement (the value of the property), unless you use "parseType=". Thus, the three "Thing" subelements of the "oneOf" element are broken. That is, you can't assume daml:collection, it must be stated explicitly. This is a syntactic wort. Common sense tells you you shouldn't need it, but you can't write this in RDF without it (and when you use it, you're not really writing RDF). > An advantage of RDF's XML syntax is that it gives us nested class > definitions for free e.g. > > <Class rdf:ID="bar"> > <intersectionOf> > <Class> > <Restriction> > <onProperty rdf:resource="#a"> > <toClass rdf:resource="#foo"> > </Restriction> > </Class> > ... > </intersectionOf> > </Class> Once again, this is fine XML, although maybe a little excessive (one might argue whether you need the Class subelement of intersectionOf). However, RDF won't allow this syntax. The problem is RDF syntax must be striped (meaning you alternate Class/Property/Class/Property/etc.). Assuming you follow RDF naming conventions of initial caps for classes and initial lower case for properties, then you have a Restriction class as the immediate child of the Class class. This is a no-no in RDF because it violates the striping rule. To make this work, you would have to add a "hasRestriction" property between Class and Restriction. (Note that DAML+OIL took the route of not requiring the second Class element, this makes it more compact, but new users are often confused by thinking of a Restriction as a Class). > My questions are: > > What do I get by using another XML syntax? (what do I _actually get_) > What does it cost me? > > I need concrete answers to these questions. By using another XML syntax you get: 1) more freedom in the design of your syntax. Thus you can make it more intuitive and ease the learning barrier for users 2) your syntax can more easily rule out things that shouln't be allowed. For example, a daml:Restriction shouldn't mix "toClass" with "hasClass" or "hasValue." 3) the semantics of the language is easier to specify, because it doesn't have to represent all of the meta information included by the triples. What does it cost? 1) existing RDFS agents will not be able to understand your WebOnt ontologies (they can understand small portions of DAML+OIL ontologies.) 2) people may need to convert existing RDF Schemas in order to use WebOnt Honestly, that's all I can think of. Maybe someone else can suggest more? > In the absense of an actual concrete syntax I can't judge if the benefits > would be worth the cost, regardless of what the charter allows. I agree that it hard to see these things without a concrete syntax. For an example of concrete syntax that uses RDF-triples, see DAML+OIL[1]. That's about as good as it will get. Although I haven't suggested a complete syntax for a non-RDF approach yet, I provide some examples of what it could look like in my first message on this subject[2]. Jeff [1] http://www.w3.org/Submission/2001/12/ [2] http://lists.w3.org/Archives/Public/www-webont-wg/2002Mar/0277.html
Received on Friday, 29 March 2002 11:25:28 UTC