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




Reply via email to