- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Mon, 16 Mar 2009 10:21:12 +0000
- To: Chris Welty <cawelty@gmail.com>
- CC: "Public-Rif-Wg (E-mail)" <public-rif-wg@w3.org>
Chris Welty wrote:
>
> Status:
>
> At the March 3 telecon we discussed the issue of a general literal
> equality/non-equality predicate. There was consensus that we could drop
> (or, really, not add) pred:literal-equal, however it turned out that
> some who agreed (or didn't object) assumed that meant *also* dropping
> pred:literal-not-equal, and of course some thought it meant keeping
> not-equal.
>
> It is pred:literal-not-equal that reduces the 13 inequality rules in [1]
> to a single rule.
>
> Lets see if we can resolve this one at the upcoming telecon.
The parenthetical comment on option (2) in the issue write up (and
below) confuses me. pred:literal-equal as originally proposed and as
currently defined in DTB is not the same as "=" it is more like:
pred:literal-equal(?x, ?y) iff
isLiteral(?x) AND isLiteral(?y) and ?x = ?y
Though I agree there is redundancy there.
My preference order is:
(2) Leave pred:literal-equal as is
[on the grounds of symmetry with pred:literal-not-equal, accepting there
is some redundancy.]
(1) Drop pred:literal-equal (retaining pred:literal-not-equal)
[This still leaves me able to shorten the OWL 2 RL and similar rules.]
(3) Redefine pred:literal-equal to perform all the datatype specific
equality tests (and redefine pred:literal-not-equal compatibly so that
for any pair of literals exactly one of these predicates is true).
[This means I can't use those predicates for the OWL 2 RL rules easily
(assuming OWL opt for disjoint value spaces). However, there may still
be value in such predicates for other users.]
(0) Drop both pred:literal-equal and pred:literal-not-equal
I will not formally object to any of these options though there is a
significant gap in my preference order between the first two and the
last two.
Dave
>
> -Chris
>
> [1] http://www.w3.org/2005/rules/wiki/OWLRL#Rules_for_supported_datatypes
>
> Chris Welty wrote:
>>
>> Issue-80 was prompted by DaveR's attempt at using RIF-Core to specify
>> the rules in OWL-RL. He suggested it would be much easier, and also
>> promote datatype extensibility, if the builtins were more general. We
>> resolved to have a two-argument pred:isLiteralOfType (and its
>> negation), and are currently considering literal equality, which is
>> more complicated.
>>
>> Basically we need a pred:literal-not-equal, or at the very least a
>> not= for each datatype. It seems to make sense to have a
>> pred:literal-equal as well (for symmetry, if nothing else), but what
>> does it do? Is it redundant with RIF's = predicate? Does it do
>> numeric comparison? Is it simply lexical?
>>
>> At the moment pred:literal-equal is defined to be subsumed by RIF's
>> =. It does not do xs:numeric-equal, which includes type promotion.
>> Thus we would need to keep that, unless this predicate were changed.
>> RIF= for datatype checks identity in the value space.
>>
>> Jos believed he read somewhere that it is possible for a datatype to
>> have multiple values in their value spaces that are identical.
>> Probably this is from dateTime, which is pretty hard to understand - I
>> wasn't able to nail it down precisely (the spec says datetimes are
>> compared based on their timeline values). Thus if RIF= already
>> provides value space identity, pred:literal-equal could provide the
>> datatype specific equality that F&O specifies for e.g. numerics,
>> date-times, etc.
>>
>> Note: [XS2] says "Equality" in this Recommendation is defined to be
>> "identity" (i.e., values that are identical in the ˇvalue spaceˇ are
>> equal and vice versa). Identity must be used for the few operations
>> that are defined in this Recommendation. Applications using any of the
>> datatypes defined in this Recommendation may use different definitions
>> of equality for computational purposes; [IEEE 754-1985]-based
>> computation systems are examples. Nothing in this Recommendation
>> should be construed as requiring that such applications use identity
>> as their equality relationship when computing.
>>
>> Solutions:
>>
>> 1) Drop pred:literal-equal
>> 2) Leave pred:literal-equal as is (redundant with RIF =)
>> 3) Redefine pred:literal-equal to perform all the datatype specific
>> equality tests including numeric, and remove those datatype specific
>> tests from DTB.
>>
>> -Chris
>>
>> [Xs2] http://www.w3.org/TR/xmlschema-2/
>>
>
Received on Monday, 16 March 2009 10:22:06 UTC