[Dev] Introduction; Shimmer Prototype DatabaseMichael R. Bernstein 10 Nov 2002 13:13:32 -0800
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.
|