This pace tries to define the semantics of atom:issued, and defines a method for re-issance of an entry.
This pace is in conflict with the following paces:
This pace is a more advanced version of:
What atom:issued actually means, and what date goes into it is of high debate on atom-syntax. This pace tries to define an objective and formal meaning to it, as well as the semantics and mechanism for re-issuing an entry.
Dublin Core allows multiple 'dct:issued' elements. This proposal restricts 'issued' in Atom to just one and there seems to be an assumption that it is "first issued". The specification should be clearer about that in the definition (first paragraph) than later.
Replace section 4.13.7 with:
4.13.7 "atom:issued" Element
The "atom:issued" element is a Date construct that indicates the date of formal issuance (e.g., publication) of the resource. atom:entry MUST contain an atom:issued element, but MUST NOT contain more than one.
The content of atom:issued MUST contain a time zone, if available.
atom:issued SHOULD be provided by the tool issuing the resource. It SHOULD NOT be provided by the author for other resons than publishing the resource in the future. For this reason, the entry MUST be witheld from publishing until the issue time, and then issued to its intended audience.
atom:issued MAY have a future date within a publishing process (e.g. if the resources in the feed is being reviewed by an editor), but MUST have a date less than or equal to "now" when published.
atom:issued MAY have a date from the past if the resource actually was issued in the past. Example:
The Diary of Samuel Pepys was re-issued on the web in 2004, but was originally issued in book form in the 1900th century. atom:issued should in a such scenario be set to the first issued date, e.g. '1893-03-08'.
If the resource described by atom:entry is re-issued, atom:issued MUST NOT be altered. Instead, a new entry SHOULD be issued that refers to the original entry. See atom:relation for more information.
Add the following section about the Dublin Core relation element.:
4.13.x "atom:relation" Element
The "atom:relation" element is a Link Construct that indicates a resource's relation to another resource.
4.13.x.1 "version-of" attribute
The "version-of" attribute indicates that the resource atom:entry describes is a version of another resource. If the atom:entry is a re-issuance of another resource, this attribute MUST contain the atom:id of that atom:entry. atom:entry MAY contain an atom:relation element with the attribute "version-of" set, but MUST NOT contain more than one.
4.13.x.2 "has-version" attribute
The "has-version" attribute indicates that the resource atom:entry describes exists in other versions.
Use case scenario
We have a scenario of two users writing in their own and reading each other's blogs, and a third user just reading the other's blogs. The authors are Anne and Peter, while the reading user is Elisabeth.
Anne uses an authoring tool called «Simple Type» that does not support <relation>. She uses an aggregator called «Simple Read» that also doesn't support <relation>.
Peter uses a combined authoring and aggregation tool called «Complex Type» that does support <relation>.
Elisabeth uses «Complex Read» which supports <relation>.
Step by step
Anne publishes an entry onto her blog, called «My cat is five years old!». This entry shows up in an Atom feed with the date 'issued' set to the (objective) published date of the entry, and the 'modified' date set to the same date.
Peter fires up «Complex Type» to read Anne's latest writings. The entry «My cat is five years old!» shows up, because it has a new atom:id which his aggregator has never seen before.
Elisabeth fires up «Complex Read» to read Anne's latest writings. The entry «My cat is five years old!» shows up, because it has a new atom:id which her aggregator has never seen before. Elisabeth closes «Complex Read» and turns off the computer because she has to go to the store.
Peter presses the [Write about] button in «Complex Type», which opens a new edit window with the subject «My cat is five years old!». Peter edits this subject so it says «Anne's cat is five years old!». He then writes some words about Anne's cat, how it's so smart it can open doors all by itself, and so on. During the writing process of this entry, he saves it several times.
Peter publishes the entry onto his blog. This entry shows up in an Atom feed with 'created' set to the first time he pressed [Save], 'modified' set to the last time he pressed [Save] and 'issued' set to the time he pressed [Publish]. The entry also contains a 'relation' element with the attribute 'is-based-on' set to the ID of Anne's entry.
Anne fires up «Simple Read» to read Peter's laterst writings. The entry «Anne's cat is five years old» shows up because it has a new atom:id which his aggregator has never seen before. The aggregator does not show or do anything special with the 'relation' element, because «Simple Type» does not support it.
Anne realizes when reading Peter's entry that her cat isn't five, but four years old. «Oh my god, how embarrasing», she thinks, and rushes to edit her entry and correct the error. She opens up «Simple Type», finds the entry «My cat is five years old!» and edits the subject to say «My cat is four years old!».
Anne presses [Save] again, which instantly publishes the changes to the web («Simple Type» doesn't have support for drafts). The entry now shows up in her Atom feed with the same 'issued' date, but with an altered 'modified' date, set to the time she pressed [Save].
In the meantime, Peter has written some entries about trivial stuff like what he has done that day, his excitement of soon having holidays and such.
While writing, Peter notices that something has happened in Anne's weblog. He is so interested in what goes on at her blog, that he's set his aggregator to «Show all changes» on her feed. He has set many other feeds to «Only show significant changes», because he's not so interested in the small changes authors of them do. When Peter opens the «Anne» folder in «Complex Type», he sees that «My cat is four years old!» is in bold. He notices that the title has changed and that the cat is not five, but four years old.
Peter immediately switches to the entry view of «Complex Type» and selects his «Anne's cat is five years old!» entry. He then presses the [Rewrite] (but not [Edit]) button, because he wants to add some major parts to his entry about how absent-minded Anne can be, and not only change the title. A new window, containing a copy of the old entry, opens. He edits the title, appends two paragraphs at the top explaining in a humorous way the error Anne has made, and how lost she can be sometimes.
Peter publishes the entry onto his blog. It has now 'created' set to the first time he pressed [Save] in this entry (which he pressed two times this time), 'modified' set to the last time he pressed [Save] and 'issued' set to the time he pressed [Publish]. The entry also has two 'relation' elements. The first has 'is-based-on' set to the ID of Anne's entry. The other has 'is-version-of' set to the ID of the previous entry he wrote about Anne's cat.
Moreover, the original entry Peter wrote is altered and a 'relation' element is inserted that has an attribute 'has-version' which points to the new entry Peter wrote.
Peter publishes a couple of more entries to his blog before he throws in the towel and goes to bed.
Elisabeth is now home from the store, so she turns on her computer and opens up «Complex Read» to see if there are any news. Elisabeth, which also subscribes to Peter's feed, notices that he has written an entry called «Anne's cat is four years old». She has not seen the entry «Anne's cat is five years old» on Peter's blog, because that entry is pushed off of Peter's feed.
In «Complex Read», Peter's entry shows up just as in Anne's «Simple Read», but it has an additional «related» button that opens up a small dialog window showing Anne's corrected entry «My cat is four years old!». Elisabeth remembers that Anne wrote that her cat was five years old, so she inspects the «related» window further. It also has a reference to Peter's entry «Anne's cat is four years old».
Elisabeth clicks Peter's related entry and it opens in a new window in «Complex Read». She then reads the old entry, and sees that it shows «related» which points to the new and updated entry on Peter's blog. As she hasn't read the newest entry yet, she clicks the title which brings her to it, and she reads it and gets a good laugh about how silly Anne is to forget how old her cat is.
This pace may impact the way tools handle the issued date.
The relation element is 100% opt-in for both producers and consumers, but its existance implies that without using it, it's impossible to signify "major" modifications to an entry.