[whatwg] RDFa is to structured data, like canvas is to bitmap and SVG is to vector
Shelley Powers
shelleyp at burningbird.net
Sat Jan 17 08:55:01 PST 2009
The debate about RDFa highlights a disconnect in the decision making
related to HTML5.
The purpose behind RDFa is to provide a way to embed complex information
into a web document, in such a way that a machine can extract this
information and combine it with other data extracted from other web
pages. It is not a way to document private data, or data that is meant
to be used by some JavaScript-based application. The sole purpose of the
data is for external extraction and combination.
An earlier email between Martin Atkins and Ian Hickson had the following:
"On Sun, 11 Jan 2009, Martin Atkins wrote:
>
> One problem this can solve is that an agent can, given a URL that
> represents a person, extract some basic profile information such as the
> person's name along with references to other people that person knows.
> This can further be applied to allow a user who provides his own URL
> (for example, by signing in via OpenID) to bootstrap his account from
> existing published data rather than having to re-enter it.
>
> So, to distill that into a list of requirements:
>
> - Allow software agents to extract profile information for a person
as often
> exposed on social networking sites from a page that "represents" that
person.
>
> - Allow software agents to determine who a person lists as their friends
> given a page that "represents" that person.
>
> - Allow the above to be encoded without duplicating the data in both
> machine-readable and human-readable forms.
>
> Is this the sort of thing you're looking for, Ian?
Yes, the above is perfect. (I cut out the bits that weren't really "the
problem" from the quote above -- the above is what I'm looking for.)
The most critical part is "allow a user who provides his own URL to
bootstrap his account from existing published data rather than having to
re-enter it". The one thing I would add would be a scenario that one would
like to be able to play out, so that we can see if our solution would
enable that scenario.
For example:
"I have an account on social networking site A. I go to a new social
networking site B. I want to be able to automatically add all my
friends from site A to site B."
There are presumably other requirements, e.g. "site B must not ask the
user for the user's credentials for site A" (since that would train people
to be susceptible to phishing attacks). Also, "site A must not publish the
data in a manner that allows unrelated users to obtain privacy-sensitive
data about the user", for example we don't want to let other users
determine relationships that the user has intentionally kept secret [1].
It's important that we have these scenarios so that we can check if the
solutions we consider are actually able to solve these problems, these
scenarios, within the constraints and requirements we have."
It would seem that Ian agrees with a need to both a) provide a way to
document complex information in a consistent, machine readable form and
that b) the purpose of this data is for external consumption, rather
than internal use. Where the disconnect comes in is he believes that
RDF, and the web page serialization technique, RDFa, are only one of a
set of possible solutions.
Yet at the same time, he references how the MathML and SVG people
provide sufficient use cases to justify the inclusion of both of these
into HTML5. But what is MathML. What does it solve? A way to include
mathematical formula into a document in a formatted manner. What is SVG?
A way to embed vector graphics into a web page, in such a way that the
individual elements described by the graphics can become part of the
overall DOM.
So, why accept that we have to use MathML in order to solve the problems
of formatting mathematical formula? Why not start from scratch, and
devise a new approach?
So, why accept that we have to use SVG in order to solve the problems of
vector graphics? Why not start from scratch, and devise a new approach?
Come to think of it, I think we should also question the use of the
canvas element. After all, if the problem set is that we need the
ability to animate graphics in a web page using a non-proprietary
technology, then wouldn't something like SVG work for this purpose?
Isn't the canvas element redundant? But then, perhaps we should start
over from the beginning and just create a new graphics capability from
scratch, and reject both canvas and SVG.
We don't reject MathML, though. Neither do we reject SVG or canvas. Or
any other of a number of entities being included in HTML5, including
SQL. Why? Because they have a history of use, extensive documentation as
to purpose and behavior, and there are a considerable number of
implementations that support the specifications. It doesn't make sense
to start from scratch. It makes more sense to make use of what already
works.
I have to ask, then: why do we isolate RDF, and RDFa for special
handling? If we can accept that SQL is a natural database query
mechanism, and SVG is a natural for vector graphics, and the canvas
element is the proper choice for a script-enabled bitmaps, and
MathML...well, you get the picture-if we can accept that these mature,
well documented representatives of each of their genres as the de facto
implementation, enough to incorporate each into HTML5, why then do we
demand that RDF and its web page serialization technique, RDFa, must
"prove" themselves, when we don't demand the same from other external
objects and specifications?
To do so is not consistent. To continue to do so demonstrates that
perhaps other issues are at play in regards to RDF/RDFa.
Martin provided a use case that Ian acknowledges is justified. Ipso
facto, we do not need to continue providing use cases for this type of
requirement. We have established that the requirement/need/desire to
incorporate data into a web page that is consistently machine readable,
which can be consistently extracted, and consistently combined with data
from other documents using automated processes is a legitimate need. RDF
was designed specifically for this purpose, is a mature specification,
with extensive documentation, and one can find many different
implementations of its use. The use of RDF for FOAF is just one of many
uses, RSS 1.0 was another, and a version of RDF embedded within photos,
CC licensing--these are all based on the same model.
In other words, if we accept that SVG is the de facto implementation of
vector graphics (as compared to something such as, say, VML), and we
accept the same for MathML, the canvas element, SQL, and so on, to not
accept RDF as the de facto implementation for the purpose behind which
it was designed, is to single out RDF/RDFa for "special handling" within
the group. To demand more from it, then has been demanded from any other
element included in HTML5.
In particular, as has been documented elsewhere, very little is needed
to support RDFa within HTML5. The requirements are much less than those
for the canvas element, SVG, MathML, and even SQL. So the task, itself,
is not daunting. Not as daunting as, say, the alt attribute.
This then returns us to my earlier supposition: To not support RDF/RDFa
as the de facto implementation of complex, structured data is not
consistent. To continue to do so demonstrates that perhaps other issues
are at play in regards to RDF/RDFa. Such inconsistencies are not in the
best interest when developing a new specification meant for widespread
use on the web. If, as I believe, the inconsistency reflects an
underlying bias against the concept behind RDF, which is that true web
semantics is based on structured data, not natural language processing,
or not exclusively based on natural language processing, then I believe
it's important to highlight such bias, and deal with it accordingly.
Shelley
More information about the whatwg
mailing list