[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Relating Atom Resources w/ Category & Link
- To: Atom-Syntax <atom-syntax@xxxxxxx>, pkeane@xxxxxxxxxxxxxxx
- Subject: Relating Atom Resources w/ Category & Link
- From: "Peter Keane" <pkeane@xxxxxxxxxxxxxxx>
- Date: Wed, 3 Dec 2008 13:23:57 +0000
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:mime-version:content-type:content-transfer-encoding :content-disposition:x-google-sender-auth; bh=PXaXlMjkDYOVyDjFS7dZd7g7jzrOqz+oZmXNZAsFiMM=; b=gOwhopb/DYQh3BCz2hbflvWtGL3M8A5Vvor9yJ4+PRH5NA3Z4zi40rxuvNXuUuFGEa 9Cwau/ZgCRtd1mLCgRMbxe9WT+tOdTObUEMk0gj9ejLO/ALYCNnm6uoc/1+Dljnmn5+O QP6k4zXrNyXrbZD/t+scUa0qoeVqrAXU5bPSw=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition:x-google-sender-auth; b=rx5g9u5tIp+rqruucwvPAImQzDyJzTpagEgItJQND+7X3HvK/F8hbzHhOMoJhZ1Lv2 YX0md02O/9BySLkq9YOjByyxuRkGDStYczJZCUngLwpergMQF7WTUpMxsHYAdvrGgydw I5ux1xCjUxeEpebeomjmv+VLHcIaDqbCr2a8k=
- List-archive: <http://www.imc.org/atom-syntax/mail-archive/>
- List-id: <atom-syntax.imc.org>
- List-unsubscribe: <mailto:atom-syntax-request@imc.org?body=unsubscribe>
- Sender: owner-atom-syntax@xxxxxxxxxxxx
In an eternal quest to find a simple way to express
relationships/hierachies among atom resources (entries), I have come
up with the following. My criteria:
- simple to manage w/ the RDBMS backend
- straightforward to express w/ standard atom constructs
- relatively easy to manipulate w/ AtomPub
The basic idea is that a link and a category will share the same URI
for the link@rel and category@scheme. The parent has the link, the
children have the category. The category@term is the atom id of the
parent, and the link@href expresses a search over the category scheme,
filtered by the parent id.
For example, a set of entries in a Art & Art History Collection, one
concerning the artist, and two about individual works:
<!-- artist entry -->
<entry>
<id>tag:example.com/000123</id>
<title>Vincent Van Gogh</title>
<content>essay about Van Gogh...</content>
<link rel="http://example.com/link/artist_works"
href="http://example.com/link/artist_works?term=tag:example.com/000123"
type="application/atom+xml"
title="Artist Works: Vincent Van Gogh"/>
</entry>
<!-- two work entries -->
<entry>
<id>tag:example.com/000124</id>
<title>Harvest in Provence</title>
<x:artist>Vincent Van Gogh</x:artist>
<content>essay about this painting...</content>
<category scheme="http://example.com/link/artist_works"
term="tag:example.com/000123"/>
</entry>
<entry>
<id>tag:example.com/000125</id>
<title>The Sower</title>
<x:artist>Vincent Van Gogh</x:artist>
<content>essay about this painting...</content>
<category scheme="http://example.com/link/artist_works"
term="tag:example.com/000123"/>
</entry>
I can now use AtomPub to add or remove by simply PUTting the entry
with/without proper category. (There'll be some service doc & category
doc choreography to make most of this discoverable).
I am less concerned about fully functional interop, more concerned
with an extensible method to do these sorts of operations w/ standard
atom tools.
Evil hack? Any other thoughts?
--peter keane