ISSUE-80: Meta builtins

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/

-- 
Dr. Christopher A. Welty                    IBM Watson Research Center
+1.914.784.7055                             19 Skyline Dr.
cawelty@gmail.com                           Hawthorne, NY 10532
http://www.research.ibm.com/people/w/welty

Received on Friday, 27 February 2009 21:32:44 UTC