item-brainstorming: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(What this microformat should look like)
Line 114: Line 114:
== [[DavidJanes]] ==
== [[DavidJanes]] ==


* We should have an "item" microformat
* We should have an "item" microformat, based on information extracted from [[hlisting|hListing]]/[[hreview|hReview]] in much the same was [[adr]] and [[geo]] were extracted from [[hcard|hCard]]
* This is extracted from hListing/hReview in much the same was [[adr]] and [[geo]] were extracted from [[hcard|hCard]]
* The top level class name will be "item"
* The top level class name should be "item"
* There are probably a few more very common attributes that should be added; in particular, a description field
* There are probably a few more very common attributes that should be added; in particular, a description field
* Future microformats describing specific types of items (hWine) will composite with this ("item hwine"), in much the same way vcard is composited in hListing/hReview ("item vcard")
* [[item|hItem]] should not describe the type of item; rather this comes from the context or composition
* It probably should apply to non-physical things also since this is very general
* Microformats describing specific types of items ([[wine|hWine]]) will composite with this ("item hwine"), in much the same way vcard is composited in hListing/hReview ("item vcard")
* The initial version of this spec should not be too complicated (avoid deep analysis and leave that for new microformats, possibly backmerging)
* [[item|hItem]] should be simple and concise and not be a general purpose dumping ground for attributes
* Updated: 2006-11-18
* Updated: 2006-12-08


== Andy Mabbett ==
== Andy Mabbett ==

Revision as of 20:48, 8 December 2006

Item Brainstorming

This page is to collect ideas about an "item" microformat and/or design pattern, for representing any "thing" that may exist or be referenced in another microformat. The goal is to create a small and concise vocabulary roughly mirroring hCard that represents the intersection of attributes across things, not the union.

Editors

Authors

Introduction

Goal

  1. when someone creates a new microformat that uses, contains, or references an item, they can just pick up hItem and use it
  2. when someone creates a new microformat that is a thing or item, they can build on hItem by composition (using it as a microformat) or by vocabulary (using it as a design pattern)
  3. by using an explicit item microformat, today's parsers will explicitly recognize in future microformats that an item being used, even if the exact nature of that item is not available

Rationale

  • items and things are frequently used or referenced in other microformats. For example:
  • people and places explicitly get a container element (hCard) which implicitly brings in a rich and descriptive set of attributes. In hListing and hReview, other non-person non-place things also get a container element marked class. However, the attributes of these items are explicitly specified in each microformat, even though they are common to both. hItem explicitly isolates and describes these attributes
  • by isolating and documenting these attributes and their behaviors, not only do existing microformats become more consise but future microformats -- wine, houses, citations, automobiles -- become easier to write

Notes

  • The hItem microformat already implicitly exists; see hreview and hlisting. We are just explicitly isolating it
  • As a microformat, this is very much analogous to hCard and we shall reuse all applicable attributes:
    • fn - the name of an item
    • url - the web address of an item
    • photo - a photo of an item
    • adr - the address of an item (for example, a house)
    • geo - likewise

hItem-based microformats

Representation

This may just be a design pattern -- that is, a template for create new microformats in the future. If it is a microformat, how we identify the type of thing is an open question -- we could do it like phone number types in hCard or it could be a new class element (or both). I.e. do we create a top-level class "hWine" or do we do <span class="type">wine</a>

New Attributes

One can see that there are many common properties that can be shared about different types of things. Manufactor, brand name, generic name, color.... The base item microformat may avoid trying to define this and instead allow new/future microformats to do the discovery.

  • Quantity - can be assumed to be 1 unless specified.

hItem and hCard

Immediately the idea of a hItem demands the idea of the option for a contained hCard for the owner, but what about a large qauntity of items owned by a single owner. Would a hCard be required in each hItem, or would it be possible to wrap all the hItems in a hCard?

Analysis of Examples

Tier 1: in use in microformats today

Tier 2: common to 80%+ of examples

Tier 3: less frequently used items

Tier 4: specific to particular thing-types

How this could be used

This section is meant to explore the ways that a item/thing microformat would be used in practice.

1. As a design pattern

That is, we following exactly the pattern that hListing/hReview does. A number of attributes, taken mainly/entirely available from hCard, can be used to describe items/things. These are grouped together by whatever class name is most useful, typically "item":

<div class="item">
  <span class="fn">Some Thing</span>
  <img class="photo" src="..." />
</div>

2. As an ever expanding uF

Under this this method, we would explicitly identify a "item" class, a "type" field of some sort would identify the type of the thing and other attributes would be defined ... some way.

<div class="item">
  <span class="fn">Some Thing</span>
  (<span class="type">wine</a>)
  <img class="photo" src="..." />  
</div>

I don't particularly care for this method.

3. As a composite

Under this method, we would composite future microformats with a "item" top level node:

<div class="item hwine">
  <span class="fn">Some Thing</span>
  <img class="photo" src="..." />  
  <span class="nose">smelly</a>
</div>

Where "fn" and "photo" come from "hitem", "nose" always comes from "hwine" (which insists on being composited with hitem?), and "item" is the class that gives the thing a relationship with it's parent (hListing/hReview/whatever).

Note the precident set by hListing/hReview in compositing "item" with "vcard".

Current Summary

This section is designed to track the current summary thinking on a per-contributor basis. If you want to add your own section here, feel free. Eventually all opinions will converge and we'll be finished.

DavidJanes

  • We should have an "item" microformat, based on information extracted from hListing/hReview in much the same was adr and geo were extracted from hCard
  • The top level class name will be "item"
  • There are probably a few more very common attributes that should be added; in particular, a description field
  • hItem should not describe the type of item; rather this comes from the context or composition
  • Microformats describing specific types of items (hWine) will composite with this ("item hwine"), in much the same way vcard is composited in hListing/hReview ("item vcard")
  • hItem should be simple and concise and not be a general purpose dumping ground for attributes
  • Updated: 2006-12-08

Andy Mabbett

See Also