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

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.

Comments appreciated.

Regards,
Paul Gearon

Received on Thursday, 7 April 2005 00:12:19 UTC