- From: Francois-Paul Servant <hypersol@micronet.fr>
- Date: Fri, 19 May 2000 00:12:41 +0200
- To: www-rdf-interest@w3.org
Salutations to all of you, Hello Gerard - you said : >I'm trying to put together a RDF "core" system (read, write, store, >manipulate... just what we all would like to do with it at the most >abstract level...) and to start I'm looking for a parser. >I've tried some of them, including an (self-) modified version of SiRPAC >and I get systematically different results. >There seem to be trouble with the Bag support among them. It seems that we are more or less at the same point. No expert of the list answered to your "Back to basics" message at this time. Although I am very new to RDF, I'll will try, but keep in mind that I am a newbye. I hope that someone will correct me if I am wrong. My first remark : it is not suprising that we have different results, as they are just printouts of programs. The question is : are they correct results or not - did the different parsers correctly parse the graph ? They all could have, just having different printouts. The job of the parser is to allow to build a data stucture that a program and algorithms will use to do something useful. At this time, I personaly have only tried RDF Filter, and I don't know for the others, but the way it is implemented seems to be very powerful : it's "event driven", allowing you to construct the data structure (the graph) in the way you want to. SiRPAC (1.14 and Online) is right in the way it deals with the bag, the referent used being "aboutEach", and not "About" : Ora Lassila is the (famous !) creator of each page of the bag, not the creator of the bag. I looked at RDF Filter source code, about this problem. It appears that it would be possible to implement the desired behaviour : the RDFHandler (the object which has to take appropriate action when receiving an "rdf event"), gets an information called "subjectType" along with the triple. This information, that is not used in the printouts of the TestRDFFilter, is precisly "aboutEach" in our case. If we keep everything in memory when parsing the RDF, it should not be difficult to get the correct behaviour. The other difference between RDF Filter and SiRPAC is only about resolving or not the relative URI of the bag resource to absolute form. The bag resource is identified by the ID "pages", and it is included in the document. Its URI, relative to the URL of the containing document, is "#pages" - the result of RDF Filter. I don't agree with the "pages" (without #) of your modified SiRPAC. SiRPAC resolves this relative URL, and therefore gives "url of the document#pages". Having the RDFHandler resolve the relative URL to absolute is easy (in java : new URL(docURL, relativURLString)). About the enumeration, you have a question about syntax. I don't know the answer, but syntax is not really the question here - what is important is to know what the property means ! Nevertheless, as it is a property, and as such a resource, it is identified by a URI, and I would vote for "...-ns#_1" (something that is defined within the document at "http://...-ns"). I hope this helps. Feel free to contact me, I would be happy if we can help each other, sharing experiences, as I think that we are more or less at the same level. The level of discussion on the list, at least since I subscribed, seems to be higher than our current preoccupations. Best regards, >--- example2.rdf ------ ><?xml version="1.0"?> ><RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > xmlns:DC="http://purl.org/metadata/dublin_core/"> > <Bag ID="pages"> > <li resource="http://foo.org/foo.html" /> > <li resource="http://bar.org/bar.html" /> > </Bag> > <Description aboutEach="#pages"> > <DC:Creator>Ora Lassila</DC:Creator> > </Description> ></RDF> > >---- SiRPAC Download Version 1.14 ---- >triple("http://www.w3.org/1999/02/22-rdf-syntax-ns#type", >"file:D:\Program\java\RDF\SiRPAC-1.14\lassila-example-2.rdf.txt#pages", >"http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag"). >triple("http://www.w3.org/1999/02/22-rdf-syntax-ns_1", >"file:D:\Program\java\RDF\SiRPAC-1.14\lassila-example-2.rdf.txt#pages", >"http://foo.org/foo.html"). >triple("http://www.w3.org/1999/02/22-rdf-syntax-ns_2", >"file:D:\Program\java\RDF\SiRPAC-1.14\lassila-example-2.rdf.txt#pages", >"http://bar.org/bar.html"). >triple("http://purl.org/metadata/dublin_core/Creator","http://foo.org >/foo.html","Ora >Lassila"). >triple("http://purl.org/metadata/dublin_core/Creator","http://bar.org >/bar.html","Ora >Lassila"). > >----- Modified Version of SiRPAC --------- >triple("http://www.w3.org/1999/02/22-rdf-syntax-ns#type","pages", >"http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag"). >triple("http://www.w3.org/1999/02/22-rdf-syntax-ns_1","pages","http:/ >/foo.org/foo.html"). > >triple("http://www.w3.org/1999/02/22-rdf-syntax-ns_2","pages","http:/ >/bar.org/bar.html"). > >triple("http://purl.org/metadata/dublin_core/Creator","genid1","Ora >Lassila"). > >----- RDF FILTER ----- >{http://www.w3.org/1999/02/22-rdf-syntax-ns#type, #pages, >http://www.w3.org/1999 >/02/22-rdf-syntax-ns#Bag} >{http://www.w3.org/1999/02/22-rdf-syntax-ns#_1, #pages, >http://foo.org/foo.html} >{http://www.w3.org/1999/02/22-rdf-syntax-ns#_2, #pages, >http://bar.org/bar.html} >{http://purl.org/metadata/dublin_core/Creator, #pages, "Ora Lassila" >(lang=null)} > >------ SiRPAC OnLine ------- >triple('http://www.w3.org/1999/02/22-rdf-syntax-ns#type','online#pages', > > 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'). >triple('http://www.w3.org/1999/02/22-rdf-syntax-ns#_1','online#pages', > 'http://foo.org/foo.html'). >triple('http://www.w3.org/1999/02/22-rdf-syntax-ns#_2','online#pages', > 'http://bar.org/bar.html'). >triple('http://purl.org/metadata/dublin_core/Creator','http://foo.org >/foo.html', > > 'Ora Lassila'). >triple('http://purl.org/metadata/dublin_core/Creator','http://bar.org >/bar.html', > > 'Ora Lassila'). > >----- RDF API: ParseAndSerialize ----- >Exception in thread "main" aboutEach and aboutEachPrefix are not >supported in the stream mode > >---------- end copy&paste ------ Francois-Paul Servant 33 1 45 54 46 72 ; 170 rue de Lourmel 75015 PARIS mailto:hypersol@micronet.fr http://www.hypersolutions.fr
Received on Thursday, 18 May 2000 18:29:25 UTC