Re: use/mention and reification: rdf:predicate/subject/object [was: RDF Abstract Syntax...]

[..]
> In KIF, there's an axiom schema...
>     (<=> (wtr 'p) p)
> (provided wtr doesn't occur in p
> cf http://logic.stanford.edu/kif/dpans.html#10.3).
>
> so we can trade (not color sky blue) for
>    (wtr '(not (color sky blue))
>
> let's suppose rdf_type is defined ala
>    (forall (?C ?x) (<=> (rdf_type ?x ?C) (holds ?C ?x))
> and let's define a class Falsehood:
>    (forall (?formula)
>      (<=> (rdf_type ?formula Falsehood) (wtr '(not ^?formula))) )
>
> and let's let ?s2 = '(color sky blue)
> and ?s1 = '(rdf_type ?s2 Falsehood)
>
> and rdf_Statement = KIF triple (i.e. list of length 3)
> and rdf_predicate = KIF first
> and rdf_subject = KIF second
> and rdf_object = KIF third
>
> then we have
>    (rdf_type ?s2 rdf_Statement)
>    (rdf_subject ?s2 'sky)        ; note: 'sky, not sky
>    (rdf_predicate ?s2 'color)
>    (rdf_object ?s2 'blue)
>
> and
>    (rdf_type ?s1 rdf_Statement)
>    (rdf_subject ?s1 '?s2)
>    (rdf_predicate ?s1 'rdf_type)
>    (rdf_object ?s1 'Falsehood)
>
>
> then it all works out: if we decide ?s1 is true, i.e.
>    (wtr ?s1)
> then we can use the axioms of
> triple/first/second/third to get
>    (= ?s1 '(rdf_type ?s2 Falsehood))
> so then substituting, we get
>    (wtr '(rdf_type ?s2 Falsehood))
> and using the wtr axiom schema, we get
>    (rdf_type ?s2 Falsehood)
> and using triple/first/second/third again, we have
>    (= ?s2 '(color sky blue))
> and substituting, we have
>    (rdf_type '(color sky blue) Falsehood)
> then using our definition of Falsehood, we have
>    (wtr '(not (color sky blue)))
> and using wtr once more,
>    (not color sky blue)
> QED.

Yep
and very nice!

[...]
> in order to spell out S2, we must write:
>
>   <rdf:Description rdf:about="#S2">
>     <rdf:type
>      rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement/>
>     <rdf:subject rdf:resource="data:,http://example/stuff#sky"/>
>     <rdf:predicate rdf:resource="data:,http://example/vocab#color"/>
>     <rdf:object rdf:resource="data:,http://example/stuff#blue"/>
>   </rdf:Description>
>
> or perhaps:
>
>   <rdf:Description rdf:about="#S2">
>     <rdf:type
>      rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement/>
>     <rdf:subject>http://example/stuff#sky</rdf:subject>
>     <rdf:predicate>http://example/vocab#color"</rdf:predicate>
>     <rdf:object>http://example/stuff#blue</rdf:object>
>   </rdf:Description>

I've been working for months and months with a similar one

  <rdf:Statement rdf:about="#S2">
    <rdf:subject>http://example/stuff#sky</rdf:subject>
    <rdf:predicate>http://example/vocab#color"</rdf:predicate>
    <rdf:object>http://example/stuff#blue</rdf:object>
  </rdf:Statement>

and it actually worked quite well, but
> but perhaps that's so different from the way
> rdf:predicate/subject/object are specified, understood,
> and used that we need to give them new names.

So indeed for the log:quote in the RDF/xml notation,
you couldn't have it made more clear!

--
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/

PS I'm not wtr'ing my garden

Received on Saturday, 26 May 2001 18:59:18 UTC