- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Mon, 22 Sep 2008 18:32:00 +0100
- To: RIF WG <public-rif-wg@w3.org>
A few questions and suggestions on DTB came up while I was trying to develop the OWL 2 RL ruleset. (1) isDecimal/isInteger behaviour From the definitions of the guard predicates it looks like: pred:isDecimal("3"^^xs:integer) pred:isInteger("3"^^xs:decimal) would both be true. That's what I would expect and is what I've assumed but I thought I should just check. (2) Subtypes of xsd:decimal and xsd:string In the DTB section on the xs:integer cast function it says: "and accordingly for all subtypes of xs:integer" Does that mean that the xs:integer cast function in RIF is expected to handle all subtypes of xs:integer like xs:nonNegativeInteger? Does the same also apply to xs:string and the xs:string subtypes? Are the guard predicates also expected to support the corresponding subtypes? I'm assuming the answer is probably "no" for at least the latter but just wanted to check. I ask because OWL 2 includes xs:nonNegativeInteger (but not others like xs:int) and a whole zoo of subtypes of xs:string. (3) Generic type membership/non-membership, equality/inequality To implement the OWL 2 RL datatypes rules it would be very convenient to have generic equality and type checking operators which apply to all supported primitive datatypes. Not only would that significantly simplify the datatype rules but would mean that the rules would automatically cover additional primitive datatypes supported by any given RIF consumer. We have such operators in Jena and found them quite useful. What would people think about adding these to DTB? pred:isType(?lit, ?type) Where the domain of ?type is the IRI for a primitive datatype symbol space. True iff ?lit is in the value space of the DATATYPE corresponding to given symbol space IRI. Implementations are not required but are permitted to support DATATYPE IRIs beyond the RIF supported datatypes. pred:isNotType(?lit, ?type) Where the domain of ?type is the IRI for a datatype symbol space. True iff ?lit is not in the value space of the DATATYPE corresponding to given symbol space IRI. Implementations are not required but are permitted to support DATATYPE IRIs beyond the RIF supported datatypes. pred:isLiteralEqual(?arg1, ?arg2) Intended domain of ?argi is the value space for any supported primitive datatype. If both ?argi are in their intended domains then the predicate is true iff the value of the two arguments are equal. pred:isLiteralNotEqual(?arg1, ?arg2) Intended domain of ?argi is the value space for any supported primitive datatype. If both ?argi are in their intended domains then the predicate is true iff the value of the two arguments are not equal. Dave -- Hewlett-Packard Limited Registered Office: Cain Road, Bracknell, Berks RG12 1HN Registered No: 690597 England
Received on Monday, 22 September 2008 17:33:27 UTC