W3C home > Mailing lists > Public > public-rdf-in-xhtml-tf@w3.org > December 2007

Re: CURIE syntax thoughts + @instanceof semantics

From: Niklas Lindström <lindstream@gmail.com>
Date: Fri, 28 Dec 2007 20:58:29 +0100
Message-ID: <cf8107640712281158g3838b659g601e73e361f4ac51@mail.gmail.com>
To: "Ivan Herman" <ivan@w3.org>
Cc: "Mark Birbeck" <mark.birbeck@x-port.net>, "W3C RDFa task force" <public-rdf-in-xhtml-tf@w3.org>

Hi,

I very much agree. I believe true BNodes are important and must be
treated as such.

For instance, if I have an important property, say dc:publisher, but
unfortunately lack the means to find a URI for it, I might still have
a useful value such as company name (not enough to be able to smush
with other data, but immensely helpful for e.g. manual processing).
Then I want to add:

    <> [ dc:publisher foaf:name "ACME Inc." ] .

to denote this unknown resource with a BNode, and *definitely* not
mint a URI for it. If I did that, that URI would propagate out of my
control when I shared the data; and with no means of me saying "it's
only a temporary, place-holder URI". Which is basically what BNodes
are for, in many cases. I don't think that anything else (i.e.
"obscure URIs") but "proper and true" BNodes can capture this a
priori.

So the beneficial thing with BNodes is that they *cannot* be
referenced outside their context. A drawback for the Giant Global
Graph perhaps, but necessary to capture incompletely "mapped" data..

(They are of course also very beneficial as internal "handles" for
resources that aren't assigned an URI for practical reasons (e.g.
composite values).)

Best regards,
Niklas



On Dec 17, 2007 1:58 PM, Ivan Herman <ivan@w3.org> wrote:
> Mark,
>
> I must say I do not fully agree with you. You said in one of your mail
> that you are usually accused of being pedantic:-), well, it is my turn:-)...
>
> The fundamental issue is: a bnode is _not_ a special URI, if one looks
> at the RDF semantics. Yes, usually it is _used_ as a unique URI, but for
> semantics people it is certainly different (Bnodes are existential
> variables). Believe me, you would make lots of people very happy if you
> were right:-)
>
> That also means RDFa, in my view, _does_ impose an extra semantics on
> top of CURIE. If, seeing the following code:
>
> <span about="[_:a]" rel="a:b" resource="c:d"/>
>
> an RDFa processor generated
>
> <SOMEUNIQUEURI> a:b c:d.
>
> instead of
>
> [] a:b c:d.
>
> this would be, strictly speaking, an error, because RDFa defines _:a as
> a _blank node_. As long as RDFa is used for plain RDF, it does not
> really matter in practice, but if it is used to encode statements that
> are related to some complex OWL-DL ontology, it begins to matter in
> theory (again, in 99% of the practical cases it does not...).
>
> That is why I also said: we already define an extra semantics on top of
> CURIE-s, ie, adding an extra semantics for "_:" is not a big step.
>
> Having said that: my real goal, obviously, is to solve the @instanceof
> issue which is still open for me:-(
>
> Ivan
>
> P.S. Regardless of the "_:" issue: this drew my attention on the fact
> that the CURIE syntax description in the RDFa syntax carefully avoids
> the usage of the term 'BNode'. I think it should not. This seems to be a
> general CURIE term that has a very specific 'mapping' if used in a
> specific context like RDFa...
>
>
> Mark Birbeck wrote:
> > Hi Ivan,
> >
> >> Well... We already add some extra semantics (including in the pure CURIE
> >> syntax) to "_:a"; we talk about globally unique value, which is
> >> something special (let alone in RDFa term).
> >
> > The whole point of my post was to explain that we actually *don't* do
> > anything special in RDFa with respect for CURIEs. :) Thanks for
> > bringing this out though, because I realise now that the CURIE draft
> > is not up-to-date in this regard.
> >
> > As we know, CURIEs deals in mappings from one string to another. One
> > way of creating a mapping is by using @xmlns, but there are other
> > ways, and in fact, the CURIE spec is agnostic about how you get your
> > mappings.
> >
> > All the CURIE spec does is to say that if you have a mapping for
> > "foaf", then the following CURIE:
> >
> >   foaf:name
> >
> > would become a URI that is the concatenation of the value in the map
> > for "foaf", and the URI "name".
> >
> > Now, bnodes are actually nothing special in the world of URIs. All
> > they are is identifiers that are internally consistent, but not
> > available globally. So if a CURIE processor were to initialise it's
> > mapping tables with an entry for "_" which maps to
> > "bnode:url-of-the-document#", or any other algorithm you can think of
> > to get a unique identifier, then all is well. Then the CURIE:
> >
> >   _:a
> >
> > will map to:
> >
> >   bnode:url-of-the-document#a
> >
> > This means, by the way, that CURIEs will 'just work' in other
> > languages such as SPARQL.
> >
> > (I'm aware that the set of bnodes is supposed to be disjoint with the
> > set of URIs, but since a URI can be just about anything, this is nigh
> > on impossible to achieve in practice. So the next best thing is to
> > devise a class of URIs that are so unlikely to ever occur in real life
> > as to be for all intents and purpose, disjoint from the set of URIs.)
> >
> >
> >> So I do not think why we
> >> would not agree to add some special semantics to "_:" (at least in
> >> RFDa).
> >
> > Because, firstly, the idea of unique identifiers in CURIEs is not
> > unique to RDFa, and secondly, there are no special semantics for
> > CURIEs in RDFa.
> >
> >
> >> It does sound like a good idea, it fills a 'hole' in usage...
> >
> > I agree with you there. It's just that, as I tried to say before, the
> > syntax you are proposing already means something and is consistent.
> > It's not 'available', I'm afraid.
> >
> >
> >> Regardless of the @instanceof: at the moment, if we use "_:a" to
> >> generate a BNode, that portion of the code, as we all know, is not
> >> necessarily copy-pastable.
> >
> > Yes, I agree. It's exactly the same problem with @id in XML. But we
> > may not be able to fix this, in this version of RDFa, although I would
> > hope that nothing we do now will prevent us from fixing it in the
> > future.
> >
> >
> >> With the usage of "_:' it is.
> >
> > With the usage of some appropriate syntax, it is. ;) Not this one, though.
> >
> > Regards,
> >
> > Mark
> >
>
> --
>
>
> Ivan Herman, W3C Semantic Web Activity Lead
> Home: http://www.w3.org/People/Ivan/
> PGP Key: http://www.ivan-herman.net/pgpkey.html
> FOAF: http://www.ivan-herman.net/foaf.rdf
>
Received on Friday, 28 December 2007 19:58:38 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:15:19 GMT