Feed documents are main document types used in Jangle. They are Atom Syndication Format documents and carry the resource data in the atom:entry/content element. Feed elements are used for both collections of resources and single resources.
Example:
http://demo.jangle.org/openbiblio/actors/
Methods allowed: GET, HEAD
Content-type required: application/atom+xml
The schema and syntax of the Atom Feed is structurally identical to how it is defined in RFC 4287, although Jangle defines two extension attributes that appear in <link> elements: jangle:format and jangle:relationship.
Since each entity could span many thousands to millions of resources, Jangle uses feed paging as defined in RFC 5005. The way paged feeds are retrieved and how many resources are contained in given feed is left to the discretion of the implementer.
As a general rule, Jangle feeds that contain more than one resource should be sorted descending by last modification date. Feeds of lists or ranges of resources have no set expectation on the order of resources contained.
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:jangle="http://jangle.org/vocab/">
<title>openbiblio</title>
<link href="http://demo.jangle.org/openbiblio/resources/"/>
<updated>2008-10-02T14:39:37Z</updated>
<link rel="first" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/?offset=0"/>
<link rel="last" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/?offset=6000"/>
<link rel="next" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/?offset=100"/>
<link rel="self" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/" jangle:format="http://jangle.org/vocab/formats#http://www.loc.gov/MARC21/slim"/>
<link rel="http://jangle.org/vocab/formats#http://purl.org/dc/elements/1.1/" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/?format=dc"/>
<link rel="http://jangle.org/vocab/formats#application/marc" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/?format=marc"/>
<link rel="http://jangle.org/vocab/formats#http://www.openarchives.org/OAI/2.0/oai_dc/" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/?format=oai_dc"/>
<link rel="http://jangle.org/vocab/formats#http://www.loc.gov/mods/v3" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/?format=mods"/>
<link rel="search"
href="http://demo.jangle.org/openbiblio/resources/search/description/"
type="application/opensearchdescription+xml" />
<id>http://demo.jangle.org/openbiblio/resources/</id>
<entry>
<title>The Untamed</title>
<link href="http://demo.jangle.org/openbiblio/resources/5878" jangle:format="http://jangle.org/vocab/formats#http://www.loc.gov/MARC21/slim"/>
<link rel="related" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/5878/collections/" jangle:relationship="http://jangle.org/vocab/Entity#Collection"/>
<link rel="alternate" type="text/html" href="http://catalog.jangle.org/openbiblio/shared/biblio_view.php?bibid=5878&tab=opac"/>
<link rel="http://jangle.org/vocab/formats#http://purl.org/dc/elements/1.1/" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/5878?format=dc"/>
<link rel="http://jangle.org/vocab/formats#application/marc" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/5878?format=marc"/>
<link rel="http://jangle.org/vocab/formats#http://www.openarchives.org/OAI/2.0/oai_dc/" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/5878?format=oai_dc"/>
<link rel="http://jangle.org/vocab/formats#http://www.loc.gov/mods/v3" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/5878?format=mods"/>
<author>
<name>Brand, Max,</name>
</author>
<id>http://demo.jangle.org/openbiblio/resources/5878</id>
<updated>2008-03-18T15:57:00-04:00</updated>
<content type="application/xml">
<record xmlns='http://www.loc.gov/MARC21/slim'><leader> Z 22 4500</leader><datafield tag='245' ind1='0' ind2='0'><subfield code='a'>The Untamed</subfield><subfield code='b'></subfield><subfield code='c'>by Max Brand</subfield></datafield><datafield tag='100' ind1='0' ind2='z'><subfield code='a'>Brand, Max,</subfield></datafield><datafield tag='42' ind1='z' ind2='z'><subfield code='a'>dc</subfield></datafield><datafield tag='100' ind1='z' ind2='z'><subfield code='d'>1892-1944</subfield></datafield><datafield tag='245' ind1='z' ind2='z'><subfield code='h'>[electronic resource] /</subfield></datafield><datafield tag='260' ind1='z' ind2='z'><subfield code='b'>Project Gutenberg,</subfield><subfield code='c'>2004</subfield></datafield><datafield tag='500' ind1='z' ind2='z'><subfield code='a'>Project Gutenberg</subfield></datafield><datafield tag='506' ind1='z' ind2='z'><subfield code='a'>Freely available.</subfield></datafield><datafield tag='516' ind1='z' ind2='z'><subfield code='a'>Electronic text</subfield></datafield><datafield tag='830' ind1='z' ind2='z'><subfield code='a'>Project Gutenberg</subfield><subfield code='v'>10886</subfield></datafield><datafield tag='856' ind1='z' ind2='z'><subfield code='u'>http://www.gutenberg.org/etext/10886</subfield><subfield code='3'>Rights</subfield></datafield><datafield tag='856' ind1='z' ind2='z'><subfield code='u'>http://www.gutenberg.org/license</subfield></datafield></record> </content>
<category term="opac"/>
</entry>
...
</feed>
Jangle has defined special atom link "rel" attribute values to define alternate data formats available for the resources in a given feed and the related resources to any given atom:entry.
To declare a feed for the same set of resources (or resource) using a different record format (in this case, Dublin Core rather than marcxml), the following syntax is used:
<link rel="http://jangle.org/vocab/formats#http://purl.org/dc/elements/1.1/" type="application/atom+xml" href="http://demo.jangle.org/openbiblio/resources/5878?format=dc"/>
The rel attribute uses a URI that unambiguously declares the format that would be delivered in the linked feed. The URI http://jangle.org/vocab/formats# must be present to use this link syntax. The remaining URI fragment (in this case, http://purl.org/dc/elements/1.1/) is an identifier to denote the data format present. It does not have to be a namespace URI (any string will do). The full URI (http://jangle.org/vocab/formats#http://purl.org/dc/elements/1.1/) should be dereferenceable to a definition of the identifier. It is within the scope of the Jangle initiative to provide this vocabulary (and a means to contribute to it).
The type attribute must be application/atom+xml. The href attribute should be the URI to the feed which contains the alternate data format. The URI pattern is left to the discretion of the implementer.
These link elements may appear as child elements of the <feed> element or an <entry> element.
Jangle feeds also define relationships between resources. If an Actor has multiple Items associated with it (for example, a borrower has several items checked out), that relationship can be declared like this:
<link type="application/atom+xml" href="http://demo.jangle.org/openbiblio/actors/1711/items/" rel="related" jangle:relationship="http://jangle.org/vocab/Entity#Item"/>
Jangle defined an extension attribute, jangle:relationship to provide the connection between two (or more) resources.
In order to explicitly identify the format of the entity content element payload, Jangle has defined another extension attribute: jangle:format. For feeds with homogeneous record formats (i.e. all entries use the same format), this extension should appear on the rel="self" link element at the feed level and on a link element in the entry. If the record formats are heterogeneous within the feed, the attribute need only appear on link elements within the entry elements. The value of the attribute should be a Jangle format URI (such as: http://jangle.org/vocab/formats#application/marc).
If an entity is flagged as searchable in the connector services response, the Jangle core should also provide an OpenSearch autodiscovery link:
<link rel="search"
href="http://demo.jangle.org/openbiblio/resources/search/description/"
type="application/opensearchdescription+xml" />
Which would actually return a Jangle Explain document.