IRC Log for #microformats on 2010-03-05
Timestamps are in UTC.
- [00:27:58] * ethicaljunction (~ethicalju@cpc1-rdng20-2-0-cust417.15-3.cable.virginmedia.com) Quit (Quit: ethicaljunction)
- [00:36:34] * dglazkov (~dglazkov@nat/google/x-zpujutylfdkqrnhq) Quit (Quit: dglazkov)
- [00:38:44] * tantek (~tantek@70-36-139-7.dsl.dynamic.sonic.net) Quit (Quit: tantek)
- [00:43:19] * BobJonkman (~BobJonkma@206-248-137-186.dsl.teksavvy.com) has joined #microformats
- [01:01:25] * shigeta (~shigeta@sakkgw2.sixapart.jp) has joined #microformats
- [01:05:28] * tantek (~tantek@c-67-180-202-79.hsd1.ca.comcast.net) has joined #microformats
- [01:05:29] * ChanServ sets mode +o tantek
- [01:08:34] * benward (~benward@nat/yahoo/x-fkftnxybhnyxuser) has joined #microformats
- [01:08:35] * ChanServ sets mode +o benward
- [01:38:41] * benward (~benward@nat/yahoo/x-fkftnxybhnyxuser) Quit (Quit: Sleep)
- [01:48:55] * KevinMarks (~KevinMark@157.22.22.46) Quit (Ping timeout: 245 seconds)
- [02:22:59] * tantek (~tantek@c-67-180-202-79.hsd1.ca.comcast.net) Quit (Quit: tantek)
- [03:08:52] * KevinMarks (~KevinMark@204.9.180.30) has joined #microformats
- [04:14:51] * dehuman (dehuman@2001:5c0:1103:8d00::cafe) Quit (Ping timeout: 268 seconds)
- [05:23:00] * BobJonkman (~BobJonkma@206-248-137-186.dsl.teksavvy.com) Quit (Quit: Leaving.)
- [06:29:06] * csarven (~csarven@dhcp-0-18-f8-35-d5-97.cpe.quickclic.net) Quit (Quit: Leaving.)
- [06:41:52] * danbri (~danbri@unaffiliated/danbri) has joined #microformats
- [07:54:02] * besbes (~besbes@188-23-178-132.adsl.highway.telekom.at) has joined #microformats
- [08:40:59] * tantek (~tantek@70-36-139-7.dsl.dynamic.sonic.net) has joined #microformats
- [08:41:00] * ChanServ sets mode +o tantek
- [08:51:25] * tantek_ (~tantek@70-36-139-7.dsl.dynamic.sonic.net) has joined #microformats
- [08:51:25] * tantek (~tantek@70-36-139-7.dsl.dynamic.sonic.net) Quit (Read error: Connection reset by peer)
- [08:51:25] * ChanServ sets mode +o tantek_
- [08:51:25] * tantek_ is now known as tantek
- [08:56:28] * besbes (~besbes@188-23-178-132.adsl.highway.telekom.at) Quit (Quit: besbes)
- [09:00:09] * Atamido_ (~atamido@76-205-170-42.lightspeed.austtx.sbcglobal.net) has joined #microformats
- [09:00:16] * Atamido (~atamido@76-205-170-42.lightspeed.austtx.sbcglobal.net) Quit (Ping timeout: 245 seconds)
- [09:00:25] * Atamido_ is now known as Atamido
- [09:25:31] * Phae (~phaeness@cpc2-acto9-0-0-cust364.brnt.cable.ntl.com) has joined #microformats
- [09:25:31] * ChanServ sets mode +o Phae
- [09:33:28] * besbes (~besbes@mercury.mminf.univie.ac.at) has joined #microformats
- [09:38:57] * ntoll (~ntoll@88-110-171-9.dynamic.dsl.as9105.com) has joined #microformats
- [10:27:12] * KevinMarks (~KevinMark@204.9.180.30) Quit (Quit: The computer fell asleep)
- [10:44:04] * benward (~benward@70-36-139-40.dsl.dynamic.sonic.net) has joined #microformats
- [10:44:05] * ChanServ sets mode +o benward
- [11:08:09] * benward (~benward@70-36-139-40.dsl.dynamic.sonic.net) Quit (Quit: Sleep)
- [11:24:01] * tantek (~tantek@70-36-139-7.dsl.dynamic.sonic.net) Quit (Quit: tantek)
- [11:34:09] * dehuman (dehuman@undead.superuser.su) has joined #microformats
- [11:41:08] * emrojo (~emrojo@2001:720:410:100f:212:3fff:fe22:bbaf) has joined #microformats
- [12:41:20] * ntoll (~ntoll@88-110-171-9.dynamic.dsl.as9105.com) Quit (*.net *.split)
- [12:45:19] * jiing_ (~jiing@59-120-12-62.HINET-IP.hinet.net) has joined #microformats
- [12:49:53] * krijnh (~krijnhoet@ktk.xs4all.nl) Quit (*.net *.split)
- [12:49:53] * jiing (~jiing@59-120-12-62.HINET-IP.hinet.net) Quit (*.net *.split)
- [12:58:26] * dehuman (dehuman@undead.superuser.su) Quit (Ping timeout: 268 seconds)
- [12:58:45] * shigeta (~shigeta@sakkgw2.sixapart.jp) Quit (Quit: Leaving...)
- [13:36:40] * csarven (~csarven@dhcp-0-18-f8-35-d5-97.cpe.quickclic.net) has joined #microformats
- [13:52:04] * ntoll (~ntoll@88-110-171-9.dynamic.dsl.as9105.com) has joined #microformats
- [13:58:09] * ITrace (~ITrace@216.81.188.2) has joined #microformats
- [14:30:25] * mwunsch (~mwunsch@38.105.146.82) has joined #microformats
- [14:42:15] * krijnh (~krijnhoet@ktk.xs4all.nl) has joined #microformats
- [16:00:42] * dehuman (dehuman@undead.superuser.su) has joined #microformats
- [16:17:50] * besbes (~besbes@mercury.mminf.univie.ac.at) Quit (Ping timeout: 265 seconds)
- [17:11:50] * tantek (~tantek@70-36-139-7.dsl.dynamic.sonic.net) has joined #microformats
- [17:11:50] * ChanServ sets mode +o tantek
- [17:14:08] <georgebrock>
asked this yesterday, but there were fewer people around... http://krijnhoetmer.nl/irc-logs/microformats/20100304#l-71
- [17:15:40] <tantek>
do you have an example URL of the content you are trying to mark up?
- [17:16:08] <georgebrock>
tantek: http://www.reevoo.com/p/samsung-le32b450
- [17:22:05] <tantek>
so a couple of things
- [17:22:42] <tantek>
first, class="hreview-aggregate" (note should be all lowercase) can be placed on a more specific (deeper nested) div
- [17:23:30] <tantek>
...
- [17:23:41] <tantek>
on the first <div class="summary-row"> in particular
- [17:23:51] <tantek>
that way it won't include so much of the markup
- [17:24:28] <georgebrock>
that makes sense
- [17:27:24] <georgebrock>
I was going to make the div with class=product into an hProduct, and it would make sense for that to be the aggregate review's item
- [17:27:59] <georgebrock>
do you think the include pattern would make sense for this? I'm nervous about the review including its own ancestor
- [17:29:43] <tantek>
btw from the include-pattern page: "To prevent infinite loops, if a class="include" refers to itself or to an ancestor in the parse tree, then it is ignored and has no effect on the parser."
- [17:29:56] <tantek>
http://microformats.org/wiki/include-pattern#in_general
- [17:30:34] <georgebrock>
excellent, I had missed that, thank you
- [17:32:07] <tobyink>
Using pseudomarkup... <hreview include="hproduct"></hreview><hproduct include="hreview"></hproduct> ought to work.
- [17:32:33] <tobyink>
But... <hreview><hproduct include="hreview"></hproduct></hreview> will not.
- [17:35:22] <georgebrock>
hProduct can contain reviews (one of the properties is review, which should be marked up as an hReview), but if <hproduct><hreview><item include="hproduct" /></hreview></hproduct> doesn't work I'm unsure how to construct that
- [17:38:14] <tobyink>
<hproduct id="p"><include include="#r1"/><include include="#r2"/><include include="#r3"/></hproduct><hreview id="r1"><item include="#p"></hproduct><hreview id="r2"><item include="#p"></hproduct>, etc.
- [17:39:42] <georgebrock>
tobyink: ah yes, as per your previous example, was being a little slow on the uptake, thanks
- [17:45:14] <tantek>
tobyink - I'm not sure that makes sense or is necessary because the hProduct in this case already contains hReviews
- [17:45:23] <tantek>
they don't need to be included
- [17:45:27] <tantek>
in the current markup
- [17:45:42] <tantek>
the problem is that each hReview must still have an "item"
- [17:45:47] <tantek>
which describes the product
- [17:47:04] <tantek>
georgebrock it sounds like what is needed is something slightly different than the include pattern
- [17:47:18] <tantek>
something more like itemref in microdata: http://www.w3.org/TR/microdata/#attr-itemref
- [17:47:49] <tantek>
which is a way of referencing for crawling but not actually including
- [17:48:20] <tobyink>
Yes, I've implemented Microdata - it's inclusion method is a lot cleaner.
- [17:48:21] <tantek>
of course microdata's itemref doesn't say what to do if an itemref refers to an ancestor element
- [17:48:48] <tantek>
tobyink - I should hope so, microdata has learned from the experience we have with microformats :)
- [17:49:04] <tobyink>
If itemref refers to an ancestor, you don't get recursion, because itemref on child elements is ignored IIRC.
- [17:49:53] <tantek>
the recursion case requires two microdata objects
- [17:50:34] <tantek>
a ancestor which has property which itself is an object b which has an itemref that references a
- [17:51:26] <tobyink>
Ah, I've only implemented parsing Microdata into RDF, where the above doesn't cause any problems. Parsing into JSON this will probably cause nastiness.
- [17:51:35] <tobyink>
JSON doesn't support cycles; RDF does.
- [17:52:56] <tantek>
something like: <span itemscope id=a><span itemprop="p" itemscope id=b itemref=a></span></span> should do the trick
- [17:54:10] <tantek>
or to accentuate the point: <span itemscope id=a><span itemprop=turtle itemscope id=b itemref=a></span></span>
- [17:54:32] <tantek>
infinitely nested items, each of which has a "turtle" property whose value is the next nested item
- [17:54:39] <tantek>
turtles all the way down :)
- [17:54:52] * emrojo (~emrojo@2001:720:410:100f:212:3fff:fe22:bbaf) Quit (Quit: Leaving.)
- [17:56:31] <georgebrock>
I'll read up on microdata
- [18:00:45] * dglazkov (~dglazkov@nat/google/x-zxcqovrrjxvknprn) has joined #microformats
- [18:00:45] * ChanServ sets mode +o dglazkov
- [18:00:57] <tantek>
georgebrock - yup I just did
- [18:01:07] <tantek>
and asked in #whatwg and got an answer
- [18:01:11] <tantek>
per http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#associating-names-with-items
- [18:01:18] <tantek>
"If root is in memory, then the algorithm fails; abort these steps."
- [18:01:47] <tobyink>
This: <span itemscope id=a itemtype="http://example.net/A"><span itemprop=turtle itemscope id=b itemref=a></span></span>
- [18:02:33] <tobyink>
Successfully parses using the Microdata-to-RDF algorithm.
- [18:02:37] <tantek>
therefore microdata effectively makes referencing an id of an ancestor a NOP
- [18:02:51] <tantek>
tobyink it has nothing to do with RDF
- [18:03:08] <tantek>
step one of the "associating names with items" algorithm breaks the itemref to an ancestor
- [18:03:20] <tantek>
as cited above
- [18:03:36] <tantek>
itemrefs to ancestors are effectively ignored
- [18:04:37] <georgebrock>
given that the hProduct spec encourages nesting of hReviews within hProducts, and that in general microformats can be expressed as valid HTML4.01, does this need capturing on the hproduct-issues page?
- [18:05:08] <tantek>
georgebrock yes
- [18:05:30] <tantek>
hProduct's "review" property is insufficiently defined to describe how to make it work
- [18:05:47] <tantek>
because it doesn't describe how to embed a valid hReview
- [18:05:54] <tantek>
with item that points back to the hProduct
- [18:06:29] * georgebrock is adding an issue
- [18:07:53] <tantek>
tobyink - your successful parse probably includes a "turtle" property with an empty item
- [18:08:08] <tantek>
rather than actually indicating a cycle
- [18:08:22] <tantek>
assuming you're following the associating names with items algorithm
- [18:08:40] <tobyink>
Ah yes - you are right.
- [18:10:35] <tantek>
thus itemref has the same limitation as the include pattern
- [18:14:55] <georgebrock>
done: http://microformats.org/wiki/hproduct-issues#HP8_-_No_clear_way_of_including_a_valid_hReview_that_refers_back_to_the_hProduct_as_its_item
- [18:15:40] <tantek>
thanks georgebrock
- [18:16:25] <tantek>
tobyink - how would you represent the turtle example above with RDF?
- [18:16:44] <tantek>
(which presumably would actually encode the infinite recursion)
- [18:24:04] <tantek>
georgebrock I think this might have a simple solution that very much relates to the recent item-license work I've been doing
- [18:24:32] <tantek>
http://microformats.org/wiki/item-license
- [18:25:26] <tantek>
it may be possible to extend the "item-url" property in that proposal to refer to a local hypertext fragment
- [18:26:13] <tantek>
then in hProduct, you could simply *drop* the "review" property altogether
- [18:26:34] <tantek>
because the nested hReviews themselves would simple *reference* the hProduct by id (rather than including it)
- [18:28:59] <georgebrock>
that would certainly get around the nesting issue
- [18:32:22] <georgebrock>
I've added the suggestion to the wiki
- [18:33:41] <georgebrock>
I need to go, thanks for your help tantek, tobyink
- [18:33:51] * Hey_neken (~kaxero@215.Red-213-96-129.staticIP.rima-tde.net) has joined #microformats
- [18:43:16] * benward (~benward@nat/yahoo/x-zwtmukwruvhoxqjw) has joined #microformats
- [18:43:16] * ChanServ sets mode +o benward
- [18:43:29] <tobyink>
sorry, diappeared for 45 minutes.
- [18:44:31] <tobyink>
Turtle example in RDF (using the aptly named turtle serialisation) would be something like: _:a <http://example.com/turtle> _:b . _:b <http://example.com/turtle> _:a .
- [18:45:09] <tobyink>
i.e. the property is called <http://example.com/turtle> as properties must be URIs.
- [18:46:05] <tantek>
ah yes, of course
- [18:46:08] <tobyink>
The two resources are given identifiers _:a and _:b. Normally RDF identifies things using URIs, but can identify them using throwaway identifiers called blank nodes.
- [18:46:15] <tantek>
right
- [18:46:17] <tobyink>
And that's what I've used.
- [18:47:08] <tantek>
tobyink - that structure does not appear to be representable in microdata, per the discussion we had above.
- [18:47:54] <tobyink>
If you create URIs for a and b though, you could use itemid to represent cycles.
- [18:53:54] <tantek>
no itemid is only for the item/object itself, cannot be used on properties
- [18:53:59] <tantek>
http://www.w3.org/TR/microdata/#attr-itemid
- [18:54:40] <tantek>
it doesn't actually help in this case
- [18:54:48] <tantek>
itemid is more like "uid"
- [18:55:02] <tantek>
(e.g. from hCard, hCalendar)
- [18:55:17] <tobyink>
<span itemid="http://example.com/throwaway/a"><a property="turtle" href="http://example.com/throwaway/b"></a> <span itemid="http://example.com/throwaway/b"><a property="turtle" href="http://example.com/throwaway/a"></a></span></span>
- [18:55:26] <tantek>
except that itemid requires duplication of data, whereas "uid" can be placed on an element with class name "url" as well.
- [18:56:51] <tantek>
except that those two references won't find each other
- [18:56:54] <tantek>
the links break
- [19:03:07] <tobyink>
I don't think it works in the Microdata DOM API, but it works in the Microdata-to-RDF output.
- [19:03:59] <tobyink>
Creates: <http://example.com/throwaway/a> <http://example.com/turtle> <http://example.com/throwaway/b> . <http://example.com/throwaway/b> <http://example.com/turtle> <http://example.com/throwaway/a> .
- [19:04:53] <tobyink>
(Having added itemscope attributes and changes property="turtle" to itemprop="http://example.com/turtle".)
- [19:14:45] * trovster (~trovster@cpc3-staf1-0-0-cust950.sol2.cable.ntl.com) has joined #microformats
- [19:48:18] * Phae (~phaeness@cpc2-acto9-0-0-cust364.brnt.cable.ntl.com) Quit ()
- [20:36:42] * tantek (~tantek@70-36-139-7.dsl.dynamic.sonic.net) Quit (Quit: tantek)
- [21:02:16] * tantek (~tantek@70-36-139-7.dsl.dynamic.sonic.net) has joined #microformats
- [21:02:16] * ChanServ sets mode +o tantek
- [21:10:44] * mwunsch (~mwunsch@38.105.146.82) Quit (Quit: mwunsch)
- [21:26:10] * trovster (~trovster@cpc3-staf1-0-0-cust950.sol2.cable.ntl.com) Quit ()
- [22:16:41] * tantek (~tantek@70-36-139-7.dsl.dynamic.sonic.net) Quit (Quit: tantek)
- [22:19:25] * Hey_neken (~kaxero@215.Red-213-96-129.staticIP.rima-tde.net) Quit (Remote host closed the connection)
- [22:19:34] * abernier (~abernier@nor75-28-88-183-29-231.fbx.proxad.net) has joined #microformats
- [22:19:49] * abernier (~abernier@nor75-28-88-183-29-231.fbx.proxad.net) Quit (Client Quit)
- [23:35:21] * Amorphous (jan@unaffiliated/amorphous) Quit (Ping timeout: 260 seconds)
- [23:40:39] * ntoll (~ntoll@88-110-171-9.dynamic.dsl.as9105.com) Quit (Quit: this is not a quit message)
- [23:49:35] * BobJonkman (~BobJonkma@206-248-137-186.dsl.teksavvy.com) has joined #microformats
- [23:50:33] * Amorphous (jan@unaffiliated/amorphous) has joined #microformats
- [23:56:25] * ITrace (~ITrace@216.81.188.2) Quit (Ping timeout: 240 seconds)
These logs were automatically created by mflogbot on
chat.freenode.net
using a modified version of the Java IRC LogBot.
See http://microformats.org/wiki/mflogbot for more information.