[Dave Beckett <dave.beckett@bristol.ac.uk>] Re: [RDF] Re: Statements/Reified statements

Jonas Liljegren jonas@rit.se
23 Nov 2000 19:19:23 +0100


--=-=-=
Content-Type: message/rfc822
Content-Disposition: inline

X-From-Line: dave.beckett@bristol.ac.uk Thu Nov 23 17:29:13 2000
Envelope-to: jonas@localhost
Received: from localhost ([127.0.0.1] ident=jonas)
	by astral.paranormal.se with esmtp (Exim 3.16 #1 (Debian))
	id 13yzFI-0006cr-00
	for <jonas@localhost>; Thu, 23 Nov 2000 17:29:12 +0100
Received: from mail.rit.se [213.88.137.21]
	by localhost with POP3 (fetchmail-5.5.3)
	for jonas@localhost (single-drop); Thu, 23 Nov 2000 17:29:12 +0100 (CET)
Received: from tatooine.ilrt.bris.ac.uk (tatooine.ilrt.bris.ac.uk [137.222.34.230])
	by mail.rit.se (8.9.3/8.9.3) with ESMTP id RAA19726
	for <jonas@rit.se>; Thu, 23 Nov 2000 17:27:41 +0100
Received: from tatooine.ilrt.bris.ac.uk (localhost [127.0.0.1])
	by tatooine.ilrt.bris.ac.uk (8.9.3/8.8.7) with ESMTP id QAA27659
	for <jonas@rit.se>; Thu, 23 Nov 2000 16:27:40 GMT
To: Jonas Liljegren <jonas@rit.se>
Subject: Re: [RDF] Re: Statements/Reified statements 
In-reply-to: jonas's message of 23 Nov 2000 16:47:55 +0100.
	     <87d7fmheqc.fsf@astral.paranormal.se> 
X-URI: http://www.ilrt.bris.ac.uk/people/cmdjb/
Date: Thu, 23 Nov 2000 16:27:40 +0000
Message-ID: <27657.974996860@tatooine.ilrt.bris.ac.uk>
From: Dave Beckett <dave.beckett@bristol.ac.uk>
Xref: astral.paranormal.se rdf.wraf:126
Lines: 248
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable


Jonas, you have obviously thought about this stuff a lot but I have a
terrible time trying to understand what you are describing.  To show
what I mean, I'm going to take one of your emails and show your
assumptions that I can't follow, but want to! :-)


>>>Jonas Liljegren said:
>=20
> Graham Klyne <GK@Dial.pipex.com> writes:
>=20
> > At 09:51 AM 11/23/00 +0100, Jonas Liljegren wrote:
> >
> > >This means that instead of four, we have five:
> > >
> > >{ uri, pred, subj, obj, model }
> >=20
> > I considered that approach for [1], but have preferred to use
> > properties to create the association between statement-resource and
> > context (model).  The above approach allows a given statement to be
> > associated with only one context/model, where properties allow a
> > given statement-resource to be incorporated into any number of
> > contexts/models.  That seems very much more in line with the RDF
> > philosophy of "anyone can say anything about anything".
>=20
> This depends on if you look at it as a statement or a stating.
> Anybody can state a specific statement but every stating is unique.

statement, stating - what do *you* mean about these things, the word
'statement' is what the problem is about.  Other words such as
occurrance, fact should also be avoided.
>=20
>=20
> There are three special cases:

insert here - "of statements in different models ..."

Of course that depends on what a model is defined as, see below.

>=20
>  1. Two URIs for the same statement:
>     S1: [A] --B--> [C]  (M1)
>     S2: [A] --B--> [C]  (M2)
>=20
>  2. The same URI for diffrent statements:
>     S1: [A] --B--> [C]  (M1)
>     S1: [D] --E--> [F]  (M2)
>=20
>  3. The same URI for the same statement:
>     S1: [A] --B--> [C]  (M1)
>     S1: [A] --B--> [C]  (M2)

You do not say what S1, S2, M1, M2 are or what this form of thing
means:
      ..: [.] --.--> [.] (..)

now I *assume* the thing before the : is a URI for the thing that
follows (you don't say that).  And it is pretty obvious the
[.] --.--> [.] are the triples so we get:
      statement URI: [subject] --predicate--> [object]
but what is the the (..) ??  A 'model' containing the statements?
What is your definition of model - a set of statements?  An RDF
collection such as rdf:bag of statements?  Is that how you would
create it?


> This means that neither the triple, nor the URI can be used as the
> unique key in the storage of RDF.  In the Wraf [2] DBI, I uses the
> kombination of model and URI as the key.

That's a database way of thinking, not generally relevant.  You mean
the primary key of a table you use is (statement URI, model URI)

> What is the most efficiant way of storing data, while still allowing
> any combinations?
>=20
> I think that the most practical thing is to view the reified
> statements as statings.  Since they are stated in diffrent models,
> they will probably have diffrent URIs.  The common case will therefore
> be that a statement belongs to just one model.

terms statings, models used again.  Introduced a new one 'stated'.
When a 'statement' is 'stated' in a 'model' do you get a 'stating' as
well as a 'statement' or just a 'stating'?

> The Wraf is resource centric.  A resource has dynamic and static
> properties.  Also the statements are properties.  Every resource is
> said to belong to exactly one model.  This means that I will have to
> represent the special cases 2 and 3 by expanding the statements to
> their reification.

you say:
  "resource is said to belong to exactly one model."

RDF says resources are identified by URIs so any model can have any
resource in it.  How can you justify the above sentence?


> A previous version (alpha 3) allowed multipple models.  That solved
> case 3, but not case 2.  In addition: what should I do if one of the
> models changed and the other didn't?  This consideration led me to
> conclude that it would be more efficient to just have one model and
> group all the nasty cases together for special handling.  (The same
> thing goes for literals and some other things.)

What do you mean by multiple models? (or model).  In your head,
everything is one model, but in technology terms, models are
scattered around the world, web.  You can't get away from the fact
that I will have models of RDF content and so will you.


> Even if I store statements as {uri, pred, subj, obj, model}, they have
> an implicit representation in the RDF graph.  They are drawn as
> reified statements contained in a model container.  Another
> representation is to give the statement the property model.  (Wraf
> will infere a lot of properties from other properties.)=20=20


  "give the statement the property model"

That's too much shorthand.  I suspect you mean attach a property to a
statement resource/node, the property/arc is called wraf:model or
somesuch but what does it point to?.  You need to then say what that
means.

>=20
>=20
> Case 2, above, has to be spelled out to the point there every URI only
> belongs to one model. Here, we prefix generated URIs with G:

  "every URI only belongs to one model"

!!!  What?

>=20
>   G1: [S1] --type--> [Statement] (M1)
>   G2: [S1] --subject--> [A] (M1)
>   G3: [S1] --predicate--> [B] (M1)
>   G4: [S1] --object--> [C] (M1)

a break here would be clearer to show they are in different models,
or are they?  Different models but same storage?

>   G5: [S1] --type--> [Statement] (M2)
>   G6: [S1] --subject--> [D] (M2)
>   G7: [S1] --predicate--> [E] (M2)
>   G8: [S1] --object--> [F] (M2)



>  Quoting statements and the question of truth
>  --------------------------------------------
>=20
> Instead of having a boolean for each statement, indicating if the
> statement is a fact or just a reified statement, we could use models
> and selections for denoting truth.

New term 'selection' - what is that?

>=20
> The idea is that nonfact statements are placed in another model, or
> is given a special property saying that the statement is not
> endorsed.  Let's say model M1 has statements serialized as:

  "nonfact statements"

please define.  And not by saying 'statements that are not facts' -
what kind of thing is that?

>=20
>   [S1] --type--> [Statement]
>   [S1] --subject--> [A]
>   [S1] --predicate--> [B]
>   [S1] --object--> [C]
>   [D] --E--> [S1]
>=20
> ( Could be drawn as { D E { A B C } }. )
>=20
> One thought I had was to store like this:
>=20
>   S1: [A] --B--> [C] (G1)
>   G2: [D] --E--> [S1] (M1)
>   G3: [G1] --type--> [Model] (G1)
>   G4: [G1] --quotedIn--> [M1] (G1)
>=20
>=20
> Models will have a bunch of metadata about the origin, date and other
> things.  One model could include other models.  But the here invented
> 'quotedIn' can be used to remember that the statement was explicitly
> included in the model.  The 'quotedIn' property is of no importance
> for the reasoning.  But it can be used to recreate the model in
> serialized XML.


Now that does make sense; I had already decided for Redland to add
extra statements (real statements, not "non-fact" ones) to my storage
to describe the model (set of statements) and provide a place for
administrative information to go, provenance etc.  But these would
appear in the model like other statements.


> What's considered to be true will depend on what model's you trust.

Yes.  So I guess I can now work out that you store multiple models in
one storage system.  Why not just use rdf:bag to enclose models in
one storage?


>  Aliases
>  -------
>=20
> Another question is that of resource aliases.  G2 above may be


Which G2?  You define 2 of them.

What is a resource alias?  This sounds like the resource/URI black hole.


> refering to the same statement as another URI.  If it's infered that
> it's indeed the same *stating*, this will be marked up as that it's=A0an
> alias to the 'real' name.  Let's look at an example of one model with
> the original stating and another model quoting that statement, without
> knowing the stating URI:
>=20
>  S1: [A] --B--> [C] (M1)
>=20
>  S2: [A] --B--> [C] (M2)
>  S3: [D] --E--> [S2] (M2)
>=20
> The context of this may let the application infere that S1 and S2 are
> indeed the same stating, thus adding:
>=20
>  S4: [S2] --aliasFor--> [S1] (G1)
>=20
> G1 is here the context depending on the inference rule and the
> involved models.
>=20
>=20
>=20
>=20
> Am I right in thinking that you probably thinking that I make all this
> much more complicated than it ought to be? ;-)

Yes, sorry!

Dave

--=-=-=



-- 
/ Jonas Liljegren

The Wraf project http://www.uxn.nu/wraf/
Sponsored by http://www.rit.se/

--=-=-=--