- From: Boris Motik <boris.motik@comlab.ox.ac.uk>
- Date: Tue, 1 Jul 2008 16:00:55 +0100
- To: "'Alan Ruttenberg'" <alanruttenberg@gmail.com>, "'Michael Smith'" <msmith@clarkparsia.com>
- Cc: "'OWL Working Group WG'" <public-owl-wg@w3.org>
- Message-ID: <004401c8db8b$433bf8c0$7212a8c0@wolf>
Hello, I just wanted to make a point regarding round-trippability of datatype constants. (I'll call them "constants" because that's the term we were using so far. We may, and probably should, change the spec to use the term "literal"). The spec is currently perfectly round-trippable regarding constants. Each constant consists of a lexical representation and a datatype URI. Two constants are structurally equivalent if these two components are structurally equivalent. Thus, it should be clear that "1"^^xsd:float is not structurally equivalent to "1"^^xsd:integer. Thus, from the point of view of the structural specification, replacing "1"^^xsd:float with "1"^^xsd:integer in an ontology is tantamount to replacing UnionOf( A ComplementOf( A ) ) with owl:Thing. A tool could choose to do any of these equivalent replacements, but then it should be clear that it is modifying the structural aspect of the ontology. Hence, it seems to me that the spec is perfectly clear w.r.t. this as it is. In order to avoid any misunderstanding, however, we probably should stress the conditions on the structural equivalence of constants in the section on constants. Once this is clarified, there should be no question as to what round-trippability means. Regards, Boris _____ From: Alan Ruttenberg [mailto:alanruttenberg@gmail.com] Sent: 01 July 2008 15:42 To: Michael Smith Cc: Boris Motik; 'OWL Working Group WG' Subject: Re: ISSUE-126 (Revisit Datatypes): A proposal for resolution On Jul 1, 2008, at 9:05 AM, Michael Smith wrote: On Jun 19 (in [1]) I mentioned that this is a change from best practice advice [2] and impacts existing implementations. I asked for clarification on what the benefit of the change would be so we could evaluate this as a trade-off. Opinion: FWIW, this advise doesn't seem great to me. It's tremendously confusing that SPARQL doesn't have equality on the values of literals of different types without doing extra work. This elegantly solves the problems that Alan mentioned in his last e-mail. For example, if the ontology initially contains "1.0"^^xsd:float, this would be read into a constant whose lexical representation is "1.0" and whose URI is xsd:float. Thus, if you write the ontology back from the structural spec, the constant would be written out as "1.0"^^xsd:float, and thus the form of the ontology would be preserved. This would only be true if one's tool supported some sort of literal round-trip guarantee. The internal representation of literal constants is an efficiency trade-off over which I expect tool vendors would be making their own decisions. I think it would be reasonably to have some choices and not others. Sounds like we should discuss exactly what this means. For example, I would (perhaps naively) expect that the value and type of a literal is preserved in a roundtrip. I'd not be concerned if there were extra leading 0s. The only thing that changes really is that we'd say that the extensions of xsd:double and xsd:float are continuous and not discrete, and we'd tweak them (e.g., by removing NaN) to make them subsets of owl:real. It seems that "supporting" xsd:float and xsd:double, but not allowing some of their permitted values is likely to confuse users. I agree. Needs some thought. -- Mike Smith Clark & Parsia [1] http://lists.w3.org/Archives/Public/public-owl-wg/2008Jun/0149.html [2] http://www.w3.org/TR/swbp-xsch-datatypes/#sec-values
Received on Tuesday, 1 July 2008 15:02:34 UTC