[Dev] Introduction; Shimmer Prototype Database

Michael R. Bernstein webmaven at lvcm.com
Sun Nov 10 13:13:32 PST 2002


On Sat, 2002-11-09 at 07:10, Florin Iucha wrote:
> On Fri, Nov 08, 2002 at 05:15:49PM -0800, Morgen Sagen wrote:
> > Mitch, Al Cho, and I started looking at how we could model the
> > information we wanted to store in a PIM.  After several brainstorming
> > sessions where we drew schema diagrams of varying complexity, we
> > realized information can be boiled down into statements of the form:  
> > 
> >    <this> <has-relationship-with> <that>
> 
> You will need to augment this a bit more with attributes on the
> relation:
> 
>    Phoenis is-connected-by-highway-to 'Los Angeles'
>                  distance = xyz miles
> 
>    Bob is-child-of (Peter, Mary)
>        index = third
> 
> Note that (Peter, Mary) is an object in the previous statement.
> 
> You also need this in order to implement ordered collections in an 
> efficient manner: trying to solve 1000 (A comes-before B) relations
> to find out who is third is not fun.

RDF has a concept called reification, which comes in handy here. This
means that you can label a subject/predicate/object triple with an
identifier, and then make statements about that triple.

Way oversimplified pseudocode:

<Phoenix has-route-to Los-Angeles id="593">
<593 has-length x>

<Peter had-sex-with Mary id="451">
<Bob is-child-of 451 id="762">
<762 is-index 3>

So you see, you can get away with nothing more than the simple
subject/predicate/object triple, as long as the object in the
relationship can be another triple referenced by an id.

Cheers,

Michael Bernstein.

P.S. if I screwed up the explanation, please let me know. I'm still an
RDF newbie.




More information about the Dev mailing list