- From: Jos de Bruijn <debruijn@inf.unibz.it>
- Date: Tue, 04 Mar 2008 15:53:32 +0100
- To: axel@polleres.net
- CC: "Public-Rif-Wg (E-mail)" <public-rif-wg@w3.org>
- Message-ID: <47CD626C.7060307@inf.unibz.it>
<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