catching up .... meaning of graphs; database mapping

I missed a day!  Catching up on a plane... reads:
> Semantic Web Interest Group IRC Chat Logs for 2006-11-25
> [...]

> 00:07:43 <bblfish> mmh:
> 00:08:01 <bblfish>
> "If this were the case then that would be the case"
> 00:08:37 <bblfish>
> That's not what { :thermostat :temp :high } log:implies  
> { :heating :power "0" } . says
> 00:10:17
Well, it is if the meaning of :power is "the power *should* be set to"

> <bblfish>
> "If this were the case then that would be the case" is a  
> counterfactual statement. It is true if in the closest possible  
> worlds in which the antecedent is true, the consequent is true
> 00:10:29 <bblfish> log:implies is something else.
> 00:12:34 <bblfish> I have a feeling log:implies is just the  
> material conditional. The material conditional works on sentences.  
> But sentences can be grouped with "and" "or", etc... which is what  
> is being done above

I've heard other suggest that too.

> 00:50:11 <ericP> bblfish, i think that there is ample precedent for  
> associating the identity of graphs with their source that we would  
> break a lot of stuff to assert that identical graphs have the same  
> identity
Ummm... hang on.  Let's not confuse Graphs and Documents.  I hold  
that the content of a N3 formula is its identity.

> 00:50:52 <bblfish> Ok. I did not know about the precedent.
> 00:50:58 <ericP> foaf.rdf != Copy%20of%foaf.rdf
No, of course they are not equal -- but they are not graphs.

They are documents.  They may well express the same graph.

> 00:51:27 <bblfish> but the content of the source of a graph can  
> change over time
The relation between a document and its contents can, yes, for some  
documents -- though it is something which is managed with care in  
many systems.

> 00:52:01 <ericP> indeed. identity isn't associated with constancy

> 00:52:15 <bblfish> Well that's easy to model
> 00:52:51 <ericP>
> if you come up with a c14n for RDF graphs, you could md5sum it and  
> use it for equivilance, signature, etc
> 00:52:58
> <bblfish>
> <> log:semantics { ... }, { ... }, { ... } .

> <bblfish> a url can have a number of graphs as log:semantics
That's a bug, in general.   If the content of a document has changed,  
and an agent is aware of it then the old log:semantics won't hold.

If the document has changed and the agent is not aware of it, then it  
works under a -- often benign -- misapprehension.

If the HTTP representation comes with an expiry datetime which is in  
the future, then the misapprehension is licensed by the publisher.   
Loosely this means this means that in any social protocol, the reader  
can hold the publisher to having said the earlier graph at the later  
time instead of the graph the reader would have got at the later time.

> 00:53:16 <bblfish> over time

> 00:54:00
> <ericP>
> that's true of any property in RDF.
Well, many.  I wouldn't say math:negation

> for instance, if my foaf:knows lists gets larger
> 00:54:52
> <ericP>
> the annotea server has a form of c14n in it. that is, graphs come  
> out with a predicable expression and someone could reproduce it  
> with different code
Canonicalization of graphs is a potentially time-consuming thing.

Jesus who worked with us over the summer made a graph hashing  
algorithm -- not simple.

> 2 graphs could have the same statements, but be asserted at  
> different times, and so have different properties
Well, I would say that the one graph had relations to different times.

> <bblfish>
> yes. I suppose we don't know what the semantics of a graph are.
> One thought: the set of possible worlds in which the statements  
> therein are true.
If we try to defined meaning closely in that way, we end up basing it  
on concepts which are hairier than 'meaning'.

Well, leaving bnodes aside, we would say, no? that the graph was true  
iff the statements are all true. So we can think of the meaning as  
being related to the possible worlds... but does it help us?  Does it  
give us more to work on than just talking about when a statement is  

I think it is interesting to think about the meaning of a formula as  
related to the concept of information. When an agent believes that it  
is in one of  N possible worlds, and then is told the graph, and  
concludes that it must now be in a second set of only M possible  
worlds, M<N, the intersection with the set of possible worlds in  
which the graph is true, then can we say it has received information  
something like log2(N/M) bits.?  If the message was k bits long can  
we talk about the usefulness of the message to the agent as log2(N/M)/ 
k and so on?

It might be useful to link this to the versioning work in the TAG  
which talks (too glibly for PatH) about meaning of messages.

> 00:59:50 <ericP> { :book :color :red } doesn't really reflect that,  
> but { :I :trust :myAccountant } may
> 01:00:13
> <bblfish>
> well your book may be red today, and blue tomorrow

It is possible to model time, but it is important to make a simple  
quasi-static model first as that is an approximation we use to first  
order in the vast number of cases.

log:semantics is the simplest version of that quasi-static model. You  
can make a complicated model of the HTTP transactions and sometimes  
we have to, but it is a very neat IMHO architectural property of the  
semantic web that you can represent it as a single function.

	G = W(r)

where W is log:semantics.

> 01:01:15 <ericP> there is a limited subset of the semantics which  
> we are willing to document, and write programs to interpret. those  
> i think should be constant to a given (unchanged) graph regardless  
> of context
> 01:01:28
> <bblfish>
> if the meaning of a graph is the set of possible worlds in which it  
> is true, then two graphs with the same statements have the same  
> meaning.
yes. i would agree with both.

> 01:01:56
> <ericP>
> the statement about my chameleon book always has the same  
> semantics: the book is read. the truth of that may vary over time.

> 01:02:58
> <ericP>
> not sure i understood the "set of possible worlds" caveat, but yes,  
> i think that sameness comes from having the same triples

ah good

> 01:03:27
> <ericP>
> it's just that our graph identifiers don't have anything to do with  
> graph content

That's a SPARQL issue -- that it hides the graph and uses names  

> 01:03:58
> <ericP>
> -3s/read/red/
i thought pun was intended

> 01:04:22
> <bblfish>
> I can see that this is a difficult probelm. Probably better left  
> undetermined for a while
> 01:05:00
> <ericP>
> some motivated community will deal. perhaps you will be motivated  
> enough to be part of it
> 01:05:26
> <ericP>
> in the mean time, i just model the present.
> 01:05:35
> <bblfish>
> mhh. Well the problem someone on atom owl asked me what the  
> identity of awol:Content is
I'm on a plane or I would look this up.

> 01:05:51
> <bblfish>
> you can't just model the present :-)
> 01:06:03
> <bblfish>
> because you can't fetch all your tuples at the same time
Silly.. I don't worry about the fact that the first and second parts  
of the string I hear from you might be parts of different  
sentences.... we make approximations which are generally reliable and  
we handle breakages as exceptions.

> 01:06:12
> <bblfish>
> I was thinking of doing the following:
> 01:06:28
> <bblfish>
> whenever I fetch some content I add the following to my store
> 01:06:46
> <bblfish>
> [ a :Content; :src <....>;
> 01:07:04
> <bblfish>
> fetched "2006-...";
> 01:07:12
> <bblfish>
> log:semantics { ... }
> 01:07:16
> <bblfish>
> ]
Ok, though I think log:semantic is the relation between the source  
and the graph not between the Content bnode and the graph.

> [...]

> 01:27:15
> <bblfish>
> perhaps better <> log:semantics { []  
> a :Entry; :title ... }
> 01:27:24


> * ericP draws somehting up liek that...
> 01:27:35
> <bblfish>
> and understand that your quad store means the above when it asks  
> you to name a graph.
> 01:31:21
> <bblfish>
> ericP: mmh I just saw your work on mysql and SPARQL. How does that  
> compare with D2RQ?
> 01:33:48
> <ericP>
> i can't remember if D2RQ is access to conventional normalized RDBs,  
> or to triple stores
> 01:34:13
> <bblfish>
> RDBs
> 01:35:02
> <ericP>
> SPASQL is for access to conventional RDBs. the MySQL implementation  
> does this without a re-writer (parser is in the MySQL daemon)
> 01:35:10
> <bblfish>
> I mapped the Roller weblogger database to SPARQL here : http:// 
> 01:35:50
> <bblfish>
> so you have some mapping file that maps rdf urls to tables in the  
> database?
> 01:35:57
> <bblfish>
> as D2RQ has.
> 01:38:23
> <ericP>
> mapping was simple done with an algorithm
> 01:39:12
> <bblfish>
> sounds cool anyway :-)
> 01:40:32
> <ericP>
> i play with doing it with rules in an earlier re-writer i had, but  
> don't seem to be able to come up witih it
> 01:41:21
> <ericP>
> i plan to do it with rules again in the MySQL impl. that way, i can  
> share syntax with other systems
> 01:42:21
> <ericP>
> i talked to chrisB about that too
> 01:43:25
> <bblfish>
> cool. would be fun if there was one syntax for this.
> 01:43:39
> <bblfish>
> or rather one ontology for this mapping
Hmmm.   standards work?

> 01:43:48
> <bblfish>
> (don't care about the syntax)
> 01:44:59
> <ericP>
> if you assume and algorithmic mapping from relation/attribte (table/ 
> colum) to URI, you can use n3 rules to write down the  
> transformation to more conventional properties
> 01:46:37
> <bblfish>
> did you see the D2RQ mapping language? They don't need rules to  
> describe the mapping.

One needs something -- it is a question of to what extent you can  

the common patterns of RDB use in a nice simple declarative language,

or a nice UI.

dbview starts with an algorithm, and allows you to add hints to let  
it do a better job.


Received on Monday, 27 November 2006 08:47:42 UTC