Synopsis: how to state in OWL that a newer entry replaces an older one.
----
I have changed my mind on :Version. Reto had opened me to the idea
that it should be possible for an entry to have multiple versions at
the same time, as long as their content was different. So he
suggested, one should have an English and a German version at the
same time. This would be indeed an interesting structure, but it is
not the one the Atom working group is working with, and so is not one
for AtomOwl. (but other ontologies can work with those types of
structures if they wish)
So I now believe that an entry is identified by its :id and :updated
time stamp:
[] cifp:productProperty ( :updated :id );
a owl:InverseFunctionalProperty . [1]
Ie: if two object have the same updated time stamp and id, then they
are owl:sameAs.
We used to have a weaker relation that stated that :updated :id
and :content had to be CIFPs [1]. This was weaker in that it would
have allowed us to have two entries with the same time stamp if they
had different contents (so they could have had an xhtml and an html
content, or a German and a French content). This would have been an
interesting concept, but it would not have been the one that the Atom
working group is employing. How do I know?
I think this is made clear by the following things:
- The syntax spec states that there cannot be 2 entries with the
same updated time stamp and id in the same feed (it is SHOULD
restriction)
- The protocol as far as I understand has a clear notion of one
entry replacing another one. If it were possible to have 2
distinguishable entries with the same updated time stamp, then I
think the protocol would have to be more subtle. (This needs more
careful analyis)
- The idea currently is that aggregators that read different feeds
and see an entry with a later updated time stamp but same id, will
present the later entry to the user (if they trust both feeds). No
one is suggesting that one should only replace an earlier entry if
the content is of the same type.
If this were not the case then an aggregator confronted with the
following 2 entries
[ a :Entry;
:id <tag:eg.com/e1>;
:content [ :type "text/plain";
:value "some text" ];
:updated "2003-12-13T18:30:02Z"^^xsd:dateTime
].
[ a :Entry;
:id <tag:eg.com/e1>;
:content [ :type "text/html";
:value "<html><body><b>some</b> text</body></html>" ];
:updated "2003-12-15T20:50:33Z"^^xsd:dateTime
].
would not know what to present the user! Is the later entry
presenting a new content that should be displayed side by side to the
user? Or is the later entry replacing the earlier one?
I think the atom working group is clear about this. The later entry
*replaces* the earlier one. But if the two entries have the same
updated time stamp then it is impossible to tell which should replace
which.
Kindof QED.
Henry
[1] http://esw.w3.org/topic/CIFP