Presentation from the BG OUG Autumn conference, November 2017 at Pravetz, Bulgaria. Demos: SPARQL/SPARUL ============= Using Virtuoso/Blazegraph as a triple store // insert triple INSERT { GRAPH <data.bgoug.online/graph> { <http://data.bgoug.online/people/MartinToshev> <http://data.bgoug.online/attends> <http://data.bgoug.online/events/100> } } // query triple SELECT ?s ?p ?o FROM <data.bgoug.online/graph> WHERE { ?s ?p ?o } // insert another record INSERT { GRAPH <data.bgoug.online/graph> { <http://data.bgoug.online/people/IvanIvanov> <http://data.bgoug.online/attends> <http://data.bgoug.online/events/100> } } // try to insert triple multiple times // delete triples for Ivan Ivanov DELETE {GRAPH <data.bgoug.online/graph> {<http://data.bgoug.online/people/IvanIvanov> ?p ?o} } WHERE { <http://data.bgoug.online/people/IvanIvanov> ?p ?o } // show in blazegraph (use INSERT DATA) for INSERT Oracle Semantic technology ========================== // create tablespace (under sys) CREATE TABLESPACE rdf_tblspace DATAFILE 'D:\software\Oracle12c\oradata\SampeDB\rdf_tblspace.dat' SIZE 1024M REUSE AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED SEGMENT SPACE MANAGEMENT AUTO; EXECUTE SEM_APIS.CREATE_SEM_NETWORK('rdf_tblspace'); // create semantic tables and do SQL queries CREATE TABLE conference_rdf_table (id NUMBER, triple SDO_RDF_TRIPLE_S); EXECUTE SEM_APIS.CREATE_SEM_MODEL('conference', 'conference_rdf_table', 'triple'); INSERT INTO conference_rdf_table VALUES (1, SDO_RDF_TRIPLE_S ('conference','<http://data.bgoug.online/people/MartinToshev>', '<http://data.bgoug.online/attends>','<http://data.bgoug.online/events/100>')); SELECT SEM_APIS.GET_MODEL_ID('conference') AS conference FROM DUAL; SELECT SEM_APIS.IS_TRIPLE( 'conference','<http://data.bgoug.online/people/MartinToshev>', '<http://data.bgoug.online/attends>','<http://data.bgoug.online/events/100>') as is_triple from DUAL; SELECT c.triple.GET_SUBJECT() AS subject, c.triple.GET_PROPERTY() AS property, c.triple.GET_OBJECT() AS object FROM conference_rdf_table c; SELECT x attendee, y event FROM TABLE(SEM_MATCH( '{?x <http://data.bgoug.online/attends> ?y}', SEM_Models('conference'), null, SEM_ALIASES(SEM_ALIAS('','<http://data.bgoug.online/conference>')), null));