W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > April 2002

Re: The Cannes Entailment [was: Coming to grips with the entailment put forth by Jeremy]

From: Patrick Stickler <patrick.stickler@nokia.com>
Date: Mon, 29 Apr 2002 08:45:03 +0300
To: ext Brian McBride <bwm@hplb.hpl.hp.com>, RDF Core <w3c-rdfcore-wg@w3.org>
Message-ID: <B8F2B88F.1421D%patrick.stickler@nokia.com>
On 2002-04-28 19:18, "ext Brian McBride" <bwm@hplb.hpl.hp.com> wrote:

> The know fix
> ============
> In the know fix, we assume that the knowledge that
>  <jenny> <age> "10" .
> really means
>  <jenny> <age> _:a .
>  _:a <xsd:decimal> "10" .
> is defined elsewhere

This is almost but not quite correct. Unless you intended
to specify explicitly somewhere in the graph that

   age rdfd:datatype xsd:decimal .

A literal without any associated datatype does not entail
a datatype value. This is why Jeremy's originally presented
entailment example does not capture the key issue here (as I understand
it) whether the inline idiom can express a datatype value.

> The Rule Fix
> ============
> We build a rule mechanism, as in the know fix, into RDF.  I think Jos has
> claimed that he has proved something similar, if not the same as this,
> works.  No one I have suggested this to has like it, usually for different
> reasons.
>  <jenny> <ageA> "10" .
>  <ageA> <rdfd:datatype> <integer> .
>  <ageA> <rdfd:valueProp> <ageB> .
> entails:
>  <jenny> <ageB> _:a .
>  _:a <integer> "10".

There is an alternate way to fix this by rule without introducing
any variant properties. Namely the following closure rule:

   ?s ?p ?l .
   ?l rdf:type rdfs:Literal .
   ?p rdfd:datatype ?d .


   ?s ?p ?x .
   ?x ?d ?l .


   ?s ?p _:a .
   _:a rdfd:lex ?l .

Note the presence of the global rdfd:datatype assertion for
the property, that is key to this entailment.


   Jenny age "10" .
   age rdfd:datatpe xsd:integer .


   Jenny age _:x .
   _:x rdfd:lex "10" .

*but* if there is no datatype globally asserted for the property
by rdfd:datatype, then this entailment does *not* hold.

> The Syntax Fix
> ==============
> This fix is based on the idea that viewing the problem as an entailment
> problem is incorrect.  The real problem is syntactic.  It arises solely
> from the fact that folks are currently used to writing in rdf/xml:
>  <rdf:Descrption rdf:about="#jenny">
>    <age>10</age>
>  </rdf:Description>
> and it is suggested that they expect the age property to represent the
> number not the numeral.
> The suggestion therefore, is to fix this in the syntax.  If instead the
> author writes:
>  <rdf:Description rdf:about="#jenny">
>    <age xsi:type="xsd:decimal">10</age>
>  </rdf:Description>
> this should be equivalent to the following n-triples:
>  <jenny> <age> _:a .
>  _:a <xsd:decimal> "10" .
> Could the xsi:type property be inserted by an XML Schema or a DTD?

Why xsi:type? And why for every occurrence?

The point of the inline idiom is that the datatyping is implicit
(global, not local). The above is just as local, and more verbose,
than the datatype property idiom:

     <rdf:Description rdf:about="#jenny">
        <age xsd:decimal="10"/>

Rather, I think the syntactic solution (as presented in one of the
convergence proposals) is to treat the inline idiom as a contracted
form of the lexical form idiom, such that whenever anyone writes

  <rdf:Description rdf:about="#jenny">
it is treated by the parser as a contraction of

  <rdf:Description rdf:about="#jenny">

This would mean that only the rdfd:lex property would ever have
literals as an object, and there would always be a bnode to denote
the datatype value.

I'm not saying I prefer this option, but I think it is preferable
to the xsi:type option.



Patrick Stickler              Phone: +358 50 483 9453
Senior Research Scientist     Fax:   +358 7180 35409
Nokia Research Center         Email: patrick.stickler@nokia.com
Received on Monday, 29 April 2002 01:41:57 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 20:24:12 UTC