Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause...

38
Dr. Philip Cannata fJyswan

Transcript of Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause...

Page 1: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 1

fJyswan

Page 2: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 2

10

Java (Object Oriented)Java (Object Oriented)

ASPASP

RDF (Horn Clause Deduction, RDF (Horn Clause Deduction, Semantic Web)Semantic Web)

RelationRelation

Jython in JavaJython in Java

This CourseThis Course

High LevelHigh LevelLanguagesLanguages

Page 3: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 3

Page 4: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 4

fJyswan$ cat tests/demo.py ; dist/bin/jython ast/astview.py tests/demo.py MAKECONNECT URL jdbc:oracle:thin:@rising-sun.microlab.cs.utexas.edu:1521:orcl UNAME cs345_50 PWORD cs345_50p; DROP TABLE NEWTEST1; # CREATE TABLE NEWTEST1 (VAL1 NUMBER, VAL2 NUMBER, VAL3 NUMBER); x=3 for i in [2, 4, 7]:         INSERT INTO NEWTEST1 (VAL1, VAL2, VAL3) VALUES ((lambda x:x+1) (4), i, x); print (SELECT * FROM NEWTEST1;) print (SELECT VAL2 FROM NEWTEST1;) print (SELECT VAL1, VAL2 FROM NEWTEST1 WHERE VAL3 = x;)

('Module',  ('body',   ('Expr (1,0)',    ('value', ('Connection (1,0)', ('elts',), ('ctx', ('Load',))))),   ('Expr (2,0)', ('value', ('Tuple (2,0)', ('elts',), ('ctx', ('Load',))))),   ('Assign (4,0)',    ('targets', ('Name (4,0)', ('id', 'x'), ('ctx', ('Store',)))),    ('value', ('Num (4,2)', ('n', 3)))),   ('For (5,0)',    ('target', ('Name (5,4)', ('id', 'i'), ('ctx', ('Store',)))),    ('iter',     ('List (5,9)',      ('elts',       ('Num (5,10)', ('n', 2)),       ('Num (5,13)', ('n', 4)),       ('Num (5,16)', ('n', 7))),      ('ctx', ('Load',)))),    ('body',     ('Expr (6,1)',      ('value',       ('Tuple (6,1)',        ('elts',         ('Call (6,49)',          ('func',           ('Lambda (6,50)',            ('args',             ('arguments',              ('args',               ('Name (6,57)', ('id', 'x'), ('ctx', ('Param',)))),              ('vararg', None),              ('kwarg', None),              ('defaults',))),

AST

fjyswan files

$ find . -type f -print ./build.xml ./extlibs/jsqlparser ./extlibs/jsqlparser.jar ./extlibs/META-INF ./extlibs/ojdbc6.jar ./fjyswanreadme.txt ./grammar/Python.g ./src/org/python/antlr/ast/Connection.java ./src/org/python/antlr/ast/Tuple.java ./src/org/python/antlr/ast/VisitorBase.java ./src/org/python/antlr/ast/VisitorIF.java ./src/org/python/compiler/Code.java ./src/org/python/compiler/CodeCompiler.java ./src/org/python/core/PyTuple.java ./tests/astdemo.py ./tests/demo.py

We’ll discuss the ones in bold first.

           ('body',             ('BinOp (6,59)',              ('left',               ('Name (6,59)', ('id', 'x'), ('ctx', ('Load',)))),              ('op', ('Add',)),              ('right', ('Num (6,61)', ('n', 1))))))),          ('args', ('Num (6,65)', ('n', 4))),          ('keywords',),          ('starargs', None),          ('kwargs', None)),         ('Name (6,69)', ('id', 'i'), ('ctx', ('Load',))),         ('Name (6,72)', ('id', 'x'), ('ctx', ('Load',)))),        ('ctx', ('Load',)))))),    ('orelse',)),   ('Print (7,0)',    ('dest', None),    ('values', ('Tuple (7,7)', ('elts',), ('ctx', ('Load',)))),    ('nl', True)),   ('Print (8,0)',    ('dest', None),    ('values', ('Tuple (8,7)', ('elts',), ('ctx', ('Load',)))),    ('nl', True)),   ('Print (9,0)',    ('dest', None),    ('values',     ('Tuple (9,7)',      ('elts', ('Name (9,52)', ('id', 'x'), ('ctx', ('Load',)))),      ('ctx', ('Load',)))),    ('nl', True))))

Page 5: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 5

$ dist/bin/jython tests/demo.py DROP TABLE NEWTEST1 INSERT INTO NEWTEST1 (VAL1, VAL2, VAL3) VALUES (5, 2, 3) INSERT INTO NEWTEST1_RDF_DATA VALUES (1, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', 'www.example.org/NEWTEST1/1', 'www.example.org/NEWTEST1/VAL1', 'www.example.org/NEWTEST1/5')) INSERT INTO NEWTEST1_RDF_DATA VALUES (2, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', 'www.example.org/NEWTEST1/1', 'www.example.org/NEWTEST1/VAL2', 'www.example.org/NEWTEST1/2')) INSERT INTO NEWTEST1_RDF_DATA VALUES (3, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', 'www.example.org/NEWTEST1/1', 'www.example.org/NEWTEST1/VAL3', 'www.example.org/NEWTEST1/3')) INSERT INTO NEWTEST1 (VAL1, VAL2, VAL3) VALUES (5, 4, 3) INSERT INTO NEWTEST1_RDF_DATA VALUES (4, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', 'www.example.org/NEWTEST1/2', 'www.example.org/NEWTEST1/VAL1', 'www.example.org/NEWTEST1/5')) INSERT INTO NEWTEST1_RDF_DATA VALUES (5, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', 'www.example.org/NEWTEST1/2', 'www.example.org/NEWTEST1/VAL2', 'www.example.org/NEWTEST1/4')) INSERT INTO NEWTEST1_RDF_DATA VALUES (6, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', 'www.example.org/NEWTEST1/2', 'www.example.org/NEWTEST1/VAL3', 'www.example.org/NEWTEST1/3')) INSERT INTO NEWTEST1 (VAL1, VAL2, VAL3) VALUES (5, 7, 3) INSERT INTO NEWTEST1_RDF_DATA VALUES (7, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', 'www.example.org/NEWTEST1/3', 'www.example.org/NEWTEST1/VAL1', 'www.example.org/NEWTEST1/5')) INSERT INTO NEWTEST1_RDF_DATA VALUES (8, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', 'www.example.org/NEWTEST1/3', 'www.example.org/NEWTEST1/VAL2', 'www.example.org/NEWTEST1/7')) INSERT INTO NEWTEST1_RDF_DATA VALUES (9, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', 'www.example.org/NEWTEST1/3', 'www.example.org/NEWTEST1/VAL3', 'www.example.org/NEWTEST1/3'))

Interpretation output

Page 6: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 6

SELECT * FROM NEWTEST1

SELECT sub, pred, obj FROM TABLE(SEM_MATCH('(?sub ?pred ?obj)', SEM_Models('NEWTEST1_CS345_RICK'), null, SEM_ALIASES(SEM_ALIAS('','www.example.org/NEWTEST1/')), null))

(('SUB', 'PRED', 'OBJ'), ('www.example.org/NEWTEST1/1', 'www.example.org/NEWTEST1/VAL1', 'www.example.org/NEWTEST1/5'), ('www.example.org/NE WTEST1/1', 'www.example.org/NEWTEST1/VAL2', 'www.example.org/NEWTEST1/2'), ('www.example.org/NEWTEST1/1', 'www.example.org/NEWTEST1/VAL3', ' www.example.org/NEWTEST1/3'), ('www.example.org/NEWTEST1/2', 'www.example.org/NEWTEST1/VAL1', 'www.example.org/NEWTEST1/5'), ('www.example.o rg/NEWTEST1/2', 'www.example.org/NEWTEST1/VAL2', 'www.example.org/NEWTEST1/4'), ('www.example.org/NEWTEST1/2', 'www.example.org/NEWTEST1/VAL 3', 'www.example.org/NEWTEST1/3'), ('www.example.org/NEWTEST1/3', 'www.example.org/NEWTEST1/VAL1', 'www.example.org/NEWTEST1/5'), ('www.exam ple.org/NEWTEST1/3', 'www.example.org/NEWTEST1/VAL2', 'www.example.org/NEWTEST1/7'), ('www.example.org/NEWTEST1/3', 'www.example.org/NEWTEST 1/VAL3', 'www.example.org/NEWTEST1/3'))

SELECT VAL2 FROM NEWTEST1

SELECT b FROM TABLE(SEM_MATCH('(?sub :VAL2 ?b)', SEM_Models('NEWTEST1_CS345_RICK'), null, SEM_ALIASES(SEM_ALIAS('','www.example.org/NEWTEST1/')), null))

(('B',), ('www.example.org/NEWTEST1/2',), ('www.example.org/NEWTEST1/4',), ('www.example.org/NEWTEST1/7',))

SELECT VAL1, VAL2 FROM NEWTEST1 WHERE VAL3 = 3

SELECT b, c FROM TABLE(SEM_MATCH('(?sub :VAL1 ?b) (?sub :VAL2 ?c) (?sub :VAL3 :3)', SEM_Models('NEWTEST1_CS345_RICK'), null, SEM_ALIASES(SEM_ALIAS('','www.example.org/NEWTEST1/')), null))

(('B', 'C'), ('www.example.org/NEWTEST1/5', 'www.example.org/NEWTEST1/4'), ('www.example.org/NEWTEST1/5', 'www.example.org/NEWTEST1/7'), ('w ww.example.org/NEWTEST1/5', 'www.example.org/NEWTEST1/2'))

SQL SPARQL

Page 7: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 7

MAKECONNECT – Python.g

Page 8: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 8

MAKECONNECT– Python.g

Page 9: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 9

MAKECONNECT– Python.g

Page 10: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 10

MAKECONNECT– Python.g

Page 11: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 11

MAKECONNECT– Python.g

Page 12: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 12

MAKECONNECT– Python.g

Page 13: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 13

Connection.java

Page 14: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 14

Connection.java

Page 15: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 15

VisitorBase.java

Page 16: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 16

VisitorBase.java

Page 17: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 17

Code.java

Page 18: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 18

CodeCompiler.java

Page 19: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 19

CodeCompiler.java

Page 20: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 20

CodeCompiler.java

Page 21: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 21

SELECT– Python.g

Page 22: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 22

SELECT– Python.g

Page 23: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 23

Tuple.java and PyTuple.java

fjyswan files

$ find . -type f -print ./build.xml ./extlibs/jsqlparser ./extlibs/jsqlparser.jar ./extlibs/META-INF ./extlibs/ojdbc6.jar ./fjyswanreadme.txt ./grammar/Python.g ./src/org/python/antlr/ast/Connection.java ./src/org/python/antlr/ast/Tuple.java ./src/org/python/antlr/ast/VisitorBase.java ./src/org/python/antlr/ast/VisitorIF.java ./src/org/python/compiler/Code.java ./src/org/python/compiler/CodeCompiler.java ./src/org/python/core/PyTuple.java ./tests/astdemo.py ./tests/demo.py

Page 24: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 24

Tuple.java

Page 25: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 25

Tuple.java

Page 26: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 26

CodeCompiler.java

Page 27: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 27

PyTuple.java

Page 28: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 28

PyTuple.java

Page 29: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 29

PyTuple.java

Page 30: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 30

PyTuple.java

Page 31: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 31

PyTuple.java

Continues until line 319

Page 32: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 32

fjyswanreadme.txt

fjyswan

to connect to a database in fjyswan use the syntax"MAKECONNECT URL $url UNAME $username PWORD $password;"example:MAKECONNECT URL jdbc:oracle:thin:@rising-sun.microlab.cs.utexas.edu:1521:orcl UNAME CS347_RICK PWORD CS347_RICK;

this puts a Connection node on the AST which sets a variable in the visitor when called that is passed to all SQL tuple constructors.

SQL statements passed to a tuple are parsed into SPARQL using jsqlparser.

currently supported are the creation of tablesex : CREATE TABLE NEWTESTER (VAL1 NUMBER, VAL2 NUMBER, VAL3 NUMBER);

addition of elements into tablesex : INSERT INTO NEWTESTER (VAL1, VAL2, VAL3) VALUES (1, 2, 3);

select statements including equality where clausesex : SELECT * FROM NEWTESTER;ex : SELECT VAL2 FROM NEWTESTER;ex : SELECT VAL1, VAL2 FROM NEWTESTER WHERE VAL1 = 1;

tests/demo.py demonstrates these capabilities and tests/astdemo.py displays the abstract syntax tree after a connection statement.

Page 33: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 33

Backup Slides of Old Implementation

Page 34: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 34

Backup slides about old sql insert implementation

Page 35: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 35

Backup slides about old sql insert implementation

Page 36: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 36

Backup slides about old sql insert implementation

Page 37: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 37

Backup slides about old sql insert implementation

Page 38: Dr. Philip Cannata 1 fJyswan. Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This.

Dr. Philip Cannata 38

Backup slides about old sql insert implementation