DC in XHTML2

0 views
Skip to first unread message

Misha Wolf

unread,
Jun 7, 2005, 1:04:06 PM6/7/05
to dc-ge...@jiscmail.ac.uk, www-rdf-...@w3.org, semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com

As some of you will know, the XHTML2 draft [1] introduces a
very interesting syntax for RDF, which many would consider to
be an improvement on the traditional RDF/XML syntax. No doubt,
many content authors will be seeking to add DC metadata to
their XHTML2 content using these new mechanisms.

The News Architecture Working Party of the International Press
Telecommunications Council (IPTC) is investigating the use of
XHTML2 for expressing DC and other metadata. A major problem
for us is the lack of support in the current XHTML2 draft (as
in RDF/XML) for the use of QNames to express terms in
controlled vocabularies (aka values of properties).

At the moment, the XHTML2 @content attribute takes PCDATA and
the @href attribute takes IRIs. There is no attribute
available for QNames.

We want to be able to use, eg, <dc:subject> with a QName as a
value (ie the object of the RDF statement). The reasons include
legibility and compactness. News items (and news headlines)
often carry numerous subject codes, hence the need for
compactness.

Is anyone else in the DC community looking at the use of DC in
XHTML2 and thinking along similar lines to us? We would be
very happy to work with others on this issue.

[1] http://www.w3.org/TR/xhtml2

Misha Wolf
Standards Manager, Reuters
Chair, News Metadata Framework WG, IPTC
Vice-Chair, News Architecture WP, IPTC




-----------------------------------------------------------------
Visit our Internet site at http://www.reuters.com

To find out more about Reuters Products and Services visit http://www.reuters.com/productinfo

Any views expressed in this message are those of the individual
sender, except where the sender specifically states them to be
the views of Reuters Ltd.


Shane McCarron

unread,
Jun 7, 2005, 2:02:13 PM6/7/05
to Misha Wolf, dc-ge...@jiscmail.ac.uk, www-rdf-...@w3.org, semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com

It is great that you are looking at XHTML 2 and its RDF support for
this. Silly question, but is there a reason that you can't just
interpret the value of @content as a QName in your article processors?
Or does that seem like a hack? And if it does seem like a hack, would
you like to see another attribute added that would mean "the value of
this property is this qname?" If so, do you have a suggested name?

Similarly, would something like <h property="dc:subject"
content="your:Qname">The actual subject</h> instead of adding a
dc:subject element to the markup language? or does that fly in the
face of compactness?
--
Shane P. McCarron Phone: +1 763 786-8160 x120
Managing Director Fax: +1 763 786-8180
ApTest Minnesota Inet: sh...@aptest.com


Lisa Seeman

unread,
Jun 7, 2005, 3:15:39 PM6/7/05
to Misha Wolf, dc-ge...@jiscmail.ac.uk, www-rdf-...@w3.org, semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com

I understand that there are two other ways to do this

1, Properties attribute - for example: If you have the author written
in a span in the top of a document, you can say that
<span property = "dc:creator">

2, I believe that you can add the link element now inside the body,
effectively creating the ability to add meta data to any section
All the best
Lisa Seeman

Misha Wolf

unread,
Jun 7, 2005, 5:35:56 PM6/7/05
to li...@ubaccess.com, dc-ge...@jiscmail.ac.uk, www-rdf-...@w3.org, semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com

Hi Lisa,

Indeed, XHTML2 lets us define any element or string to be, say,
"dc:creator" or "dc:subject". What it does *not* do is let us
specify that the value of dc:subject is, say, "foo:bar", where
"foo" identifies a vocabulary and "bar" a term in that
vocabulary.

Misha


-----Original Message-----
From: semantic-w...@w3.org [mailto:semantic-w...@w3.org]
On Behalf Of Lisa Seeman
Sent: 07 June 2005 20:16
To: Misha Wolf
Cc: dc-ge...@jiscmail.ac.uk; www-rdf-...@w3.org;
semant...@w3.org; www-...@w3.org; iptc-m...@yahoogroups.com
Subject: Re: DC in XHTML2


I understand that there are two other ways to do this

1, Properties attribute - for example: If you have the author written
in a span in the top of a document, you can say that
<span property = "dc:creator">

2, I believe that you can add the link element now inside the body,
effectively creating the ability to add meta data to any section
All the best
Lisa Seeman




Mark Birbeck

unread,
Jun 7, 2005, 6:16:05 PM6/7/05
to Misha Wolf, www-rdf-...@w3.org, semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com, dc-ge...@jiscmail.ac.uk

Hi Misha,

One way to achieve a more abbreviated mark-up, even if it is not the full solution of 'QNames in @href', is to use @xml:base. All @href values will be relative to this, and an RDF/A processor should honour changes of base URI through the mark-up. It will at least make your mark-up more compact.

That's not to say that we shouldn't try to find other solutions, too. In one of my early drafts of RDF/A I did actually have an additional attribute called @resource, which was a QName, and which sat alongside @href. See section 4.2 of RDF/XHTML, as it was then called:

  <http://www.formsplayer.com/notes/xhtml-meta-data-03.html>

There was some resistance to it, since some people rightly say that QNames are not URIs. But anyway, I'll take another look at it, since I certainly think that yours is a strong use case for something less that a full URI.

Regards,

Mark

PS Good to see you all at your AGM today, and even better to see that your requirements are being fed into the XHTML2 and RDF/A work!


Mark Birbeck
CEO
x-port.net Ltd.

e: Mark.B...@x-port.net
t: +44 (0) 20 7689 9232
w: http://www.formsPlayer.com/
b: http://internet-apps.blogspot.com/

Download our XForms processor from
http://www.formsPlayer.com/

> -----Original Message-----
> From: www-html...@w3.org
> [mailto:www-html...@w3.org] On Behalf Of Misha Wolf
> Sent: 07 June 2005 18:04
> To: dc-ge...@jiscmail.ac.uk
> Cc: www-rdf-...@w3.org; semant...@w3.org;
> www-...@w3.org; iptc-m...@yahoogroups.com

Phil Archer

unread,
Jun 8, 2005, 5:40:16 AM6/8/05
to semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com, dc-ge...@jiscmail.ac.uk

RE: DC in XHTML2Mark and all,

Can I offer another use case for being able to use Qnames as values of
properties.

I've been working with several others on ways to make it easy to apply an
RDF description to groups of resources rather than a single URI in a system
we call RDF Content Labels [1]. One application of this is encoding film
classifications.

If I understand the spec correctly, this is valid XHTML 2

<html xmlns="http://www.w3.org/2002/06/xhtml2/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:label="http://www.w3.org/2004/12/q/contentlabel">
<head>
<title>Movies on demand</title>
<link rel="label:hasDefaultClassification"
href="http://www.classificationboard.nl/age#all"
type="application/rdf+xml" />
<link rel="meta" about="#titanic"
href="http://www.classificationboard.nl/age#twelve"
type="application/rdf+xml" />
<link rel="meta" about="#usual"
href="http://www.classificationboard.nl/age#eighteen"
type="application/rdf+xml" />
</head>
<body>

<div id="teletubbies"> <!-- gets the default classification set in head
section -->
<span property="dc:title" class="title">Teletubbies The Movie</span>
<a href="teletubbies.mov>See the movie</a>
</div>

<div id="titanic">
<span property="dc:title" class="title">Titanic</span>
<a href="titanic.mov">See the movie</a>
</div>

<div id="usual">
<span property="dc:title" class="title">The Usual Suspects</span>
<a href="usual_suspects.mov">See the movie</a>
</div>

As Lisa pointed out, we can use Link/rel tags at the top if we want to give
a URI as a property value. But, support for Qnames would make this a lot
easier since, yes, it's more compact, and, no less important I'd say, it's
more natural to add the metadata to the thing you're writing as you do it
rather than having to go back and add the metadata to the head section as a
separate operation/thought process.

<html xmlns="http://www.w3.org/2002/06/xhtml2/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:label="http://www.w3.org/2004/12/q/contentlabel"
xmlns:age="http://www.classificationboard.nl/age#">
<head>
<title>Movies on demand</title>
<meta property="label:hasDefaultClassification" resource="age:all" />
</head>
<body>

<div id="teletubbies"> <!-- gets the default classification set in head
section -->
<span property="dc:title" class="title">Teletubbies The Movie</span>
<a href="teletubbies.mov>See the movie</a>
</div>

<div id="titanic" property="label:hasClassification" resource="age:twelve">
<span property="dc:title" class="title">Titanic</span>
<a href="titanic.mov">See the movie</a>
</div>

<div id="usual" property="label:hasClassification" resource="age:eighteen">
<span property="dc:title" class="title">The Usual Suspects</span>
<a href="usual_suspects.mov">See the movie</a>
</div>

[1] http://www.w3.org/2004/12/q/doc/rdf-contentlabels.html

Phil Archer

Laurens Holst

unread,
Jun 8, 2005, 8:31:21 AM6/8/05
to Phil Archer, semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com, dc-ge...@jiscmail.ac.uk

Phil Archer wrote:

> As Lisa pointed out, we can use Link/rel tags at the top if we want to
> give a URI as a property value. But, support for Qnames would make
> this a lot easier since, yes, it's more compact, and, no less
> important I'd say, it's more natural to add the metadata to the thing
> you're writing as you do it rather than having to go back and add the
> metadata to the head section as a separate operation/thought process.

+1 from me :).

Note that instead of QNames you can currently already use entities in a
somewhat similar approach:

<!DOCTYPE html [
<!ENTITY age "http://www.classificationboard.nl/age#" >
]>
<link rel="meta" about="#titanic" href="&age;twelve"
type="application/rdf+xml" />
<link rel="meta" about="#usual" href="&age;age#eighteen"
type="application/rdf+xml" />

But, entities require a DTD, and DTDs are ugly and have a weird syntax.
I entirely agree that QNames would be much much nicer to have (in RDF
itself as well, in fact), and that specifying things like this
separately using links in the head is counter-intuitive... It would be
great to be able to just have an XHTML document and add some properties
here and there and bam, it’s ‘semantic’.


~Grauw

--
Ushiko-san! Kimi wa doushite, Ushiko-san!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Laurens Holst, student, university of Utrecht, the Netherlands.
Website: www.grauw.nl. Backbase employee; www.backbase.com.


Johannes Koch

unread,
Jun 8, 2005, 8:39:35 AM6/8/05
to www-...@w3.org, semant...@w3.org, iptc-m...@yahoogroups.com, dc-ge...@jiscmail.ac.uk

Phil Archer wrote:

> <div id="titanic" property="label:hasClassification" resource="age:twelve">
> <span property="dc:title" class="title">Titanic</span>
> <a href="titanic.mov">See the movie</a>
> </div>

I think this approach is too limited, as it only permits one tripel per
element. What do you do when you want more? Wrap the div in another div?

<div id="titanic" property="label:hasClassification" resource="age:twelve">
<div property="foo:duration" resource="bar:105">
<span property="dc:title" class="title">Titanic</span>
<a href="titanic.mov">See the movie</a>
</div>
</div>

No no
--
Johannes Koch
In te domine speravi; non confundar in aeternum.
(Te Deum, 4th cent.)

Phil Archer

unread,
Jun 8, 2005, 9:14:03 AM6/8/05
to Johannes Koch, www-...@w3.org, semant...@w3.org

I agree, it's very limited if you have to write a new span or div for every
triple, but, if we can reference an RDF resource, that resource can provide
as much metadata as you want. It can be done in many ways but RDF Content
Labels would do it like this:

<div id="titanic" property="label:hasLabel"
resource="http://example.org/labels.rdf#label_1">
<span property="dc:title" class="title">Titanic</span>
<a href="titanic.mov">See the movie</a>
</div>

Follow that resource link and you get to:

<label:ContentLabel rdf:ID="label_1">
<label:hasClassification rdf:resource="age:twelve" />
<ex:thing>value</ex:thing>
<ex:thing2>value</ex:thing2>
...
</label:ContentLabel>

My use case really just needs support for a resource attribute in XHTML2 but
support within that for QNames would make it more compact which is where
Misha started with all this.

Phil.


----- Original Message -----
From: "Johannes Koch" <ko...@w3development.de>
To: <www-...@w3.org>
Cc: <semant...@w3.org>; <iptc-m...@yahoogroups.com>;
<dc-ge...@jiscmail.ac.uk>
Sent: Wednesday, June 08, 2005 1:39 PM
Subject: Re: DC in XHTML2


>

Sjoerd Visscher

unread,
Jun 8, 2005, 2:27:43 PM6/8/05
to Johannes Koch, www-...@w3.org, semant...@w3.org, iptc-m...@yahoogroups.com, dc-ge...@jiscmail.ac.uk

Johannes Koch wrote:
>
> Phil Archer wrote:
>
>> <div id="titanic" property="label:hasClassification"
>> resource="age:twelve">
>> <span property="dc:title" class="title">Titanic</span>
>> <a href="titanic.mov">See the movie</a>
>> </div>
>
>
> I think this approach is too limited, as it only permits one tripel per
> element. What do you do when you want more? Wrap the div in another div?
>
> <div id="titanic" property="label:hasClassification" resource="age:twelve">
> <div property="foo:duration" resource="bar:105">
> <span property="dc:title" class="title">Titanic</span>
> <a href="titanic.mov">See the movie</a>
> </div>
> </div>
>
> No no

How about using N3? For example:

<div
id="titanic"
properties="label:hasClassification age:twelve; foo:duration bar:015">
<span property="dc:title" class="title">Titanic</span>
<a href="titanic.mov">See the movie</a>
</div>

The syntax would be that of N3, starting at rule "propertylist":
http://www.w3.org/2000/10/swap/grammar/n3-report.html#propertylist

--
Sjoerd Visscher
http://w3future.com/weblog/

Al Gilman

unread,
Jun 8, 2005, 9:58:48 AM6/8/05
to Misha Wolf, dc-ge...@jiscmail.ac.uk, www-rdf-...@w3.org, semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com

At 6:04 PM +0100 6/7/05, Misha Wolf wrote:

>Is anyone else in the DC community looking at the use of DC in
>XHTML2 and thinking along similar lines to us? We would be
>very happy to work with others on this issue.

It sounds as though you could use @property with the same
sort of intermediate dictionary that we think we can do for
extensions to the repertory of values for @role.

Here (If I have it straight) we will have a role dictionary (separate
URI from the XHTML 2.0 namespace or the current document instance)
which has a named entry which gathers a collection of assertions and
then a qualified name referring to this named entry in the dictionary
will assert those assertions about the element bearing that QName
as a value of @role.

In the process of developing this we will definitely need assistance
from SW [Best Practices?] and would be delighted to compare
notes with "the people who brought you NewsML."

Keep in touch with Lisa or post progress updates or questions
to <wai-...@w3.org> for public discussion and <w3c-w...@w3.org>
if W3C member-confidential for any reason.

Al

Phil Archer

unread,
Jun 9, 2005, 5:10:32 AM6/9/05
to Sjoerd Visscher, Johannes Koch, www-...@w3.org, semant...@w3.org

Sjoerd - using N3 looks like a very good solution to me. I'll be interested
to see what Mark Birbeck and others think of it.

Phil.

----- Original Message -----
From: "Sjoerd Visscher" <sjo...@w3future.com>
To: "Johannes Koch" <ko...@w3development.de>
Cc: <www-...@w3.org>; <semant...@w3.org>;
<iptc-m...@yahoogroups.com>; <dc-ge...@jiscmail.ac.uk>
Sent: Wednesday, June 08, 2005 7:27 PM
Subject: Re: DC in XHTML2


>

Mark Birbeck

unread,
Jun 9, 2005, 10:01:59 AM6/9/05
to Al Gilman, www-rdf-...@w3.org, semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com, Misha Wolf, dc-ge...@jiscmail.ac.uk

Al,

>From XHTML 2's standpoint, all you need is the URI for your roles. If that's
backed up with some RDFS/OWL statements that tell you more about it, that's
a great bonus, and it's a consequence of XHTML 2 getting it's relationship
to RDF sorted out. But it is still external to XHTML 2.

Misha and the IPTC's interest though is in putting subject codes in the form
of QNames into the object part of the statement, not the predicate part. So
whereas we can easily do this:

<meta property="dc:subject">Chess</meta>

we unfortunately have to do this:

<link rel="dc:subject" href="http://codes.com#Chess" />

In other words you have URIs in one place and QNames in another.

(Note that if we're really committed to using DC in XHTML 2, then we don't
need to invent iptc:subject. ;) )


FINDING A SOLUTION
I don't think the solution is particularly difficult, but those interested
in the discussion should be aware that it is also not completely
straightforward.

For example, the most likely solution would just involve adding a @resource
attribute (or some other name) to be used with @property:

<meta property="dc:subject" resource="codes:Chess" />

It could be used with @rel/@rev instead, but if we keep it with @property
then we have effectively compartmentalised the attributes that concern
'real' linking from those that are about metadata.

However, the moment we introduce this, we get the @about attribute shouting
and waving and saying "I want to be a QName, too". This is required, because
otherwise you can't make statements about the objects you have used in your
other statements, unless you once again use two different syntaxes.

We therefore additionally need to introduce a QName attribute for the
subject position. Since there is no obvious name for this attribute, perhaps
we should reconsider @resource, and call all of the QName versions of our
attributes by the same name as their corresponding attribute but with a 'q'
prefix. This would give us @qabout for the subject, and @qhref for the
object.

But then to be consistent, @rel, @rev, @role and @property should really be
called @qrel, @qrev, @qrole and @qproperty. @rel, @rev, @role and @property
could be retained, but they must now contain URIs instead of QNames. We
therefore end up with:

Subject: qabout about

Predicate: qrel rel
qrev rev
qproperty property

Object: qhref href
qrole role

(Note that @role is a special type of object identifier where the predicate
is always <http://www.w3.org/2004/06/xhtml2/role>.)

I don't think that using two attributes to represent the same
concept--differing only by syntax--is great.


CONCLUSION
Personally I would prefer to see a syntax for URIs that copes with both
QNames and URIs in the same attribute--it's what I'd hoped when I first
started work on RDF/A, and is in effect what N3 does. Then it ceases to be
the responsibility of the mark-up, and moves to the realm of the attribute
processing.

Regards,

Mark


Mark Birbeck
CEO
x-port.net Ltd.

e: Mark.B...@x-port.net
t: +44 (0) 20 7689 9232
w: http://www.formsPlayer.com/
b: http://internet-apps.blogspot.com/

Download our XForms processor from
http://www.formsPlayer.com/


> -----Original Message-----
> From: www-html...@w3.org
> [mailto:www-html...@w3.org] On Behalf Of Al Gilman
> Sent: 08 June 2005 14:59
> To: Misha Wolf; dc-ge...@jiscmail.ac.uk
> Cc: www-rdf-...@w3.org; semant...@w3.org;
> www-...@w3.org; iptc-m...@yahoogroups.com
> Subject: Re: DC in XHTML2
>
>

Al Gilman

unread,
Jun 9, 2005, 2:13:28 PM6/9/05
to Mark Birbeck, www-rdf-...@w3.org, semant...@w3.org, www-...@w3.org, iptc-m...@yahoogroups.com, Misha Wolf, dc-ge...@jiscmail.ac.uk

At 3:01 PM +0100 6/9/05, Mark Birbeck wrote:
>Al,
>
>>From XHTML 2's standpoint, all you need is the URI for your roles. If that's
>backed up with some RDFS/OWL statements that tell you more about it, that's
>a great bonus, and it's a consequence of XHTML 2 getting it's relationship
>to RDF sorted out. But it is still external to XHTML 2.
>
>Misha and the IPTC's interest though is in putting subject codes in the form
>of QNames into the object part of the statement, not the predicate part.

That is not how I read the question. As I read the question, that is
not what they want to do; rather that is *where they found a
roadblock in the path to a solution that they were going down.* I
don't think you did the "if that's not the answer, what's the
question?" step to back off to the real requirement.

What I believe they want is a compact notation by which they can
associate content blocks with well-known (much re-used) subject
categories.

So I claim that creating a short QName notation that (sufficiently
formally and authoritatively) expands to "has 'subject' (per Dublin
Core) of 'sports' (per IPTC)" is solving precisely the problem that
they face. And if we were to make 'role' M-ary rather than unary,
this would flow neatly in there.

And even if we don't if fits nicely in 'property' even if each subject
category needs a separate 'property' declaration.

If you wanted to make it mnemonic, it could read

property="iptc:sportsSubject"

where the dc: is hidden because all IPTC subject literals are
designed and documented to conform to the Dublin Core notion of
'subject.'

... or depending on the range of tokens in the IPTC vocabulary,
it could be flattened to

property="iptc:sports"

... because 'sports' was diagnostic as to what DC field was being
populated.

The downside to the latter form is that one *has to* process the
namespace document(s) to formally know that you know a value of
dc:subject when you know the property iptc:sports.

But that's always going to be a tradeoff. Local domains use
local-code names for things that are expressions in the world at
large.

Personally, I think the HTML WG made a mistake in failing to solve
the 'role' requirement with QNames in 'class.'

We are never going to get the preponderance of the Web to be
accessible content until we train people to use semantic 'class'
tokens and style selectors. Not 1:1 class tokens and style rules.

http://tantek.com/log/2004/07.html#classmeaningnotshow

So since we have to fight that war to reclaim 'class' anyway,
why not use it for what it's for?

class="... iptc:sports ... " is the direct solution to Misha's problem.

Al
Reply all
Reply to author
Forward
0 new messages