Eduard Pascual wrote:
I would like to encourage this community to learn from what it has
already been done in the past, check what worked, and see why it
worked; then apply it to the problem at hand. If for presentation CSS
worked (and I really think it did; if somebody disagrees I invite you
to share your opinion), then let's see what made it work:
First of all, and essentially, CSS was independent to HTML, although
they were to be used together. I hope it is already clear by now that
we need to deal with semantics from outside of HTML. RDF is an example
of a mechanism that is independent to HTML.
Next, CSS had a simple syntax, despite the size of its vocabulary:
once you understand the "selector { property: value; }", you
understand most of CSS syntax. The RDF's XML format is quite verbose
and is not a good example of a simple syntax. But RDFa comes to the
rescue, providing an approach to simplify the syntax.
Last, but not least, CSS was usable with HTML because there where were
hooks between the two: the selector's semantics are based in HTML's
structure (and, by extension, any other markup language). CSS was,
indeed, intended to represent the presentation of markup documents.
RDFa provides some hook; but there is a gotcha: RDFa is not intended
to represent the semantics of a web document; but to embeed those
semantics within the document. RDF just represents (semantic)
relationships between concepts; and RDFa puts that representation
inside the document.
...
In summary, I think RDFa might work, and it wouldn't be a too bad
solution, but I don't think it is the best approach either.
I think you were on to something with the CSS-like approach. Ian has
stated earlier that class should be considered a generic categorisation
element rather than only a CSS hook. If so then this would also let us
hook metadata to classes. ie:
<metadata type="text/cascading-metadata">
.author {
species: human;
produces: books;
consumes: coffee;
}
.author .john_smith {
name: John Smith;
dob: 2000-01-01;
}
</metadata>
<style>
.author {
color: purple;
}
</style>
<h1>Authors</h1>
<ul class="author">
<li class="john_smith">John Smith</li>
<li class="jane_simmons">Jane Simmons</li>
</ul>
There is no reason why a range of XML metadata formats like text/rdf
couldn't be supported provided they are not used inline (like the
example above) but imported. ie:
<link rel="metadata" href="global.rdf" type="text/rdf">
Since this approach requires only one new tag <metadata> and the
metadata is separate from the structural elements this should resolve
some concerns. In addition since this proposal does not limit HTML to
one metadata language (though a default could be decided) so there is
more flexibility in the future to support currently unknown formats.
From the designers point of view there is less typing, since a single
class attribute can hook both style and meaning to the same structure
and the meanings can be reused. Using a public namespace would be a
simple matter of:
<link rel="metadata"
href="http://www.standards.org/metadata/media/movies.rdf" type="text/rdf">
If RDF or RDFa are considered too heavy to be a default language (and
they suffer from being impossible to embed inline or in <metadata>
blocks) then the "cascading metadata" approach above might be useful.
Since it can reuse existing CSS parsers, editors and behaviour
(selectors, cascading model) it should have a lower implementation
burden than XML+Namespaces.
Shannon