[uf-discuss] mixing vocabularies

Peter Mika pmika at yahoo-inc.com
Sun Jun 28 14:44:46 PDT 2009

I agree with your analysis. Indeed over-emphasizing this reuse from 
hcard gives the impression that somehow the ingredient has to be an 
hcard. I would also add that it would make it easier for people to use 
the hrecipe format if the references to hcard and hatom would be removed 
or at least deemphasized, because it gives the reader the impression 
that one has to read or understand the hcard/hatom spec before starting 
with hrecipe, i.e. that it's not a standalone spec. Based on what you 
say, it should be, i.e. it should make sense without reference to 

and thanks to Tantek for the editing....


Ben Ward wrote:
> On 26 Jun 2009, at 21:33, Peter Mika wrote:
>> So even if we all agree to all this, minimally two changes needed to 
>> the example on the wiki:
>> -- hcard should be vcard
>> -- all required properties of the hcard should be present OR hcard 
>> should be removed
>> Would you edit it?
> Noting that Tantek has edited the hCard class out on the wiki. I think 
> we should assume that this was an error in the draft (note that 
> hRecipe is draft).
> **I think** I understand what has happened here. Thomas, if this 
> assumption isn't correct I apologise. However, I hope this explanation 
> is valuable anyway in the context of this ‘combining vocabularies’ 
> discussion, so please consider the following neutrally:
> This discussion started from a mistaken understanding about combining 
> vocabularies in microformats — e.g. combining hcard with hreview to 
> reuse terms like `fn`.
> "combining" is a concept applied from a formal vocabulary context, 
> where you would import two vocabulary namespaces into different 
> prefixes to reuse terms. (e.g. importing dublin core and atom 
> namespaces and using them in combination as part of some larger 
> document mark-up). In XML, reusing vocabulary terms requires a formal 
> reference, because when you use `dc:title` you're using _the same_ 
> `dc:title` as in every other use of Dublin Core.
> In XML, this combining of vocabularies is a publishing-time operation.
> In microformats, that concept doesn't exist. The sharing of terms 
> between vocabularies is a simpler **design-time** decision. Where 
> terms a new format has fields that share the same use with a term 
> defined from a previous microformat, the term is re-used in the new 
> vocabulary.
> So, in hRecipe, `fn`, `type`, `value` and `photo` are not ‘imported’ 
> from hcard, they are simply properties with the same name, because 
> they are used the same way.
> The hRecipe spec currently emphasises where terms have been reused 
> from hCard (this is good, it clearly documents the design decisions of 
> the draft). And, in the case of ingredient, it documents that `type` 
> and `value` are reused from hcard (that's correct).
> I think the example was using class="ingredient hcard" with the intent 
> of explicitly referencing the hCard vocabulary for `type` and `value`.
> However, that isn't necessary. `type` and `value`, are first-class 
> members the hRecipe draft vocabulary, and the context of their use is 
> indicated by the root class name `hrecipe`.
> This is why I explain microformats as objects:
>   `class="hrecipe"` means "this is a recipe object" not "import the 
> recipe vocabulary".
> I suspect this is the muddle that happened with the example, but even 
> if not, I hope this explanation makes things a little clearer for 
> those who switch between the different vocabulary models on the web.
> Cheers,
> Ben
> _______________________________________________
> microformats-discuss mailing list
> microformats-discuss at microformats.org
> http://microformats.org/mailman/listinfo/microformats-discuss

More information about the microformats-discuss mailing list