Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 Dr. Philip Cannata 1 fJyswan

2 Dr. Philip Cannata 2 10 Java (Object Oriented) ASP RDF (Horn Clause Deduction, Semantic Web) Relation Jython in Java This Course High Level Languages

3 Dr. Philip Cannata 3

4 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',))),jdbc:oracle:thin:@rising-sun.microlab.cs.utexas.edu:1521:orcl 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))))

5 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'))www.example.org/NEWTEST1/1www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/5www.example.org/NEWTEST1/1www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/2www.example.org/NEWTEST1/1www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/3www.example.org/NEWTEST1/2www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/5www.example.org/NEWTEST1/2www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/4www.example.org/NEWTEST1/2www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/3 www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/5www.example.org/NEWTEST1/3www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/7www.example.org/NEWTEST1/3www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/3 Interpretation output

6 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'))www.exampwww.example.org/NEWTEST1/1www.example.org/NEWTEST1/VAL1www.example.org/NEWTEST1/5www.example.org/NEwww.example.org/NEWTEST1/VAL2www.example.org/NEWTEST1/2www.example.org/NEWTEST1/1www.example.org/NEWTEST1/VAL3 www.example.org/NEWTEST1/3www.example.org/NEWTEST1/2www.example.org/NEWTEST1/VAL1www.example.org/NEWTEST1/5www.example.owww.example.org/NEWTEST1/VAL2www.example.org/NEWTEST1/4www.example.org/NEWTEST1/2www.example.org/NEWTEST1/VALwww.example.org/NEWTEST1/3 www.example.org/NEWTEST1/VAL1www.example.org/NEWTEST1/5www.examwww.example.org/NEWTEST1/VAL2www.example.org/NEWTEST1/7www.example.org/NEWTEST1/3www.example.org/NEWTESTwww.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',))www.example.org/NEWTEST1www.example.org/NEWTEST1/2www.example.org/NEWTEST1/4www.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'))www.example.org/NEWTEST1/www.example.org/NEWTEST1/5www.example.org/NEWTEST1/4www.example.org/NEWTEST1/5www.example.org/NEWTEST1/7www.example.org/NEWTEST1/2 SQLSPARQL

7 Dr. Philip Cannata 7 MAKECONNECT – Python.g

8 Dr. Philip Cannata 8 MAKECONNECT– Python.g

9 Dr. Philip Cannata 9 MAKECONNECT– Python.g

10 Dr. Philip Cannata 10 MAKECONNECT– Python.g

11 Dr. Philip Cannata 11 MAKECONNECT– Python.g

12 Dr. Philip Cannata 12 MAKECONNECT– Python.g

13 Dr. Philip Cannata 13 Connection.java

14 Dr. Philip Cannata 14 Connection.java

15 Dr. Philip Cannata 15 VisitorBase.java

16 Dr. Philip Cannata 16 VisitorBase.java

17 Dr. Philip Cannata 17 Code.java

18 Dr. Philip Cannata 18 CodeCompiler.java

19 Dr. Philip Cannata 19 CodeCompiler.java

20 Dr. Philip Cannata 20 CodeCompiler.java

21 Dr. Philip Cannata 21 SELECT– Python.g

22 Dr. Philip Cannata 22 SELECT– Python.g

23 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

24 Dr. Philip Cannata 24 Tuple.java

25 Dr. Philip Cannata 25 Tuple.java

26 Dr. Philip Cannata 26 CodeCompiler.java

27 Dr. Philip Cannata 27 PyTuple.java

28 Dr. Philip Cannata 28 PyTuple.java

29 Dr. Philip Cannata 29 PyTuple.java

30 Dr. Philip Cannata 30 PyTuple.java

31 Dr. Philip Cannata 31 PyTuple.java Continues until line 319

32 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 tables ex : CREATE TABLE NEWTESTER (VAL1 NUMBER, VAL2 NUMBER, VAL3 NUMBER); addition of elements into tables ex : INSERT INTO NEWTESTER (VAL1, VAL2, VAL3) VALUES (1, 2, 3); select statements including equality where clauses ex : 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.

33 Dr. Philip Cannata 33 Backup Slides of Old Implementation

34 Dr. Philip Cannata 34 Backup slides about old sql insert implementation

35 Dr. Philip Cannata 35 Backup slides about old sql insert implementation

36 Dr. Philip Cannata 36 Backup slides about old sql insert implementation

37 Dr. Philip Cannata 37 Backup slides about old sql insert implementation

38 Dr. Philip Cannata 38 Backup slides about old sql insert implementation


Download ppt "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."

Similar presentations


Ads by Google