TPAC2012/microformats2

(16:12:54) hober [~ted@public.cloak] er komen inn i rommet.
(16:13:18) tantek [~tantek@public.cloak] er komen inn i rommet.
(16:13:31) tantek har endra emnet til: /join #microformats
(16:16:29) lstorset: tantek describes Microformats 2, assuming knowledge of 1.
(16:16:29) lstorset: … shows hCard wiki page
(16:16:29) lstorset: … in 2, h-card, single element is enough.
(16:16:40) lstorset: Simplified the property model
(16:16:55) lstorset: … prefix shows what kind of property it is. h- for root props
(16:17:09) lstorset: hober: Due to structure, you can write a parser wihtout knowledge of vocab.
(16:17:26) lstorset: … Previously you had to know hCard to parse it
(16:17:43) lstorset: … Now, parsing is vocab-agnostic for generic parsers
(16:17:51) lstorset: tantek: Less markup in the common case
(16:18:09) lstorset: … Huge advantage. Using common prefixes, the parsing algorithm is really short
(16:18:12) lstorset: (shows wiki page)
(16:18:53) lstorset: … The nice thing is that we actually have an impl to play with
(16:19:27) lstorset: … parses as expected
(16:19:38) lstorset: http://waterpigs.co.uk/php-mf2
(16:19:50) lstorset: … Pretty powerful, you can easily expose read-only API on your site
(16:20:05) lstorset: … Run a parser and generate JSON data model
(16:20:35) lstorset: jet: Does generic model mean there are parts they can't ignore?
(16:21:09) lstorset: tantek: If parser encounters unknown element (e.g. <span class=p-tpac-demo>) it works
(16:21:27) lstorset: hober: Parsers can look at what they know
(16:21:38) lstorset: jet: Performance. Do we have to pass on everything?
(16:22:00) lstorset: tantek: Designed in terms of CSS selectors so we can take advantage of dom client side.
(16:22:08) lstorset: … server side you can use libraries (?)
(16:22:32) lstorset: hober: Should probably have a way to "stop processing here"
(16:22:56) lstorset: tantek: e.g. Marking someone's name up
(16:23:05) lstorset: … you use one class name "h-card"
(16:23:10) lstorset: … the rest it will infer
(16:23:15) lstorset: … Requires SO little markup
(16:23:26) lstorset: … Improves usability for webdevs a lot
(16:23:42) lstorset: … This was major feedback. They like mf, but can't be bothered with divitis/spanitis
(16:23:47) lstorset: … So we optimise for that
(16:24:05) lstorset: … the other thing we got from authors re: rdf/microdata
(16:24:36) lstorset: … while they're dropping in that, they can easily drop in mf too without mkaing learning effort.
(16:24:42) lstorset: jet: …
(16:24:53) lstorset: tantek describes implicit properties
(16:25:16) lstorset: tantek: A lot of things tend to have name or photo or photo with alt
(16:25:29) lstorset: … so common pattern that it's powerful to be able to mark that up
(16:25:46) lstorset: jet: If there was a photo it would sniff it from alt tag?
(16:25:49) lstorset: tantek: yeah
(16:26:01) lstorset: tantek describes parsing rules to infer such things
(16:26:09) lstorset: tantek: Based on markup patterns on the web
(16:26:41) lstorset: tantek: Has anyone done any data markup on the web? microdata, rdf? Json data models?
(16:26:51) lstorset: … Should take much less markup to make it happen
(16:26:58) lstorset: … and enable generic parsers
(16:27:15) lstorset: … The only thing is some publishers want to keep data outside class attribute
(16:27:37) lstorset: … We say, just use microdata and rdfa, you can still use our vocabularies in another syntax.
(16:27:42) lstorset: … e.g. h-adr
(16:27:49) lstorset: … You get the same json model
(16:28:02) lstorset: … Should be close enough to json-ld for easy conversion
(16:28:37) lstorset: tantek: Questions from IRC?
(16:28:50) lstorset: jet: Is ?? here to track the vCard specs and shadow it forever
(16:29:09) lstorset: tantek: Over the years so many attempts at defining contacts standard, always diverge from vCard
(16:29:19) lstorset: … I tell them to join vCard mailing list
(16:29:32) lstorset: … If we can agree on vocab there, we can apply to any number of syntaxes
(16:29:49) lstorset: … e.g. contacts API I wrote for Firefox OS is strict subset of vCard
(16:29:58) lstorset: … I'm not bothering to fix or rename any terms
(16:30:05) lstorset: … I think that's important for compat and understanding
(16:30:22) lstorset: … So far vCard ML has been good enough forum for that, with history of concerned participants
(16:30:30) lstorset: … has moved forward reasonably enough
(16:31:06) lstorset: jet: The UC I hear used to throw darts at MF is Queen Elizabeth's vCard, so complex
(16:31:14) lstorset: … how can you represent that in that schema?
(16:31:26) lstorset: tantek: Honorific fields, optional _and_ multi-value
(16:31:33) lstorset: … dr., esq., etc.
(16:31:43) lstorset: … Consuming app descides what to do with them
(16:32:03) lstorset: jet: Does Boot to Gecko follow MF 2?
(16:32:12) lstorset: tantek: Not yet. Current impls in Node and PHP
(16:32:27) lstorset: tantek: Node is based on Gecko impl
(16:32:57) lstorset: … We have MF 1, but need to check in patches from Node version beta. Needs heavy testing before we can request pull
(16:33:24) lstorset: lstorset: Anything new but parsing?
(16:33:30) lstorset: tantek: No, that's pretty much it
(16:33:34) lstorset: … can still use MF 1 at the same time
(16:33:53) lstorset: … works fine
(16:34:03) lstorset: … forward and backward compat
(16:34:24) lstorset: … Personally I'm using the minimal markup in single-element cases. Only in complicated cases am I adding both.
(16:34:40) lstorset: … With single element, adding compat is much more expensive
(16:34:52) lstorset: … type <span> and single class name, done!
(16:35:20) lstorset: hober: … Mentioning friends in blog posts, would be a hassle to find their urls
(16:35:42) lstorset: tantek: A lot is for hand-authoring convenience. Low barrier, higher adoption
(16:36:02) lstorset: jet: For core UCs of contacts and calendar, have you seen styling in blogging engines etc.?
(16:36:12) lstorset: tantek: yeah, let me pull up some
(16:36:34) lstorset: [shows hcard-examples wiki page, Jared Hanson]
(16:36:54) lstorset: tantek: I'm using MF addon for Mozilla, good way of testing mf
(16:37:00) lstorset: [shows tim van damme]
(16:37:41) lstorset: … the JSON has all the information you see. On page styled with cute icons
(16:38:12) lstorset: jet: What's next?
(16:38:27) lstorset: tantek: What new MF should we create? is always the tension
(16:38:37) lstorset: … we have empirical process
(16:38:46) lstorset: … e.g. examine reviews on the web
(16:38:51) lstorset: … for mf reviews
(16:38:59) lstorset: … We are developing MF for citations
(16:39:27) lstorset: [shows Citations Brainstorming]
(16:39:38) lstorset: … Example of a MF in progress
(16:39:59) lstorset: … If enough people are publishing some data, it has some value in aggregate, valuable to mark it up
(16:40:34) lstorset: … If organizations come up with similar ways of showing metadata (thumbnails, descriptions): Can we unify that innto one model?
(16:40:44) lstorset: … Typically new formats get added pretty slowly
(16:40:50) lstorset: … We have high bar for research
(16:41:12) lstorset: … Come up with use cases, starts feedback loop
(16:41:39) lstorset: jet: Writing a paper, publishing on the web with citations, how do I …
(16:41:48) lstorset: hober: In the old days you would point to BibTeX entry
(16:42:05) lstorset: jet: "You are free to put my name there, but please use this format."
(16:42:26) lstorset: jet: Wikipedia guidelines for that
(16:43:23) lstorset: tantek: You could display the full microformat hyperlink (?)
(16:43:49) lstorset: jet: I imagine new formats are prone to bikeshedding. How do you manage that?
(16:44:18) lstorset: hober: One way is to reuse existing names. Rely on earlier bikeshidding
(16:44:27) lstorset: tantek: Did that with vcard
(16:44:37) lstorset: … Challenge with citations, because dozens of formats exist
(16:44:43) lstorset: … Different styles, visually
(16:44:58) lstorset: … Also different schemes
(16:45:07) lstorset: … All slightly different, no clear winner
(16:45:15) lstorset: … Some efforts to find intersection
(16:45:23) lstorset: … We ended up going with actual web citations
(16:45:31) lstorset: … instead of every single kind of work
(16:45:56) lstorset: … That way we came up with these 8 props