Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

These objects would then define the following URIs and interaction model:

*http://example.org/fedora/services/thought-exp:ImageCollection/atom:Domain/feeds*

GET - Service Document containing all image collection feeds. 
*

Code Block
xml
xml

<service xmlns="http://

...

www.w3.org/

...

GET - Service Document containing all object datastream feeds.  This could possibly be a very large list, resulting in a ginormous Service Document  Unlike atom feeds, I don't believe one can implement pagination for this document. 

...

2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
  <workspace>
    <atom:title>Image Collections</atom:title>
    <collection href="http://example.org/fedora/services/

...

demo:SmileyStuff/thought-exp:ImageCollection/

...

GET - Service document for one image collection.  Service documents may enumerate the acceptable content types, so an image collection may list off supported image formats (such as image/png, image/jpeg, etc

...

feed">
      <atom:title>Smiley Stuff Images</atom:title>
      <accept>image/jpeg</accept>
    </collection>
    <collection href="http://example.org/fedora/services/

...

demo:FrownyStuff/thought-exp:ImageCollection/feed

...

" >
      <atom:title>Frowny stuff</atom:title>
      <accept>image/png</accept>
      <accept>image/jpeg</accept>
      <accept>image/gif</accept>
    </collection>
  </workspace>
</service>


http://example.org/fedora/services/thought-exp:Datastream/atom:Domain/feeds

GET - Service Document containing all object datastream feeds.  This could possibly be a very large list, resulting in a ginormous Service Document  Unlike atom feeds, I don't believe one can implement pagination for this document. 

http://example.org/fedora/services/(PID)/thought-exp:ImageCollection/service

GET - Service document for one image collection.  Service documents may enumerate the acceptable content types, so an image collection may list off supported image formats (such as image/png, image/jpeg, etc

Code Block
xml
xml

<service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
  <workspace>
    <atom:title>Image Collections</atom:title>
    <collection href="http://example.org/fedora/services/demo:SmileyStuff/thought-exp:ImageCollection/feed">
      <atom:title>Smiley Stuff Images</atom:title>
      <accept>image/jpeg</accept>
    </collection>
  </workspace>
</service>


http://example.org/fedora/services/(PID)/thought-exp:ImageCollection/feed

GET - Get an atom feed of all images in a collection represented by the PID object.  

Code Block
xml
xml

<feed xmlns="http://www.w3.org/2005/Atom">
 <title>Smiley Stuff Images</title>
 <link href="http://example.org/fedora/services/demo:SmileyStuff/thought-exp:ImageCollection/feed" rel="self"/>
 <updated>1980-03-20T09:15:02Z</updated>
 <author>
   <name>Chis Wilper</name>
 </author>
 <id>info:fedora/demo:SmileyStuff/thought-exp:ImageCollection</id>
 
 <entry>
   <title>Smiley Toilet Brush</title>
   <id>info:fedora/demo:SmileyToiletBrush/thought-exp:ImageItem</id>
   <updated>1979-10-07T17:17:08Z</updated>
   <content type="image/png"
    src="http://example.org/fedora/services/demo:SmileyToiletBrush/thought-exp:ImageItem/media"/>
   <link rel="edit-media"
    href="http://example.org/fedora/services/demo:SmileyToiletBrush/thought-exp:ImageItem/media" />
   <link rel="edit" 
    href="http://example.org/fedora/services/demo:SmileyToiletBrush/thought-exp:ImageItem/entry" />
 </entry>
 
</feed>

POST - Accept only media items (i.e. images in supported formats).  A POSTed image would cause the following to happen:

  1. Create Fedora object for new item created
    1. If the 'Slug' header is defined, possibly assign object a NEW_PID derived from that
  2. Return an ATOM entry found at: http://example.org/fedora/services/(NEW_PID)/thought-exp:ImageItem/entry

http://example.org/fedora/services/(PID)/thought-exp:ImageItem/media

GET - Get an image

PUT - Replace an image.  The item's 'entry' link will reflect the update

http://example.org/fedora/services/(PID)/thought-exp:ImageItem/entry

GET - Get the entry

Code Block
xml
xml

 <entry xmlns="http://www.w3.org/2005/Atom">
   <title>Smiley Beer Glass</title>
   <id>info:fedora/demo:SmileyBeerGlass/thought-exp:ImageItem</id>
   <updated>1979-10-07T17:17:08Z</updated>
   <content type="image/png"
    src="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:ImageItem/media"/>
   <link rel="edit-media"
    href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:ImageItem/media" />
   <link rel="edit" 
    href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:ImageItem/entry" />
 </entry>

PUT - Replace entry metadata

http://example.org/fedora/services/(PID)/thought-exp:Datastreams/service

GET - Service document for one object.  Service documents may enumerate the acceptable content types.. perhaps it makes sense to introspect in the object's models, but it may be more flexible not to enumerate anything at all, if that's possible.

http://example.org/fedora/services/(PID)/thought-exp:Datastreams/feed

GET - Get an atom feed of all datastreams and versions represented by the PID object.

GET - Get an atom feed of all images in a collection represented by the PID object.  

Code Block
xml
xml

<feed xmlns="http://www.w3.org/2005/Atom">
 <title>demo:SmileyBeerGlass datastreams</title>
 <link href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:Datastreams/feed" rel="self"/>
 <updated>1980-03-20T09:15:02Z</updated>
 <author>
   <name>Chis Wilper</name>
 </author>
 <id>info:fedora/demo:SmileyBeerGlass/thought-exp:Datastreams</id>
 
 <entry>
   <title type="text">RELS-EXT</title>
   <id>info:fedora/demo:SmileyBeerGlass/thought-exp:Datastream/RELS-EXT</id>
   <updated>1979-10-07T17:17:08Z</updated>
   <content type="application/rdf+xml"
    src="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:Datastream/media?id=RELS-EXT"/>
   <link rel="edit-media"
    href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:Datastream/media?id=RELS-EXT" />
   <link rel="edit" 
    href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:Datastream/entry?id=RELS-EXT" />
 </entry>
 
 <entry xmlns:thr="http://purl.org/syndication/thread/1.0">
   <title type="text">RELS-EXT.0</title>
   <id>info:fedora/demo:SmileyBeerGlass/thought-exp:Datastream/RELS-EXT.0</id>
   <updated>1979-10-07T17:17:08Z</updated>
   <thr:in-reply-to ref="info:fedora/demo:SmileyBeerGlass/thought-exp:Datastream/RELS-EXT"/>
   <content type="application/rdf+xml"
    src="

...

GET - Get an atom feed of all images in a collection represented by the PID object.  

POST - Accept only media items (i.e. images in supported formats).  A POSTed image would cause the following to happen:

  1. Create Fedora object for new item created
    1. If the 'Slug' header is defined, possibly assign object a NEW_PID derived from that
  2. Return an ATOM entry found at: http://example.org/fedora/services/(NEW_PID)/thought-exp:ImageItem/entry

*http://example.org/fedora/services/(PID)/thought-exp:ImageItem/media*

GET - Get an image

PUT - Replace an image.  The item's 'entry' link will reflect the update

...

http://example.org/fedora/services/

...

demo:SmileyBeerGlass/thought-exp:

...

GET - Get the entry

PUT - Replace entry metadata

*http://example.org/fedora/services/(PID)/thought-exp:Datastreams/service*

GET - Service document for one object.  Service documents may enumerate the acceptable content types.. perhaps it makes sense to introspect in the object's models, but it may be more flexible not to enumerate anything at all, if that's possible.

...

Datastream/media?id=RELS-EXT&version=1979-10-07T17:17:08Z"/>
   <link rel="edit" 
    href="http://example.org/fedora/services/

...

demo:SmileyBeerGlass/thought-exp:Datastream/entry?id=RELS-EXT&version=1979-10-07T17:17:08Z" />
 </entry>
</feed>

...

GET - Get an atom feed of all datastreams and versions represented by the PID object.  

POST - Accept datastream content.  POSTed data would cause the following to happen:

  1. Create a new datastream
    1. If the 'Slug' header is defined, assign object a datastream ID based on (identical to?) that.
  2. Return an ATOM entry found at: http://example.org/fedora/services/(PID)/thought-exp:Datastream/entry?id=DSID?version=XYZ, where 'DSID' is the datastream ID and 'version' is the datastream's version.  entry shall have edit-media link pointing to unversioned datastream media URI.

...

\*http://example.org/fedora/services/(PID)/thought-exp:Datastream/media?id=DSID\[(&version=2008...\]\*)

GET - Get the datastream content

PUT - Put new datastream content (return an error if version is specifed??)

Wiki Markup\*http://example.org/fedora/services/(PID)/thought-exp:Datastream/entry?id=DSID\[(&version=2008...\]\*)

GET - Get entry medatata

PUT -  Modify entry metadata (Not sure what consequences are...)

page is unfinished.  Need to put in discussion and examples, questions/implications, and basic conclusion as to whether this makes sense, and if it truly adds any value to, say, an external APP service.