[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Collection Item Represenations



PaceCollectionIdiom[1] outlined a basic collection management 
interface for the Atom Publishing Protocol. The idea was to 
pull out an idiom and then reuse that idiom for other collections
in the APP that we need to cover. From our charter
we need to manage:

1. Entries
2. Comments
3. Subjects/Categories
4. Users
5. Templates
6. Other resources (images, etc.)

N.B. I am 'interpreting' the charter at this point. The charter
actually says: 
    * adding, editing, and deleting users
    * setting and getting user preferences

But this raises a question for me. Aren't there 
going to be preferences per
user and, in addition, preferences for the whole blog?
I have assumed, for the time being, that we have global
preferences for a site, and that the global 
preferences won't work like a collection, i.e.
there will be single resource for the preferences
and that it understand GET and PUT.

We know we need to manage them, and 
PaceCollectionIdiom outlines the types of 
URIs we are going to use to manipulate them.

Now we need to settle on the types of 
representations we need. To keep the conversation
on track let's just talk about the representations 
of the individual resources, i.e. the representation
of the the Collection Item Resource,
and not that of the Collection Resource.

1. Entries - The represenation of entries is via an atom:entry.
2. Comments - Since CommentsAreEntries[2], this is also atom:entry.
3. Subjects/Categories - Given the sad state of affairs of the format
    there is nothing there to reuse. So we could use something
    extracted from PaceCategoriesFacet:

    <?xml version="1.0" encoding="utf-8"?>
    <subject  
              version="draft-ietf-atompub-format-03: do not deploy" 
              xmlns="http://purl.org/atom/ns#draft-ietf-atompub-format-03";
              value="http://example.net/myontology/#books";
    >
        Books
    </subject>

Or we could just reuse DC: 

    <?xml version="1.0" encoding="utf-8"?>
    <subject  
              xmln="http://purl.org/dc/elements/1.1/";>
              title="Books">
        http://example.net/myontology/#books
    </subject>

     
4. User - Reuse the Person Construct from the Atom Format:

    <?xml version="1.0" encoding="utf-8"?>
    <author 
              version="draft-ietf-atompub-format-03: do not deploy" 
              xmlns="http://purl.org/atom/ns#draft-ietf-atompub-format-03";>
        <name>John Doe</name>
        <uri></uri>
        <email></email>
    </author>


5. Templates - Let's maximize the reuse and let
    templates be entries also.

6. Other Resources - According to PaceSimpleResourcePosting
   the representation of each of these resource is their native
   representation.

[1] http://intertwingly.net/wiki/pie/PaceCollectionIdiom
[2] http://intertwingly.net/wiki/pie/CommentsAreEntries
[3] http://intertwingly.net/wiki/pie/PaceCategoriesFacet
[4] http://intertwingly.net/wiki/pie/PaceSimpleResourcePosting

    Thanks,
    -joe

-- 
Joe Gregorio        http://bitworking.org