Re: a test case for "literals must be self-evident"

Pat Hayes wrote:
> 
> Sorry this reply is delayed.
> 
> >OK, I blathered on about this requirement in...
> >
> >   literals must be self-evident
> >   Dan Connolly (Wed, Oct 17 2001)
> >   http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Oct/0338.html
> >
> >but recent discussion with Peter S. and Jeremy made me realize
> >I can reduce this to a real simple entailment test:
> >
> >Does dte-blunt.nt entail dte-pointy.nt?
> >
> >dte-blunt.nt:
> >
> >   <http://example/x> <http://example/y> "abc".
> >
> >dte-pointy.nt:
> >
> >   <http://example/x> <http://example/y> "abc".
> >
> >i.e. does an RDF document entail itself?
> >Surely the answer is yes, right?
> >I suggest that P/P++ do not guarantee this entailment;
> >they fail to specify that the answer to this
> >test is "yes".
> >
> 
> Well wait a minute. Are those the SAME graph, or two different but
> isomorphic graphs?

I wasn't very clear; they're supposed to be the same RDF/xml
document. The problem with the P++ scheme (as I understand it)
is that an RDF/xml document doesn't pin down the graph.

Let's use this as the test input:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
            xmlns:dc="http://purl.org/dc/elements/1.1/">
  <rdf:Description rdf:about="http://www.w3.org/">
    <dc:title>World Wide Web Consortium</dc:title> 
  </rdf:Description>
</rdf:RDF>


> Do you mean, does a document entail *itself*, or
> does it entail any other document with the same lexical form?

I think I mean
	does a document ential itself?

or, in other words:

	does a document completely determine the graph?

> In the
> P++ scheme, distinct literal nodes are treated as syntactically
> distinct entities, so the answer matters.
> 
> For example, suppose that we were to merge these two graphs. Would
> the result contain two triples or one?

Yes, that's another way to phrase the question. If parse
the RDF/xml document above, and then parse it again,
will I ever get more than just the one triple?

This self-evident idea requires that you get just one.

> If the answer is one, then
> they are the same document and this document entails itself (of
> course). If the answer is two, then they are two distinct but similar
> documents, and the answer then is, indeed, no in the P++ scheme,
> since those two different literal occurrences might be typed
> differently.

Then perhaps I misunderstood. I understood that the
very same document could end up with different graphs in P++.

For example, take:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:ex="http://example/vocab#">
  <rdf:Description rdf:about="http://www.w3.org/">
    <ex:orgDirectorShoeSize>10</ex:orgDirectorShoeSize>
  </rdf:Description>
</rdf:RDF>

now one minute, I get some schema info from
http://example/vocab that says the range
of ex:orgDirectorShoeSize is a numeral.
I parse that into my knowledge base, then I parse
the document above. In the P++ scheme, the
object of the triple I get from parsing is an integer,
if I understand correctly.

The next minute, somebody edits the example vocabulary;
I restart my program and grab the schema; now
it says the range of ex:orgDirectorShoeSize is numeral
(a string constrained to [0-9]+, say). Then I parse
the above document again. Now the object is a string.

So I've parsed the same document twice, and the two
formulas I got don't entail each other.

Another related test case, using RDFS: does this

  _:somebody ex:leftShoeSize "10".

  ex:leftShoeSize s:subPropertyOf ex:showSize.

RDFS-entail this?

	_:somebody ex:shoeSize "10".


since there are relevant issues related to the syntax
of n-triples (and since I've used N3 QNames to abbreviate
full n-triples), here are the documents in RDF/xml:

premise:

<rdf:RDF xmlns="http://example/vocab#"
    xmlns:log="http://www.w3.org/2000/10/swap/log#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:s="http://www.w3.org/2000/01/rdf-schema#">

    <rdf:Description>
        <leftShoeSize>10</leftShoeSize>
    </rdf:Description>

    <rdf:Description rdf:about="http://example/vocab#leftShoeSize">
        <s:subPropertyOf rdf:resource="http://example/vocab#showSize"/>
    </rdf:Description>
</rdf:RDF>

conclusion:

<rdf:RDF xmlns="http://example/vocab#"
    xmlns:log="http://www.w3.org/2000/10/swap/log#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:s="http://www.w3.org/2000/01/rdf-schema#">

    <rdf:Description>
        <shoeSize>10</shoeSize>
    </rdf:Description>
</rdf:RDF>


> But this, seems to me, does not violate the guidelines you enunciated
> in
> http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Oct/0338.html
> since there you talk about an interpretation being CHANGED -
> redefined - by the addition of information. Here, nothing is being
> changed; if you add datatyping information, you are simply
> disambiguating the bare literal by adding more information about it,
> by removing some of its (datatyped) interpretations. This is just
> like normal RDF inference, right? The only difference is that every
> occurrence of a bare literal has to be treated as a separate
> syntactic entity. That gives inference a slightly unusual 'feel' on
> bare literals, perhaps, but it isn't anything disastrous. There is no
> nonmonotonicity, if you stick to the rules.

Maybe I don't understant how P++ works, then. I got the impression
that in P++, the RDF/xml form of a document didn't completely
nail down the graph; that a parser decided between different
graphs based on information from other places/documents.

-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/

Received on Monday, 10 December 2001 15:02:12 UTC