On 6 Sep 2010, at 02:29, Pat Hayes wrote:
[snip]
This is NOT non-monotonic. The NOT EXISTS conclusion that a triple
does not occur in an identified RDF graph is a perfectly monotonic
inference. It becomes non-monotonic only when you go on to conclude
that if said triple does not occur there, it is false.
That can't be right. I get a non-monotonic consequence relation if I
conclude it is true based on its absence.
However, neither RDF nor SPARQL supports this further conclusion.
Thus, while the SPARQL in query #13 in [1] is (of course) correct,
the English gloss given to is subtly incorrect. What that query asks
is not, as Lee claims, "Find me members of the Senate Armed Service
committee's Strategic Forces subcommittee who do not also serve on
the Personnel subcommittee.", but rather ""Find me members of the
Senate Armed Service committee's Strategic Forces subcommittee who
are not listed in the Personnel subcommittee RDF graph."
But this is exactly epistemic reflection.
The fundamental marker of non-monotonic consequence is that for some
KB, some assertion (A), and some consequence (C), KB |- C and (KB + A)
|\- C, where the plus is simple set-theoretic expansion.
NOT EXISTS seems to meet that criterion. The set of answers shrinks as
we set theoretically add triples to the graph. You can preserve
monotonicity of the consequence relation by treating the "real" KB as
some sort of expanded with the consequences (e.g., filling out the
"blank" part of the table with explicit nulls). But then, you no
longer merely add A, but you also retract the null. But this just
shifts the non-monotonicity to insertion time.
(And similarly for all other uses of !bound trickery.)
? !bound says "Entail some answer iff the variable in the graph
pattern isn't bound, i.e., there is no corresponding ground entailment".
Now, of course, I am being pendantic, since we all know that this
RDF graph is complete, so that if someone isn't listed there, then
they aren't serving on the subcommittee. But *that* inference is not
part of the RDF graph, is not represented by the RDF graph, s not
justified by the semantics of the RDF graph, and is not used by the
SPARQL machinery or justified by the SPARQL semantics.
I don't see that. (Even before, I thought !bound introduced non-
monotonicity.)
So, Bijan's brain fart was in fact not a fart at all.
I think it was, even if, contrary to fact, I had gotten the right
answer. I was overeager to refute the connection between being
commutative and having a formal spec. My bad.
The semantics of SPARQL, even with all the tricks and Bob
MacGregor's complaints to the contrary, is perfectly monotonic.
On 6 Sep 2010, at 07:56, Pat Hayes wrote:
[snip]
I guess it is in a sense, though I'd like to see the example before
committing myself. My point however was directed at the assumption
that implementing not-exists queries itself made the logic
nonmonotonic, which is incorrect.
The consequence relation which includes, in its consequence language
"NOT EXISTS", even in the form you asserted above, has to be non-mon.
It doesn't make the consequence relation between RDF graphs non-mon
(obviously), but one can lose "NOT EXISTS" answers (entailments)
merely by adding statements.
Cheers,
Bijan.