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

Slides:



Advertisements
Similar presentations
Oracle 10g & 11g for Dev Virtual Columns DML error logging
Advertisements

BACS 485—Database Management Advanced SQL Overview Advanced DDL, DML, and DCL Commands.
Copyright  Oracle Corporation, All rights reserved. 2 Single-Row Functions.
12-1 Copyright  Oracle Corporation, All rights reserved. What Is a View? EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
Restricting and sorting data 16 May May May Created By Pantharee Sawasdimongkol.
Subqueries 11. Objectives After completing this lesson, you should be able to do the following: Describe the types of problems that subqueries can solve.
Bogdan Shishedjiev SQL1 SQL Reminder of SQL. Bogdan Shishedjiev SQL 2 Subsets of language Data definition language (DDL) –Domain definition –Schema definition.
1Eyad Alshareef Enhanced Guide to Oracle 10g Chapter 3: Using SQL Queries to Insert, Update, Delete, and View Data.
Copyright  Oracle Corporation, All rights reserved. 2 Restricting and Sorting Data.
SQL: Part 4 Original materials supplied by the Oracle Academic Initiative (OAI). Edited for classroom use by Professor Laku Chidambaram. Not for commercial.
Copyright  Oracle Corporation, All rights reserved. 6 Subqueries.
After completing this lesson, you should be able to do the following: Limit the rows retrieved by a query Sort the rows retrieved by a query.
Copyright  Oracle Corporation, All rights reserved. 6 Writing Correlated Subqueries.
Session 3: SQL (B): Parts 3 & 4 Original materials supplied by the Oracle Academic Initiative (OAI). Edited for classroom use by Professor Laku Chidambaram.
OO - Lecture 4 Tutorial Review Associations Inheritance of Functions Polymorphism.
Figure 1–3 Family Tree for RDF Example (see Monday October, 10 link - Oracle Semantic Tutorial examples on 1-28 and 1-29)Oracle Semantic Tutorial examples.
Logical Operators Operator AND OR NOT Meaning Returns TRUE if both component conditions are TRUE Returns TRUE if either component condition is TRUE Returns.
Copyright  Oracle Corporation, All rights reserved. Introduction.
Dr. Philip Cannata 1 Doug Tolbert Unisys Doug Tolbert has been involved with OMG since the early 1990s. He is.
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.
o At the end of this lesson, you will be able to:  Describe the life-cycle development phases  Discuss the theoretical and physical aspects of a relational.
Copyright  Oracle Corporation, All rights reserved. I Introduction.
Creating a Table Create a table, “emp”, containing: –empno – a 4 digit employee number –ename – up to 10 character string –job – up to 9 character string.
Dr. Philip Cannata 1 Programming Languages Prolog Part 3 SQL & Prolog.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Introduction to Relational Databases &
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Cursors These slides are licensed under.
Subqueries.
Subqueries.
1 Information Retrieval and Use (IRU) CE An Introduction To SQL Part 1.
Copyright س Oracle Corporation, All rights reserved. I Introduction.
Copyright  Oracle Corporation, All rights reserved. 4 Accessing a Database Using JBCL.
Copyright  Oracle Corporation, All rights reserved. 2 Restricting and Sorting Data.
7 Multiple-Column Subqueries. 7-2 Objectives At the end of this lesson, you should be able to: Write a multiple-column subquery Describe and explain the.
SQL- DQL (Oracle Version). 2 SELECT Statement Syntax SELECT [DISTINCT] column_list FROM table_list [WHERE conditional expression] [GROUP BY column_list]
SQL. Relating Multiple Tables Relational Database Terminology Row PK Column FK Field NULL.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Basic SQL These slides are licensed under.
Session 2: SQL (A): Parts 1 and 2 Original materials supplied by the Oracle Academic Initiative (OAI). Edited for classroom use by Professor Laku Chidambaram.
8 Producing Readable Output with SQL*Plus. 8-2 Objectives At the end of this lesson, you should be able to: Produce queries that require an input variable.
Dr. Philip Cannata 1 mgr Semantic Data Management.
I-1 Copyright س Oracle Corporation, All rights reserved. Data Retrieval.
Copyright  Oracle Corporation, All rights reserved. 12 Creating Views.
Copyright  Oracle Corporation, All rights reserved. 8 Producing Readable Output with SQL*Plus.
Logics for Data and Knowledge Representation Web Ontology Language (OWL) -- Exercises Feroz Farazi.
An Introduction To SQL Part 2 (Special thanks to Geoff Leese)
1 Information Retrieval and Use (IRU) An Introduction To SQL Part 2.
Dr. Philip Cannata 1 Programming Languages Chapter 19 - Continuations.
Copyright س Oracle Corporation, All rights reserved. I Introduction.
Dr. Philip Cannata 1 Programming Languages Haskell.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Collection Operators These slides are.
Oracle CONNECT BY function JAVA WEB Programming. Emp 테이블의 내용 ( 상 / 하급자 계층구조 ) SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
2-1 Limiting Rows Using a Selection “…retrieve all employees in department 10” EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT BLAKEMANAGER CLARKMANAGER.
6 Subqueries. 6-2 Objectives At the end of this lesson, you should be able to: Describe the types of problems that subqueries can solve Define subqueries.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Grouping These slides are licensed under.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Collection Operators These slides are.
Copyright س Oracle Corporation, All rights reserved. 12 Creating Views.
Copyright  Oracle Corporation, All rights reserved. 2 Restricting and Sorting Data.
Semantic Web in Depth RDF Schema Dr Nicholas Gibbins –
Copyright  Oracle Corporation, All rights reserved. Introduction.
Communicating with a RDBMS Using SQL Database SQL> SELECT loc 2 FROM dept; SQL> SELECT loc 2 FROM dept; SQL statement is entered Statement is sent to database.
Relational Normalization Theory
Subqueries.
Subqueries Schedule: Timing Topic 25 minutes Lecture
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
What Is a View? EMPNO ENAME JOB EMP Table EMPVU10 View
Logics for Data and Knowledge Representation
Subqueries Schedule: Timing Topic 25 minutes Lecture
Restricting and Sorting Data
Subqueries Schedule: Timing Topic 25 minutes Lecture
Copyright © Ellis Cohen
Presentation transcript:

Dr. Philip Cannata 1 RDF

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

Dr. Philip Cannata 3

Dr. Philip Cannata 4 SQL Schaum's Outline of Fundamentals of SQL Programming by Ramon Mata-Toledo and Pauline Cushman (Sep 28, 2000) $13.00 Schaum's Outline of Fundamentals of Relational Databases by Ramon Mata-Toledo and Pauline Cushman (Nov 15, 2000) $32.00 "Oracle SQL By Example (4th Edition)" by Alice Rischert (Paperback - Aug 22, 2009) $42.00 "Semantic Web for the Working Ontologist, Second Edition: Effective Modeling in RDFS and OWL" by Dean Allemang and James Hendler (Paperback- Jun 3, 2011) $43.50 uses

Dr. Philip Cannata 5 SQL

Dr. Philip Cannata 6 select * from ( select empno, ename, job, to_char(mgr) mgr, to_char(sal) sal, to_char(comm) comm, -- all datatypes need to be the same to_char(deptno) deptno, to_char(hiredate) hiredate -- so convert all non-strings to strings from emp ) unpivot (value for x in (ename, job, mgr, sal, comm, deptno, hiredate)) order by empno, x Returns (i.e., converts the emp table to a triple store) EMPNO X VALUE MGR SAL COMM DEPTNO ENAME ALLEN 7499 JOB SALESMAN 7499 MGR SAL COMM DEPTNO ENAME WARD 7521 JOB SALESMAN 7521 MGR SAL DEPTNO ENAME JONES 7566 JOB MANAGER 7566 MGR SAL COMM DEPTNO ENAME MARTIN 7654 JOB SALESMAN EMPNO X VALUE MGR SAL DEPTNO ENAME BLAKE 7698 JOB MANAGER 7698 MGR SAL DEPTNO ENAME CLARK 7782 JOB MANAGER 7782 MGR SAL DEPTNO ENAME SCOTT 7788 JOB ANALYST 7788 MGR SAL DEPTNO ENAME KING 7839 JOB PRESIDENT 7839 SAL DEPTNO ENAME TURNER 7844 JOB SALESMAN EMPNO X VALUE MGR SAL DEPTNO ENAME ADAMS 7876 JOB CLERK 7876 MGR SAL DEPTNO ENAME JAMES 7900 JOB CLERK 7900 MGR SAL DEPTNO ENAME FORD 7902 JOB ANALYST 7902 MGR SAL DEPTNO ENAME MILLER 7934 JOB CLERK 7934 MGR SAL 1300

Dr. Philip Cannata 7 Figure 1–3 Family Tree for RDF Example (see Monday February, 20 link - Oracle Semantic Tutorial examples on 1-28 and 1-29)Oracle Semantic Tutorial examples on 1-28 and 1-29

Dr. Philip Cannata 8 RDF Triple Store - rts Entity or Subject Attribute or Predicate Value or Object JohnSpouseJanice SpouseJohn SammySpouseSuzie SpouseSammy MattSpouseMartha SpouseMatt JohnGenderMale JaniceGenderFemale SammyGenderMale SuzieGenderFemale MattGenderMale MarthaGenderFemale CathyGenderFemale JackGenderMale TomGenderMale CindyGenderFemale JohnFatherOfSuzie JohnFatherOfMatt JaniceMotherOfSuzie JaniceMotherOfMatt CathySisterOfJack BrotherOfCathy... Unnormalized Relational Table - person PersonSpouseGenderFatherOfMotherOfSisterOfBrotherOf JohnJaniceMaleSuzie JohnJaniceMaleMatt JaniceJohnFemaleSuzie JaniceJohnFemaleMatt SammySuzieMaleCathy SammySuzieMaleJack SuzieSammyFemaleCathy SuzieSammyFemaleTom MattMarthaMaleTom MarthaMattFemaleTom CathyJackFemaleJack CathyMaleCathy TomCindyMaleCindy TomFemaleTom

Dr. Philip Cannata 9 RDF Triple Store - rts Entity or Subject Attribute or Predicate Value or Object JohnSpouseJanice SpouseJohn SammySpouseSuzie SpouseSammy MattSpouseMartha SpouseMatt JohnGenderMale JaniceGenderFemale SammyGenderMale SuzieGenderFemale MattGenderMale MarthaGenderFemale CathyGenderFemale JackGenderMale TomGenderMale CindyGenderFemale JohnFatherOfSuzie JohnFatherOfMatt JaniceMotherOfSuzie JaniceMotherOfMatt CathySisterOfJack BrotherOfCathy... Unnormalized Relational Table - person PersonSpouseGenderFatherOfMotherOfSisterOfBrotherOf JohnJaniceMaleSuzie JohnJaniceMaleMatt JaniceJohnFemaleSuzie JaniceJohnFemaleMatt SammySuzieMaleCathy SammySuzieMaleJack SuzieSammyFemaleCathy SuzieSammyFemaleTom MattMarthaMaleTom MarthaMattFemaleTom CathyJackFemaleJack CathyMaleCathy TomCindyMaleCindy TomFemaleTom select Person from person where BrotherOf = ‘Cathy’ select x from rts where ?x BrotherOf ‘Cathy’

Dr. Philip Cannata Create the table to hold data for the model. CREATE TABLE family_rdf_data (id NUMBER, triple SDO_RDF_TRIPLE_S); -- Create the model. execute SEM_APIS.create_rdf_model('family_cs345_XXX', 'family_rdf_data', 'triple'); -- John is the father of Suzie. INSERT INTO family_rdf_data VALUES (1, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' INSERT INTO family_rdf_data VALUES (14, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' Figure 1–3 Family Tree for RDF Sample (see Monday February, 20 link - Family Tree RDF Example for Full Details)

Dr. Philip Cannata Person is a class. INSERT INTO family_rdf_data VALUES (17, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- Male is a subclass of Person. INSERT INTO family_rdf_data VALUES (18, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- Female is a subclass of Person. INSERT INTO family_rdf_data VALUES (19, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- siblingOf is a property. INSERT INTO family_rdf_data VALUES (20, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- parentOf is a property. INSERT INTO family_rdf_data VALUES (21, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- brotherOf is a subproperty of siblingOf. INSERT INTO family_rdf_data VALUES (22, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- sisterOf is a subproperty of siblingOf. INSERT INTO family_rdf_data VALUES (23, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- A brother is male. INSERT INTO family_rdf_data VALUES (24, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- A sister is female. INSERT INTO family_rdf_data VALUES (25, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- fatherOf is a subproperty of parentOf. INSERT INTO family_rdf_data VALUES (26, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- motherOf is a subproperty of parentOf. INSERT INTO family_rdf_data VALUES (27, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- A father is male. INSERT INTO family_rdf_data VALUES (28, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' ' -- A mother is female. INSERT INTO family_rdf_data VALUES (29, SDO_RDF_TRIPLE_S('family_cs345_XXX', ' ' '

Dr. Philip Cannata Select all males from the family model, without inferencing. SELECT m FROM TABLE(SEM_MATCH( '(?m rdf:type :Male)', SEM_Models('family_cs345_XXX'), null, SEM_ALIASES(SEM_ALIAS('',' null)); -- Select all males from the family model, with RDFS inferencing. SELECT m FROM TABLE(SEM_MATCH( '(?m rdf:type :Male)', SEM_Models('family_cs345_XXX'), SDO_RDF_Rulebases('RDFS'), SEM_ALIASES(SEM_ALIAS('',' null)); -- RDFS inferencing in the family model BEGIN SEM_APIS.CREATE_RULES_INDEX( 'rdfs_rix_family_cs345_XXX', SEM_Models('family_cs345_XXX'), SEM_Rulebases('RDFS')); END; / Inferencing

Dr. Philip Cannata General inferencing in the family model EXECUTE SEM_APIS.CREATE_RULEBASE('family_rb_cs345_XXX'); INSERT INTO mdsys.semr_family_rb_cs345_XXX VALUES( 'grandparent_rule', '(?x :parentOf ?y) (?y :parentOf ?z)', NULL, '(?x :grandParentOf ?z)', SEM_ALIASES(SEM_ALIAS('',' COMMIT; -- Select all grandfathers and their grandchildren from the family model, -- without inferencing. (With no inferencing, no results are returned.) SELECT x grandfather, y grandchild FROM TABLE(SEM_MATCH( '(?x :grandParentOf ?y) (?x rdf:type :Male)', SEM_Models('family_cs345_XXX'), null, SEM_ALIASES(SEM_ALIAS('',' null)); -- Select all grandfathers and their grandchildren from the family model. -- Use inferencing from both the RDFS and family_rb rulebases. SELECT x grandfather, y grandchild FROM TABLE(SEM_MATCH( '(?x :grandParentOf ?y) (?x rdf:type :Male)', SEM_Models('family_cs345_XXX'), SEM_Rulebases('RDFS','family_rb_cs345_XXX'), SEM_ALIASES(SEM_ALIAS('',' null)) Inferencing

Dr. Philip Cannata 14 Semantic Web – RDFS and OWL Namespaces or Vocabularies or Ontologies or Semantics

Dr. Philip Cannata 15

Dr. Philip Cannata 16

Dr. Philip Cannata 17 Semantic Web – RDF and RDFS Example

Dr. Philip Cannata 18 Semantic Web – RDFS and OWL Example

Dr. Philip Cannata 19 Semantic Web – SQL Type Query USA

Dr. Philip Cannata 20 Semantic Web – SPARQL

Dr. Philip Cannata 21

Dr. Philip Cannata 22 Semantic Web in Austin: Juan Sequeda, Ph.D Student Research Assistant Dept. of Computer Sciences The University of Texas at Austin

Dr. Philip Cannata 23

Dr. Philip Cannata 24

Dr. Philip Cannata 25 CLASS PERSONT "Persons related to the company" ( personid : INTEGERDATA, REQUIRED; firstname : STRINGDATA, REQUIRED; lastname : STRINGDATA, REQUIRED; zipcode : INTEGERDATA; spouse "spouse if married" : PERSONT, INVERSE IS spouse; children "children optional" : PERSONT, INVERSE IS parents; parents "Persons parents optional" : PERSONT, MV(DISTINCT, MAXVAL 2), INVERSE IS children; ); INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' PERSONT ', 'rdf:type', ' rdfs:Class ')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:comment', '"Persons related to the company"')) Adding dvaAttribute : personid INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdf:type', 'owl:DatatypeProperty')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:domain', ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdf:range', 'rdfs:xsd:integer')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', '_:m1', 'rdf:type', 'owl:Restriction')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', '_:m1', 'owl:onProperty', ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', '_:m1', 'owl:qualifiedCardinality', '"1"')) *INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', '_:m1', 'owl:onDataRange', 'xsd:nonNegativeInteger')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:subClassOf', '_:m1')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdf:type', 'owl:FunctionalProperty')) ReL SIM Classes, DVAs, and EVAs

Dr. Philip Cannata 26 CLASS PERSONT "Persons related to the company" ( personid : INTEGERDATA, REQUIRED; firstname : STRINGDATA, REQUIRED; lastname : STRINGDATA, REQUIRED; zipcode : INTEGERDATA; spouse "spouse if married" : PERSONT, INVERSE IS spouse; children "children optional" : PERSONT, INVERSE IS parents; parents "Persons parents optional" : PERSONT, MV(DISTINCT, MAXVAL 2), INVERSE IS children; ); INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' PERSONT ', 'rdf:type', ' rdfs:Class ')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:comment', '"Persons related to the company"')) Inserting evaAttribute : spouse INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdf:type', 'owl:ObjectProperty')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:domain', ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:range', ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'owl:inverseOf ', ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' owl:inverseOf ', ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdf:type', 'owl:FunctionalProperty')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:comment', '"children optional"')) ReL SIM Classes, DVAs, and EVAs

Dr. Philip Cannata 27 SUBCLASS EMPLT "Current employees of the company" OF PERSONT ( employeeid "Unique employee identification" : INTEGERDATA,REQUIRED; salary "Current yearly salary" : INTEGERDATA, REQUIRED; employeemanager "Employee's current manager" : PERSONT,INVERSE IS employeesmanaging; ); INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdf:type', 'rdfs:Class')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:subClassOf', ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:comment', '"Current employees of the company"')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdfs:comment', '"Unique employee identification"')) ReL SIM SubClasses

Dr. Philip Cannata 28 #dva inserts for num in range(1, 5): if num == 1: fn = 'Bill' ln = 'Dawer' elif num == 2: fn = 'DummyBill' ln = 'DummyDawer' elif num == 3: fn = 'Kid1' ln = 'DummyDawer' elif num == 4: fn = 'Kid2' ln = 'DummyDawer' INSERT PERSONT ( personid := num, firstname := fn, lastname := ln, zipcode := num); INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdf:type', ' Inserting attributes INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"1"^^xsd:integer')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"Bill"^^xsd:string')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"Dawer"^^xsd:string')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"78701"^^xsd:integer')) ReL SIM DVA Inserts

Dr. Philip Cannata 29 #eva inserts INSERT PERSONT ( personid := 15, firstname := "Alice", lastname := "Dawer", zipcode := 78705, spouse := PERSONT WITH (firstname = "Bill" AND lastname = "Dawer"), children := PERSONT WITH (firstname = "SQLKid")); INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdf:type', ' Inserting attributes INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"15"^^xsd:integer')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"Alice"^^xsd:string')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"Dawer"^^xsd:string')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"78705"^^xsd:integer')) Continued on next page ReL SIM EVA Inserts

Dr. Philip Cannata 30 #eva inserts INSERT PERSONT ( personid := 15, firstname := "Alice", lastname := "Dawer", zipcode := 78705, spouse := PERSONT WITH (firstname = "Bill" AND lastname = "Dawer"), children := PERSONT WITH (firstname = "SQLKid")); getMembersWithAttrValues: query= select indiv from table(sem_match( 'select * where { ?indiv rdf:type :PERSONT. ?indiv :lastname "Dawer". ?indiv :firstname "Bill". }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) getMembersWithAttrValues: query= select obj from table(sem_match( 'select * where { :spouse rdf:type ?obj. }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) GET ALL DVA ATTRS QUERY: select attr from table(sem_match( 'select * where { :spouse owl:inverseOf ?attr. }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' ' Continued on next page ReL SIM EVA Inserts

Dr. Philip Cannata 31 #eva inserts INSERT PERSONT ( personid := 15, firstname := "Alice", lastname := "Dawer", zipcode := 78705, spouse := PERSONT WITH (firstname = "Bill" AND lastname = "Dawer"), children := PERSONT WITH (firstname = "SQLKid")); getMembersWithAttrValues: query= select indiv from table(sem_match( 'select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname "SQLKid". }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) getMembersWithAttrValues: query= select obj from table(sem_match( 'select * where { :children rdf:type ?obj. }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) GET ALL DVA ATTRS QUERY: select attr from table(sem_match( 'select * where { :children owl:inverseOf ?attr. }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' ' ReL SIM EVA Inserts

Dr. Philip Cannata 32 #dva modify MODIFY LIMIT = 1 PERSONT ( zipcode := ) WHERE firstname = "Alice" AND lastname = "Dawer"; getMembersWithAttrValues: query= select indiv from table(sem_match( 'select * where { ?indiv rdf:type :PERSONT. ?indiv :lastname "Dawer". ?indiv :firstname "Alice". }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) DELETE FROM RDF_DATA_TABLE WHERE TRIPLE = SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"78705"') INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"61511"')) ReL SIM DVA Modify

Dr. Philip Cannata 33 #eva modify MODIFY LIMIT = 1 PERSONT ( spouse := PERSONT WITH (firstname = "Bill" AND lastname = "Dawer") ) WHERE firstname = "Alice"; getMembersWithAttrValues: query= select indiv from table(sem_match( 'select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname "Alice". }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) getMembersWithAttrValues: query= select indiv from table(sem_match( 'select * where { ?indiv rdf:type :PERSONT. ?indiv :lastname "Dawer". ?indiv :firstname "Bill". }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) GET ALL DVA ATTRS QUERY: select attr from table(sem_match( 'select * where { :spouse owl:inverseOf ?attr. }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' ' ReL SIM EVA Modify

Dr. Philip Cannata 34 output=FROM PERSONT RETRIEVE * WHERE TRUE; neatPrintTable(output) GET ALL DVA ATTRS QUERY: select attr from table(sem_match( 'select * where { ?attr rdf:type owl:DatatypeProperty. ?attr rdfs:domain :PERSONT }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) SELECT firstname, lastname, zipcode, personid from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname ?firstname. ?indiv :lastname ?lastname. ?indiv :zipcode ?zipcode. ?indiv :personid ?personid. }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | FIRSTNAME | LASTNAME | ZIPCODE | PERSONID | | | | Bill | Dawer | | 1 | | DummyBill | DummyDawer | | 2 | | Alice | Dawer | | 15 | | Alice | Dawer | | 15 | | Kid2 | DummyDawer | | 4 | | SQLKid | DummyDawer | | 5 | | Kid1 | DummyDawer | | 3 | ReL SIM Query 1

Dr. Philip Cannata 35 output=FROM PERSONT RETRIEVE *, firstname OF spouse WHERE TRUE; neatPrintTable(output) GET ALL DVA ATTRS QUERY: select attr from table(sem_match( 'select * where { ?attr rdf:type owl:DatatypeProperty. ?attr rdfs:domain :PERSONT }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) SELECT firstname, lastname, zipcode, personid, x0_1 from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname ?firstname. ?indiv :lastname ?lastname. ?indiv :zipcode ?zipcode. ?indiv :personid ?personid. OPTIONAL { ?indiv :spouse ?x0_0. ?x0_0 :firstname ?x0_1. } }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | FIRSTNAME | LASTNAME | ZIPCODE | PERSONID | X0_1 | | | | Alice | Dawer | | 15 | Bill | | Alice | Dawer | | 15 | Bill | | Bill | Dawer | | 1 | Alice | | Kid2 | DummyDawer | | 4 | None | | DummyBill | DummyDawer | | 2 | None | | Kid1 | DummyDawer | | 3 | None | | SQLKid | DummyDawer | | 5 | None | ReL SIM Query 2

Dr. Philip Cannata 36 output=FROM PERSONT RETRIEVE firstname, firstname OF children WHERE firstname = "Bill" ; neatPrintTable(output) SELECT firstname, x0_1 from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname ?firstname. ?indiv :firstname "Bill". OPTIONAL { ?indiv :children ?x0_0. ?x0_0 :firstname ?x0_1. } }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | FIRSTNAME | X0_1 | | | | Bill | None | ReL SIM Query 3

Dr. Philip Cannata 37 output=FROM PERSONT RETRIEVE firstname, firstname OF children WHERE firstname = "Alice"; neatPrintTable(output) SELECT firstname, x0_1 from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname ?firstname. ?indiv :firstname "Alice". OPTIONAL { ?indiv :children ?x0_0. ?x0_0 :firstname ?x0_1. } }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | FIRSTNAME | X0_1 | | | | Alice | Kid2 | | Alice | SQLKid | ReL SIM Query 4

Dr. Philip Cannata 38 output=FROM PERSONT RETRIEVE firstname, firstname OF parents WHERE TRUE; neatPrintTable(output) SELECT firstname, x0_1 from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname ?firstname. OPTIONAL { ?indiv :parents ?x0_0. ?x0_0 :firstname ?x0_1. } }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | FIRSTNAME | X0_1 | | | | Kid2 | Alice | | SQLKid | Alice | | Kid1 | None | | Bill | None | | Alice | None | | DummyBill | None | ReL SIM Query 5

Dr. Philip Cannata 39 output=FROM PERSONT RETRIEVE firstname OF children WHERE firstname="Alice"; neatPrintTable(output) SELECT x0_1 from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname "Alice". OPTIONAL { ?indiv :children ?x0_0. ?x0_0 :firstname ?x0_1. } }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | X0_1 | | | | Kid2 | | SQLKid | ReL SIM Query 6

Dr. Philip Cannata 40 output=FROM PERSONT RETRIEVE firstname OF children OF spouse WHERE firstname="Bill"; neatPrintTable(output) SELECT x0_2 from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname "Bill". OPTIONAL { ?indiv :spouse ?x0_0. ?x0_0 :children ?x0_1. ?x0_1 :firstname ?x0_2. } }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | X0_2 | | | | Kid2 | | SQLKid | ReL SIM Query 7

Dr. Philip Cannata 41 output=FROM PERSONT RETRIEVE firstname OF children OF spouse OF spouse OF spouse WHERE firstname="Bill"; neatPrintTable(output) SELECT x0_4 from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname "Bill". OPTIONAL { ?indiv :spouse ?x0_0. ?x0_0 :spouse ?x0_1. ?x0_1 :spouse ?x0_2. ?x0_2 :children ?x0_3. ?x0_3 :firstname ?x0_4. } }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | X0_4 | | | | Kid2 | | SQLKid | ReL SIM Query 8

Dr. Philip Cannata 42 output=FROM PERSONT RETRIEVE firstname OF children OF spouse, lastname OF children OF spouse OF spouse OF spouse WHERE firstname="Bill"; neatPrintTable(output) SELECT x0_2, x1_4 from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname "Bill". OPTIONAL { ?indiv :spouse ?x0_0. ?x0_0 :children ?x0_1. ?x0_1 :firstname ?x0_2. ?indiv :spouse ?x1_0. ?x1_0 :spouse ?x1_1. ?x1_1 :spouse ?x1_2. ?x1_2 :children ?x1_3. ?x1_3 :lastname ?x1_4. } }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | X0_2 | X1_4 | | | | Kid2 | DummyDawer | | SQLKid | DummyDawer | | Kid2 | DummyDawer | | SQLKid | DummyDawer | ReL SIM Query 9

Dr. Philip Cannata 43 output=SELECT firstname, lastname, zipcode, personid FROM PERSONT ; neatPrintTable(output) SELECT firstname_PERSONT firstname, lastname_PERSONT lastname, zipcode_PERSONT zipcode, personid_PERSONT personid from table( SEM_MATCH('SELECT * WHERE { ?thisPERSONT rdf:type :PERSONT. ?thisPERSONT :firstname ?firstname_PERSONT. ?thisPERSONT :lastname ?lastname_PERSONT. ?thisPERSONT :zipcode ?zipcode_PERSONT. ?thisPERSONT :personid ?personid_PERSONT. }', SEM_MODELS('RDF_MODEL_CS345_PROF1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) )| | FIRSTNAME | LASTNAME | ZIPCODE | PERSONID | | | | Bill | Dawer | | 1 | | DummyBill | DummyDawer | | 2 | | Alice | Dawer | | 15 | | Alice | Dawer | | 15 | | Kid2 | DummyDawer | | 4 | | SQLKid | DummyDawer | | 5 | | Kid1 | DummyDawer | | 3 | ReL SQL Query 1

Dr. Philip Cannata 44 INSERT INTO PERSONT ( personid, firstname, lastname, zipcode ) VALUES ( 5, 'SQLKid2', 'DummyDawer', (lambda x: x)(5)); INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' 'rdf:type', ' INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"5"^^xsd:integer')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"SQLKid2"^^xsd:string')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"DummyDawer"^^xsd:string')) INSERT INTO RDF_DATA_TABLE VALUES ( RDF_DATA_TABLE_SQNC.nextval, SDO_RDF_TRIPLE_S('RDF_MODEL_CS345_PROF1: ', ' ' '"78705"^^xsd:integer')) ReL SQL Insert

Dr. Philip Cannata 45 output=SELECT firstname, lastname, zipcode, personid FROM PERSONT ; neatPrintTable(output) SELECT firstname_PERSONT firstname, lastname_PERSONT lastname, zipcode_PERSONT zipcode, personid_PERSONT personid from table( SEM_MATCH('SELECT * WHERE { ?thisPERSONT rdf:type :PERSONT. ?thisPERSONT :firstname ?firstname_PERSONT. ?thisPERSONT :lastname ?lastname_PERSONT. ?thisPERSONT :zipcode ?zipcode_PERSONT. ?thisPERSONT :personid ?personid_PERSONT. }', SEM_MODELS('RDF_MODEL_CS345_PROF1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) )| | FIRSTNAME | LASTNAME | ZIPCODE | PERSONID | | | | Bill | Dawer | | 1 | | DummyBill | DummyDawer | | 2 | | SQLKid2 | DummyDawer | | 5 | | Alice | Dawer | | 15 | | Alice | Dawer | | 15 | | Kid2 | DummyDawer | | 4 | | SQLKid | DummyDawer | | 5 | | Kid1 | DummyDawer | | 3 | ReL SQL Query 2

Dr. Philip Cannata 46 output=FROM PERSONT RETRIEVE * WHERE TRUE; neatPrintTable(output) GET ALL DVA ATTRS QUERY: select attr from table(sem_match( 'select * where { ?attr rdf:type owl:DatatypeProperty. ?attr rdfs:domain :PERSONT }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) SELECT firstname, lastname, zipcode, personid from table( sem_match('select * where { ?indiv rdf:type :PERSONT. ?indiv :firstname ?firstname. ?indiv :lastname ?lastname. ?indiv :zipcode ?zipcode. ?indiv :personid ?personid. }', SEM_MODELS('RDF_MODEL_CS345_prof1'), null, SEM_ALIASES( SEM_ALIAS('', ' null) ) | FIRSTNAME | LASTNAME | ZIPCODE | PERSONID | | | | Bill | Dawer | | 1 | | DummyBill | DummyDawer | | 2 | | SQLKid2 | DummyDawer | | 5 | | Alice | Dawer | | 15 | | Alice | Dawer | | 15 | | Kid2 | DummyDawer | | 4 | | SQLKid | DummyDawer | | 5 | | Kid1 | DummyDawer | | 3 | ReL SIM Query 10