Re: Proposal for ISSUE-11: Default prefix declarations

Hi Manu,

The more I think about it, the more I don't like this idea...sorry. :)

However, sticking with the discussion in its own terms for now, can I
suggest that we discuss this as a default profile, rather than a
default set of URI mappings? (I realise that this somewhat depends on
the @profile proposal, but I think that's reasonable, at least whilst
we're still in the design phase.)

The effect of coming at it like this would be to breaking the default
URI mapping question into two parts:

The first would be that we create a profile that contains the token
mappings that you are talking about, such as DC, FOAF, and so on --
call it 'profile X'. As you point out, the exact list will be the
subject of much discussion. :)

The second step would be to specify that "the default profile for RDFa
1.1 is 'profile X'".

At the very least this will make it easier to discuss this issue,
since we will then have a name for this collection of URI mappings --
a profile.

It would also make it easier to manage, since in the future we might
simply say that the default profile is now 'profile Y', and instead of
listing all of the mappings that have changed (this version of DC,
that version of FOAF, the addition of SIOC, etc.), we'd simply refer
to the new profile.

This management question may be important; by putting all defaults
into a profile it's also easier to switch them off in one go if we
want to, because all you have to do is to define a mechanism for
either turning off the default profile, or replacing it with another.

For example, if some host language wants to define a different set of
mappings and remove ours, it would be very difficult to do so with the
current proposal. However, if the host language authors were to simply
say that the default profile for their language is 'profile Z', then
the job is done -- they get their default mappings, and lose ours.

Also, what if someone invents a URI scheme of 'dc'? In the current
proposal there is no way to turn that off -- we can override it, and
use a different URI for the token, but we can't turn it off so that it
can be used in a URI. (Well, you could add @xmlns:dc="dc" to turn it
off, but it's a little flakey.)

Well, if we deal in profiles rather than URI mappings, we could say
that the default profile is only used if no @profile value is set.

I'll end by saying that this last point is why I don't like the idea
of default mappings -- they essentially convert genuine URIs into
CURIEs, regardless of the authors intentions, and I think we're
storing up trouble. I also think it's rarely going to be necessary
anyway, because my guess is that people will probably use @profile
properly, since it will save them having to enter so many token
declarations.

(I think the key to getting people to use @profile properly will be to
have profiles that contain lots of terms, rather than the author
having to list many profile URIs. That way it will become part of
their boiler-plate code.)

Regards,

Mark

On Mon, Mar 1, 2010 at 3:51 AM, Manu Sporny <msporny@digitalbazaar.com> wrote:
> One of the criticisms of RDFa 1.0 is that certain snippets may fail
> under cut and paste scenarios. This criticism comes from two directions:
>
> 1. It has been asserted that the xmlns: syntax for prefix declaration
>   is confusing and that authors may not use it correctly.
> 2. It has been asserted that authors may haphazardly copy-and-paste
>   popular RDFa markup such as SIOC, FOAF or Dublin Core terms.
>
> So, for example, an author may take this:
>
> <div xmlns:dc="http://purl.org/dc/elements/1.1/">
>   ...
>   <div about="/alice/posts/trouble_with_bob">
>      <h2 property="dc:title">The trouble with Bob</h2>
>      <h3 property="dc:creator">Alice</h3>
>      ...
>   </div>
>
> and copy-and-paste just this part into their document:
>
>   <div about="/alice/posts/trouble_with_bob">
>      <h2 property="dc:title">The trouble with Bob</h2>
>      <h3 property="dc:creator">Alice</h3>
>      ...
>   </div>
>
> This copy-paste error in RDFa 1.0 would result in no triples being
> generated because the "dc:" prefix is undefined. The author forgot to
> copy the xmlns:dc="..." declaration.
>
> We could address the most common markup errors by defining a list of
> default URI mappings, for example:
>
> """
> The list of default URI mappings is:
>
>   rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
>   rdfs: http://www.w3.org/2000/01/rdf-schema#
>   dc: http://purl.org/dc/terms/
>   foaf: http://xmlns.com/foaf/0.1/
> """
>
> We would then modify the initialization of the RDFa Processor in Section
> 5.5: Sequence[1] from this:
>
> """
>   the list of URI mappings is empty;
> """
>
> to this:
>
> """
>   this list of URI mappings is set to the list of default URI mappings;
> """
>
> The default list of URI mappings can be overwritten during operation of
> the processing rules. So, if the author re-defines the "dc" prefix in
> the current context to another value, the new value would be used to
> generate triples in the current context.
>
> Note that this proposal does not attempt to determine the ideal list of
> default URI mappings. That would be best accomplished by using the "top
> N list of most commonly requested vocabularies" on prefix.cc[2], getting
> prefix usage data from Google or Yahoo, or using another data-driven
> approach that can be done at a later time. Preferably, we would wait
> until just before Last Call to finalize the list of default URI mappings.
>
> Also note that another benefit of this proposal is that the author will
> not need to declare prefix mappings using xmlns: for the most commonly
> used RDFa prefixes.
>
> -- manu
>
> [1] http://htmlwg.mn.aptest.com/rdfawg/rdfa-core/#sequence
> [2] http://prefix.cc/
>
> --
> Manu Sporny (skype: msporny, twitter: manusporny)
> President/CEO - Digital Bazaar, Inc.
> blog: PaySwarming Goes Open Source
> http://blog.digitalbazaar.com/2010/02/01/bitmunk-payswarming/
>
>

Received on Wednesday, 3 March 2010 17:47:21 UTC