Bill de hOra wrote:
> [[[
> POST http://example.org/user/jsmith/cat HTTP/1.1
> 
> <?xml version="1.0" ?>
> <app:categories xmlns:app="http://www.w3.org/2007/app";
>     xmlns:atom="http://www.w3.org/2005/Atom";>
>   <atom:category term="dog" label="Dog" >
>     
> <atom:id>http://example.org/users/jsmith/entry/ae34f5bc90f</atom:id>
>     
> <atom:id>http://example.org/users/jsmith/entry/ae22ghbc90f</atom:id>
>   </atom>
> </app:categories>
> ]]]
> 
> this provides a structure that we can send to a server 
> saying, "please categorise the things with those ids using 
> this category".

I tried doing something similar:

   <atom:category term="dog" label="Dog" >
     <atom:id>http://example.org/categories/dog</atom:id>
   </atom:category>

to mean "The category may be uniquely identified by the IRI 
http://example.org/categories/dog."; Similarly, I tried using:

   <atom:author>
     <atom:id>http://briansmith.org/identitiy</atom:id>
     <name>Brian Smith</name>
   </atom:author>

to indicate that the author can be uniquely identified by the IRI 
http://briansmith.org/identitiy. 

> Conclusion: we can do a lot with the Atom/Atompub
> elements we already have, if we are allowed the
> freedom to compose the markup - call it "Freedom 0.1".

On the other hand, reusing the existing markup like this creates a lot of 
problems when people give different semantics to the same construct, as shown 
above. That is why I stopped trying to reuse any existing markup for new 
purposes.

By the way, I think it would often make more sense to say "please categorize 
the things with those ids using this category" by making each category its own 
AtomPub collection, and then POSTing links to the collection:

   POST /examples/categories/dog HTTP/1.1
   Host: example.org
   Content-Type: application/atom;type=entry
   
   <entry>
      <content src='http://example.org/users/jsmith/entry/ae22ghbc90f'/>
      ...
   </entry>

or:

   POST /exmaples/categories/dog HTTP/1.1
   Host: example.org
   Content-Type: text/uri-list
   
   http://example.org/users/jsmith/entry/ae22ghbc90f
   http://example.org/users/jsmith/entry/ae22ghbc90f

Then, you can keep up to date with what entries are in that category by polling 
the category's collection feed.

By the way, why did you decide to link to entries using their atom:id, instead 
of by their URI? There seems to be not much difference between:
   
<category><id>http://example.org/users/jsmith/entry/ae22ghbc90f</id></category>
and:
   <category><link rel='categorized' 
href='atom:http://example.org%2Fusers/http://example.org/users/jsmith/entry/ae22ghbc90f'/>

In other words, when you link by atom:id, it is basically the same as linking 
using a new Atom-specific URI scheme. It seems simpler to give every resource a 
working HTTP URL, and then create hyperlinks using those URLs. The major 
problem with linking by atom:id is that atom:id is not a unique identifier 
(even though it is *supposed* to be), but a resolvable HTTP URL can be 
guarenteed unique as long as you control the servers that handle that URL. 

Regards,
Brian

Reply via email to