- From: Dan Connolly <connolly@w3.org>
- Date: 29 Jan 2002 09:24:41 -0600
- To: Jeremy Carroll <jjc@hplb.hpl.hp.com>
- Cc: Graham Klyne <Graham.Klyne@MIMEsweeper.com>, Brian McBride <bwm@hplb.hpl.hp.com>, RDF core WG <w3c-rdfcore-wg@w3.org>
On Tue, 2002-01-29 at 06:24, Jeremy Carroll wrote:
>
> This message addresses the main criticisms of TDL.
Hmm... perhaps it amplifies it ;-)
> I will follow up with more detail concerning query, Brian's B3 & B4.
>
> The proponents of S furnish us with an implementation of S, and a model
> theory for S (which includes, naturally self-entailment).
>
> I now can create an implementation of TDL in the following fashion.
>
> As I read in any RDF graph I apply the following syntactic transformation.
>
> Match:
> ?x ?y ?z
> where ?y != rdf:value and
> ?z a literal node
>
> replace with
> ?x ?y NewNode
> NewNode rdf:value ?z
>
> where NewNode is a newly minted bNode.
Yes, exactly; that's an implementation technique we (in SWAD)
considered.
For one thing, it seems ugly. But that's a matter of taste,
not one I'd expect folks to find compelling.
But for another, it looks like a HUGE change to RDF 1.0!
The whole point of S is that it's *not* a change to RDF 1.0;
it's a set of properties and classes layered on top
of (what I think is) the simplest and most common
reading of RDF 1.0.
If I write
<http://www.w3.org/> dc:title "W3C".
you propose to hold me accountable for something that I
don't think I said, namely:
<http://www.w3.org/> dc:title _:x.
_:x rdf:value "W3C".
At a minimum, we would need to use some new name... something
other than rdf:value. Folks are already using rdf:value to
mean something, and we can't conclude that they mean the above.
(after all, RDF M&S 1.0 specifies that rdf:value is to
be used to model n-ary relations. go figure.)
Another thing: when you say ?y != rdf:value do you mean
the syntactic term isn't rdf:value? or do you mean
that the property isn't the same property as what rdf:value denotes?
If you mean the latter, then it's a theorem-prooving
excercise to decide. If you mean the former, then rdf:value
becomes special syntax; i.e. folks can't expect
my:value rdfs:subPropertyOf rdf:value.
my:thing my:attribute [ my:value "abc"].
to pass the ?y != rdf:value test.
Another thing...
> For example:
>
> <a> <foo> "ss" .
>
> is transformed to
>
> <a> <foo> _:b.
> _:b <rdf:value> "ss".
What does the bit under "transformed to" mean? i.e.
how are we to read
_:b <rdf:value> "ss".
?
Is it turtles all the way down? ;-)
Seriously: with S, the basic building-blocks for
documents are strings and URIs. That seems pretty fundamental.
Without the ability to know, at a glance, that "abc" = "abc"
and "abc" != "xyz", getting off the ground becomes really
painful.
You write "As I read in any RDF graph..."; perhaps you
mean to change the relationship between RDF/xml and n-triples,
i.e. re-do a buch of test results?
Or perhaps you're just proving that TDL is implementable,
and we shouldn't take the proof construction method too
seriously?
> We then use the S implementation and S model theory (idiom S-P is the only
> idiom used).
>
> Hence:
> If S is implementable then so is TDL
Yes, I'm compelled to accept that...
> The maximum overhead required for TDL is the same as that for S idiom A
> and/or S idiom P.
All the S idioms are zero-cost to the RDF 1.0 parser implementor.
Idioms A and P cost the document-writers a bit, but they don't
impact parser writers at all.
Perhaps I don't know what you mean by an implementation.
Is it different from an RDF 1.0 parser implementation?
If so, would you please give me a test that a datatypes-capable
implementation is expected to pass that an RDF 1.0
parser isn't required to pass? Maybe something like this?
ex:age rdfs:range dt:decimal.
ex:somebody ex:age "abc".
... where a datatypes implementation would be expected to complain
because that entails
"abc" rdf:type dt:decimal.
but we know that "abc" isn't a decimal literal. Something like that?
Note that it's a theorem-proving excercise to find all such
contradictions. Not that theorem-proving is hard with RDF/RDFS,
but still, it's not dead-simple. And with WebOnt layered on
top, I expect it will be quite onerous.
> All problems to do with entailment, query, implication, etc. are clarified
> and addressed with this process (as long as they are clear and addressed
> with S).
Hmm... self-entailment seems to be handled, but not query.
Consider Sergey's example:
_:f <rdf:type> <film> .
_:f <dc:Title> "10" .
<mary> <age> "10" .
By the transformation, that becomes
_:f <rdf:type> <film> .
_:f <dc:Title> _:gen1. _:gen1 rdf:value "10" .
<mary> <age> _:gen2. _:gen2 rdf:value "10" .
It's no longer valid to conclude that
(?x <dc:Title> ?y) & (?z <age> ?y)
is satisfiable.
> >From an implementators point of view, it is clearly easier to implement the
> syntactic transformation and S-P, than to implement S-A, S-B and S-P.
That is not clear to me at all.
As I say: as an implementor (of a parser and rules engine) I
get all the S idioms for free. The only cost is to the document
authors.
> Graham, does this adequately address your concern about self-entailment?
It does address the self-entailment issue, I suppose.
But the query issue seems just as important.
To me, it comes down to this: In the RDF community, do folks
expect that "abc" always denotes the same thing as "abc"?
I looked at the Jena source, and it seems to.
The squish, rql, rdfdb and other query languages seem to.
That's why I objected to the DAML design; it undermines
a popular assumption in the RDF community. (not to
mention that I find it ugly that we can't use
strings and URIs as the basic building blocks
for knowledge exchange).
> [Small technical detail:
>
> S-P uses a closed world assumption on data types, whereas TDL uses an open
> world assumption. The two can be made equivalent by using S-P with at least
> two incompatible types in its closed world both having domain being the
> complete set of unicode strings. Two such types are:
>
> xsd:string = { < x, x > | for any unicode string x }
> appendA = { < x, x."A" > | for any unicode string, . being string
> concatenation }
>
> ]
I don't understand that. I don't see any closed-world assumptions in S.
--
Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Tuesday, 29 January 2002 10:25:42 UTC