Re: provisional new MT draft

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