- 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