[uf-discuss] hThing microformat ... or design pattern

Mike Schinkel mikeschinkel at gmail.com
Sat Nov 18 21:03:08 PST 2006


To all:

Well, looks like it's time for me to inject my two cents. I had planned to
bring this to the group later when I had time to focus on it, but looks like
the ship is sailing so I better get on board or left behind...

BTW, I'm not presenting the following to be contrary to anyone else's
comments, this are just a brief summary of my thoughts on the subject.

I spent 12 years working on trying to create a database schema and taxonomy
for the software products that we sold at Xtras, and one of the issues that
always confounded me was the concept of a "Product."  I realized after much
hard work that whereas an "Item" was easy to define because it had a price
associated with it and hence other tangible attributes[1], a "Product"
really was a marketing concept and hence ethereal and almost impossible to
nail down in a taxonomy.  (Tangible attributes = Licensing, media
(cd/dvd/download), eligibility (full version/upgrade/comp. upgrade), etc.
for my context, but in other contexts size, color, material, etc. and so
much more.)

I tried for years to model things with "Product-Family" and "Product-Line"
and others, but nothing every really fit until I loosened my grip and just
went with a more general concept of "Saleable." The concept being that an
Item is Saleable as is a Product, as are Product Familis, etc. So what I
believe to be the best at capturing information about Products and Items is
a recursible concept called "Saleable." Hence I had planned to propose an
"hSaleable"

The top level schema for hSaleable would be the following with everything
but "Product" as optional:

* product = The name of the thing for sale (item, product, product family,
etc.)
* sku = Stock keeping unit (the website's unique human readable key for this
item/product/etc.)
* manufacturer/vendor/source = The company that creates this or where it is
source (all of these valid)
* description = Details about the product/item/etc.
* srp - Suggested Retail Price for this product/item/etc.
* price - Current price from this website for this product/item/etc.
* official - If "yes" then this is the company with the authority to publish
the official information (might be abused.)
* part-no - the manufacturer/vendor/source's official part/reference number
* serial-no - the serial number for this specific item (for one-of-a-kind
items, i.e. for a used car: it's VIN)

Beyond those, I envision a collection of name-value pairs that could be
named any (or all) of these names: facts/specs/details/attributes. These
would be used to specify things like color, size, material, licensing, etc.
(I like the work "attributes" the best, but that wording might be confused
with the usage of HTML element attributes.)

The following are two examples (one from software and another from
automobiles) with varying uses of the schema. Both are taken from real world
pages albeit with slight augmentation in order to display more schema
feature in just these two examples:

=====================================
Software: Shows two levels of nesting, facts, etc
=====================================
<div class="saleable">
	<span style="visibility:hidden">
		<span class="official">yes</span>
		<span class="part-no">ipworks</span>
	</span>
	<h2>
		Product Purchasing Options for
		<a href="http://www.nsoftware.com/order/?filter=ipworks"
class="url">
			<span class="product">
				<span class="vendor">/n software</span>'s
IP*Works!
			</span>
		</a>
	</h2>
	<table>
		<tr>
			<th>Part #</th>
			<th>Product</th>
			<th>Price</th>
		</tr>
		<span class="saleable">
			<span style="visibility:hidden">
				<a
href="http://www.nsoftware.com/order/options.aspx?part=IPN6-A" class="url">
					<span class="product">IP*Works! V6
.NET Edition</span>
					<span class="part-no">IPN6-A</span>
				</a>
			</span>
			<tr>
				<span class="saleable">
					<td class="part-no">IPN6-A</td>
					<td>
						<b>
							<p
class="product">IP*Works! V6 .NET Edition - Full Version</p>
						</b>
						<p>
							<span class="fact"
title="licensing">One Development Workstation</span>
							,
							<span class="fact"
title="licensing">Royalty-Free Distribution</span>
						</p>
					</td>
					<td class="srp">$499.00</td>
				</span>
			</tr>
			<tr>
				<span class="saleable">
					<td class="part-no">IPN6-AU</td>
					<td>
						<b>
							<p
class="product">IP*Works! V6 .NET Edition - Upgrade</p>
							Upgrade
						</b>
						<p>
							<span class="fact"
title="licensing">One Development Workstation</span>
							,
							<span class="fact"
title="licensing">Royalty-Free Distribution</span>
						</p>
						<p>
							<span class="fact"
title="licensing">(Requires IP*Works! V5 .NET Edition)</span>
						</p>
					</td>
					<td class="srp">$349.00</td>
				</span>
			</tr>
		</span>
		<span class="saleable">
			<span style="visibility:hidden">
				<a
href="http://www.nsoftware.com/order/options.aspx?part=IPE6-V" class="url">
					<span class="product">IP*Works! V6
Java Server Edition</span>
					<span class="part-no">IPE6-V</span>
				</a>
			</span>
			<tr>
				<span class="saleable">
					<td class="part-no">IPE6-V</td>
					<td>
						<b>
							<p
class="product">IP*Works! V6 Java Server Edition - Single Server</p>
						</b>
						<p>
							<span class="fact"
title="licensing">Single Server License</span>
						</p>
					</td>
					<td class="srp">$799.00</td>
				</span>
			</tr>
			<tr>
				<span class="saleable">
					<td class="part-no">IPE6-VF</td>
					<td>
						<b>
							<p
class="product">IP*Works! V6 Java Server Edition - Unlimited</p>
						</b>
						<p>
							<span class="fact"
title="licensing">One Development Workstation</span>
							,
							<span class="fact"
title="licensing">Royalty-Free Distribution</span>
						</p>
					</td>
					<td class="srp">$2,499.00</td>
				</span>
			</tr>
		</span>
	</table>
</div>
============================================
Automobile: Shows one level of nesting, price vs. srp, etc.
============================================
<div class="saleable">
	<span class="official" style="visibility:hidden">yes</span>
	<h2>
		Sale on
		<a
href="http://www.audiusa.com/audi/us/en2/new_cars/Audi_Q7.html" class="url">
			<span class="product">
				<span class="manufacturer">Audi</span>
				Q7
			</span>
			Models
		</a>
	</h2>
	<ul>
		<li>
			<div class="saleable">
				<span class="product">Audi Q7 3.6</span>
				<span class="price">$36,900</span>
				(SRP:
				<span class="srp">$39,900</span>
				)
				<div class="description">The 3.6 liter V6
with FSI Direct Injection in combination with quattro all-wheel drive
provides superb performance and handling. Inside, spaciousness, luxury,
versatility, and Audi's legendary fit and finish. A superb choice.</div>
			</div>
		</li>
		<li>
			<div class="saleable">
				<span class="product">Audi Q7 3.6
Premium</span>
				<span class="price">$42,900</span>
				(SRP:
				<span class="srp">$45,900</span>
				)
				<div class="description">The power, control,
performance and design of the Audi Q7 3.6, enhanced with luxurious extras: a
Bose Premium sound system and MMI Advanced with color screen are just the
beginning.</div>
			</div>
		</li>
		<li>
			<div class="saleable">
				<span class="product">Audi Q7 4.2</span>
				<span class="price">$45,900</span>
				(SRP:
				<span class="srp">$49,900</span>
				)
				<div class="description">A true milestone
that combines unforgettable Audi performance, safety, design, and
versatility with the best qualities of an SUV, including off-road
capabilities, a high seating position, and interior spaciousness and
flexibility. The Audi Q7 makes the impossible possible.</div>
			</div>
		</li>
		<li>
			<div class="saleable">
				<span class="product">Audi Q7 4.2
Premium</span>
				<span class="price">$52,900</span>
				(SRP:
				<span class="srp">$59,900</span>
				)
				<div class="description">With a host of
innovative, standard extras including Rear View Camera with Acoustic
Parking, Audi Side Assist, and Advanced Key, the Audi Q7</div>
			</div>
		</li>
	</ul>
</div>

=====================================

>From my experience of literally thousands of hours trying to taxonify
product information in order to automate the business and improve the
company's website, this is what I think is needed.  Now I haven't tried to
reconcile any of this to hlisting or anything else more than just a cursory
glance. 

I look forward to everyone's thoughts and input.

-Mike Schinkel
http://www.mikeschinkel.com/blogs/
http://www.welldesignedurls.org/



-----Original Message-----
From: microformats-discuss-bounces at microformats.org
[mailto:microformats-discuss-bounces at microformats.org] On Behalf Of Aaron
Gustafson
Sent: Friday, November 17, 2006 7:38 PM
To: Microformats-Discuss
Subject: Re: [uf-discuss] hThing microformat ... or design pattern

David Janes wrote:
> I'm not sure if I'm that excited :-) but I definitely think there's a 
> gap that can be filled (i.e. that hReview/hListing identify people 
> directly but only things indirectly). It's possible, but this is very 
> speculative, that this could simplify the path for creating new 
> microformats like hWine.

I am just joining the discussion list, so forgive me if what I rehash older
discussions. Craig Cook and I had been working on hProduct somewhat in
isolation and thought we should post the information we've created to get
our ideas and thoughts out there. I see some sililarities with what is up on
hItem, though I agree hItem may be a little too broad (see the earlier 'what
is an item?' comments).

>> I'd definitely advocate for hItem including information about its 
>> creator, and optionally its producer and vendor. These of course 
>> could be hCard entries or links, and I think it would give us a 
>> flexible way to include much of the information that felt very "wine" 
>> specific such as Vintage (aka, producer and production date). It 
>> seems as though an hItem's production and creation could also be 
>> considered events, so reusing hEvent here seems to make a lot of sense.
>>
>> What do you think? Is this more complicated than it needs to be, or 
>> is the reuse of other microformats here a good thing?
>
> Let's go through the examples and see what's frequently used, somewhat 
> used and rarely or sporadically used. That will point the right 
> direction I think. And, as per usual, I encourage everyone to 
> contribute to the examples because that's one of the hardest and least 
> thanked parts.

Hmm, I think we really need to boil this down to its essence. With products,
unless you want to go the route niche microformats like hWine or hBook, it
makes sense to stick to a few key, repeatable fields, for example:
* name
* description
* image
* msrp
* uri
* brand

The rest could be handled by a generic property value construct which we've
called 'p-v' (and may honestly have usefulness outside the hProduct/hItem
concept).

>> Also, is this ground already being covered by hListing (which seems 
>> to be looking to include some of this info), or would you simply have 
>> hListings of events (hEvent),  people (hCard), and  things (hItem)?
>
>The latter, but we're data mining hListing/hReview to maximize reuse.

IMHO, there are a few places I think hListing (and hReview for that matter)
are reaching a bit beyond what should be their scope. This is where I think
hProduct/hItem fits in. In other words, you could essentially script the
linking of a product for sale in an hListing with a review of that product
in hReview.

I'd be interested in feedback on what Craig and I have posted so far and
perhaps we can find a way to merge hItem and hProduct and suggest some
augmentations to hListing and hReview to make some space for hProduct/hItem.

We will be posting some of our examples shortly.

Cheers,

Aaron

----
Aaron Gustafson
Sr. Web Designer/Developer
Easy! Designs, LLC
203-215-8829 O
203-230-0773 F
aaron at easy-designs.net
----
Easy! Designs, LLC
83 Treadwell St
Hamden, CT 06517
http://www.easy-designs.net
http://www.easy-reader.net


_______________________________________________
microformats-discuss mailing list
microformats-discuss at microformats.org
http://microformats.org/mailman/listinfo/microformats-discuss



More information about the microformats-discuss mailing list