A Transcription from SQL to FOL (First Order Logic)

AI Thread Summary
Transcribing SQL queries into First Order Logic (FOL) involves converting basic statements and more complex queries like joins into well-formed formulas (wffs). The discussion highlights that an Inner Join between two tables can be represented by a specific wff with free variables reflecting the joined columns. There is a query about how to define the model of a union of two tables, suggesting it may involve a set union of the models of the respective wffs. A proposed wff for the union includes free variables corresponding to the matching columns in the tables. Overall, the conversation focuses on the technical aspects of representing SQL operations in FOL.
WWGD
Science Advisor
Homework Helper
Messages
7,700
Reaction score
12,695
Hi All,
When a query is made in SQL , it is transcribed into FOL in the back end , and, if the transcription is a wff , the models, if any, are returned as the answer to the query. I have an idea of how the transcription works for basic statements, but, does anyone know the actual " transcription map" for more complicated queries, such as, e.g., joins? Do we use product models in this case, or do we union the models to form new ones?
 
Physics news on Phys.org
I'll have a go at this, since nobody else has.

If a table in the database is represented by an atomic wff, and we have tables ##p,q## represented by the a ##m##-ary predicate ##P## and a ##n##-ary predicate ##Q## respectively, then I think the Inner Join of the two tables on the first ##r## arguments to both tables, in the same order, will be represented by the following wff with ##m+n-r## free variables:
$$P(x_1,...,x_m)\wedge Q(x_1,..x_r,x_{m+1},...,x_{m+n-r})$$
 
  • Like
Likes WWGD
andrewkirk said:
I'll have a go at this, since nobody else has.

If a table in the database is represented by an atomic wff, and we have tables ##p,q## represented by the a ##m##-ary predicate ##P## and a ##n##-ary predicate ##Q## respectively, then I think the Inner Join of the two tables on the first ##r## arguments to both tables, in the same order, will be represented by the following wff with ##m+n-r## free variables:
$$P(x_1,...,x_m)\wedge Q(x_1,..x_r,x_{m+1},...,x_{m+n-r})$$
Thanks, Andrew, how would the model of the union then be defined, as just a set union of the two models ( the models of the two wffs)?
 
WWGD said:
Thanks, Andrew, how would the model of the union then be defined, as just a set union of the two models ( the models of the two wffs)?
I think I'd try the following for
Code:
 select x1,x2,...,xr from p UNION select x1,x2,...,xr from q
$$\exists x_{r+1},x_{r+2},...,x_{m+n-r}:\ P(x_1,...,x_m)\vee Q(x_1,...,x_r,x_{m+1},...,x_{m+n-r})$$
This wff has ##r## free variables, corresponding to the ##r## columns in the tables ##p## and ##q## that match.
 
Back
Top