- From: Jan Grant <Jan.Grant@bristol.ac.uk>
- Date: Thu, 25 Apr 2002 16:25:33 +0100 (BST)
- To: Pat Hayes <phayes@ai.uwf.edu>
- cc: w3c-rdfcore-wg@w3.org
On Thu, 25 Apr 2002, Pat Hayes wrote: > >On Wed, 24 Apr 2002, Pat Hayes wrote: > > > >> An incomplete but readable draft of the MT with containers and > >> reification added and tidy literals can be found at > >> http://www.coginst.uwf.edu/~phayes/w3-rdf-mt-draft-42402.html. @@ > >> indicates comments or work to be done. I know it is scruffy, bear > >> with me. > > > >Frivolous comment: I used to have a somwhat unflattering nickname > >("weasel")*, so to read of their demise was quite a blow :-) > > > >Anyroadup: I was thinking about this yesterday when sketching out a > >separate unix-style filter to output the rdf(s)-closure of an ntriples > >document. > > > > However, it is easy to see that the rules will indeed terminate > > on any finite RDF graph, since there are only finitely many > > triples that can be formed from a given finite vocabulary. > > > >Unfortunately, this isn't true when you include closure rules for RDF > >containers > > Yes, I know. I am worrying about that right now. > > >- since any graph presumaby entails (for example) > > > > <rdf:_n> <rdf:type> <rdf:Property> > > also <rdf:_n> <rdfs:subPropertyOf> <rdf:memberOf> > and maybe a few others, I'm working on it. > > >for any value of n in <rdf:_n>. It's simple to say "throw in all of > >these" (I'd be happy with this) but a naive approach to implementing > >Pat's closure rules will take a looooong time :-) > > Or, you could say, add only the ones that have been mentioned in the > graph. Entailment will still work but will have to be stated more > carefully. Its a bit yucky either way, but that's the cost of > defining an infinite vocabulary. That was the approach I was taking (well, nearly: I've got a small C++ thing for doing "closure" rules on ntriples, and I decided to do something like this to close bags: for any _ns mentioned in the input document, close those appropriately add a hacky set of these: RDF:_N <rdf:type> <rdf:Property> because simple entailment of things like _:a <rdf:type> <rdf:Property> from an empty ntriples input are then trivial (ie, no entailments break). Unfortunately, you _also_ need to do something so that an empty ntriples input entails rdf:_99 <rdf:type> <rdf:Property> ...which I'm just working around now. > Im inclined to go with the 'throw in all' partly because it really > does make it clear that these rules aren't meant to be RUN, which I > tried to emphasize in the text. Infinite forward branching is fine if > you run the rules backwards, for example. The above comment about > termination is potentially misleading in this regard, I now see. -- jan grant, ILRT, University of Bristol. http://www.ilrt.bris.ac.uk/ Tel +44(0)117 9287088 Fax +44 (0)117 9287112 RFC822 jan.grant@bris.ac.uk "NOP" is a trivial implementation of an executable Z subset.
Received on Thursday, 25 April 2002 11:31:43 UTC