Re: ISSUE-1: Status of RDFa Profiles

Hi Ivan,

I think we might be getting to some pretty fundamental discussions
here, about the future of the semantic web and who our audience should
be. (Which is good. :))


> On 2010-3-12 11:46 , Mark Birbeck wrote:
>> Hi Ben,
>>
> [skip]
>>
>> In fact, I believe that we would have failed if we have not (a)
>> provided them with a way to write things simply, like @rel="knows",
>> and (b) ensured that they *never* need to use another prefix again
>> (unless they want to).
>>
>
> While I full agree with (a), I actually disagree with (b).
>
> My feeling is that we are forgetting about one of the major advantages
> of RDFa over, say, microdata (and whether we like it or not, I consider
> microdata as being here to say). And that is that RDFa scales gracefully
> over vocabularies while microdata (or microformats) do not. And that is
> due to the prefix mechanism.

RDFa scales because it took into account URIs -- the building-block of
the semantic web.

How you reflect those URIs is another thing entirely. You could use a
single token ("name"), integers ("7344589"), or a prefix mechanism
("foaf:name"); whatever you use, as long as it maps to a URI, it
scales.

I realise people might say "GRDDL", but the problem is that
Microformats were not designed to map -- that was a layer of
interpretation applied by others. This means that when parsing you can
never be certain of the author's intent, so you could never be
definitive in your mapping to URIs.

And I realise you might also say, that


PREFIXES

Prefixes are a way of saying 'here is a vocabulary and you can use any
term from it, simply by appending the term to a base URI'.

However, it has become clear to me in my ontology work (and I'm not
alone in this), that what you invariably end up doing is bringing
together a collection of terms for a particular purpose -- terms that
come from different vocabularies.

I'll give you two examples, one from my own work, and one being
Google's vocabularies.


ARGOTS

A year or so ago I was commissioned to create an ontology for
government consultations. After looking at it for a while, I concluded
that a consultation is effectively a foaf:Document, with a dc:type of
'consultation':

  _:a a foaf:Document .
  _:a dc:type xyz:Consultation .

I was off and running, and so far I had only had to invent one term --
xyz:Consultation.

However, whilst I hadn't had to invent many terms, I did need some way
to say to people that they should use a combination of
'foaf:Document", 'dc:type' and 'xyz:Consultation'. I came up with the
idea of an 'argot', which is a combination of terms from various
vocabularies, and defined the ontology accordingly [1]. (You'll see
that whilst there are 15 or so terms, only one of them was created by
me -- the rest come from FOAF and Dublin Core.)

Interestingly enough, I then heard that Dublin Core had been thinking
along the same lines, creating something they called 'application
profiles' [2].


GOOGLE

Now, let's pretend to be Google. We want to create an easy way for
people to mark up documents that contain information about products
for sale -- the same as the consultation example.

However, they don't want people to have to start their documents with
a whole bunch of namespaces declarations, so they decide not to simply
use 'as is' the various vocabularies that are around, and instead
create all of the terms they need in their own, single, namespace.

Rightly or wrongly (recall that they got a lot of flack for their
decision), they are trying to make it easy for authors, but we now
have a tension between language design and ease of authoring.

I believe that modern vocabulary design should really involve the
creation of argots, rather than the creation of brand new
vocabularies, and ease of authoring requires a single namespace.

So to combine the two (an argot that uses terms from many
vocabularies, and simple authoring) we simply remove the prefixes and
go to tokens.


> Ie, I would not go out of my way to hide
> this or to relegate it to some sort of RDF geek/specialist corner of the
> RDFa community.

I'm a little surprised by this...you don't think that the RDF
community is under threat, do you? :)

All we're talking about here is prioritising the end-user.

The key driver for RDFa has always been to make it easy for authors to
add semantics to their documents in a way that the RDF community can
benefit from. We shouldn't lose sight of that. The RDF community is
the beneficiary of RDFa, but it is not the target audience of RDFa.

True, we can also argue that RDFa is more convenient than RDF/XML,
alongside many other benefits, and so is of interest directly to the
RDF community. But the key thing remains that if we make it painless
to publish RDF, then we can get the rest of the world to publish
semantics, and we can then do clever stuff with the output.


> As I said, the keywords mechanism is fine and essential. Of course, CC
> can provide a profile document if they wish so, and people will use it;
> it is not very complicated because the CC vocabulary is relatively
> small. For FOAF I begin to doubt; and if I look at the bibliography
> ontology, or the music ontology, I just do not believe that it is
> realistic to expect that anybody would come up with a keyword vocabulary
> for those, ie, a vocabulary file that would list each individual terms
> in those URIs to avoid using bibo: or mo: or foaf:.

You've lost me...how is creating the token "name" any more difficult
to come up with than "foaf:name"?

You might be saying that we can't be sure that "name" doesn't exist in
two different profiles, but that's just a case of us agreeing on how
to decide which wins. Microformats never had such a mechanism, which
is what made it difficult. I've already proposed a few techniques, and
no doubt others will suggest further ones.

But this kind of namespacing has been working in Java and C++ for
years; you import a library, and then you can use it unprefixed
throughout your code. If two terms conflict, you have to sort it out.


> It is also
> unrealistic to expect an individual author to take the time and energy
> to form a separate vocabulary file for, say, the subset of bibo he/she
> would use locally.

This is a crucial point, I think.

First, I don't know why you think that prefixes would be removed in my
proposal; tokens and prefixes co-exist. So they can still use "bibo:"
if they want.

But more importantly, people don't mark-up documents in a vacuum;
"Individual authors" in the sense of the HTML author, will almost
certainly use the profile that most suits the work they are trying to
do. If they're concerned to get their page indexed by Google, then
they'll probably use Google's 'profile', when such a thing exists. If
they work for a library or are a scientist, then they will probably
use a profile that's been agreed at some international conference or
other. (The application profiles idea from Dublin Core [2] is also
relevant here.)

Any author that starts to form their own vocabulary is in my view
moving into the more techie end of the spectrum, rather than being
somehow 'everyday', and different criteria will apply.


> On the contrary, we should loudly encourage users to
> use a prefix mechanism when and if they need it...

I really have to disagree strongly!

:)

The mechanism is there, for people who need it -- we don't need to be
loud about it. What we should be loud about is that "everyday authors"
can now write documents without having to use namespace prefixes, and
Google can publish vocabularies that use standard terms, but still
under their own control, without incurring the wrath of the 'RDF
community'.


> ... and we should make it
> easier than using just a load of @xmlns attributes. Ie, to paraphrase
> you I think we will also fail if we have not provided authors with a way
> to write prefixes simply.

You mean 'declare prefix-mappings simply', of course -- since the
writing of prefixes doesn't change.

We would be kidding ourselves if we thought that there would be
dancing in the streets when we add a way to declare a bunch of
prefixes. :)

We should be more ambitious.


> And, I am sorry Mark to disagree with you again, I maintain that a
> separate prefix and keyword mechanism are simpler concepts to grasp for
> non-experts than mixing the two together...

So to recap on why I disagree with you disagreeing with me disagreeing with you:

1. For those who have never used namespaces before -- which should be
the bulk of our audience now -- telling them that they can use a token
on its own ("blah") or a token followed by a suffix ("blah:foo") is so
simple I'm shocked that you think people won't get it. (Ok...not
shocked...that was for effect...mildly surprised.)

2. Given that people will be using tokens in a context, they will
invariably use the token collection (profile) that is most useful to
their task in hand. Since profiles can include other profiles, then
it's quite easy for profile creators to get the terms structured
properly.

Regards,

Mark

[1] <http://code.google.com/p/argot-hub/wiki/ArgotConsultation>
[2] <http://efoundations.typepad.com/efoundations/2009/11/coi-guidance-on-use-of-rdfa.html>

--
Mark Birbeck, webBackplane

mark.birbeck@webBackplane.com

http://webBackplane.com/mark-birbeck

webBackplane is a trading name of Backplane Ltd. (company number
05972288, registered office: 2nd Floor, 69/85 Tabernacle Street,
London, EC2A 4RR)

Received on Sunday, 14 March 2010 11:20:14 UTC