From Microformats Wiki
xmdp-brainstorming /
Jump to navigation Jump to search

XMDP Brainstorming


Add your name here if you make significant contributions to this page and wish to take responsibility for them.


Tantek Çelik developed XMDP to define extensions to XHTML including rel values, class names, and <meta name> properties and values. Per the XMDP spec, a link to a microformat's XMDP in the profile attribute of head element indicates that that microformat's vocabulary is formally defined in the document. A parser could read the allowed attribute values from the linked XMDP and thus know explicitly which microformats may be in use, and which class names are meant to convey which meanings.

This page is for exploring possible additions / extensions to XMDP.

See xmdp-faq and xmdp-issues for questions and issues.

Possible XMDP additions

Linking to the XMDP

There are at least two additional methods under discussion for linking to the XMDP in addition to the current method of using the profile attribute of the head element:

  • Using <link rel="profile" href="link to XMDP"/>. This method can be used now and will be formalized in XHTML 2.
    • A problem with this method is that it requires access to the head element.
  • Using <a rel="profile" href="link to XMDP">powered by microformat xyz</a> in the body of the document.
    • As noted by a number of people, this approach has the added benefit of creating a viral marketing opportunity for the microformats used. For instance, developers could add badges saying they are using microformat xyz as suggested by the example.
    • Blog authoring environments allow you to insert links at will, so this squarely obviates the need to access the head element.

Ontology addition

There is currently now way to cross-reference two or more XMDPs. This is proposal about how to link two properties and give some meaning between the two.

For my ficticious example i will use 'self'

<dl class="rel">
  <dt id='self'><a href="http://www.gmpg.org/xfn/11#me" rev="extends">self</a></dt>
   <dd>This is a pointer to me, it extends the ME property of XFN</dd>

There are two interesting pieces that have been added, a URL with an anchor to another XMDP profile and a rev attribute. The rev value in this example is 'extends'. These means that the page this is refering too, is extended by the property SELF. So you could make an XMDP that lists all the possible rev attributes, 'extends', 'inverse', 'equivanent', etc. Then you could 'alias' one microformat property to another.

Then the universal XMDP validator/parser/etc can extract data across two or more XMDP profiles. This would create a small ontology, but also make an endless chase across hrefs through those profiles.

This idea still needs some work, but it might be something of interest to this problem, so i'll hang it out there for comment.

Profile aliasing

Probably just a special case of ontology addition. An XMDP document could be used to define a microformat profile that is nothing more than a simple dictionary mapping between an existing, non-standard set of HTML classes and the terms in a standard microformat profile. This would allow a publisher to support a given microformat by merely using the URI of the profile alias document as the value of an individual documents head/profile attribute, rather than modifying the individual class values throughout each document. Initial suggestion with use case description in this microformats-discuss post. Note (from Kevin's response) that HTML class attributes can contain multiple values, e.g. class="post atomentry", so a publisher doesn't have to discard their existing class values to use those of a microformat.

Resolving when microformats are actually in use

One solution to this issue is simply to include the <a rel="profile" href="link to XMDP">powered by microformat xyz</a> within the container element for the microformat. The XMDP spec could then specify that when the <a> element is used in this way, it indicates that the microformat is used by the element containing the <a> element.

There are, however, several clear issues with this proposal:

  • Not every microformat has a container element. Consider rel="tag" one of the most widely used microformats.
  • To some extent, using microformats adds to the cost of writing the document. It's like filling in a form just to write your thoughts. Putting <a> elements with each microformat adds unwanted links on top of that.

See Also