Just found this mail and thought it worth replying to. It points out a little bug
with the Ontology I just released lately. I made the entry id inverse functional.
That won't do.
If id is inverse functional, then given two entries with the same id
_f1----a-----> <Feed> |---entry--> _e1 ---a-----> <Entry> | |-----id----> <tag:example.com:2005_01_03> | |---title---> "first verzion of the entry" | |-published-> "20 Dec 2004" |...
_f1----a-----> <Feed> |---entry--> _e2 ---a-----> <Entry> | |-----id----> <tag:example.com:2005_01_03> | |---title---> "second version of the entry" | |-published-> "10 Jan 2005" |...
One would have to conclude that the anonymous nodes _e1 and _e2 were the same.
Ie
<tag:example.com:2005_01_03> -----1/id-------> _e
the inverse of id (called 1/id) can only have one value.
But if we tried to do this we would have to conclude that the entry with
<tag:example.com:2005_01_03>, called _e had two publication dates. Yet an
Entry can only have at most one.
So we end up with a contradiction by making id inverse functional.
By simply making it functional we bypass that problem, and we have correctly
model what we had: namely we have two Entries with the same id, which one can
think of as two versions of the same entry.
On 20 Dec 2004, at 18:45, Danny Ayers wrote:
... Some of the possible approaches for an RDF/XML expression of the info include (ignoring namespace decls & case!):
RSS 1.0 style:
<rdf:RDF> <head/> ... <entry rdf:about="vemmi://example.org/2003/32397"> <title>Stuff</title> ... </entry> ... </rdf:RDF>
this would be equivalent to making id inverse functional. If you do this then you have the merging problem explained above.
-------------------------------------
A bit more plain-XMLy :
<feed> <head/> ... <entries> <entry rdf:about="vemmi://example.org/2003/32397"> <title>Stuff</title> ... </entry> ... </entries> ... </feed>
yes this just groups the entries in an "entries" tag. I don't see that it
adds much. (I know you are just pointing out all the different ways one can
do this)
----------------------------
Lumpier:
<feed> ... <hasEntry> <Entry rdf:about="vemmi://example.org/2003/32397"> <title>Stuff</title> </Entry> </hasEntry> ... </feed>
note: the RDF people think that having properties named hasXXX is quaint. Or so at least DanC told me on #irc quite a few months ago.
------------------------------
Closer to Atom 0.3 :
<feed> ... <entry rdf:parseType="Resource"> <id>vemmi://example.org/2003/32397</id> <title>Stuff</title> ... </entry> ... </feed>
This is exactly right, except that id should absolutely not be inverse functional.
Just functional will do :-)
The last is kind of interesting, having the id attached to a blank node. If id were spec'ed as an inverse functional property that might work nicely.
But as far as I can tell none fit too well with :
<id href="vemmi://example.org/2003/32397"/>
Cheers, Danny.
--
http://dannyayers.com
