# Base: AllInOneDatabase.n3
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix :        <http://bblfish.net/work/atom-owl/2004-08-12/Atom.owl#> .

_:b1  a       <http://xmlns.com/foaf/0.1/Person> ;
      <http://xmlns.com/foaf/0.1/homepage>
              <http://bblfish.net/> ;
      <http://xmlns.com/foaf/0.1/mbox>
              <mailto:henry.story@bblfish.net> ;
      <http://xmlns.com/foaf/0.1/name>
              "Henry Story"^^xsd:string .

<tag:bblfish.net/20040813/1752/blog1#version1>
      a       :EntryVersion ;
      :alternate
              [ a       :Link ;
                :href   <http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html#entry.2004-08-13-1752.n3> ;
                :mime-type "text/html"^^xsd:string ;
                :text   "html blog entry"^^xsd:string
              ] ;
      :content
              [ :data   """The entry file using the Entry class is pretty easy to understand. As an example let us take the file describing this entry, namely <a href='entry.2004-08-13-1752.n3'>entry.2004-08-13-1752.n3</a>.<br><code><pre>  &lt;&gt;    a       :Entry ;
      :author [ a       &lt;http://xmlns.com/foaf/0.1/Person&gt; ;
                &lt;http://xmlns.com/foaf/0.1/homepage&gt;
                        &lt;http://bblfish.net/&gt; ;
                &lt;http://xmlns.com/foaf/0.1/mbox&gt;
                        &lt;mailto:hjs@bblfish.net&gt; ;
                &lt;http://xmlns.com/foaf/0.1/name&gt;
                        \"H. Story\"^^xsd:string
              ] ;</pre></code><br> The first line just specifies that this file ('&lt;&gt;' in N3) is an Entry. It then continues by specifying the author of the Entry using the FOAF classes. Everything else in the file is pretty self evident. Perhaps the following requires a little closer look at<br><code><pre>      :id     &lt;tag:bblfish.net/20040813/1752/blog1&gt; ;
      :entry-version &lt;tag:bblfish.net/20040813/1752/blog1#version1&gt; ;
      :in-reply-to &lt;tag:bblfish.net/20040813/1445/blog1#version1&gt; ;
      :title  [ a       :Content ;
                :data   \"N3 illustration on the two pespectives\"^^rdf:string ;
                :mime-type \"text/simple\"^^xsd:string
              ] .
</pre></code><br> Here we specify the id and entry-version tags. Notice that with a well designed URI structure one should be able to guess the id tag from the version tag. Here the version tag just consists of the entry id with '#version1' appended.<p> Notice the <code>in-reply-to</code> property. It relates the current Entry not to another Entry (with a URL) but to antother EntryVersion. How do we retrieve the location of the EntryVersion to which this Entry is a reply? Well further down in the file we have the following statement: <br><code><pre>  &lt;tag:bblfish.net/20040813/1445/blog1#version1&gt;
      :entry-location &lt;entry.2004-08-13-1445.n3&gt; .</pre></code><br> which associate that entry version with a Entry URL namely the above <a href='entry.2004-08-13-1445.n3'>entry.2004-08-13-1445.n3</a>.<p> How does this Entry appear in the <a href='AllInOneDatabase.n3'>AllInOneDatabase.n3</a>? We just need to search that file for the EntryID <code>tag:bblfish.net/20040813/1752/blog1</code><br><code><pre>&lt;tag:bblfish.net/20040813/1752/blog1&gt;
      a       :EntryID ;
      :author _:b2 ;
      :created \"2004-08-13T17:52:00+0200\"^^xsd:dateTime ;
      :in-reply-to &lt;tag:bblfish.net/20040813/1445/blog1#version1&gt; ;
      :state  &lt;tag:bblfish.net/20040813/1752/blog1#version1&gt; .</pre></code><br> This just gives us the author <code>_:b2</code> wich is an empty node that is specified in more detail elsewhere in the file, the creation time, what this EntryId was in reply to, and the EntryState tag. The values for that tag are also to be found in the file, and its content should correspond to the text you are now reading. """^^xsd:string ;
                :mime-type "text/html"^^xsd:string
              ] ;
      :entry-location <http://bblfish.net/work/atom-owl/2004-08-12/entry.2004-08-13-1752.n3> ;
      :title  [ :data   "N3 illustration on the two pespectives"^^xsd:string ;
                :mime-type "text/simple"^^xsd:string
              ] .

<tag:bblfish.net/20040813/1632/blog1#version1>
      a       :EntryVersion ;
      :alternate
              [ a       :Link ;
                :href   <http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html#entry.2004-08-13-1632.n3> ;
                :mime-type "text/html"^^xsd:string ;
                :text   "html blog entry"^^xsd:string
              ] ;
      :content
              [ :data   "Let me illustrate two views on an Entry graphically, so as not to have to take any sides among the many possible serialisations of semantic web triples: N3, N-Triples, RDF, ... Each of these serialisation formats can be mapped onto a graph of triples, as explained in the w3c's <a href='http://www.w3.org/TR/rdf-mt/'>RDF Semantics</a> paper. I here represent resources in rounded rectangles, blank nodes by circles, Literals by rectangles, and of course predicates by named arrows.<p> Let us start off with a simple graphical representation of an Entry written in a file  <code>entry1.n3</code>, written by Karl Dubost, where he asserts the cryptic '2b v not2b'. <br><img src='Atom-FOAF-ExampleEntry-1.jpg'><br> The <code>id</code> of the entry is <code>tag:e1</code>, and it is the first version as hinted at by the  <code>entry-version</code> which is <code>tag:e1#v1</code>. The entry was created on 11 Jun 2002 at 5pm, and was published (<code>issued</code>) shortly thereafter, at 10 minutes past 5. (Note that since we know that the entry is written by Karl Dubost, we may be able to find who is friends are if we have access to some FOAF files that mention him.)<p> Perhaps shortly later Karl finds that he wants to make a change to his entry. He prefers titles to start with capitals, and changes his statement to a question. He is still thinking about this change, so this change does not yet have a publication date. (how we got this file is of course a problem for my story now). As a result the graph we have is as follows:<br><img src='Atom-FOAF-ExampleEntry-2.jpg'><br> Here I have highlighted in green the changes to the graph. Gone is the issued field, a modified date has appeared, and the data fields of the title and entry fields have slightly changed. Of course we have a new version id.<p> Any person who fetches  <code>entry1.n3</code> after the change (and after he issues it) will not be able to retrieve the original version,  as it will have been completely replaced by the new one. They will know when the file was last modified though. But if someone were to keep track of all these changes - either the editor that Karl is using in order to allow him to backtrack to previous versions were he to think he had made a mistake, or some agregator that wanted to keep a fuller view of the changes made to the posts on Karl's web site (perhaps in order to notify the aggregator's owner that a reply he wrote to Ken's post had changed) - then he would presumably want to keep the changes stored in its local database by organising the entries by EntryID, in  a database similar to our <a href='AllInOneDatabase.n3'>AllInOneDatabase.n3</a>. The graph for this entry would then look like this:<br><img src='Atom-FOAF-ExampleEntry-3.jpg'><br> Here the root of the tree is the <code>EntryID</code>, which points to the two <code>EntryVersion</code>s. Notice that in this case the <code>EntryVersion</code>s have an <code>entry-location</code>, to help find the original entry file. The location is not attached to the <code>EntryID</code> as the location of an Entry could change over time. In this case  the entry has remained in the same position.<p> It should be very easy to specify a logical relation allowing one to deduce one of the views from the other.  Since we are speaking in ontology, there is not concptual priority of one of these views over the other. They both exist simultaneously."^^xsd:string ;
                :mime-type "text/html"^^xsd:string
              ] ;
      :entry-location <http://bblfish.net/work/atom-owl/2004-08-12/entry.2004-08-13-1632.n3> ;
      :title  [ :data   "Graphical illustration of the two pespectives"^^xsd:string ;
                :mime-type "text/simple"^^xsd:string
              ] .

<tag:bblfish.net/20040629/1010/blog1#version1>
      a       :EntryVersion ;
      :alternate
              [ a       :Link ;
                :href   <http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html#entry.2004-06-29-1010.n3> ;
                :mime-type "text/html"^^xsd:string ;
                :text   "html blog entry"^^xsd:string
              ] ;
      :content
              [ :data   " This is an example blog to illustrate what a fully semantic weblog could look like. Instead of using RSS or Atom content for the feed, I show here how one can create a very powerful, flexible and easy to understand system based on Semantic Web Triples, presented for clarity in <a href='http://infomesh.net/2002/notation3/'>N3 format</a> and backed up by an <a href='http://www.w3.org/TR/owl-ref/'>OWL ontology</a>.<p> This project is a continuation of the work by Danny Ayers on  <a href='http://semtext.org/atom/atom-semweb.htm'>Atom+OWL</a>, but it does not feel the need to stay so close to the Atom  specification, and is more interested in using all the tools available to the Semantic Web developer to show how much further one can go in this direction, than it is in convincing people in the Atom community that there is a simple mapping  from their work to this one. By integrating with the rest of the Semantic Web community one can also more clearly describe the true contribution of Atom: by refactoring Danny's simple mapping, and extracting elements that are better addressed by other OWL libraries (such as <a href='http://xmlns.com/foaf/0.1/'>FOAF</a>), we can locate the core of Atom.<p> Another difference concerns the role of standards. Whereas Atom which is aiming to create a standard  format for blogging, this method is following in the spirit of the FOAF group,  an attempt to create something like a software library,  in the spirit of an Open Source project."^^xsd:string ;
                :mime-type "text/html"^^xsd:string
              ] ;
      :entry-location <http://bblfish.net/work/atom-owl/2004-08-12/entry.2004-06-29-1010.n3> ;
      :title  [ :data   "A Blog on combining Atom and FOAF"^^xsd:string ;
                :mime-type "text/simple"^^xsd:string
              ] .

<tag:bblfish.net/20040812/2035/blog1#version1>
      a       :EntryVersion ;
      :alternate
              [ a       :Link ;
                :href   <http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html#entry.2004-08-12-2035.n3> ;
                :mime-type "text/html"^^xsd:string ;
                :text   "html blog entry"^^xsd:string
              ] ;
      :content
              [ :data   "Here is a partially simplified UML diagram of Atom-FOAF. <p><img src='Atom-FOAF-overview.jpg'><p> The reality is a little more complicated because there are in fact two ways to represent an Entry:<ul>  <li> the simple default one shown here  <li> another way that takes into account the possible states an Entry can have over time.</ul> There is a simple logical relation between the two views, which I will get into in a later blog entry.<p> Two important things to notice here are the yellow and green background zones. <br> The classes on the green background come from the <a href='http://xmlns.com/foaf/0.1/'>FOAF</a>  namespace. Those on the yellow background have until recently been thought to belong to the Atom  namespace. It is my contention here (arrived at after a long conversation with Ken McLeod) that these Feed classes are in fact much more general, and don't in any particular way belong to Atom. We can find  similar structures in many places we look on the web - pretty much anywhere we need to  chunk a potentially large list of results into smaller sections - such as for example search engine results, WebDav search results(?)... So this is a first attempt at  simplification. By pushing out everything Atom related into the Blog class located on the white background reserved for Atom concepts, we end up with a little 'Feed' structure that could be nicely useful elsewhere (after due renaming perhaps) and with a Blog class  where we can place a lot of the 'introspection' information. <p> The UML diagram is of course backed up by the formally specified <a href='Atom.owl'>Atom OWL spec</a> that ships with this release."^^xsd:string ;
                :mime-type "text/html"^^xsd:string
              ] ;
      :entry-location <http://bblfish.net/work/atom-owl/2004-08-12/entry.2004-08-12-2035.n3> ;
      :title  [ :data   "An overview UML diagram"^^xsd:string ;
                :mime-type "text/simple"^^xsd:string
              ] .

<tag:bblfish.net/20040813/0530/blog1#version1>
      a       :EntryVersion ;
      :alternate
              [ a       :Link ;
                :href   <http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html#entry.2004-08-13-0530.n3> ;
                :mime-type "text/html"^^xsd:string ;
                :text   "html blog entry"^^xsd:string
              ] ;
      :content
              [ :data   "This also very nicely illustrates what I was trying to get at with my <a href='http://www.imc.org/atom-syntax/mail-archive/msg04596.html'>It's about the Entries, Stupid!</a> post I sent a few months back. By simplifying the model down to the core it becomes apparent that it is indeed the Entry that is at the core of Atom.  The person and the Feed concepts are not central to Atom. They are generic concepts that can be found and used elsewhere."^^xsd:string ;
                :mime-type "text/html"^^xsd:string
              ] ;
      :entry-location <http://bblfish.net/work/atom-owl/2004-08-12/entry.2004-08-13-0530.n3> ;
      :title  [ :data   "It's all about the Entries, stupid!"^^xsd:string ;
                :mime-type "text/simple"^^xsd:string
              ] .

<tag:bblfish.net/20040813/1752/blog1>
      a       :EntryID ;
      :author _:b2 ;
      :created "2004-08-13T17:52:00+0200"^^xsd:dateTime ;
      :in-reply-to <tag:bblfish.net/20040813/1445/blog1#version1> ;
      :state  <tag:bblfish.net/20040813/1752/blog1#version1> .

<tag:bblfish.net/20040712/1935/blog1#version1>
      a       :EntryVersion ;
      :alternate
              [ a       :Link ;
                :href   <http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html#entry.2004-07-12-1935.n3> ;
                :mime-type "text/html"^^xsd:string ;
                :text   "html blog entry"^^xsd:string
              ] ;
      :content
              [ :data   "All of the content here is freely licenced under the gpl for the code, and the <a href='http://creativecommons.org/licenses/by-sa/2.0/'>Attribution-ShareAlike 2.0</a> Creative Commons license, for the text. "^^xsd:string ;
                :mime-type "text/html"^^xsd:string
              ] ;
      :entry-location <http://bblfish.net/work/atom-owl/2004-08-12/entry.2004-07-12-1935.n3> ;
      :title  [ :data   "Copyrights"^^xsd:string ;
                :mime-type "text/simple"^^xsd:string
              ] .

<tag:bblfish.net/20040712/1935/blog1>
      a       :EntryID ;
      :author _:b1 ;
      :created "2004-07-12T19:35:00+0200"^^xsd:dateTime ;
      :state  <tag:bblfish.net/20040712/1935/blog1#version1> .

<tag:bblfish.net/20040813/1632/blog1>
      a       :EntryID ;
      :author _:b2 ;
      :created "2004-08-13T16:32:00+0200"^^xsd:dateTime ;
      :in-reply-to <tag:bblfish.net/20040813/1445/blog1#version1> ;
      :state  <tag:bblfish.net/20040813/1632/blog1#version1> .

<tag:bblfish.net/20040629/1010/blog1>
      a       :EntryID ;
      :author _:b1 ;
      :created "2004-06-29T10:10:00+0200"^^xsd:dateTime ;
      :state  <tag:bblfish.net/20040629/1010/blog1#version1> .

<tag:bblfish.net/20040813/1445/blog1#version1>
      a       :EntryVersion ;
      :alternate
              [ a       :Link ;
                :href   <http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html#entry.2004-08-13-1445.n3> ;
                :mime-type "text/html"^^xsd:string ;
                :text   "html blog entry"^^xsd:string
              ] ;
      :content
              [ :data   "The current model proposes two view on an entry: <ul><li>the simple Entry, that can be found at a certain retrievable location, and shows only its current state.<li>the Entry as a historical thing, that encompasses all the changes that occurred to it in the actualworld (we don't deal with <a href='http://en.wikipedia.org/wiki/David_Lewis_%28philosopher%29'>counterfactual</a> entries). This is the EntryID and its associated EntryVersion-s.</ul>This is illustrated by the following diagram:<p><img src='Atom-FOAF-twoEntries.jpg'><p>Again I have tried to highlight the two areas by placing their classes on differently colored backgrounds. On the yellow background is the main class for the temporal Entry representation, and on the green background, we have the atemporal Entry Representation. Given any one of these one can deduce the other. Ie, they are  logical consequences of one another.<p> Some of the main points distinguishing them are: <ul> <li> An entry has a URL resource, that allows one to fetch the information (for example a  relative uri such as <a href='entry.2004-06-29-1010.n3'>entry.2004-06-29-1010.n3</a>),  whereas EntryID and EntryVersions are URNs such as <u>tag:bblfish.net/20040629/1010/blog1#version1</u> which will indeed uniquely identify an Entry, but will not allow one to retrieve them without a search engine. This difference creates a fundamental difference in use between these two ways of looking at the entry. An Entry is what people should be editing and fetching in a RESTful manner using GET, POST, and PUT. An EntryID is how a client would identify the Entry-s it downloaded to keep track of the changes to them, and that to which they were responding, so it could follow how the entry  propagated around the web, etc. The EntryID and EntryState classes are key elements in databases such as <a href='AllInOneDatabase.n3'>AllInOneDatabase.n3</a>, which contains all the information about all the  entries in this directory.  <li> An entry must have an id and of course an entry-version. The unchanging parts of the Entry, its  essential properties, go into the EntryID structure. The contingent properties of an Entry go into the EntryVersion. An EntryID may on the other hand have a number of EntryVersion-s. Each of these EntryVersions represents the state of the Entry over a particular span of time. From an Entry one can easily deduce the EntryVersion and EntryID fields. To go in the opposite direction one first needs to select the latest EntryVersion of an EntryID. <li>An Entry can be a reply to another EntryVersion. It is important to keep track of which version of an entry one is replying to, as this can significantly change the meaning of a response. For clients this could help clients flag responses that might need to be updated or even deleted, or it could help readers beware that a response may no longer be relevant to the entry it is relating to. </ul>"^^xsd:string ;
                :mime-type "text/html"^^xsd:string
              ] ;
      :entry-location <http://bblfish.net/work/atom-owl/2004-08-12/entry.2004-08-13-1445.n3> ;
      :title  [ :data   "Two perspectives on a blog entry"^^xsd:string ;
                :mime-type "text/simple"^^xsd:string
              ] .

<tag:bblfish.net/20040813/0530/blog1>
      a       :EntryID ;
      :author [ a       <http://xmlns.com/foaf/0.1/Person> ;
                <http://xmlns.com/foaf/0.1/homepage>
                        <http://wyman.us> ;
                <http://xmlns.com/foaf/0.1/mbox>
                        <mailto:bob@wyman.us> ;
                <http://xmlns.com/foaf/0.1/name>
                        "bob wyman"^^xsd:string
              ] ;
      :created "2004-08-13T05:30:00+0200"^^xsd:dateTime ;
      :in-reply-to <tag:bblfish.net/20040812/2035/blog1#version1> ;
      :state  <tag:bblfish.net/20040813/0530/blog1#version1> .

<http://bblfish.net/work/atom-owl/2004-08-12/feed.n3>
      a       :Feed .

<tag:bblfish.net/20040813/1445/blog1>
      a       :EntryID ;
      :author _:b1 ;
      :created "2004-08-13T14:45:00+0200"^^xsd:dateTime ;
      :state  <tag:bblfish.net/20040813/1445/blog1#version1> .

_:b2  a       <http://xmlns.com/foaf/0.1/Person> ;
      <http://xmlns.com/foaf/0.1/homepage>
              <http://bblfish.net/> ;
      <http://xmlns.com/foaf/0.1/mbox>
              <mailto:hjs@bblfish.net> ;
      <http://xmlns.com/foaf/0.1/name>
              "H. Story"^^xsd:string .

<tag:bblfish.net/20040813/1047/blog1>
      a       :EntryID ;
      :author _:b2 ;
      :created "2004-08-13T10:47:00+0200"^^xsd:dateTime ;
      :in-reply-to <tag:bblfish.net/20040812/2035/blog1#version1> ;
      :state  <tag:bblfish.net/20040813/1047/blog1#version1> .

<tag:bblfish.net/20040712/1945/blog1>
      a       :EntryID ;
      :author _:b1 ;
      :created "2004-07-12T19:45:00+0200"^^xsd:dateTime ;
      :state  <tag:bblfish.net/20040712/1945/blog1#version1> .

<tag:bblfish.net/20040712/1945/blog1#version1>
      a       :EntryVersion ;
      :alternate
              [ a       :Link ;
                :href   <http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html#entry.2004-07-12-1945.n3> ;
                :mime-type "text/html"^^xsd:string ;
                :text   "html blog entry"^^xsd:string
              ] ;
      :content
              [ :data   "This research is presented in blog format, so that it can itself be a test case for the format it is advocating. The <a href='blogexample.html'>html presentation of this blog</a> does not follow the usual blogging tradition of presenting the main entries in inverse chronological order, as  this would make following the flow of ideas presented here a little awkward.   <p>Blog entries are written by Henry Story, as well as the replies which were added to illustrate threading. All of html and N3 files contained in <a href='.'>this directory</a>  were generated by a <a href='Blog3Example.java'>little java program</a> available in the same directory.  Some of the noteworthy files are: <ul> <li> <a href='Atom.owl'>Atom.owl</a> and <a href='Atom.n3'>Atom.n3</a> the formal OWL spec which backs this   all up. <li> <a href='AllInOneDatabase.n3'>AllInOneDatabase.n3</a> a file that contains all the entries. More on this below. <li> <a href='feed.n3'>feed.n3</a> which is the dynamic entry point to the feed for this blog. The other 'feedxxx.n3' files are feed archives. <li> Each of the entry.xxx.n3 files that describe each of the entries of this blog. </ul>  <p>This model is the second attempt and tries to incorporate all the lessons learned from the <a href='http://bblfish.net/work/atom-owl/2004-06-22/blogexample.html'>first one</a>"^^xsd:string ;
                :mime-type "text/html"^^xsd:string
              ] ;
      :entry-location <http://bblfish.net/work/atom-owl/2004-08-12/entry.2004-07-12-1945.n3> ;
      :title  [ :data   "A Note on Format"^^xsd:string ;
                :mime-type "text/simple"^^xsd:string
              ] .

<tag:bblfish.net/20040813/1047/blog1#version1>
      a       :EntryVersion ;
      :alternate
              [ a       :Link ;
                :href   <http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html#entry.2004-08-13-1047.n3> ;
                :mime-type "text/html"^^xsd:string ;
                :text   "html blog entry"^^xsd:string
              ] ;
      :content
              [ :data   """To start off let us look at the feed files. There are two sets of these files:<ul><li><code><a href='feed.n3'>feed.n3</a></code>, which is the head of the feed, the dynamic file that changes whenever a new entry is added to the blog. This is the file that blog readers will be polling every so often.<li><code><a href='feed-entries_0_to_3.n3'>feed-entries_0_to_3.n3</a></code>, <code>feed-entries_x_to_y.n3</code>,...  each of which is an archive of older feed entries. These files <b>SHOULD NOT</b> change, making them prime candidates for cacheing.</ul> Each of these files is a part of the whole result. I don't yet have a concept yet the union of all the  content in these files. This may be something that needs adding. Each file points to the previous  results with code such as  <br><code><pre>    &lt;&gt;   :previous
              [ a       :Link ;
                :href   &lt;feed-entries_0_to_3.n3&gt; ;
                :mime-type \"application/rdf+n3\"^^xsd:string ;
                :text   \"previous 4 entries\"^^xsd:string 
              ] .
 </pre></code><br>  which says that the previous entries can be found at the resource <code>&lt;feed-entries_0_to_3.n3&gt;</code>. <code>&lt;feed-entries_0_to_3.n3&gt;</code> itself points to the dynamic element of the feed thus <br><code><pre>  &lt;&gt;   a       :Feed ;
      :about  &lt;blog.n3&gt; ;
      :dynamic &lt;feed.n3&gt; ;
</pre></code><br> which points to the dynamic part of the feed. It also points to the blog file that contains the so called 'introspection' information about the blog: namely where the url for adding new entries is located, and other things which I know are not yet fully thought through.<p> <b>Notice</b>: The current feeds contain <b>very little</b> information. They  point to the entries themselves. <code>feed.n3</code> for example points to four (only four for illustrative purposes) entries as shown here:  <br><code><pre>&lt;&gt;    a       :Feed ;
      :dynamic &lt;&gt; ;
      :entry  &lt;entry.2004-08-13-1047.n3&gt; , &lt;entry.2004-08-13-1445.n3&gt; ,
               &lt;entry.2004-08-13-1752.n3&gt; , &lt;entry.2004-08-13-1632.n3&gt; ;
</pre></code><br> To help clients tell which entries they have or have not downloaded we can add further information such as the EntryID and the EntryVersion of each of these entries. That is done further down in the <code>feed.n3</code> file:  <br><code><pre>&lt;entry.2004-08-13-1047.n3&gt;
      :entry-version &lt;tag:bblfish.net/20040813/1047/blog1#version1&gt; ;
      :id     &lt;tag:bblfish.net/20040813/1047/blog1&gt; .

&lt;entry.2004-08-13-1445.n3&gt;
      :entry-version &lt;tag:bblfish.net/20040813/1445/blog1#version1&gt; ;
      :id     &lt;tag:bblfish.net/20040813/1445/blog1&gt; .</pre></code><br> Clearly a lot more could be added. One could add the title (an obvious addition), perhaps the publication date,  the last changed date... One could of course add everything, as with the <a href='AllInOneDatabase.n3'>AllInOneDatabase.n3</a>, but that would be extreemely wasteful in bandwidth and very un-<a href='http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm'>REST</a>ful. What to add and not to add is really an empirical research topic. Having very little information is not really a problem. As long as the client can  determine where the entries are and which entries it allready has fetched (hence the entry-version field) it will only need to fetch the content once. With  HTTP 1.1 Persistent Connections, having to make multiple requests is not at all a problem. """^^xsd:string ;
                :mime-type "text/html"^^xsd:string
              ] ;
      :entry-location <http://bblfish.net/work/atom-owl/2004-08-12/entry.2004-08-13-1047.n3> ;
      :title  [ :data   "N3 illustration - The Feed"^^xsd:string ;
                :mime-type "text/simple"^^xsd:string
              ] .

<tag:bblfish.net/20040812/2035/blog1>
      a       :EntryID ;
      :author _:b1 ;
      :created "2004-08-12T20:35:00+0200"^^xsd:dateTime ;
      :state  <tag:bblfish.net/20040812/2035/blog1#version1> .
