- From: Jeen Broekstra <jeen@aduna.biz>
- Date: Wed, 05 Jan 2005 10:21:36 +0100
- To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
- Cc: jos.deroo@agfa.com, www-rdf-logic@w3.org
Peter F. Patel-Schneider wrote: > I am trying to determine just what is being demonstrated here. > > Are you saying that you find it easy to build a complete parser > (i.e., translator) for OWL in RDF/XML? Are you saying that you > find it easy to build an incomplete parser for OWL in RDF/XML? Are > you saying that you find it easy to build a species validator for > OWL in RDF/XML? I am somewhat hesitant to enter into this debate as I personally have not as much experience with handling OWL data as you and Bijan probably have, but the one thing that haunts me in this is that you both seem to insist on *parsing* OWL in RDF/XML. And I can't help but wonder if abandoning this approach for validation in favor of *querying* (or using rules, for all I care) for 'well-formedness' would make everything a bit easier. Perhaps I don't understand the parameters of the task at hand too well, but I also have the feeling that perhaps you are not applying the right tools to the job. Your quoted figures for an OWL parser from RDF/XML seem to assume a DOM structure but no RDF toolkit, i.e. you are directly trying to construct OWL from the XML syntax (you mention a 'nice internal data structure' but a graph data structure is not the same as an RDF toolkit). My hunch is that actually _using_ the triples through an RDF API/query language instead of trying to bypass it will make life easier (and no, I'm not claiming that it is trivial or very easy, I merely have the impression that it is not as fiendishly difficult as you make it out to be). To take Bijan's example of checking that a class expression such as: <owl:Restriction> <owl:onProperty rdf:resource="P"/> <owl:someValuesFrom rdf:resource="C"/> </owl:restriction> is 'well-formed', i.e. is exactly formulated as such and has no extra or missing triples, is simply a matter of doing some queries. construct distinct * from {R} rdf:type {owl:Restriction}; owl:onProperty {Prop}; owl:someValuesFrom {Val} retrieves a subgraph that you can check (using any RDF toolkit's utility methods) quite easily for the existence/omission of triples. Granted, many query languages in the current set of RDF tools perhaps still miss the expressiveness to make this as painless as it might be (I'm thinking of explicit support for containers and collections, here, which many tools still miss, and aggregation functions such as count(), min(), etc.), but I still have the feeling this would be a good approach. If you have experience to the contrary, it would be interesting to learn at what point you found the RDF toolkit/API/query language that you worked with lacking. Jeen -- Jeen Broekstra Aduna BV Knowledge Engineer Julianaplein 14b, 3817 CS Amersfoort http://aduna.biz The Netherlands tel. +31(0)33 46599877 fax. +31(0)33 46599877
Received on Wednesday, 5 January 2005 09:20:58 UTC