- 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