Open Source Applications Foundation

[Dev] Introduction; Shimmer Prototype Database

Florin Iucha Sun, 10 Nov 2002 23:08:58 -0600


--bp/iNruPH9dso1Pn
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Nov 10, 2002 at 01:13:32PM -0800, Michael R. Bernstein wrote:
> 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: =
=20
> > >=20
> > >    <this> <has-relationship-with> <that>
> >=20
> > You will need to augment this a bit more with attributes on the
> > relation:
> >=20
> >    Phoenis is-connected-by-highway-to 'Los Angeles'
> >                  distance =3D xyz miles
> >=20
> >    Bob is-child-of (Peter, Mary)
> >        index =3D third
> >=20
> > Note that (Peter, Mary) is an object in the previous statement.
> >=20
> > You also need this in order to implement ordered collections in an=20
> > efficient manner: trying to solve 1000 (A comes-before B) relations
> > to find out who is third is not fun.
>=20
> 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.
>=20
> Way oversimplified pseudocode:
>=20
> <Phoenix has-route-to Los-Angeles id=3D"593">
> <593 has-length x>
>=20
> <Peter had-sex-with Mary id=3D"451">
> <Bob is-child-of 451 id=3D"762">
> <762 is-index 3>
>=20
> 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.

I know that you can get away with nothign more than triplets. SAT is
is reducible to 3SAT.

The issue was havin a natural/convenient notation.

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

Now, your example uses quadruplets so you didn't exactly got away with
triplets 8^).

A better set of triplets is:

(S1, Peter, S2)
            (S2, had-sex-with, S3)
                               (S3, Mary, nil)
(S1, is-child-of, S4)
                  (S4, Bob, S5)
                            (S5, index-of, S6)
                                           (S6, 3, nil)

This still assumes a lot of things that need to be expanded (which
triplets are atoms, which relations, etc) , but I think we are getting
waay off track here.

florin

--=20

"If it's not broken, let's fix it till it is."

41A9 2BDE 8E11 F1C5 87A6  03EE 34B3 E075 3B90 DFE4

--bp/iNruPH9dso1Pn
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)

iD8DBQE9zztqNLPgdTuQ3+QRAlDBAJ96xUWaTJSXKBF2M/lm2j3jun5VmwCfSTGw
a015AHr7rzO70TryeESvEcA=
=glKr
-----END PGP SIGNATURE-----

--bp/iNruPH9dso1Pn--