- From: Jos de Bruijn <debruijn@inf.unibz.it>
- Date: Fri, 13 Jun 2008 10:24:36 +0200
- To: Axel Polleres <axel.polleres@deri.org>
- CC: kifer@cs.sunysb.edu, Rule Interchange Format Working Group WG <public-rif-wg@w3.org>
- Message-ID: <48522EC4.7040005@inf.unibz.it>
> That is not a problem, as far as I can see... we do not restrict > *additional* equalitities in these axioms, i.e. we don't say that > inequalities hold for the other, we do not prohibit anything. If you say: xsd:string("a"^^rif:iri) = "a"^^xsd:string and xsd:string("b"^^rif:iri) = "b"^^xsd:string Then the statement "a"^^rif:iri = "b"^^rif:iri becomes inconsistent. So, you prohibit stating equalities between IRIs. Best, Jos > >> (The second group seems ok, but I would not be >> surprised if it also has problems.) > > since the first one doesn't seem to have problems - at least not the > ones you mention - I don't expect so. :-) > >>> This is more elegant than having a predicate for one cast and functions >>> for all others. Also, this form of equalities has the elegance that >>> additional equalities (e.g. by iris referrng to the same object) are not >>> a problem at all with this. >>> >>> Accordingly, I changed the respective section on casting from an d to >>> rif:iri to the following text: >> >> I am afraid you will have to change back :-) > > If you find a problem (apart from the above which isn't a problem unless > I got you wrong), then certainly I will. > > Axel > >>> ---------------------- >>> >>> ==== <tt>rif:iri</tt> ==== >>> {| >>> | style="background-color: #80FF80" rowspan="1" colspan="1" | >>> Editor's note: Casting from and to is still under discussion in the >>> working group since <tt>rif:iri</tt> is not a datatype. For details, >>> we refer to >>> [http://www.w3.org/mid/20080610143044.5698ABF57@nelson.w3.org >>> Issue-61]. The following is a strawman proposal which might still >>> change in future versions of this working draft. >>> |} >>> >>> <p>Additionally to the built-in cast functions for datatyes we allow >>> conversions from and to constants in the <tt>rif:iri</tt> symbol >>> space to and from <tt>xsd:string</tt>s following similar >>> considerations as conversions from and to <tt>xsd:anyURI</tt> in >>> <nowiki>[</nowiki>[[#ref-xpath-functions|XPath-Functions]]]. >>> Technically speaking, we cannot proceed as with the other cast >>> functions, defining the semantics via a fixed mapping >>> '''''I'''''<sub>external</sub> for an external schema <tt> ( >>> ?arg<sub>1</sub>; rif:iri ( ?arg<sub>1</sub> ) )</tt>, since >>> <tt>rif:iri</tt> is not a datatype with a fixed value space and fixed >>> lexical-to value mapping. Instead, casts between <tt>rif:iri</tt> >>> and <tt>xsd:string</tt> are defined via an infinite set of axiomatic >>> equalities in every RIF interpretation as follows.</p> >>> >>> <p>The following equalities hold in every RIF interpretation for each >>> unicode string <i>a</i>:</p> >>> <ul> >>> <li><tt>xsd:string("</tt><i>a</i><tt>"^^rif:iri) = >>> "</tt><i>a</i><tt>"^^xsd:string</tt></li> >>> <li><tt>rif:iri("</tt><i>a</i><tt>"^^xsd:string) = >>> "</tt><i>a</i><tt>"^^xsd:iri</tt></li> >>> </ul> >>> >>> <p>Thus, although there is no explicit schema <tt> ( >>> ?arg<sub>1</sub>; rif:iri ( ?arg<sub>1</sub> ) )</tt> in RIF, casts >>> between <tt>xsd:string<tt>s and <tt>rif:iri</tt>s are still possible >>> in RIF with the intended semantics that the IRI represented by a >>> particular string can be cast to this very string and vice versa. >>> </p> >>> ---------------------- >>> >>> I like this solution :-) >>> >>> Axel >>> >>> >>> >>> >>>> and not bother with the preceding text in your message. It is much >>>> simpler that way. >>>> >>>> michael >>>> >>>> On Tue, 10 Jun 2008 19:22:10 +0200 >>>> Jos de Bruijn <debruijn@inf.unibz.it> wrote: >>>> >>>>> Well, it was the only reasonable alternative I could think of for >>>>> casting IRIs to strings. >>>>> >>>>> I am personally actually not convinced that we even need such a >>>>> casting function, but there are some people who think it is useful. >>>>> >>>>> Best, Jos >>>>> >>>>> Michael Kifer wrote: >>>>>> This makes iriToString a multivalued function (i.e., the same iri >>>>>> has several >>>>>> string interpretations). Is this what we want? >>>>>> >>>>>> >>>>>> --michael >>>>>> On Tue, 10 Jun 2008 16:40:04 +0200 >>>>>> Jos de Bruijn <debruijn@inf.unibz.it> wrote: >>>>>> >>>>>>> See [1] and preceding the messages in the thread for a >>>>>>> description of the semantic problems. In [1] I also proposed a >>>>>>> casting predicate that seems to work. >>>>>>> >>>>>>> In summary, the biggest semantic challenge in casting IRIs to >>>>>>> strings is that several different IRIs may be mapped to the same >>>>>>> string. The following was my proposal: >>>>>>> >>>>>>> "Let I be an interpretation, let u be an element in the domain of >>>>>>> I, and >>>>>>> let {i1, ..., in} be the set of IRIs that denote u, i.e. for each >>>>>>> ij (1 >>>>>>> <= j <= n), IC(ij)=u. IR(iriToString)(u,"ij")=t for (1 <= j <= n); >>>>>>> IR(iriToString)(u,s)=f for every element s not in {"i1", ..., >>>>>>> "in"}." >>>>>>> >>>>>>> The rule set >>>>>>> iriToString("b"^^rif:iri,"b"^^xsd:string) >>>>>>> >>>>>>> is satisfied in every RIF interpretation. >>>>>>> >>>>>>> I think this predicates should be sufficient for most of the use >>>>>>> cases. >>>>>>> >>>>>>> >>>>>>> Best, Jos >>>>>>> >>>>>>> Rule Interchange Format Working Group Issue Tracker wrote: >>>>>>>> ISSUE-61 (IRI-Casts): Casting to/from rif:iri [DTB] >>>>>>>> >>>>>>>> http://www.w3.org/2005/rules/wg/track/issues/ >>>>>>>> >>>>>>>> Raised by: Christopher Welty >>>>>>>> On product: DTB >>>>>>>> >>>>>>>> It is clear users of RIF dialects such as BLD will want to be >>>>>>>> able to convert (cast) instances of rif:iri to/from other >>>>>>>> datatypes, in particular strings and possibly rif:text. >>>>>>>> >>>>>>>> In general, a casting mechanism is not present in DTB and should >>>>>>>> be added. > > -- debruijn@inf.unibz.it Jos de Bruijn, http://www.debruijn.net/ ---------------------------------------------- One man that has a mind and knows it can always beat ten men who haven't and don't. -- George Bernard Shaw
Received on Friday, 13 June 2008 08:25:19 UTC