Re: [Fwd: Re: [DTB] Datatypes and Built-ins first run to clean up and extend the initial list]

<snip/>

> As for your proposal, I have some doubts, let's see:
> 
> "Let I be an interpretation, let u be an element in the domain of I, and
> let (i1, ..., in) be the lexicographically ordered sequence of IRIs that
> denote u, i.e. for each ij (1 <= j = n) IC(ij)=u.  If n=0, then
> iriToString(u)=error; otherwise, iriToString(u) = "i1"."
> 
> I am not sure, but that does not seem to help, because we have no 
> guarantee that this function is injective ... that would only be the 
> case if we restrict ourselves to Herbrand interpretations ... so, still 
> I cannot refer to "the"  lexicographical representation of a rif:iri... 
> i1 could - for the example iri 
> "http://www.example.org/theNumberOne"^^rif:iri - still be ANY string 
> lexicographically smaller than "http://www.example.org/theNumberOne"
> depending on the actual interpretation, or no?
> 
> So, the simple rif condition:
> 
>  iriToString("http://www.example.org/theNumberOne"^^rif:iri) =
>  "http://www.example.org/theNumberOne"
> 
> would still not be implied by the empty ruleset, would it?

I saw a small error in my definition, so let's first correct that:

"Let I be an interpretation, let u be an element in the domain of I, and
let (i1, ..., in) be the lexicographically ordered sequence of IRIs that
denote u, i.e. for each ij (1 <= j <= n) IC(ij)=u.  If n=0, then
iriToString(u)=error; otherwise, iriToString(u) = "i1"."

Then, I did not really understand what you wrote above, but you are 
right that your equation does not follow from my definition of the 
function iriToString.

Let's take a simple example:
Consider the condition r:

(*) iriToString("b"^^rif:iri) = "b"^^xsd:string

The condition R is only entailed by the empty rule set if it is true in 
every RIF interpretation, which means that it must be the case that 
IF(iriToString)(IC("b"^^rif:iri)) = IC("b"^^xsd:string)

IC("b"^^xsd:string) = "b" for every interpretation I.
Now let's consider an interpretation I such that IC("b"^^rif:iri) = 
IC("a"^^rif:iri) = u. So, IF(IC(iriToString))(u) = "a".


So, we really want to take into account all IRIs representing a 
particular domain element.  Since this is a set, we would need to use a 
built-in predicates.  For example:

"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


> 
> Axel
> 
>> See [1] for a possible definition of a conversion function for IRIs 
>> (note that it is not a typecasting function, because rif:iri is not a 
>> type).
>>
>>
>> Best, Jos
>>
>> [1] http://lists.w3.org/Archives/Public/public-rif-wg/2008Mar/0019.html
>>
>>>
>>> If the majority of the group thinks that such rules are out of scope 
>>> for RIF then I see a big problem to our relation with the RDF 
>>> community. I personally do think it should be in scope.
>>>
>>>
>>> Axel
>>>
>>>
>>> 1. http://www.w3.org/TR/vcard-rdf
>>> 2. http://xmlns.com/foaf/spec/
>>>
>>>>> best,
>>>>> Axel
>>>>>
>>>>>
>>>>>>> So how do I convince all the rest of the world to change that 
>>>>>>> likewise?
>>>>>>> Even the RDF Primer [2] (Example 6):
>>>>>>> ---------------------------------------------------------------------- 
>>>>>>>
>>>>>>>       <rdf:Description rdf:nodeID="abc">
>>>>>>>          <exterms:fullName>Dave Beckett</exterms:fullName>
>>>>>>>          <exterms:homePage 
>>>>>>> rdf:resource="http://purl.org/net/dajobe/"/>
>>>>>>>       </rdf:Description>
>>>>>>> ---------------------------------------------------------------------- 
>>>>>>>
>>>>>>>
>>>>>>> or the SPARQL spec [3] (examples in Section 6):
>>>>>>>
>>>>>>> ---------------------------------------------------------------------- 
>>>>>>>
>>>>>>>   @prefix foaf:       <http://xmlns.com/foaf/0.1/> .
>>>>>>>   @prefix rdf:        
>>>>>>> <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>>>>>>>
>>>>>>>   _:a  rdf:type        foaf:Person .
>>>>>>>   _:a  foaf:name       "Alice" .
>>>>>>>   _:a  foaf:mbox       <mailto:alice@example.com> .
>>>>>>>   _:a  foaf:homepage   <http://work.example.org/alice/> .
>>>>>>> ---------------------------------------------------------------------- 
>>>>>>>
>>>>>>>
>>>>>>> promote the use of rdf:resources for URLs (homepages, 
>>>>>>> email-adresses, etc.). It might be arguable with respect to the 
>>>>>>> concepts, but people *do* use URIs like that and it is even done 
>>>>>>> in the specs of RDF as we see here.
>>>>>>>
>>>>>>> How do we cater for it?  By just stating I cannot get a substring 
>>>>>>> out of a homepage-URL or email-address... just because 
>>>>>>> rdf:resource (and rif:iri, respectively) are not datatypes?
>>>>>>>
>>>>>>> I knew somehow why I put that in my signature ;-)
>>>>>>>
>>>>>>> Axel
>>>>>>>
>>>>>>>
>>>>>>> 1. http://xmlns.com/foaf/spec/
>>>>>>> 2. http://www.w3.org/TR/REC-rdf-syntax/
>>>>>>> 3. http://www.w3.org/TR/rdf-sparql-query/
>>>>>>>
>>>>>>> -- 
>>>>>>> Dr. Axel Polleres
>>>>>>> email: axel@polleres.net  url: http://www.polleres.net/
>>>>>>>
>>>>>>> rdfs:Resource owl:differentFrom xsd:anyURI .
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
> 
> 

-- 
                          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 Tuesday, 4 March 2008 14:53:48 UTC