hatom-issues: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
Line 181: Line 181:
* <code>class="updated"</code> (Atom consistency)
* <code>class="updated"</code> (Atom consistency)
: +1 Tantek
: +1 Tantek
: +1 DavudJanes
: +1 DavidJanes
* <code>class="dtupdated"</code> (Atom consistency with "dt" unofficial pattern)
* <code>class="dtupdated"</code> (Atom consistency with "dt" unofficial pattern)
* <code>class="last-modified"</code>
* <code>class="last-modified"</code>

Revision as of 08:56, 10 January 2006

Discussion Participants

Editors

Authors

Purpose

Questions or comments about hAtom go here. Please add your name to the Contributors section above.

Goals for hAtom

  1. to provide a blog-post microformat, based on how people actually produce weblogs
  2. based on (1), use Atom as it provides the most suitable data model for doing so
  3. based on (2), to make the format useful anywhere Atom might be used in context to create a syndication feed
  4. provide a baseline envelope format for similar {title|link|content|summary} web pages

Anti-Goals for hAtom

  1. Not to tell people how to write blogs or what there blog should look like; hAtom marked up blogs should look and behave identically to what they before hAtom was applied.

New Nomenclature

David Janes added this on 2006.01.03. Since we've decided that correspondence to Atom nomenclature is not going to happen, let's just decide on it here. I tried but probably haven't succeeded in pulling all the info from below up so feel free to add new things. Also feel free to change your vote if you see a consensus happening.

How to use this. If you like a particular use, place something like ': +1 YourName' following the name. Feel free to make as make negative votes. If you have something compelling to say, add it to the Discussion section that follows. Let's settle this out by, say the 10th of January 2006?

Feed (atom:feed)

  • class="feed" (Atom consistency)
  • class="atom-feed" (Atom consistency with prefix)
  • class="hfeed" (h* uF consistency)
+1 DavidJanes
+1 Tantek
+1 BenjaminCarlyle
+1 MarkRickerby

Discussion

The feed is a root class name of hAtom, similar to "vcalendar" in hCalendar, thus it should be fairly unique, per the root class name naming-principles. - Tantek

Entry (atom:entry)

  • class="entry (Atom consistency)
+1 MarkRickerby
  • class="atom-entry (Atom consistency with prefix)
  • class="hentry (h* uF consistency)
+1 DavidJanes
+1 Tantek
+1 BenjaminCarlyle
  • class="vjournal (reuse from vCalendar/iCalendar RFC 2445/hCalendar)

Discussion

Since feed is optional in hAtom (thereby implying the context of the entire XHTML document as the feed), similar to how "vcalendar" is optional in hCalendar (thereby implying a vcalendar context for the entire document), the entry can also be a root class name, similar to "vevent" in hCalendar, thus it should be fairly unique, per the root class name naming-principles.

If we are deliberately rejecting "vjournal", then we may want to exclude the entire "vjournal" object (and any vjournal specific properties) from hCalendar so that we don't accidentally have two blog post microformats.

Having analyzed the list of vjournal properties and their semantics and compared them with the list of Atom elements and their semantics, I greatly prefer the list and semantics from Atom over vjournal. Thus I would be ok with excluding vjournal from hCalendar, and pointing folks to use hAtom instead, even in the context of an hCalendar element that would otherwise be outputting vjournal entries. To that extent, once hAtom has stabilized, we should develop a mapping between vjournal properties and hAtom properties so that hAtom inside an hCalendar could be converted into BEGIN:VJOURNAL...END:VJOURNAL objects in an iCalendar/ics stream, as well as allowing for the opposite, so that one could even use an iCalendar-compliant authoring tool to create hAtom via the journal feature of said tool.

-Tantek

Entry Title (atom:title)

  • class="title" (Atom consistency)
-1 Tantek. Already defined to mean something else in hCard. The same term should not be used to mean different things.
  • class="entry-title" (Atom consistency, avoid hCard conflict)
  • class="heading" (HTML)
  • class="subject" (RFC822)
  • class="summary" (re-use from and consistency with vCalendar, iCalendar, hCalendar, hReview)
-1 KevinMarks (clashes with atom)
  • class="headline" what they're called in the News/Journalism industry
+1 Tantek
+1 KevinMarks
+1 BenjaminCarlyle, atom:entry/title only
+½ David Janes, atom:entry/title only
±0 DavidJanes see my note below
-1 Tantek (does not mean the "name" of the post/entry)
+1 BenjaminCarlyle, atom:feed/title only

Discussion

BenjaminCarlyle: If one were to review a blog entry with hReview we would fill out the "fn" field with the atom:entry/title. This suggests to me that fn may be sufficient for this title usage. headline is more semantically specific, and does seem appropriate. It may be a line-ball call as to whether a new term is required, or whether the atom:entry context is sufficient to indicate the fn is also a headline.

BenjaminCarlyle: Are we considering atom:feed/title in this discussion? There is some suggestion that atom:title should be "fn", separate to any value of atom:entry/title.

DavidJanes: vcard defines "FN" to be "to specify the formatted text corresponding to the name of the object the vCard represents". If we reject FN, are we not making too subtle a distinction that the atom:title isn't the name of the post? I'll also note that the domain experts believe that the atom:title of an entry is pretty well the same sort of thing as the atom:title of a feed.

First, I have re-evaluated using "fn" for feed:title per the information from Benjamin, David and others. See this discussion for details.

Second, I now agree with DavidJanes and the domain experts that the title of a feed is very similar (if not nearly identical) in semantics to the title of an entry, neither of which can really be considered a name.

Thus I am -1-ing "fn" for title for entry or feed since it doesn't mean the same thing.

- Tantek

DavidJanes: to summarize (I think), Tantek argues on the link above that atom:title can and does include more than the name.

DavidJanes: we're now at the point where FN is the title of a movie, a DVD, and a book, but not the atom:title of an entry and definitely not the atom:title of a feed.

BenjaminCarlyle: Entry and feed titles are both usually used as the name of the entry of feed, however examples exist where the entry title is changed for republication or is an auto-generated string (eg date). Headline is a good substitute at the entry level, and has a clear analogue in print.

If headline is selected for entry a different term would be required for feed. Headline cannot meaningfully be used for a feed title any more than the name of a newspaper can be called a headline. Working back from the newspaper analogue, I am aware of the use of both name or title to describe the analogous text. In the absence of evidence that a feed's desired title is ever anything but a human-created name for the blog, my support falls behind fn for feed title only. The danger remains that someone will supply non-name data as "fn" in order to "get it into the atom:title element". For this reason I remain open to further naming suggestions and to any example in the wild where this might already occur.

There has been some discussion that because the two are a single term in atom the domain experts consider the semantics to be the same. I suggest differently. The double use of title is inherited from rss, and has always been disambiguated by context. rfc4287 defines title as "a Text construct that conveys a human-readable title for an entry or feed", which conveys no useful semantics. Everything in a microformat is human-readable, and it isn't suprising that the semantics of title are equivalent to "title". To be honest, I would guess that the domain experts didn't give this issue a second thought.

DavidJanes: Let's go with "headline". I'm not in love with it but so it goes. My thinking on this at this point is we won't find a good word that covers atom:entry/title and atom:feed/title and I like the idea of a (somewhat) domain specific word that captures the concept and (especially a big point for me now) it will make mixing hAtom with other uFs a little nicer.

Entry Content (atom:content)

  • class="content" (Atom consistency)
+1 Tantek
+1 DavidJanes
  • class="description" (vCalendar, hCalendar, xFolk, hReview consistency)

Discussion

It turns out there is actually a very fine semantic distinction between the way "description" is used in vCalendar, hCalendar, xFolk, hReview, and what "content" means. In short, those other microformats are all "about" something else, whether an actual event in spacetime, or another item. Whereas in hAtom is the thing itself. The feed is the data is the item. Thus it makes sense use a different class name than "description". Based on our naming-principles, lacking an existing microformat term for this, we should use a term from a standard. Since Atom uses "content", that is the logical name to bring over and use, whether or not it is "perfect" to capture the semantic we are trying to capture. - Tantek

BenjaminCarlyle: We may also have to consider forms of blogs that carry other media. An <a rel="content" href="..."/> form of content may also have to be considered, although this could still be embedded in a very short html content block. I'm not quite ready to commit to "content" yet, but I agree that description may be a little weak.

Entry Summary (atom:summary)

  • class="summary" (re-use from and consistency with Atom)
  • class="content-summary" (Atom consistency avoiding hCalendar conflict)
  • class="partial-description"
  • class="excerpt"
+1 Tantek
+1 BenjaminCarlyle
+1 DavidJanes, my only concern being that they're not always excerpts
  • class="abstract"
+1 KevinMarks

Discussion

Excerpt is by far the most frequent (>80%) use of summary, thus it makes sense to name it as such. - Tantek

Disagree - Atom allows summary to be distinct from content, though this is less usual. However, by using a class that means summary (eg abstract) we cna convey an excerpt by making it wholly within 'atom:content', or a separate abstract by putting it within the entry but not within 'content' Kevin Marks

BenjaminCarlyle: I have been trying to convince meyself that atom:summary differs semantically from iCalendar summary. The "summary or subject" wording from rfc2445 is problematic, and it seems earlier microformats have taken the "subject" side. If we were to start from rfc2445 alone we might go the other way. In the end, though, webster.com defines summary as "covering the main points succinctly". atom:summary is not really consistent with that definition, so I'll swing my weight behind excerpt. On the subject of abstract, I think the semantics are such that "abstract" and "exerpt" are distinct (non-overlapping) sets. webster.com defines abstract as "a summary of points (as of a writing) usually presented in skeletal form". An exerpt is not a summary of points, and a summary of points is not an excerpt. I think tantek is simply suggesting that the 80% win in this case.

Benjamin is correct. The vast majority (easily 80%+) of summaries in Atom, when they exist are excerpts.

In addition:

  • WordPress user interface calls it "excerpt"
  • MovableType user interface calls it "excerpt"

Thus, based on the principle of user-centered design (an instance of humans first, machines second) as well, in that a user *typing* into the "Excerpt:" field in the UI of their blogging tool, is communicating to the interface that "This is the excerpt of my blog post", "excerpt" is actually a BETTER name for this element than summary, or anything else for that matter. Atom should have chosen "excerpt" as well based on this reason alone. - Tantek

Entry Permalink (atom:link)

  • rel="bookmark" (HTML consitency)
+2 DavidJanes
+1 Tantek
+1 BenjaminCarlyle
+1 KevinMarks


Discussion

BenjaminCarlyle: No real controversy here, unless you want to start giving blog entries or feeds vcards. A vcard could contain entry or feed title as fn, as well as url.

Entry Published (atom:published)

  • class="published" (Atom consistency)
+1 Tantek
+1 DavidJanes
  • class="dtpublished" (Atom consistency with "dt" unofficial pattern)

Discussion

BenjaminCarlyle: I would still like to see a clear engagement with last-modified before voting on this one.

last-modified reflects the last time the page/file was actually modified, most likely by the user. IMHO it is a 1:1 mapping of the "Date Modified" of a file in a file system. It is a direct mapping of what date is shown for HTTP directory listings.

published is defined in Atom quite differently from that, and among the alternatives it seems best to take the name from Atom precisely. - Tantek

From the last-modified-brainstorming purpose statement, emphasis added. "To specify the date of publication and the date of modification of a web page (or a part thereof)" - BenjaminCarlyle

Note that Atom chose to drop "created" which is much more reflective of what current file systems etc. support.

The concept of "published" is distinct from a generic "created" notion, in that it indicates when the content was made public or made available to readers (even on intranets) which is often very different than when the author started typing the entry or even first saved the entry.

- Tantek

DavidJanes: we can make last-modified consistent afterwards

Entry Updated (atom:updated)

  • class="updated" (Atom consistency)
+1 Tantek
+1 DavidJanes
  • class="dtupdated" (Atom consistency with "dt" unofficial pattern)
  • class="last-modified"

Discussion

BenjaminCarlyle: I would still like to see a clear engagement with last-modified before voting on this one.

See discussion for published. Updated is closer to last-modified than published is, however, upon careful reading of the definition of updated in Atom, it is clear that the user has the option of not changing the updated date even if they change the entry, e.g. by fixing a spelling error or something. Thus there is an implied stronger meaning of "this entry has been semantically changed" that is a different enough semantic from last-modified as to justify a new name, and among the alternatives it seems best to take the name from Atom precisely. -Tantek

From last-modified-brainstorming semantics: "Since both Atom and HTTP define the last-modified date (or its equivalent) as a "user-defined" value, this microformat should have the same semantics. In other words, the value should represent the last instance that the resource was changed in a way deemed significant to the publisher/author, which is not neccessarily the same as a file-system modified date-time." - BenjaminCarlyle

They are both user defined values but *different* user defined values.

It is VERY important to note this distinction because Atom chose to note it.

In the 99% case, file-system, web-server (HTTP) context, the last-modified date reflects the last time the *user* modified the file or page, WITHOUT consideration for whether or not the user wanted that change to reflect a change in the last-modified date.

Atom specifically allows for the exception that a user might not update the "updated" date, even when they change the underlying blog post, spelling corrections or whatever.

This is in stark contrast to the traditional application model, where in a word processor, even if you change one character and save, you change the file system last-modified date, and hence the HTTP last-modified headers.

-Tantek

Entry Author (atom:author)

  • class="author" (Atom consistency)
+1 Tantek

Discussion

BenjaminCarlyle: I think an author concept is generally useful to microformats, so long as you can make it clear whether it is the author of the uf wrapper or the author of the uf content that is being described. I think any wavering over whether author and contributor are both required is probably a step outside the atom specification. This may be worthwhile, with an xfn-style external definition that could relate a person to a work... or even a rel-tag-based relationship. Can room be left open for both of these possibilities for future expansion, while still providing a clear author -> atom:author translation?

My point is that in practice (>80% case again), contributor is not used. Thus we should exclude it from hAtom in the first version. However, I am ok with reserving contributor with the intent that if it does somehow take off, we can add it later. -Tantek

Entry Contributor (atom:contributor)

-1 Tantek
  • class="contibutor" (Atom consistency)
+1 Tantek

Discussion

I recommend we postpone contributor from hAtom first version (thus the -1 before any choices), since the 80% case does not need "contributor". We should reserve the name so we can add it later if we need it (thus the +1 on "contributor"). -Tantek

Questions and Comments

Limitations

There seems to be nothing in the hAtom specification to supply metadata for the blog (title, description, url, feedurl). There is nothing defined for the encapsulation of comments, comment counts, or links to comment sections. The microformat would be much more useful with these capabilities added. -- singpolyma 03:35, 3 Jan 2006 (PST)

  • We've deliberately restricted this to being a "blog post" microformat at this point to make the problem managable. Once the core elements are defined, we will consider extended the spec to cover as much as Atom does. Also note that microformats are compositable, thus, all these things could potentially be defined elsewhere with detrement to this standard. -- DavidJanes
    • You brought this microformat to my attention because you disagreed in priciple with the XOXO Blog Format (http://blogxoxo.blogspot.com/2006/01/xoxo-blog-format.html)... yet the only tool that currently works with that format works with comments. note also that at least comment counts and links to comment sections are part of posts. If you don't want to encapsulate comments I suppose I understand that and can easily create my own format meant to be embedded in yours to facilitate this purpose :) -- singpolyma 22:13, 3 Jan 2006 (PST)
    • Where did I disagree in principle? A: I told you about the existence of hAtom. B: I mentioned several of the design goals for hAtom

In addition, note that frankly we don't care about invisible metadata, because most humans don't care about invisible metadata.

The info about a blog which is *visible* will likely be represented in hAtom if they pass the 80%+ test. To that extent, many blogs have visible title, description, author, and updated information. See blog-post-brainstorming for more on this. -Tantek


Nomenclature

Note: microformats naming-principles include a precise means for coming up with names which should work in the 90% case.

One point to raise for hAtom in particular - we don't simply omit spaces from multiword property names, we use hyphens. E.g. "given-name" and many others in hCard.

Why atomentry?

class="atomentry" (or rather, "atom-entry")
Why not simply "entry"? The parallel to Atom is clear, but in the

context of a Web page, why add the reference? In case maybe you want to try for something approaching a string that won't get confused, my feeling is: forget it. Stick to the local semantics and let the doc-level (or HTML5 div level?) profile attribute disambiguate. Or to put it another way, it's premature to see a need at that point. -- DannyAyers

  • I (David Janes) chose the "atom" prefix:
    • to disambiguate; it is just too likely that "entry" or "feed" would appear on a random webpage in some other context. My preference would be to have a declarative statement in the XHTML header which would render this argument moot, but at this point the community seems cool on the concept.
    • to follow the naming pattern seen in the other "major" microformats (hCard, hCalendar, etc.)
    • because Entrys will not be required to be in Feeds (these rules and the reasons where this can happen will be forthcoming), I choose to disambiguate both
I don't like the analogy; I think this is more useful than just Atom, so it should be made generic. Dr. Ernie 16:59, 25 Oct 2005 (PDT)
DannyAyers My point exactly, but it wouldn't be the end of the world if the prefix was there - not reallly more than aesthetics...

STATUS - RESOLVED. We're going with "entry".

Tantek: This is actually difficult to consider outside the following issue. In particular, if "entry" is to serve as a potential root class name (similar to "vevent", which may be a root of an hCalendar event, or may be present in the context of a "vcalendar"), then we should strongly consider "uniquifying" it per our root-class-name practices. Possibilities to consider:
  • atom-entry
  • hentry
  • vjournal (from RFC 2445 and thus borrowed in effect from hCalendar)


Why atomfeed?

class="atomfeed" (or rather, "atom-entry")
As above on the atomprefix. But what does 'feed' mean in the context of a HTML page? Doesn't the <head> element cover the corresponding semantics?

-- DannyAyers

  • It is possible, somewhat common, and documented, that multiple feeds can appear on a single page, so it's insufficient to depend on the header, even though this may be the default case. You'll note that I've left out documenting a lot of concepts relating to feeds at a conceptual level, except for noting they exist because I think this is a bit of a swamp that's going to need more thinking
    • I'm going to more explicitly recognize that the XHTML document may act as an implicit feed in many cases
  • A Feed is a group of related Entries; what defines the relationship is entirely up to the author of the blog, except to note that if they were to place them together in the same Atom syndication feed, you'd do the same in the XHTML
This makes sense to me, the way vcalendar is optional since vevent is usually sufficient. Dr. Ernie 16:59, 25 Oct 2005 (PDT)
Ernie is precisely correct. The vevent/vcalendar :: entry/feed analogy is precisely correct. - Tantek
The multi-feed point makes sense, but if this data appears on a regular HTML page the question remains, does "feed" make sense? (Maybe just naming aesthetics again) -- DannyAyers
I'm thinking about it more -- I think so, just to split the content of the webpage up (as opposed to blogrolls, headers, footers, etc.) -- David Janes
Agreed with David. Not only does it make sense, it is a bad idea to consider renaming something like that for "aesthetics". - Tantek

STATUS - PARTIALLY RESOLVED. We're going with "feed" IF and when the Feed element is used. When and where Feed is used at all is still under discussion in the mailing list as of 2005-12-26.

Tantek: Per the root-class-name naming practices, we should seriously consider a more "unique" name, e.g. some possibilities:
  • atom-feed
  • hfeed

Why rel="link" ?

I know this maps through to the atom name, but rel="bookmark" is the established standard for permalinks, and is included in the w3c list of rel's, so there is an Occam's Razor case for using this. KevinMarks

  • I'd like input from everyone in this -- I'm torn really. Once I knock this thing into more of a complete state, I'll throw this out onto the mailing list for discussion -- DavidJanes
  • Also, "link" is horribly generic and is in fact modified through the "rel" attribute in Atom -- DavidJanes
  • Agreed with what Kevin wrote. Also, rel="link" doesn't actually make sense when you do the analysis as described in the rel-faq. The destination of the link is not really a "link" itself with respect to the current document/file. - Tantek
  • OK, I'm happy with this -- David Janes

STATUS - RESOLVED. We are using rel="bookmark".

  • Tantek: agreed.

title already defined by hCard

The title class is defined by hCard to mean "job title". Possible alternatives include (Please add to list):

  • 'summary', as used by hReview, hCalendar, VJOURNAL
    • Though I agree with the reuse, in this context, it may be confusing for those reading/familiar-with the Atom specification. We may want to avoid the use of 'summary' entirely within hAtom. - Tantek
  • 'Subject', as used by SMTP email
  • 'heading'
  • 'entry-title'
  • 'headline'
    • as this is what they are most like in blogposts Kevin Marks

summary already defined and used by vCalendar/iCalendar/hCalendar/hReview

The summary class is defined by vCalendar, iCalendar, hCalendar, and also hReview, to mean "summary or title". Possible alternatives include (add to list):

  • description, as used by VJOURNAL. It may be possible to interpret description as text longer than summary which is about the entry content. The hierarchy of detail would be summary (atom:title) -> description (atom:summary) -> content (atom:content)
    • description is used ambiguously by RSS to mean 'content' or 'summary', and by hReview and hCalendar to mean 'content'. Doing this would recreate that ambiguity needlessly, when Atom distinguishes it clearly. Kevin Marks 15:51, 31 Dec 2005 (PST)
    • Kevin's right, and not only that, "description" does NOT mean summary in VJOURNAL. "description" means "full description" in vCalendar, iCalendar, hCalendar, and also hReview. See below for where to use "description". We must NOT use "description" to mean summary. - Tantek
  • Depending on your interpretation, atom:summary could still be summary. Here is another option: subject (atom:title) -> summary (atom:summary) -> content (atom:content).
  • atom:summary is described as abstract in

Tantek: We may want to avoid the use of 'summary' entirely within hAtom. Here are some alternatives:

  • excerpt - in practice this is what most people provide instead of full text.
    • +1 Tantek
  • partial-description
  • abstract - Rarely do bloggers actually provide abstracts different from the full text of their posts - this is so NOT the 80% (and thus should be rejected for microformat consideration), but see blog-post-examples for some examples.
  • content-summary

Why content?

The concept behind atom:content has precedent in earlier microformats derived from the iCalendar standard as "description".

Date and time names alternatives

  • atom:updated
    • VJOURNAL LAST-MODIFIED
    • dtstamp
    • dtupdated
  • atom:published
    • VJOURNAL CREATED
    • dtpublished

Relationship to hReview definitions needs clarification

hAtom will define terminology for the general act of publication that overlaps with hReview's terminology for the specific act of publishing a review of something. The following terms could be pushed back into hReview:

  • atom:published -> hReview dtreviewed
  • atom:author -> hReview reviewer

"Pushed back" is the wrong direction here.

The right direction is "re-use" by new proposals/drafts. If you see anything in hReview that appears to overlap this new specification, the first thing to do is to see if you can reuse those terms from hReview in this new specification, not vice versa.

In addition, "published" does not mean the same as "dtreviewed" (you might write a restaurant review just after you eat there, but not actually "publish" it until later). "reviewer" is also a more precise semantic than "author", thus the two should not be collapsed.

- Tantek

hCards

Should hCards be required for the <address> of the Entry Poster? MAY, MUST, SHOULD? Your thoughts please -- DavidJanes

  • Robert Bachmann: “MUST” or at least “SHOULD” because atom:author is specified as “The "atom:author" element is a Person construct that indicates the author of the entry or feed.” and <address>’s semantics are too loose to describe an Atom person construct but using <addr class="vcard"> we would have pretty good 1:1 mappings:
    • atom:name ↔ hCard’s FN
    • atom:email ↔ hCard’s EMAIL
    • atom:uri ↔ hCard’s URI

STATUS - OPEN. "MAY" is the answer.

Tantek: I think this should be MUST. Atom should have referenced vCard for these semantics and made the mistake of making up their own terms. Let's undo that mistake with hAtom. Also, hReview 0.3 is going to make hCard a MUST for the "reviewer" property, based on experience and feedback. Thus we may want to just follow suit with hAtom as well.

DavidJanes: I had based the behavior on hReview 0.2. The problem is getting meaningful information into the blog templates and also I would appeal to parsimony, that is:

<div class="author">bonehead</div>

has an assumed defined mapping to

<div class="author vcard"><span class="fn">bonehead</div></div>

Since in many cases we're not going to get much more information than that, why add the verbosity? I note an analogous situation in hCard, where N.* are not required because they can be inferred algorithmicly.

Comparisons

This seems precisely analogous to S5:

  • atomentry <-> slide
  • content <-> slidecontent
  • summary <-> handout

I'm all for NOT boiling the ocean, but these really seem like the same cup of tea.

-- Ernie Prabhakar

  • See the #Purpose section above. Basically that drove the design decision for the naming David Janes

STATUS - RESOLVED. We're sticking with atom terminology (entry, content, summary).

See above as David says. The atom terminology is both problematic, and doesn't make sufficient reuse of existing microformat terminology. As far as the analogy to S5, yes, there is an analogy, but that doesn't make them the same. The semantics that are represented are different enough to let these evolve independently and see if content authors want them to converge or not. Note that you can overlay hAtom and S5 in the same markup. Anyone that is serious about converging these should *try* using both at the same time in a *real* slide presentation example and report back their experience. - Tantek

Repeated Elements

We allow certain elements to be repeated, such as Entry Permalink, Entry Published and Entry Title, even though there can be at most one real value. We provide "disambiguation" rules for sorting out which is the real value. See here, here, here and here.

Your thoughts please... -- David Janes

STATUS - RESOLVED. The spec has explicit rules for disambiguating all these items if they appear multiple times.

Opaqueness

If you have concerns about opaqueness, that is, stopping interpretation below certain hAtom elements, raise them here.

Opaqueness of other microformat elements

How would we handle a case where someone wanted to provide a vcard under the class=entry element for an individual who was neither author or contributor? Consider the hypothetical case where someone wanted to list their "muse" alongside article author and contributors. If this vcard included a title it might be included accidentally as an <atom:title>.

To summarise, Is it possible that other microformats found under the class=entry or class=feed elements need to be considered opaque?

-- BenjaminCarlyle

  • The issue of "muse" and such is somewhat out of scope. However, I grasp your larger point -- what if we wanted to extend or compositie hAtom in the future. Given the 80-20 rule right now, my feeling is to set aside the problem and if it arises, define a class="opaque" element. -- David Janes

See the mfo-examples document, and add further thoughts on this matter there. -- Tantek

Opaqueness of summary and content

What one publisher considers the entry content may differ from another publisher's point of view. Is the content simply a div that does not contain any author/updated/published metadata etc, or could some of that metadata be relevant to the content as well as the entry? Consider updated. last-modified-brainstorming introduces an idea of using <ins> and <del> elements to indicate update time. Updates are also often included in entry content with further information. This suggests to me that the line of opaqueness is blurry.

Perhaps content and summary should not be opaque, and instead rely on the mfo proposal to avoid parsing into microformats below the content level. This approach would allow a single div to contain both "entry" and "content" classes should all metadata be considered content by the author, or would permit any other subset of the metadata to be considered content without repeating one's self.

Consider also the "read more"-style blog. The following nesting of div elements is illegal under current opacity rules:

<div class="content"><div class="summary">......

A further example is provided by _fil_ on #microformats, who uses the rel-tag microformat within his atom:content to be handled as tags in his feed reader.

Identification

The current spec under Schema:Nomenclature:Entry includes the text: "if practical, also define id="unique-identifier" to the Entry" What should be done with this id by parsers? How does this interact (if at all) with the interpretation of a rel=bookmark within the entry?

Also, how should a feed <id> element be filled out from a hAtom source document? Is a rel=bookmark at the feed level required?

The id elements in atom are supposed to survive all future movements of the blog t new hosting arragements and the like. Are current feed URLs or even rel=bookmarks solid enough?

STATUS - OPEN.

HTML Title

Atom permits title to be either plain text or html. hAtom2Atom.xsl currently uses a plain text translation, and some feed readers seem not to handle html titles well (liferea does not normalize-whitespace, for example). Should a hAtom title element become a plain text or a html atom title? If so, should a subset of html be passed through rather than all html (including id, etc)?

rel-tag

Should hAtom use rel-tag for atom category elements?

IMHO yes. -- Tantek

A version of this is currently implemented in hAtom2Atom.xsl, but the interpretation of rel-tag is not straightforward.

rel-tag uses the last path segment of a URI as its tag, for example <a href="http://apple.com/ipod" rel="tag">iPod</a>. Human-friendly content is permitted within the anchor. Atom defines three attributes on a category element. "term" is the category in use. "scheme" is a namespace for this category. "label" is a human-friendly text-only version of the category.

  • This looks like a clear mapping to me - term is last path segment; scheme is the tagspace and label is the text within the anchor? The problem is if the scheme + tag is not a true URL but a URI. So for your example, term is 'ipod, scheme is 'http://apple.com/' and label is iPod. Kevin Marks 15:03, 31 Dec 2005 (PST)

hAtom2Atom.xsl does not currently supply a scheme. Label is taken from the content of the anchor tag, and no special handling for content such as the title attribute of an img element is performed. Term is the portion of the href after the last slash character.

rel-tag permits url encoding for IRIs, as well as conversion of spaces to plus (+) characters. It is unclear whether the conversion of rel-tag data to atom:category/@term should attempt to reverse any such encoding. The handling of plus characters may be especially difficult to reverse (are the plus characters, or spaces?).

  • They are spaces. If you want plus characters use %2B Perhaps I should add this to rel-tag. Kevin Marks 15:03, 31 Dec 2005 (PST)

Excess disambiguation rules?

Disambiguation rules apply to feed and entry title, and hAtom2Atom.xsl implements these. Rules also apply to permalink, published, and updated. These are currently not implemented. If they appear multiple times in the source document they are repeated multiple times.

It is clear that the data relating to these fields may be repeated within a hAtom entry, however the class notation may not. Only one element need be marked with rel="bookmark". Only one need be marked published, and one updated. Should the disambiguation rules be removed and only one element be allowed for each value, or is there value to the publisher in marking different elements with the hAtom class names?

Dependancies

mfo

Does this specification depend on acceptance of a hAtom-compatible mfo? See mfo-examples.

last-modified

Does this specification depend on acceptance of a hAtom-compatible last-modified?

Is atom:content necessary?

Atom's structure is built up around separating content and other metadata. atom:updated, atom:author, and the like are separate from atom:content any may contain repeated data. Microformats are built around bringing the content and the metadata back together. Is there are genuine use case for identifying only part of the atom entry as content? Presumably the whole html entry is fit for human consumption, or it wouldn't be part of a microformatted web page. Could that whole html snippet be used as the content?

Published as default value for atom:updated

It seems to be common practice to include an "updated" section within the main blog content to track updates to an atom:entry as they occur. It is less common to include a value for atom:published within atom:content. atom:published is usually provided by a machine, but atom:updated is often provided by a human.

I suggest that if a value of published exists but no value for updated exists that the required updated field be filled out from the optional published field. I think this would make changing the required value of updated easier for publishers. Also, several updates may occur to a single entry. I suggest that a disambiguation rule be applied such that the the latest timestamp of any updated field be used if several exist. The overal parser semantics would therefore be:

  1. If multiple updated fields exist, choose the most recent one.
  2. If only one updated field exists, choose that value.
  3. If no updated field exists but a published field exists, use the published value for atom:updated.

See Also