W3C home > Mailing lists > Public > www-rdf-logic@w3.org > May 2001

RE: What do the ontologists want

From: pat hayes <phayes@ai.uwf.edu>
Date: Thu, 17 May 2001 21:31:34 -0500
Message-Id: <v04210117b72a353b53bd@[]>
To: "dehora" <bill@dehora.fsnet.co.uk>
Cc: www-rdf-logic@w3.org
>Hash: SHA1
>: dehora
>: >I think that these two are not at all the same:
>: >
>: >1: RDF reification is a technique to make statements about
>: >statements.
>: >
>: >2: KR reification is a technique for objectifying a statement.
>: pat hayes
>: These seem to me to be clearly identical. Maybe you mean something
>: more by 'objectifying' than I do, but calling something an 'object'
>: (or an 'entity') in KR simply means that it is considered to be in
>: the semantic domain of description, and this is exactly what is
>: implied by saying that one is making statements about it. Objects
>: *are* things that one makes statements about (actually, it would be
>: better to say, things that one could make statements about, but
>: a technical quibble.).
>: Maybe you could elaborate on what you see as the distinction here?
>I'll try.


>I made 2 mistakes at least. First (my bad), I should have
>said this:
>2: KR reification is a technique for objectifying relations.

Ah, OK, but now I disagree. That is what happens when one uses a 
higher-order logic (usually: in the new KIF spec we show how to 
objectify (some) relations in a first-order logic, but that is a 
newish idea). But having relations in the domain - objectifying them, 
referring to them, quantifying over them - doesnt involve any kind of 
reification, as that term is understood in KR.  That is, it doesnt 
refer to sentences, or involve a metalanguage, or any kind of 
reflection principles. (The RDF spec unfortunately uses the 
'higher-level' terminology to refer to a meta-language. This is a 
common error of nomenclature, but its still an error.)

>Second, I mixed up reification and mentioning (and then proceeded to
>waffle on about the difference...oh dear). Though I claim that this
>is easy to do in RDF.
>I don't know enough to say whether reification itself is a dud for
>RDF. In my KR102 class and in the 2 or 3 books I have that mention
>reification, it came across as a technique to allow a language to
>refer to its categories which are sometimes treated as predicates,
>like dotcom(shop.com), and offers a trick that allows you to say
>titsup(dotcom, shop.com) and treat the predicates as terms in the

Careful: do you mean predicate symbols, or the predicates themselves 
(ie the properties that the predicate symbols denote)? The way I 
understand it, reification means treating the symbols as objects. If 
you want to refer to a predicate, you just use the predicate symbol 
in the usual way (ie without reifying it.)
What you are talking about here seems to be translating higher-order 
notation into first-order notation by using what KIF calls a 'holds' 
relation, ie you write  holds(R, ?x)  instead of  R(?x) . Which is a 
neat trick, but not reification.

>And stuff like genus/inheritance using isa() and ako()
>becomes available as you go.

Isa isn't usually thought of as involving reification anywhere I 
know.  Inheritance is simply an efficient way of implementing a whole 
lot of implications or subclass relations. (If you have defaults then 
the logic is more complicated, but it still doesnt involve 

>Now, I don't think RDF statements are
>categories that can be treated like this for the most part, which is
>why I say that reification over them isn't like KR reification. Then
>again, I found KR102 tough going. However my real beef as an
>implementer is with the 4 triples that make up an RDF reification,
>not with the use of a URI acting as a reified statement.
>How about this; all imho:
>1: RDF reification is a technique that turns statements into URIs.
>2: KR reification is a technique that turns predicates into terms.
>in RDF:
>3: a statement is not a predicate.
>4: a statement is not a resource.

? I thought a resource could be anything (?) I am still trying to 
find out what 'resource' means, but Dan Connolly tells me that:
the standard [definition of resource] is RFC2396:

          A resource can be anything that has identity.

which seems to cover just about anything in the universe, certainly 
including RDF statements.

>5: a predicate is a resource.
>6: a resource clearly doesn't need to be reified to have a statement
>made about it.

Not obvious to me at present.

>7: excluding literals, things that are not resources cannot have
>statements made about them.
>8: a reified_statement is a resource.
>9: a _reification consists of 4 statements, which share a
>so I'm inclined to say:
>10: RDF and KR reifications are not the same or at least not
>operating on the same stuff.
>10.a: a _reification is not an object.
>10.b: a reified_statement is an object.
>and inclined to believe that:
>11: I want to be able to nest statements, especially queries.
>12: I want to be able to hang properties off statements.
>13: I might want to reify statements. Who knows.
>14: I'd like to mention a statement with having to make a
>15: I'd like to reify a statement with having to make a _reification.
>16: I'd like to hang properties off a statement with having to make a
>17: I'd like to be able to get my software to easily distinguish
>between 15,16,17.
>18: Bookkeeping _reifications in software is a hassle I could live
>19: In fact the thing I like least about RDF as an implementer are
>20: I've suggested a tacky way to avoid _reifications using literals.
>21: Jonathan Borden's query syntax proposal has better articulation,
>has real legs.

I think that we have come to similar conclusions, if by rather 
different routes.

Pat Hayes

IHMC					(850)434 8903   home
40 South Alcaniz St.			(850)202 4416   office
Pensacola,  FL 32501			(850)202 4440   fax
Received on Thursday, 17 May 2001 22:31:36 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:45:37 UTC