# Mapping logic to databases. Was: Cardinality in the open world

From: Paul Gearon <gearon@itee.uq.edu.au>
Date: Thu, 7 Apr 2005 10:11:54 +1000
Message-Id: <67c5dac28b71bb7737380c9be9b23d40@itee.uq.edu.au>

```
I need to respond to what everyone has said about cardinality (thanks
for the responses!), but I thought I'd better write up something on the
approach that I've been taking.  That may help me clear up some of my
fundamental misconceptions, and ease the rest of my process of
understanding.

I'll confess that my terminology may not always be appropriate.
Terminology can be confusing, as different sources define certain
concepts with subtle differences.  For instance, one source I have
defines consistent expressions as being true under at least one
interpretation, while another source defines it as "Having no
contradictions."  These end up being equivalent for most systems, but
there are subtle differences (according to one professor I know), that
I only have a vague grasp of.

My other problem is relating statements in an RDF database to predicate
logic.  Again different people have subtly different ways of doing this
mapping.

The standard meaning of "interpretation" is substituting values into
each variable of a set of formulae (this assumes you accept a specified
meaning for the operations, and you don't have to interpret them as
well).  Since a database contains statements without variables, then
perhaps it is inappropriate to refer to an "interpretation" in this
context?

In what I wrote last time, I chose to use "interpretation" to mean:
"The entire sum of RDF statements which exist in the real world".
Hence, if the model in the database was the single statement:
<ns:entity_1>  <owl:sameAs>  <ns:entity_2>

Then in one interpretation, a statement might exist in the real world
which says:
<ns:entity_1>  <owl:differentFrom>  <ns:entity_2>

Of course, this "interpretation" contains a contradiction, and so it is
inconsistent.  A consistent "real world" could not contain this extra
expression, and so I ignore those interpretations.  I only consider the
interpretations which hold consistent statements.  Of course, there are
an infinite number of such interpretations, though the possibilities
are diminished as I put more data into the database.

In response to some questions that I've been given I'm thinking that I
should not have used "interpretation" for this.  Instead, I should
probably re-orient the question to refer to consistent and "unknown"
conditions, instead of an infinite set of statements which when
combined (say with ⋀) evaluate to true or false.