- 1 Action par Défaut
- 2 Donations
- 3 Dérir d'Hériter du Contexte
- 4 Faire que les champs Info/Photo soient Optionnels
- 5 Sur hReview
- 6 Nom Voisinage
- 7 Listing Action, Listing Type, Item Type
- 8 Eliminate Item Type
- 9 hClassified?
- 10 Que penser de la vente au détail ?
- 11 Retail
- 12 Classe Thumbnail
- 13 Validateur
Action par Défaut
je pense que c'est un bon format d'avoir un par défaut pour chaque champ obligatoire, parce quelqu'un là va laisser tomber n'importe quel champ donné obligatoire dans le champ des microformats. Dans cet esprit, la valeur par défaut pour l'annonce classée est l'offre, parce que les annonces "voulu" sont bien << 10% dans le vrai monde. Ce que je ne sais pas est ce que devrait être l'action par défaut ; la plus neutre d'entre elles est announce, ce que j'utilise dans mon parseur.
Vendre et Louer sont des verbes assez évidents ; que veux dire Trade néanmoins, et Barter. Que penser des dons, comme les donations ou "libre pour recyclage" ? Devrions-nous remplacer Trade et offrir Donate à sa place ?
Dérir d'Hériter du Contexte
Quand cela vient au billet de blog, j'aimerais nous avoir adresser ce qui suit :
1. Less is more. Or in reverse, people are lazy, and the less fields they need to fill in order to sell a couch or find a date, the more they'll use the plugin. So I'm trying to visualize how this plays in with the user interface and how we can keep it as simple as possible.
2. DRY. We want to capture as much information as possible from what is already available in the blog post. We already have summary (title), listing date/time (post date/time), permalink, author information, tags/categories.
3. Keep it simple. And here I'm talking about setup and being able to extend your blog's functionality without too much fuss. This one is a bit more tricky, so I'll go into details.
WordPress uses templates to render the blog post. The template then calls the WordPress API to render the title, a second call to render the content, and another call to render any additional metadata (e.g. publish date, categories, author). These separate calls allow people to play with the formatting and apply any styling they like.
The way uPress works, is by processing the blog post before it goes back to the filter, creating the hEvent (to be: hListing) element around it, and adding any relevant fields into the blog post. So what you fill in the form, finds its way to the post content. As a result, setting up the plugin requires two steps: drop it to the plugins directory, and activate.
Unfortunately, I only get to process the content of the post. I can't easily include the title inside the hListing element, or any other metadata about the post, even though I have access to it. If I duplicate that information, the post stops being readable. And to wrap the entire post (not just body) inside a microformat element, I need to tweak the template. Except people use different templates, and I can't tweak all of them.
So the more context we use, the better the plugin becomes.
-- Assaf Arkin
Faire que les champs Info/Photo soient Optionnels
WordPress a un éditeur WYSIWYG génial qui vous laisse glisser et déposer des images. Mais la seule identification sémantique qu'il utilise est l'élément HTML <img>. Ainsi comment obtenons-nous qu'une photo soit identifiée à partir de toutes les images dans la description ?
1. éditer manuellemen le HTML que WordPress crée et ajouter la classe. 2. Ajouter une autre IU doublant celle déjà utilisée par WordPress, sans drag & drop, strictement pour les images désignées comme des photos. 3. Taguer chaque image unique sous photo. 4. Faire que le crawler interprète chaque image unique comme une photo.
Je ne suis pas sûr que nous voulions pousser la complexité à la frontière, c'est comme demander aux gens de ne créer que des pages XHTML valides et ne pas restituer tout ce qui refuse de valider. Ceci est d'abord pour les humains, en second pour les machines. Si la complexité a besoin d'exister, ce ne devrait pas l'être dans les blogs, mais dans les crawlers.
-- Assaf Arkin
This draft was heavily influenced by hReview. That's a good thing. We don’t want to duplicate efforts; are learning from the mistakes of others; and converging on a cohesive set of specifications. I want to eventually add hReview and hCard to my plugin. So this strategy of borrowing from existing microformats helps me get it done quicker. It took me all of five minutes to leverage address formatting from hEvent.
But we also need to recognize that hReview could also be more blogging friendly. The specification is great, but the implementations are lacking. I think the reason is that hReview was designed for greenfield applications that specifically deal with emitting reviews. The design did not take into consideration applications that already deal with content, but want to supplement it with reviews, listings, etc. There's no mention of such consideration in the spec.
We want to appeal to the wide populace of bloggers who just want to get stuff done. Rather than put the burden on millions of bloggers out there, we should place the burden on the few companies developing crawlers.
What would Tantek say? I think he'd ask us to focus on use cases, real examples. I'm presenting one such example. The use case involves a blogger who just wants to sell something on their blog, with the minimum amount of effort and cognitive friction. They want the listing to be discovered, aggregated and searched by others.
-- Assaf Arkin
With the exception of housing, most classified listings don’t contain a specific address (e.g., if I’m selling my couch, you don’t need to know where I live in the listing). Some location information, however, is important. In most suburban areas, the name of the town is sufficient. In cities, however, neighborhood is important and more contextually relevant than zipcode (simply a region defined by the post office).
This is a tough problem that needs to be solved but outside the context of this discussion. We think there are other cases the could benefit from it, including hReview and hEvent. We recommend that this debate be surface in the adr microformation discussion (e.g., perhaps extend the locality field (city) to optionally include a neighborhood)
-- Craig Donato & Assaf Arkin
Listing Action, Listing Type, Item Type
We heavily debated how to classify a listing. Search engines or marketplaces typically need to understand what type of listing it is (e.g., personal ad, house for sale, music) to effectively reference or index a listing.
We initially considered proposing a single category field that contained tags (in addition to the tags field). Not only did this seem duplicative, it also seemed like too much of a good thing. In a previous project, Assaf managed to successfully overload everything into tags (including dates and locations), and run time-based and location-based searches, and ended up concluding it's a bad idea.
We eventually decided to propose the use three parametric field that when used together could define any type of listing independent of the words use to describe. These ended up being: listing-type (are you offering something or looking for something; listing-action (are you trying to sell, rent, or announce something); and item type (what item is referenced by the action such as a job opening, product, housing). By making small modifications to this vocabulary, users can specify an extremely wide range of potential transactions. This seemed more feasible given that the UI used to produce the hListing could abstract some of this from the user (as Assaf demonstrated in his demo plugin).
|Desired Transaction||Listing Type||Listing Action||Item Type|
|Merchandise For Sale||Offer||Sell||Product|
|Looking to Buy Merchandise||Wanted||Sell||Product|
|Apartment For Rent||Offer||Rent||Housing|
|Looking for Apartment||Wanted||Rent||Housing|
|Room for Rent (Roommate)||Offer||Rent||Housing|
|Looking for a Date||Offer||Wanted||Announce, Meet|
|Looking for a Job (Resume)||Wanted||Announce||Opening|
|Trade Couch for TV||Offer||Trade||Product|
|Pet for Adoption||Offer||Announce||Animal?|
-- Craig Donato
Eliminate Item Type
Can we eliminate item type and simply use tags? Or perhaps inferred item type from the item info?
There are meanings of "listing" that wouldn't fit this format.. might not hClassified be a more descriptive name? It's not overconstraining... 'classifieds' being very broad in practice and the meaning very informally/functionally defined. Or has the 'listing' train left the station?
Que penser de la vente au détail ?
Retail is out of scope for hListing, sure -- but what microformat should a retail seller of (e.g. mass-produced) goods use? hForSale? hProduct?
Funnily enough, hProduct is always something that I've thought about.
I'd be bold enough to say that it will be one of the main uses of microformats in the future. Imagine the amount of shops, price comparison, product review and many more type of sites. It doesn't have to be for profit, it could just be someones product, on their site, that they are displaying.
I'd be willing to help and continue development of a spec for 'hProduct'.
Hello. I'm not sure I understand everything correctly, but from reading the hListing proposal it seems that one should put pictures of the listed subject into the "photo" class. I'm wondering if also we may wish to have a "thumnail" class or perhaps something like "photo-thumbnail" to denote thumbnail images. -Andrew
Perhaps to foster development of this type, someone (who knows a lot more about microformats than I) should put a validator type page out there. I realize that microformats, by their nature are a loose specification (it's not as strict as validating say an XML rss feed). But having something that I can use to at least verify that what I'm coding is actually recognized as an hListing by someone other than myself would be very helpful. -Andrew