RDF in Oracle Spatial



Similar documents
RDF Support in Oracle Oracle USA Inc.

Oracle Database 10g: Building GIS Applications Using the Oracle Spatial Network Data Model. An Oracle Technical White Paper May 2005

RDF Resource Description Framework

13 RDFS and SPARQL. Internet Technology. MSc in Communication Sciences Program in Technologies for Human Communication.

Oracle Spatial and Graph. Jayant Sharma Director, Product Management

Geodatabase Programming with SQL

Logic and Reasoning in the Semantic Web (part I RDF/RDFS)

Semantic Modeling with RDF. DBTech ExtWorkshop on Database Modeling and Semantic Modeling Lili Aunimo

Graph Database Performance: An Oracle Perspective

RDF Resource Description Framework

Data Store Interface Design and Implementation

Oracle Data Miner (Extension of SQL Developer 4.0)

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World

OSLC Primer Learning the concepts of OSLC

Performance Analysis, Data Sharing, Tools Integration: New Approach based on Ontology

Extending the Linked Data API with RDFa

How To Write A Rdf Database In A Relational Database With A Statement Table

12 The Semantic Web and RDF

Introduction to Ontologies

Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification

The Semantic Web for Application Developers. Oracle New England Development Center Zhe Wu, Ph.D. 1

Oracle Architecture, Concepts & Facilities

Lift your data hands on session

The ICS-FORTH RDFSuite: Managing Voluminous RDF Description Bases

Flexible Reliable Affordable Web-scale computing.

LINKED DATA EXPERIENCE AT MACMILLAN Building discovery services for scientific and scholarly content on top of a semantic data model

Grids, Logs, and the Resource Description Framework

Cloud Computing and Advanced Relationship Analytics

urika! Unlocking the Power of Big Data at PSC

Customer Bank Account Management System Technical Specification Document

bigdata Managing Scale in Ontological Systems

Semantics and Ontology of Logistic Cloud Services*

OLH: Oracle Loader for Hadoop OSCH: Oracle SQL Connector for Hadoop Distributed File System (HDFS)

Experiences from a Large Scale Ontology-Based Application Development

A Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX

Oracle s Big Data solutions. Roger Wullschleger. <Insert Picture Here>

Configuration Workshop 2014 Novi Sad/Нови Сад

3.GETTING STARTED WITH ORACLE8i

SPARQL UniProt.RDF. Get these slides! Tutorial plan. Everyone has had some introduction slash knowledge of RDF.

Physical Design. Meeting the needs of the users is the gold standard against which we measure our success in creating a database.

DISCOVERING RESUME INFORMATION USING LINKED DATA

Network Graph Databases, RDF, SPARQL, and SNA

Oracle Spatial 10g. An Oracle White Paper August 2005

George McGeachie Metadata Matters Limited. ER SIG June 9th,

Linked Data & the Semantic Web Standards

GRAPH DATABASE SYSTEMS. h_da Prof. Dr. Uta Störl Big Data Technologies: Graph Database Systems - SoSe

E6895 Advanced Big Data Analytics Lecture 4:! Data Store

Towards a Web of Sensors built with Linked Data and REST

Acknowledgements References 5. Conclusion and Future Works Sung Wan Kim

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

SPARQL: Un Lenguaje de Consulta para la Web

Position Paper: Validation of Distributed Enterprise Data is Necessary, and RIF can Help

DATABASE SYSTEM CONCEPTS AND ARCHITECTURE CHAPTER 2

Semantic Lookup in Service-Oriented Architectures

Normal Form vs. Non-First Normal Form

Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems

A basic create statement for a simple student table would look like the following.

Effiziente Suche im Web

Chapter 9 Java and SQL. Wang Yang wyang@njnet.edu.cn

17 March 2013 NIEM Web Services API Version 1.0 URI:

SQL Server Database Coding Standards and Guidelines

f...-. I enterprise Amazon SimpIeDB Developer Guide Scale your application's database on the cloud using Amazon SimpIeDB Prabhakar Chaganti Rich Helms

RDF Data Management in the Amazon Cloud

Bi-directional Translation of Relational Data into Virtual RDF Stores

IDE Integrated RDF Exploration, Access and RDF-based Code Typing with LITEQ

4 Logical Design : RDM Schema Definition with SQL / DDL

Oracle 10g PL/SQL Training

Welcome to the session Operational Analytics with ODP- Modeling Authorizations

SAP HANA Core Data Services (CDS) Reference

Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications

Jena: Implementing the Semantic Web Recommendations

JOURNAL OF COMPUTER SCIENCE AND ENGINEERING

Query engine for massive distributed ontologies using MapReduce

Software Architecture Document

Oracle For Beginners Page : 1

The process of database development. Logical model: relational DBMS. Relation

ASTERIX: An Open Source System for Big Data Management and Analysis (Demo) :: Presenter :: Yassmeen Abu Hasson

We have big data, but we need big knowledge

Chapter 2 Database System Concepts and Architecture

5.1 Database Schema Schema Generation in SQL

Evaluating Metadata access

Semantic Interoperability

MOC 20461C: Querying Microsoft SQL Server. Course Overview

An Ontological Approach to Oracle BPM

Integrating VoltDB with Hadoop

How To Improve Performance In A Database

Proceedings of the SPDECE Ninth nultidisciplinary symposium on the design and evaluation of digital content for education

ArcGIS Data Models Practical Templates for Implementing GIS Projects

Java and RDBMS. Married with issues. Database constraints

MPD Technical Webinar Transcript

1 File Processing Systems

NoSQL and Agility. Why Document and Graph Stores Rock November 12th, 2015 COPYRIGHT 2015 MARKLOGIC CORPORATION. ALL RIGHTS RESERVED

ORACLE OLAP. Oracle OLAP is embedded in the Oracle Database kernel and runs in the same database process

ABSTRACT 1. INTRODUCTION. Kamil Bajda-Pawlikowski

Fedora Distributed data management (SI1)

Big Data, Fast Data, Complex Data. Jans Aasman Franz Inc

Spring,2015. Apache Hive BY NATIA MAMAIASHVILI, LASHA AMASHUKELI & ALEKO CHAKHVASHVILI SUPERVAIZOR: PROF. NODAR MOMTSELIDZE

Semantic Web Technologies and Data Management

Transcription:

Slide 1 RDF in Oracle Spatial Nicole Alexander, Xavier Lopez, Siva Ravada, Susie Stephens & Jack Wang Oracle Corporation October 27 28, 2004 RDF in Oracle Spatial This paper is based on Oracle 10g support for RDF data storage in Oracle Spatial.

Slide 2 Overview Oracle Spatial NDM Metadata and Namespaces Statements Subjects and Objects Properties Reification Containers and Collections RDF Datatypes and Constructors Querying RDF Data Overview This presentation is a high-level overview of RDF data storage in the Oracle Spatial Network Data Model. I will first introduce the Oracle Spatial Network Data Model product, and then describe how it has been extended to store RDF-modeled data. At the end of this presentation you will have a good idea of how RDF data is handled in an Oracle database.

Slide 3 Network Data Model (NDM) Feature of Oracle Spatial 10g Tool for managing graphs (networks) in the database Supports directed and undirected networks spatial networks logical networks Consists of a network database schema, and a Java API for representation and analysis. Network Data Model (NDM) Oracle Spatial is an option of the Oracle database, and the Network Data Model is one of the many features provided with Oracle Spatial 10g. A network or graph captures relationships between objects using connectivity. NDM supports both directed and undirected networks, which can be either spatial or logical. Spatial networks contain both connectivity information and geometric information. Logical Networks contain connectivity information but no geometric information. NDM consists of two components: a network database schema, and a Java API. The network schema contains network metadata and tables for nodes and links. The Java API enables network representation and network analysis.

Slide 4 RDF in Oracle Spatial NDM RDF data stored in a directed, logical network Subjects and objects mapped to nodes, and properties to links that have subject start nodes and object end nodes Links represent complete RDF triples. S2 S1 P2 P1 P2 O1 O2 RDF Triples: {S1, P1, O1} {S1, P2, O2} {S2, P2, O2} RDF in Oracle Spatial NDM NDM stores RDF data using a directed, logical network. Generally speaking, NDM maps subjects and objects of statements to nodes in a network and properties to links. In NDM, nodes are stored in a system nodes table and links in a system links table. Each link must have a start node and and end node. For RDF storage, the start node of a link is the subject of a statement, and the end node of a link is the object of a statement. A link therefore represents a complete RDF triple. A key feature of RDF storage in NDM is that subject and object nodes are stored only once, regardless of the number of times they participate in triples. Subject and object nodes are reused, if they already exist in the database. A new link, however, is always created whenever a new triple is inserted. When a triple is deleted from the database, the corresponding link is directly removed. However, the nodes attached to this link are not removed if there is at least one other link connected to them. This is the basic storage model for RDF-modeled data. The rest of the presentation reviews the enhancements to NDM to fully support the management of RDF-modeled data.

Slide 5 Metadata and Namespaces Metadata for RDF Models: RDF_MODEL$ MODEL_ID MODEL_NAME Namespaces for RDF Models: RDF_NAMESPACE$ NAMESPACE_ID NAMESPACE_NAME Metadata and Namespaces Metadata for RDF Models RDF_MODEL$ is a system level table created to store information on all the models defined in the database. When a new RDF model is created, an entry is made to this table. The MODEL_ID is automatically generated and can be used instead of the model s name to refer to a particular model. Namespaces for RDF Models Namespaces are used in RDF/XML documents to make these documents readable. In NDM, namespaces are stored directly with their subject, properties, and objects. However, this table can be optionally used to catalog all the namespaces used in an RDF universe.

Slide 6 Statements Represented by triples: subject, property, object Text values (i.e. URIs or literals) for each part of a triple are stored uniquely in a single table: RDF_VALUE$ VALUE_ID VALUE_NAME VALUE_TYPE LITERAL_TYPE VALUE_TYPE: UR, BN, PL, or TL LITERAL_TYPE: NULL, except for typed literals. Statements Statements are represented by triples: subject, property, and object. RDF_VALUE$ stores the text values, i.e. the URIs or literals for each part of a triple. Each text value is stored only once, and a unique VALUE_ID is generated for the text entry. Possible VALUE_TYPE entries are URIs, blank nodes, plain literals or typed literals. Only typed literals will have a LITERAL_TYPE entry.

Slide 7 Subjects and Objects Map to nodes in a graph VALUE_IDs for subjects and objects only, stored in the nodes table: RDF_NODE$ NODE_ID ACTIVE Original blank-node names optionally stored in table: RDF_BLANK_NODE$ NODE_ID NODE_VALUE ORIG_NAME MODEL_ID Subjects and Objects RDF_NODE$ stores only the VALUE_ID for text values that participate in subjects or objects of statements. The NODE_ID is the same as the VALUE_ID. NODE_ID values are stored only once, regardless of the number of subjects or objects they participate in. The nodes table allows RDF data to be exposed to all the analytical functions and APIs available in core NDM. Blank Nodes Blank nodes are used to represent unknown nodes. They are also used when the relationship between a subject node and an object node is n-ary (as is the case with containers). New blank nodes are automatically generated whenever blank nodes are encountered in triples. However, the user has the option to reuse a particular blank node. This is necessary when inserting containers and collections. RDF_BLANK_NODE$ stores the original names of blank nodes that are to be reused when encountered in triples.

Slide 8 Properties Map to links in a graph Properties and triple information for entire database stored in table: RDF_LINK$ LINK_ID P_VALUE_ID START_NODE_ID END_NODE_ID LINK_TYPE ACTIVE CONTEXT REIF_LINK MODEL_ID LINK_ID: unique triple ID (RDF_T_ID) P_VALUE_ID: property text values only LINK_TYPE: STANDARD, RDF_* REIF_LINK: Y, for reification statements. Properties RDF_LINK$ stores all the triples for all the RDF models in the database. The MODEL_ID logically partitions the RDF_LINK$ table. Selecting all the links for a specified MODEL_ID, returns the RDF network for that particular model.

Slide 9 RDF Tables in NDM RDF_NODE$ RDF_VALUE$ VALUE_ID NODE_ID VALUE_NAME RDF_BLANK_NODE$ NODE_ID ORIG_NAME... MODEL_ID RDF_LINK$ LINK_ID P_VALUE_ID START_NODE_ID END_NODE_ID MODEL_ID RDF_MODEL$ MODEL_ID MODEL_NAME RDF Tables in NDM RDF_VALUE$, RDF_NODE$, RDF_LINK$, and RDF_MODEL$ are the key tables for RDF storage. RDF_BLANK_NODE$ is used when reusing blank nodes, and RDF_NAMESPACE$ is used for cataloging purposes only.

Slide 10 Reification Resource generated from unique LINK_ID to represent reified statement Resource can then be used in subject or object Reification A reification of a statement in RDF is a description of the statement using an RDF statement. To represent a reified statement in NDM a resource is generated using the triple s LINK_ID (RDF_T_ID). This resource can then be used as the subject or object of a statement. To process a reification statement, a triple is first entered with the reified statement s resource as subject, rdf:type as property and rdf:statement as object. A triple is then entered for each assertion about the reified statement. Each reified statement will have only one rdf:type > rdf:statement associated with it, regardless of the number of assertions made using this resource.

Slide 11 Containers and Collections Containers and Collections Containers and collections are handled similarly in NDM. Each container or collection will have a rdf:type -> rdf:container_name/collection_name associated with it. The LINK_TYPE for container or collection members are RDF_MEMBER. Collections have an additional constraint: no new entries can be added to the list.

Slide 12 RDF Datatypes in Oracle SDO_RDF_TRIPLE ( subject VARCHAR2(2000), property VARCHAR2(2000), object VARCHAR2(2000)); SDO_RDF_TRIPLE_S ( RDF_T_ID NUMBER, RDF_M_ID NUMBER, RDF_S_ID NUMBER, RDF_P_ID NUMBER, RDF_O_ID NUMBER,... CREATE TABLE jobs (triple SDO_RDF_TRIPLE_S); SELECT j.triple.get_rdf_triple() FROM jobs j; RDF Datatypes in Oracle Two new datatypes are defined for RDF-modeled data: The SDO_RDF_TRIPLE type is defined to serve as the triple representation of RDF data. The SDO_RDF_TRIPLE_S type is defined to store persistent data in the database. The GET_RDF_TRIPLE() function returns an SDO_RDF_TRIPLE type.

Slide 13 Constructors: Inserting Triples SDO_RDF_TRIPLE_S(m_name, sub, prop, obj) INSERT INTO jobs VALUES (SDO_RDF_TRIPLE_S('jobs', 'http://www.nature.com/naturejobs/biologicalsciences.rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', 'http://purl.org/rss/1.0/channel')); SDO_RDF_TRIPLE_S(m_name, sub_bn, prop, obj_bn, bn_m_id) INSERT INTO jobs VALUES (SDO_RDF_TRIPLE_S('jobs', '_:BNSEQN10018', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', 'http://www.w3.org/1999/02/22- rdf-syntax-ns#seq', 1)); SDO_RDF_TRIPLE_S(m_name, rdf_t_id, prop, obj) INSERT INTO uc_data VALUES (SDO_RDF_TRIPLE_S( uc, 105, http://www.uc.edu/valid, 12-31-2004 )); Constructors: Inserting RDF Triples General constructor for triple insertion: SDO_RDF_TRIPLE_S(model_name, subject, property, object). Constructor for reusing blank nodes: SDO_RDF_TRIPLE_S(model_name, sub_or_bn, property, obj_or_bn, bn_m_id). This constructor is required for entering containers and collections. Constructor for reifying statements: SDO_RDF_TRIPLE_S(model_name, rdf_t_id, property, object).

Slide 14 Querying RDF Data JAVA API to perform analysis on RDF data - find a path between two resources - find a path between two resources with links of a specific type SQL-level access to RDF data - SELECT j.triple.get_rdf_triple() FROM jobs j; SQL-level functions to perform inference-type operations on RDF data - currently in development. Querying RDF Data

Slide 15 Summary System tables for RDF storage: RDF_MODEL$, RDF_VALUE$, RDF_NODE$, RDF_LINK$, RDF_BLANK_NODE$, and RDF_NAMESPACE$ Datatypes: SDO_RDF_TRIPLE, and SDO_RDF_TRIPLE_S Querying RDF data: JAVA API, and SQL-level functions. Q & A Summary There are six system tables for RDF data storage in NDM. Two of the tables: RDF_NODE$ and RDF_LINK$ are required tables for NDM, the other 4 tables have been added to support RDF data storage. Two new datatypes are defined for RDF-modeled data: one for representing triples, the other for storing triples. JAVA API and SQL-level functions for querying RDF data. Q&A