Thursday, November 03, 2005

Toward a tagging standard

How come we still don't have a standard for associating tags with content?

We've got delicious and friends tagging entire web pages, and Technorati tagging blog posts. Flickr tags pictures. But how different are they really from each other in this aspect? Do we really need a propriety way to express the association of a piece of content with tags?

How's about something along the following lines:

Tag a piece of content:

<tagstd:tagged tagstd:scope="children" xmlns:tagstd="">
<taglist xmlns="">
<p>This is a long blurb about our favorite topics:</p>
<ul><li>tagging</li><li>taxonomy</li><li>web 2.0</li></ul>

(scope="children" indicates that the tagged content is the children element of the tagged tag).

Tag a link (in fact, tag the resource that the link is pointing to):

<tagstd:tagged tagstd:scope="resource" xmlns:tagstd="">
<taglist xmlns="">
<a href="">Joho the Blog</a>

(scope="resource" indicates that the tagged content is the resouce expressed by the first non-comment element, which is a child of the tagged element.

What do you think? Good? Bad? Reinventing the wheel?

Let me know.

Technorati : , , , , , , , , , , : , , , , , , , , , ,


Eran Sandler said...

The question is how to itegrate the tagging in a way that will enable everyone (browser/search engine/whatever) to relate something to that tag.

There is a need to somehow integrate in a GOOD way HTML and tagging.

I have 2 ideas on how to do it:
1) Have an XML island that is recognizable by everyone is the XML island of tagging. Inside of it we will be able to relate piece of the HTML document to tags like links (put the link address and tags on it).
You can do that on a specific paragraph (if we had an ability to put an id on a paragraph)

2) Enhance HTML (or make sure the newer HTML standard is enhancable).

The pro of method #1 that I suggest is that you don't need to change/extend HTML for that.

Method #2 will make things a bit more connected so we will have something like a "tag" attribute on the "A" tag for links and we will be able to put a reference to another place in the document that has a more elaborate XML that describes the tag or, instead of that, just put the tags in the "tag" attribute.

This will enable browser to relate to that as well as search engines.

Hendrik said...

Yaniv, I like how you drafted an XML application for tagging. I think we will see that (or at least something like that) in the future.

Concerning Eran's comment: You are right when you ask how this could be integrated with whatever. But I think tagging will never make it into (X)HTML. The HTML standard is more and more focusing on its core, and everything else is "sourced out" into other standards (e.g. CSS, MathML, SVG etc.). And this way is the right way! You should not (and nobody will) go a way into the opposite direction. Apart from that, tagging is not only interesting for HTML content. I could also use it in my XML based bibliography file (as one example of many). Thus an open XML standard is needed.

YanivG said...

Eran, the problem with #1 is that you need to be able to refer to the content that you'd like to tag. This is possible if the content was marked with a "A NAME" tag, but this is not always possible. It is however one of the methods I suggested - a variant on the "tagging resource".

I guess using xpointer as the resource href could also enable marking a "region" as tagged, not just a specific location in the document.

As Hendrik noted, I think that #2 is not feasible and not desirable. HTML is designed for extensability (browsers simply ignore tags that they don't understand), and XHTML even moreo so.

Kevin Marks said...

Have a look at xFolk as a way to apply the rel="tag" format to external URLs

Eran Sandler said...

Hendrik's comment, saying "Enhancing HTML" doesn't necessarily exclude using a different spec.

As you pointed out, CSS "extended" in a manner of speaking.

I wonder if the new XML based Microsoft Office formats and the OpenOffice documents formats should also include the standard "tagging" format that will eventually evolve (and I'm sure there will be more than one ;-) )