- 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