Warning:
This wiki has been archived and is now read-only.
LogicalEquivalences
From RDB2RDF
Contents
Logical Equivalences Between KR Forms
Following is a set of representations of a simple employee table in different KR forms: Assertions are prefixed by "a:" and a rules (views) by "r:".
Relational
a: CREATE TABLE Employee (id INT, name STRING, manager INT)
INSERT INTO Employee VALUES (1, "Alice", NULL)
INSERT INTO Employee VALUES (2, "Bob", 1)
r: CREATE VIEW SecondLine (
SELECT emp.name AS emp, man.name AS man
FROM Employee AS emp
INNER JOIN Employee AS man ON man.id=emp.manager )
Datalog
a: Employee(1, "Alice", 99999)
r: SecondLine(EMP, MAN) :- Employee(X, MAN, _) Employee(_, EMP, X)
RDF
a: emp:id.1 emp:name "Alice" .
emp:id.2 emp:name "Bob" ; emp.manager emp:id.1 .
SPARQL
r: CONSTRUCT { _:s1 SecondLine:emp ?emp ; SecondLine.man ?man }
WHERE { ?x Employee:name ?man .
?y Employee:name ?emp ; Employee.manager ?x }
RIF (presentation syntax)
r: SecondLine.emp(_:s1, ?emp) SecondLine(_:s1, ?man) :=
Employee:name(?x, ?man)
Employee:name(?y, ?emp) Employee:manager(?y, ?x)