- 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>
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 . entails ?s ?p ?x . ?x ?d ?l . or ?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. Thus, Jenny age "10" . age rdfd:datatpe xsd:integer . entails 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"/> </rdf:Description> 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"> <age>10</age> </rdf:Description> it is treated by the parser as a contraction of <rdf:Description rdf:about="#jenny"> <age> <rdf:Description> <rdfd:lex>10</rdfd:lex> </rdf:Description> </age> </rdf:Description> 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. Cheers, Patrick -- 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