# Re: Blank nodes, leaning, and the OWA

```On Mon, Mar 28, 2011 at 5:20 AM, Nathan <nathan@webr3.org> wrote:

> Gregg Reynolds wrote:
>
>> On Mon, Mar 28, 2011 at 12:12 AM, Pat Hayes <phayes@ihmc.us> wrote:
>>
>>   Also no *syntactic* rule that allows me to map
>>>
>>> <ex:a> <ex:p> _:x .
>>> _:y <ex:p> _:x .
>>>
>>> to <ex:a> <ex:p> _:x .  This looks like it should be some kind of
>>> syntactic
>>> reduction step, but I find nothing to justify elimination of the second
>>> clause except semantic considerations.
>>>
>>>
>>> It follows from the fact that a graph is defined to be a set of triples.
>>> The set {a, a} is the same as the set {a}.
>>>
>>>
>> P.S.  This is not syntax, it's semantics.  While {a,a} = {a} is true,
>> "{a,a}" = "{a}" is not.  By relying on the definition of set, the
>> (implicit)
>> RDF abstract syntax mapping uses semantics to define a syntactic
>> reduction.
>>  Compare lambda calculus; 2+3 is the same as 5, but you don't get that for
>> free; you have to perform a syntactic reduction by rule.  By the same
>> token,
>> if you want to map
>>
>> [1] <ex:foo ex:bar ex:baz>, <ex:foo, ex:bar, ex:baz>
>>
>> to the abstract syntax <ex:foo ex:bar ex:baz>, you don't get to do it by
>> observing that a graph is a set; you have to have some explicit syntactic
>> rules allowing you to do it.  Otherwise it is not syntax.
>>
>
> I'm missing what you're getting at here, a Graph is a Set of Triples, so
> with basic set theory you get (A = B) ↔ (A ⊆ B)∧(B ⊆ A) or expressed
> logically (A = B) ↔ ∀x[x∈A ↔ x∈B] thus: order and duplicates don't matter
> and thus: cardinality is over distinct members.
>

Right, but those are semantic equations, not syntactic operations.  Pat's
original statement was that leaning is purely syntactic; my point is that it
cannot be entirely syntactic unless you have *syntactic* rules that allow
you to transform the syntax.  In other words, going from "{a, a}" to "{a}",
logically speaking, is a matter of derivation; going from {a,a} to {a} is
consequence.  Or in lambda calculus:  you cannot reduce "2+3" to "5" (NB:
it's all about symbols) based on the equality of the fifth integer and the
sum of the second and third integers.  Just the opposite: it is only because
application of the syntactic reduction rules allow you to derive "5" from
"2+3" that you can infer they have the same denotation.  That's why it's
called the Lambda *calculus*.  I want to know where the RDF calculus is, if
there is one (it's not required; you can have consequence without
derivability in MT).

The larger point is that RDF has at least two semantics (three if you count
going from "resource" to "concept" or "meaning" or whatever as a semantic
mapping), one of which looks kinda like syntax, and the specs don't make
that clear.  Confusion ensues.

> The RDF Semantics define the semantics, the Abstract Syntax is defined in
> terms of lexical and value space

If you don't have symbols, you don't have syntax.  You can define the words
of a language as a set of integer symbols (i.e. '1', '2', etc.), but not as
a set of integers -- unless you want to get really abstract and declare that
the integers are to serve as symbols.  Hodges, "A shorter model theory", p.
2: "[the symbols of a structure] can be any mathematical objects, not
necessarily written symbols.."  But they must be symbols.  RDF abstract
syntax does not have a symbol for blank nodes; ergo it is not syntax, and
RDF graphs cannot be transformed by syntactic rules, because they cannot be
written down, as it were, and syntactic rules would have nothing to operate
on.

Does that clarify anything?

-Gregg
```

Received on Monday, 28 March 2011 12:27:24 UTC