Re: [RDF] Re: Statements/Reified statements

Dave Beckett <dave.beckett@bristol.ac.uk> writes:

> 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! :-)

Ok. I have spent some time, trying to write down what I hope to do
with Wraf.

I will now try to answer you questions by pointing to the
documentation pages:

        http://www.uxn.nu/wraf/RDF-Service/doc/html/


I have probably failed in giving clear explanations.  I would welcome
your help in pointing out what I should explain better.


> >>>Jonas Liljegren said:
> > 
> > Graham Klyne <GK@Dial.pipex.com> writes:
> > 
> > > 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 }
> > > 
> > > 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".
> > 
> > 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.

A statement is just a triple.  I would say that Wraf only deals with
statings:

        http://www.uxn.nu/wraf/RDF-Service/doc/html/stating.html

The statement occure in a model.  I don't use the 'fact' thing.  It's
all about trusting statings.

        http://www.uxn.nu/wraf/RDF-Service/doc/html/trust.html


> > 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.
>
> >  1. Two URIs for the same statement:
> >     S1: [A] --B--> [C]  (M1)
> >     S2: [A] --B--> [C]  (M2)
> > 
> >  2. The same URI for diffrent statements:
> >     S1: [A] --B--> [C]  (M1)
> >     S1: [D] --E--> [F]  (M2)
> > 
> >  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?

Yes. Exactly.  See: I didn't have to spell that out. ;-)


> 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?

The model is a core part of Wraf.  I can model it as a bag of
statements.  But internally, it will be handled as a special case.

        http://www.uxn.nu/wraf/RDF-Service/doc/html/model.html



> > 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
> > combination 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)

Yes...

And the database storage is separated from the internal workings.
This is explaind in the text about nodes:

        http://www.uxn.nu/wraf/RDF-Service/doc/html/node.html



> > What is the most efficiant way of storing data, while still allowing
> > any combinations?
> > 
> > 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'?

Just statings.  There are no isolated statements. They either exist as
a stating or they doesn't exist at all.


> > 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?

That's how I have have done it in Wraf.  I name it the "normal single
representation":

        http://www.uxn.nu/wraf/RDF-Service/doc/html/stating.html

Any model can say things about any resource.  But in Wraf, the
resource stands for explicit and implicit statings, and those will
normally only belong to one model.  But other models can still 'cite'
those statings:

        http://www.uxn.nu/wraf/RDF-Service/doc/html/citation.html


> > 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.

Wraf connects a large amount of diffrent models.

        http://www.uxn.nu/wraf/RDF-Service/doc/html/interface.html

But what I meant was that a stating will usually have a unique URI.
Two models can contain the same statement, but the resource
representing the reified statemnent will not have the same URI as that
of the same statement in another model.  They cold, but Wraf will
treat that as a special case.


> > 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.)  
> 
> 
>   "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.

Correct.  It points to the Model object.  And that object is of type
Model that is subClassOf Container.  The model object will contain the
stating.


> > 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?

I think that's have been explaind by now.


> >   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
> >  --------------------------------------------
> > 
> > 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?

Selections:
           http://www.uxn.nu/wraf/RDF-Service/doc/html/selection.html     


> > 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?

The M&S says that reified statements are not considered facts.  A
nonfact statement is a statement that only exist as a reified
statement and not as a statement.  This has to do with citations:

        http://www.uxn.nu/wraf/RDF-Service/doc/html/citation.html


> >   [S1] --type--> [Statement]
> >   [S1] --subject--> [A]
> >   [S1] --predicate--> [B]
> >   [S1] --object--> [C]
> >   [D] --E--> [S1]
> > 
> > ( Could be drawn as { D E { A B C } }. )
> > 
> > One thought I had was to store like this:
> > 
> >   S1: [A] --B--> [C] (G1)
> >   G2: [D] --E--> [S1] (M1)
> >   G3: [G1] --type--> [Model] (G1)
> >   G4: [G1] --quotedIn--> [M1] (G1)
> > 
> > 
> > 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.

Infered and implicit statements can be placed in other models and thus
not interfereing with the original model.


> > 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?

Huh?


> >  Aliases
> >  -------
> > 
> > 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.

        http://www.uxn.nu/wraf/RDF-Service/doc/html/aliases.html

Maby I'm not exactly clear on this.  What is 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 an
> > 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:
> > 
> >  S1: [A] --B--> [C] (M1)
> > 
> >  S2: [A] --B--> [C] (M2)
> >  S3: [D] --E--> [S2] (M2)
> > 
> > The context of this may let the application infere that S1 and S2 are
> > indeed the same stating, thus adding:
> > 
> >  S4: [S2] --aliasFor--> [S1] (G1)
> > 
> > G1 is here the context depending on the inference rule and the
> > involved models.
> > 
> > 
> > 
> > 
> > Am I right in thinking that you probably thinking that I make all this
> > much more complicated than it ought to be? ;-)
> 
> Yes, sorry!

I have a habit of dreaming of large complete systems.  I have only
documented a small portion of all the things I have thought about.

But I have also thought about how to implement it in a reasonable
timescale, taking one step at the time.


-- 
/ Jonas Liljegren

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

Received on Sunday, 7 January 2001 19:24:20 UTC