RE: properties as nodes etc.

On June 27, pat hayes writes:
> >[the cat] --[sat on]--> [the mat]
> >                 |
> >               [for]
> >                 |
> >                 V
> >             [an hour]
> 
> Ah, I see where you are coming from. OK, but look, there are several
> different things here. There is the property of sitting on
> something, in general; there is a particular instance of that
> property, which in this case might be something like the cat's way
> of sitting on the mat (that's the 'trope'); and then there is a
> particular occurrence of a sitting: an event, or happening, or maybe
> a 'situation' in Barwise's sense, or what Hobbs calls an
> 'eventuality'.  Its the latter that have times and places and which
> cause other things to happen. I would suggest that if you want to
> talk about things like that, then you ought to do so explicitly. One
> tried-and-tested idea is to introduce an explicit category of
> events, and connect everything else to them.  Then your example
> would look like this in Ntriples:
> 
> _:x  rdf:type sittingsOn .
> _:x  agent cat .
> _:x  object mat .
> _:x  duration hour .
> 
> where you would also know that
> 
> sittingsOn rdfs:subClassOf events .
> 
> and you could then say other things about that sitting as well, such
> as why it happened and what its results were and who told you about
> it, and so on. You could even say that it never happened or was
> imaginary.

I'm starting with the assumption that the problem here is to represent
relations with arity greater than two. The inability of RDF to express
such things is one of its (many?) major drawbacks. Note that all
semantic data models in DB, all conceptual modelling languages in SE
(like UML), and the most advanced DL do provide such a feature.

The above encoding of a ternary relation in a binary relational model
(like RDF) would be wrong, and in fact it can not be done in RDF at
all. In fact, you are missing the information that there is a unique
instance of the ternary relation for each triple of arguments. So, the
original information stated in the graph making use of the ternary
relation says that given a cat, a mat, and a specific time, then there
is a unique instance of the ternary relation (in this case, the event
of sitting). In your weaker encoding, you may have more than one
instance of the event for each tuple in the original n-ary
relation. Clearly, you violate the semantics of n-ary relations, by
admitting basically that a tuple may appear more than once in the
relation.  
By the way, this is nothing new: in the ER model you do have "weak"
relations. To encode them you need to add a bunch of functional
dependencies to guarantee the uniqueness. If RDF had the ability to
state functional dependencies, then you could do the encoding.

Of course, you may decide that you don't have the semantics of a
ternary relation in the original graph, but then you have to tell me
which is your model theory for it. Possibly a bag semantics could
solve the problem but -- since you are suggesting the above encoding
-- it is up to you to prove the correctness of the encoding you propose
wrt this new bag-based MT :-)

Another solution to the problem would be to deny my initial
assumption: we are not talking about n-ary relations here, and we
don't want to talk about them ever in RDF. Fine for me.

cheers
-- e.

Enrico Franconi                     - franconi@cs.man.ac.uk
University of Manchester            - http://www.cs.man.ac.uk/~franconi/
Department of Computer Science      - Phone: +44 (161) 275 6170
Manchester M13 9PL, UK              - Fax:   +44 (161) 275 6204

Received on Saturday, 29 June 2002 08:21:02 UTC