Re: Semantics for stateful resources

Hi Antoine,

I think I get your point about the benefit of having the entailments of the individual graphs in some form as entailments of the dataset. I am not sure that I like the way it's done in your proposal, because it doesn't distinguish between “that what was said” and “that what could be inferred from what was said”. I think it's important to keep those separate and to be very explicit about the first. So I prefer a “quoting” semantics for the named graphs. Perhaps it's possible to have both.

But let me ask you a question. Let's assume a dataset:

  { :g :assertedBy :Bob; :date "2012-05-25"^^xsd:date. }
  :g { :Bob :name "Bob"; :likes :chocolate. }

This attributes the contents of :g to Bob.

Now consider another dataset:

  :g { :Bob :hates :Alice. }

A couple of questions for you (and others who may want to chime in).

1. Would it be reasonable to say that :g in the first dataset doesn't contain the triple “:Bob :hates :Alice.”?

2. Should the latter dataset be implied the former?

3. Should the latter dataset contradict the former (that is, an inconsistency can be inferred)?


A few more comments inline.

On 24 May 2012, at 17:02, Antoine Zimmermann wrote:
> What is missing in your proposal in order to ordre the use case, is a mechanism which allows the system to exploit the interpretations in the "state extensions".

Ok, acknowledged.

> Syntactically, it seems reasonable to mint a new "graph IRI" for each time frame when statements of interest hold. I have memories that /you/ even proposed to do that in the past of this WG. Of course, from a formal semantics point of view, there is nothing temporal with these IRIs, but the application can have its own IRI scheme such that it keeps track of which graph IRI corresponds to which time frame.

Sure.

> To understand what is true in what time frame, the application has to make inferences on the content of the state-graph pairs.

Understanding what is true in what time frame is one use case. Understanding what was said in what source is another use case. I think your proposal doesn't address the second use case well.

> If you can show me how the conclusion that Joe is an Employee in 2008 can be deduced automatically, using your proposed semantics, or any other semantics, in a standard way, I'd be all in favour of the choice.

It cannot be automatically deduced with the semantics as written, it would require a change or extension. I'll think about it.

>> If I wanted a semantic extension that enforces web semantics (that
>> is, the IRI-graph-pair<i,G>  causes an inconsistency if dereferencing
>> i doesn't yield G), how would I express this extension in your
>> semantics?
> 
> This is fairly problematic to put in any formal semantics, as you need to introduce a notion (dereferencing) which is normally alien to a knowledge representation logic. I would prefer to leave dereferencibility out of the semantics.

I agree, and I would probably formally object to putting dereferencing into the normative formal semantics. But I consider it a big plus if it can elegantly be expressed as a possible extension to the semantics.

> Or provide a looser version of dereferencing, based on an application specific mapping GM from URIs to RDF graphs (a graph-map, analogical to datatype-map) and each application decide whether it is HTTP-dereferencing, local-file-retrieving, in-memory locating, or named-graph-in-datastore-extracting...

This is kind of what my proposal does with the “state relationship” ISREL that relates stateful resources and graphs. So it's not a map with <iri,graph> pairs but <I(iri),graph>. This relationship is not given a priori like a datatype map, but it's part of the interpretation. Thus, asserting the dataset

  :g { :a :b :c. }

makes a claim that the “state relationship” holds between :g and the one-triple graph. A semantic extension can then constrain the state relationship further, imposing for example the semantic condition that if :g dereferences to a graph G, then <I(:g),G> is in the state relationship.

>> What I tried to address in the semantics is Pat's request that we
>> must be explicit about what the IRIs in the IRI-graph-pairs denote.
>> That's all the proposal below answers, really: they denote
>> (indirectly, via an extension) the set of all interpretations of the
>> graph.
> 
> In your proposal, I don't see any significant constraint on what the graph IRIs denote. They can be any resource, provided that the resource is of type StateResource. Nothing in your proposal prevent a foaf:Person to be a StateResource, for instance.

That is true, and it is by design.

> So, it is not defining more precisely what the graph IRI denote than my proposal, it seems.

It does, because it states that the graph IRI denotes a set of interpretations. (Well, it denotes some resource that has a “state extension” that is a set of interpretations. That's just the same little indirection as with class extensions and property extensions in the RDF 2004 semantics.)

Why a set of interpretations? Because intuitively, as far as I understand, asserting an RDF graph is a claim that the word is so arranged that the graph is true; in other words, the “world” is an interpretation that satisfies the graph; in other words, the meaning of the graph is the set of all interpretations that satisfy it. This seems similar to the way for example classes work: classes are resources that have a class extension, which is the set of its members. This doesn't prevent a person from being a class, but it makes clear what a class is and denotes.

Best,
Richard

Received on Friday, 25 May 2012 13:20:20 UTC