- From: Sandro Hawke <sandro@w3.org>
- Date: Mon, 15 Nov 2010 22:28:08 -0500
- To: Pat Hayes <phayes@ihmc.us>
- Cc: Graham Klyne <GK-lists@ninebynine.org>, nathan@webr3.org, Semantic Web <semantic-web@w3.org>
I think the solution here is to have two different properties, tied together with a "twin" arc. Given suitable semantics: ns1:Aubrey ns2:age "8". ns1:age srdf:twin ns2:age. ns1:age rdfs:range xsd:decimal. entails ns1:Aubrey ns1:age "8"^^xsd:decimal. And the other direction: ns1:Aubrey ns1:age "8"^^xsd:decimal. ns1:age srdf:twin ns2:age. ns1:age rdfs:range xsd:decimal. entails ns1:Aubrey ns2:age "8". This would allow systems to be designed to use either datatyped literals or plain (untyped, implicitly string), as they will. If all consumers implemented srdf:twin, then they would still be interoperable. Actually, this is one of three things I suggest srdf:twin do. The others concern the domain of the property, and the range of ObjectProperties. See http://decentralyze.com/2010/11/10/simplified-rdf/ for more background and some more details. -- Sandro On Mon, 2010-11-15 at 08:58 -0600, Pat Hayes wrote: > Unfortunately correct :-) It might be worth pointing out that even plain literals in RDF effectively have a type already: they are character strings. So being 'untyped' should not be read as 'not yet having a type assigned' but more like 'known to have the type of a simple character string'. It is just like being typed with xsd:string, in fact. Thus, the example given by Nathan is already a type clash, and could give rise to an error (inconsistency) message from a type-savvy reasoner, since "12.2" is definitely not an xsd:decimal. > > Pat > > On Nov 12, 2010, at 6:59 AM, Graham Klyne wrote: > > > Nathan wrote: > >> Hi All, > >> I'd suggest that a high percentage of the worlds RDF data is being published untyped, where plain literals are used as rather than typed literals "12.2" vs "12.2"^^xsd:decimal, and also (to a lesser extent) "strings as"^^xsd:string's. > >> Until today, I had assumed that it was pretty "safe" to, upon parsing, turn xsd:strings in to plain literals / pull the datatype from the range of a property and turn the object in to the correct type. > >> However, it's been suggested to me today that this probably isn't a good thing / "the right thing" to do. > >> And thus, should I be avoiding implementing this feature, and additionally what are the reasons *not* to do this. > >> An example: > >> Ontology contains.. > >> ex:prop rdfs:range xsd:decimal . > >> "data" contains.. > >> :foo ex:prop "12.2" . > >> What reason would there be not to just infer/pull the type and convert to a typed literal? > > > > Logical monotonicity. That is, adding new facts to an RDFgraph should not invalidate inferences already made. > > > > Attractive as it is, the mechanism you propose for inferring datatypes from rdfs:range declarations falls foul of this, as inferences you might make in the absence of rdfs:range statements may become incorrect when they are added to the graph. > > > > I see this is part of the price we must pay for supporting an open-world, "missing-isn't-broken" [1] system for data on the web. > > > > #g > > -- > > > > [1] this phrase due to Dan Brickley - http://rdfweb.org/mt/foaflog/archives/2003/07/24/12.22.48/ - unfortunately that URI has gone 404 (Dan: is this uncoolness permanent or transient?) > > > > > > > > > > ------------------------------------------------------------ > IHMC (850)434 8903 or (650)494 3973 > 40 South Alcaniz St. (850)202 4416 office > Pensacola (850)202 4440 fax > FL 32502 (850)291 0667 mobile > phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes > > > > > > >
Received on Tuesday, 16 November 2010 03:28:26 UTC