Table of Contents
- List of Figures
 - List of Tables
 - Title and Copyright Information
 - Preface
 - 
               
               Changes in This Release for Oracle Spatial and Graph RDF Semantic Graph Developer's Guide
                  
               
               
               
- Changes in Oracle Database Release 18.1
 - 
                     
                     Changes in Oracle Database 12c Release 2 (12.2)
                        
                     
                     
                     
- Required: Migrate Existing Semantic Data
 - SPARQL Update Operations on a Semantic Model
 - RDF ORDER BY Query Enhancement and Option
 - Integration with Property Graph Data Stored in Oracle Database
 - SEM_APIS.SPARQL_TO_SQL Function
 - New SPARQL Query Functions
 - Enhanced GeoSPARQL Support
 - Support for Flashback Query
 - Desupport for Workspace Manager and Virtual Private Database with RDF
 
 - Changes in Oracle Database 12c Release 1 (12.1.0.2)
 - Changes in Oracle Database 12c Release 1 (12.1.0.1)
 - 
                     
                     Changes for RDF Semantic Graph Support for Apache Jena
                        
                     
                     
                     
- Support for Retrieving User-Friendly Java Objects from SEM_MATCH or SQL-Based Query Results
 - Protege Plugin for Oracle Database
 - Support for Customized Data Source Name
 - Support for SPARQL Queries with Translated SQL Text Larger Than 29000 Bytes
 - Support for Oracle Database in Read-Only Mode
 - Less Verbose Joseki Output
 - Java APIs for Managing the Table Responsible for Terminating Long-Running SPARQL Queries
 - Support for Apache Tomcat and JBoss Application Server
 - Support for Fuseki 1.0.1
 
 
 - 
               
               Part I  Conceptual and Usage Information 
                  
               
               
               
- 
                     
                     
                        
                        1
                             RDF Semantic Graph Overview
                     
                        
                     
                     
                     
- 1.1 Introduction to Oracle Semantic Technologies Support
 - 1.2 Semantic Data Modeling
 - 1.3 Semantic Data in the Database
 - 1.4 Semantic Metadata Tables and Views
 - 1.5 Semantic Data Types, Constructors, and Methods
 - 
                           
                           
                              
                              1.6
                                  Using the SEM_MATCH Table Function to Query Semantic Data
                           
                              
                           
                           
                           
- 1.6.1 Performing Queries with Incomplete or Invalid Entailments
 - 1.6.2 Graph Patterns: Support for Curly Brace Syntax, and OPTIONAL, FILTER, UNION, and GRAPH Keywords
 - 1.6.3 Graph Patterns: Support for SPARQL ASK Syntax
 - 1.6.4 Graph Patterns: Support for SPARQL CONSTRUCT Syntax
 - 1.6.5 Graph Patterns: Support for SPARQL DESCRIBE Syntax
 - 1.6.6 Graph Patterns: Support for SPARQL SELECT Syntax
 - 1.6.7 Graph Patterns: Support for SPARQL 1.1 Constructs
 - 1.6.8 Graph Patterns: Support for SPARQL 1.1 Federated Query
 - 1.6.9 Inline Query Optimizer Hints
 - 1.6.10 Full-Text Search
 - 1.6.11 Spatial Support
 - 1.6.12 Flashback Query Support
 - 
                                 
                                 
                                    
                                    1.6.13
                                        Best Practices for Query Performance
                                 
                                    
                                 
                                 
                                 
- 1.6.13.1 FILTER Constructs Involving xsd:dateTime, xsd:date, and xsd:time
 - 1.6.13.2 Function-Based Indexes for FILTER Constructs Involving Typed Literals
 - 1.6.13.3 FILTER Constructs Involving Relational Expressions
 - 1.6.13.4 Optimizer Statistics and Dynamic Sampling
 - 1.6.13.5 Multi-Partition Queries
 - 1.6.13.6 Compression on Systems with OLTP Index Compression
 - 1.6.13.7 Unbounded Property Path Expressions
 - 1.6.13.8 Nested Loop Pushdown for Property Paths
 - 1.6.13.9 Grouping and Aggregation
 - 1.6.13.10 Use of Bind Variables to Reduce Compilation Time
 - 1.6.13.11 Non-Null Expression Hints
 
 - 1.6.14 Special Considerations When Using SEM_MATCH
 
 - 1.7 Using the SEM_APIS.SPARQL_TO_SQL Function to Query Semantic Data
 - 
                           
                           
                              
                              1.8
                                  Loading and Exporting Semantic Data
                           
                              
                           
                           
                           
- 1.8.1 Bulk Loading Semantic Data Using a Staging Table
 - 1.8.2 Batch Loading N-Triple Format Semantic Data Using the Java API
 - 1.8.3 Loading Semantic Data Using INSERT Statements
 - 1.8.4 Exporting Semantic Data
 - 1.8.5 Exporting or Importing a Semantic Network Using Oracle Data Pump
 - 1.8.6 Purging Unused Values
 
 - 1.9 Using Semantic Network Indexes
 - 1.10 Using Data Type Indexes
 - 
                           
                           
                              
                              1.11
                                  Managing Statistics for Semantic Models and the Semantic Network
                           
                              
                           
                           
                           
- 1.11.1 Saving Statistics at a Model Level
 - 1.11.2 Restoring Statistics at a Model Level
 - 1.11.3 Saving Statistics at the Network Level
 - 1.11.4 Dropping Extended Statistics at the Network Level
 - 1.11.5 Restoring Statistics at the Network Level
 - 1.11.6 Setting Statistics at a Model Level
 - 1.11.7 Deleting Statistics at a Model Level
 
 - 
                           
                           
                              
                              1.12
                                  Support for SPARQL Update Operations on a Semantic Model
                           
                              
                           
                           
                           
- 1.12.1 Tuning the Performance of SPARQL Update Operations
 - 1.12.2 Transaction Management with SPARQL Update Operations
 - 1.12.3 Support for Bulk Operations
 - 1.12.4 Setting UPDATE_MODEL Options at the Session Level
 - 1.12.5 Load Operations: Special Considerations for SPARQL Update
 - 1.12.6 Long Literals: Special Considerations for SPARQL Update
 - 1.12.7 Blank Nodes: Special Considerations for SPARQL Update
 
 - 1.13 RDF Support for Oracle Database In-Memory
 - 1.14 Enhanced RDF ORDER BY Query Processing
 - 1.15 Quick Start for Using Semantic Data
 - 1.16 Semantic Data Examples (PL/SQL and Java)
 - 1.17 Software Naming Changes Since Release 11.1
 - 1.18 For More Information About RDF Semantic Graph
 - 1.19 Required Migration of Pre-12.2 Semantic Data
 
 - 
                     
                     
                        
                        2
                             OWL Concepts 
                     
                        
                     
                     
                     
- 2.1 Ontologies
 - 
                           
                           
                              
                              2.2
                                  Using OWL Inferencing
                           
                              
                           
                           
                           
- 2.2.1 Creating a Simple OWL Ontology
 - 2.2.2 Performing Native OWL inferencing
 - 2.2.3 Performing OWL and User-Defined Rules Inferencing
 - 2.2.4 Generating OWL inferencing Proofs
 - 2.2.5 Validating OWL Models and Entailments
 - 2.2.6 Using SEM_APIS.CREATE_ENTAILMENT for RDFS Inference
 - 2.2.7 Enhancing Inference Performance
 - 2.2.8 Optimizing owl:sameAs Inference
 - 2.2.9 Performing Incremental Inference
 - 2.2.10 Using Parallel Inference
 - 2.2.11 Using Named Graph Based Inferencing (Global and Local)
 - 2.2.12 Performing Selective Inferencing (Advanced Information)
 
 - 2.3 Using Semantic Operators to Query Relational Data
 
 - 3 Simple Knowledge Organization System (SKOS) Support
 - 
                     
                     
                        
                        4
                            Semantic Indexing for Documents 
                     
                        
                     
                     
                     
- 4.1 Information Extractors for Semantically Indexing Documents
 - 4.2 Extractor Policies
 - 4.3 Semantically Indexing Documents
 - 4.4 SEM_CONTAINS and Ancillary Operators
 - 4.5 Searching for Documents Using SPARQL Query Patterns
 - 4.6 Bindings for SPARQL Variables in Matching Subgraphs in a Document (SEM_CONTAINS_SELECT Ancillary Operator)
 - 4.7 Improving the Quality of Document Search Operations
 - 4.8 Indexing External Documents
 - 4.9 Configuring the Calais Extractor type
 - 4.10 Working with General Architecture for Text Engineering (GATE)
 - 4.11 Creating a New Extractor Type
 - 4.12 Creating a Local Semantic Index on a Range-Partitioned Table
 - 4.13 Altering a Semantic Index
 - 4.14 Passing Extractor-Specific Parameters in CREATE INDEX and ALTER INDEX
 - 4.15 Performing Document-Centric Inference
 - 4.16 Metadata Views for Semantic Indexing
 - 4.17 Default Style Sheet for GATE Extractor Output
 
 - 5 Fine-Grained Access Control for RDF Data
 - 
                     
                     
                        
                        6
                            RDF Semantic Graph Support for Apache Jena 
                     
                        
                     
                     
                     
- 6.1 Setting Up the Software Environment
 - 6.2 Setting Up the SPARQL Service
 - 6.3 Setting Up a Dynamic SPARQL Endpoint
 - 6.4 Adding Cross-Site Request Forgery (CSRF) Protection to the Joseki Servlet
 - 6.5 Setting Up the RDF Semantic Graph Environment
 - 6.6 SEM_MATCH and RDF Semantic Graph Support for Apache Jena Queries Compared
 - 6.7 Retrieving User-Friendly Java Objects from SEM_MATCH or SQL-Based Query Results
 - 6.8 Optimized Handling of SPARQL Queries
 - 6.9 Additions to the SPARQL Syntax to Support Other Features
 - 6.10 Functions Supported in SPARQL Queries through RDF Semantic Graph Support for Apache Jena
 - 6.11 SPARQL Update Support
 - 6.12 Analytical Functions for RDF Data
 - 6.13 Support for Server-Side APIs
 - 6.14 Bulk Loading Using RDF Semantic Graph Support for Apache Jena
 - 6.15 Automatic Variable Renaming
 - 6.16 JavaScript Object Notation (JSON) Format Support
 - 6.17 Other Recommendations and Guidelines
 - 
                           
                           
                              
                              6.18
                                  Example Queries Using RDF Semantic Graph Support for Apache Jena
                           
                              
                           
                           
                           
- 6.18.1 Test.java: Query Family Relationships
 - 6.18.2 Test6.java: Load OWL Ontology and Perform OWLPrime inference
 - 6.18.3 Test7.java: Bulk Load OWL Ontology and Perform OWLPrime inference
 - 6.18.4 Test8.java: SPARQL OPTIONAL Query
 - 6.18.5 Test9.java: SPARQL Query with LIMIT and OFFSET
 - 6.18.6 Test10.java: SPARQL Query with TIMEOUT and DOP
 - 6.18.7 Test11.java: Query Involving Named Graphs
 - 6.18.8 Test12.java: SPARQL ASK Query
 - 6.18.9 Test13.java: SPARQL DESCRIBE Query
 - 6.18.10 Test14.java: SPARQL CONSTRUCT Query
 - 6.18.11 Test15.java: Query Multiple Models and Specify "Allow Duplicates"
 - 6.18.12 Test16.java: SPARQL Update
 - 6.18.13 Test17.java: SPARQL Query with ARQ Built-In Functions
 - 6.18.14 Test18.java: SELECT Cast Query
 - 6.18.15 Test19.java: Instantiate Oracle Database Using OracleConnection
 - 6.18.16 Test20.java: Oracle Database Connection Pooling
 
 - 
                           
                           
                              
                              6.19
                                  SPARQL Gateway and Semantic Data 
                           
                              
                           
                           
                           
- 6.19.1 SPARQL Gateway Features and Benefits Overview
 - 
                                 
                                 
                                    
                                    6.19.2
                                        Installing and Configuring SPARQL Gateway
                                 
                                    
                                 
                                 
                                 
- 6.19.2.1 Download the RDF Semantic Graph Support for Apache Jena .zip File (if Not Already Done)
 - 6.19.2.2 Deploy SPARQL Gateway in WebLogic Server
 - 6.19.2.3 Modify Proxy Settings, if Necessary
 - 6.19.2.4 Configure the OracleSGDS Data Source, if Necessary
 - 6.19.2.5 Add and Configure the SparqlGatewayAdminGroup Group, if Desired
 
 - 6.19.3 Using SPARQL Gateway with Semantic Data
 - 6.19.4 Customizing the Default XSLT File
 - 6.19.5 Using the SPARQL Gateway Java API
 - 6.19.6 Using the SPARQL Gateway Graphical Web Interface
 - 6.19.7 Using SPARQL Gateway as an XML Data Source to OBIEE
 
 - 6.20 Deploying Joseki in Apache Tomcat or JBoss
 
 - 
                     
                     
                        
                        7
                             User-Defined Inferencing and Querying 
                     
                        
                     
                     
                     
- 
                           
                           
                              
                              7.1
                                  User-Defined Inferencing
                           
                              
                           
                           
                           
- 7.1.1 Problem Solved and Benefit Provided by User-Defined Inferencing
 - 7.1.2 API Support for User-Defined Inferencing
 - 7.1.3 User-Defined Inference Extension Function Examples
 
 - 7.2 User-Defined Functions and Aggregates
 
 - 
                           
                           
                              
                              7.1
                                  User-Defined Inferencing
                           
                              
                           
                           
                           
 - 8 RDF Views: Relational Data as RDF
 - 9 RDF Integration with Property Graph Data Stored in Oracle Database
 
 - 
                     
                     
                        
                        1
                             RDF Semantic Graph Overview
                     
                        
                     
                     
                     
 - 
               
               Part II  Reference and Supplementary Information 
                  
               
               
               
- 
                     
                     
                        
                        10
                             SEM_APIS Package Subprograms
                     
                        
                     
                     
                     
- 10.1 SEM_APIS.ADD_DATATYPE_INDEX
 - 10.2 SEM_APIS.ADD_SEM_INDEX
 - 10.3 SEM_APIS.ALTER_DATATYPE_INDEX
 - 10.4 SEM_APIS.ALTER_ENTAILMENT
 - 10.5 SEM_APIS.ALTER_MODEL
 - 10.6 SEM_APIS.ALTER_SEM_INDEX_ON_ENTAILMENT
 - 10.7 SEM_APIS.ALTER_SEM_INDEX_ON_MODEL
 - 10.8 SEM_APIS.ALTER_SEM_INDEXES
 - 10.9 SEM_APIS.ANALYZE_ENTAILMENT
 - 10.10 SEM_APIS.ANALYZE_MODEL
 - 10.11 SEM_APIS.BUILD_PG_RDFVIEW_INDEXES
 - 10.12 SEM_APIS.BULK_LOAD_FROM_STAGING_TABLE
 - 10.13 SEM_APIS.CLEANUP_BNODES
 - 10.14 SEM_APIS.CLEANUP_FAILED
 - 10.15 SEM_APIS.COMPOSE_RDF_TERM
 - 10.16 SEM_APIS.CONVERT_TO_GML311_LITERAL
 - 10.17 SEM_APIS.CONVERT_TO_WKT_LITERAL
 - 10.18 SEM_APIS.CREATE_ENTAILMENT
 - 10.19 SEM_APIS.CREATE_PG_RDFVIEW
 - 10.20 SEM_APIS.CREATE_RDFVIEW_MODEL
 - 10.21 SEM_APIS.CREATE_RULEBASE
 - 10.22 SEM_APIS.CREATE_SEM_MODEL
 - 10.23 SEM_APIS.CREATE_SEM_NETWORK
 - 10.24 SEM_APIS.CREATE_SOURCE_EXTERNAL_TABLE
 - 10.25 SEM_APIS.CREATE_SPARQL_UPDATE_TABLES
 - 10.26 SEM_APIS.CREATE_VIRTUAL_MODEL
 - 10.27 SEM_APIS.DELETE_ENTAILMENT_STATS
 - 10.28 SEM_APIS.DELETE_MODEL_STATS
 - 10.29 SEM_APIS.DISABLE_CHANGE_TRACKING
 - 10.30 SEM_APIS.DISABLE_INC_INFERENCE
 - 10.31 SEM_APIS.DISABLE_INMEMORY
 - 10.32 SEM_APIS.DROP_DATATYPE_INDEX
 - 10.33 SEM_APIS.DROP_ENTAILMENT
 - 10.34 SEM_APIS.DROP_PG_RDFVIEW
 - 10.35 SEM_APIS.DROP_PG_RDFVIEW_INDEXES
 - 10.36 SEM_APIS.DROP_RDFVIEW_MODEL
 - 10.37 SEM_APIS.DROP_RULEBASE
 - 10.38 SEM_APIS.DROP_SEM_INDEX
 - 10.39 SEM_APIS.DROP_SEM_MODEL
 - 10.40 SEM_APIS.DROP_SEM_NETWORK
 - 10.41 SEM_APIS.DROP_SPARQL_UPDATE_TABLES
 - 10.42 SEM_APIS.DROP_USER_INFERENCE_OBJS
 - 10.43 SEM_APIS.DROP_VIRTUAL_MODEL
 - 10.44 SEM_APIS.ENABLE_CHANGE_TRACKING
 - 10.45 SEM_APIS.ENABLE_INC_INFERENCE
 - 10.46 SEM_APIS.ENABLE_INMEMORY
 - 10.47 SEM_APIS.ESCAPE_CLOB_TERM
 - 10.48 SEM_APIS.ESCAPE_CLOB_VALUE
 - 10.49 SEM_APIS.ESCAPE_RDF_TERM
 - 10.50 SEM_APIS.ESCAPE_RDF_VALUE
 - 10.51 SEM_APIS.EXPORT_ENTAILMENT_STATS
 - 10.52 SEM_APIS.EXPORT_MODEL_STATS
 - 10.53 SEM_APIS.EXPORT_RDFVIEW_MODEL
 - 10.54 SEM_APIS.GET_CHANGE_TRACKING_INFO
 - 10.55 SEM_APIS.GET_INC_INF_INFO
 - 10.56 SEM_APIS.GET_MODEL_ID
 - 10.57 SEM_APIS.GET_MODEL_NAME
 - 10.58 SEM_APIS.GET_TRIPLE_ID
 - 10.59 SEM_APIS.GETV$DATETIMETZVAL
 - 10.60 SEM_APIS.GETV$DATETZVAL
 - 10.61 SEM_APIS.GETV$NUMERICVAL
 - 10.62 SEM_APIS.GETV$STRINGVAL
 - 10.63 SEM_APIS.GETV$TIMETZVAL
 - 10.64 SEM_APIS.IMPORT_ENTAILMENT_STATS
 - 10.65 SEM_APIS.IMPORT_MODEL_STATS
 - 10.66 SEM_APIS.IS_TRIPLE
 - 10.67 SEM_APIS.LOAD_INTO_STAGING_TABLE
 - 10.68 SEM_APIS.LOOKUP_ENTAILMENT
 - 10.69 SEM_APIS.MERGE_MODELS
 - 10.70 SEM_APIS.MIGRATE_DATA_TO_CURRENT
 - 10.71 SEM_APIS.PRIVILEGE_ON_APP_TABLES
 - 10.72 SEM_APIS.PURGE_UNUSED_VALUES
 - 10.73 SEM_APIS.REFRESH_SEM_NETWORK_INDEX_INFO
 - 10.74 SEM_APIS.REMOVE_DUPLICATES
 - 10.75 SEM_APIS.RENAME_ENTAILMENT
 - 10.76 SEM_APIS.RENAME_MODEL
 - 10.77 SEM_APIS.RES2VID
 - 10.78 SEM_APIS.SET_ENTAILMENT_STATS
 - 10.79 SEM_APIS.SET_MODEL_STATS
 - 10.80 SEM_APIS.SPARQL_TO_SQL
 - 10.81 SEM_APIS.SWAP_NAMES
 - 10.82 SEM_APIS.UNESCAPE_CLOB_TERM
 - 10.83 SEM_APIS.UNESCAPE_CLOB_VALUE
 - 10.84 SEM_APIS.UNESCAPE_RDF_TERM
 - 10.85 SEM_APIS.UNESCAPE_RDF_VALUE
 - 10.86 SEM_APIS.UPDATE_MODEL
 - 10.87 SEM_APIS.VALIDATE_ENTAILMENT
 - 10.88 SEM_APIS.VALIDATE_GEOMETRIES
 - 10.89 SEM_APIS.VALIDATE_MODEL
 - 10.90 SEM_APIS.VALUE_NAME_PREFIX
 - 10.91 SEM_APIS.VALUE_NAME_SUFFIX
 
 - 11 SEM_OLS Package Subprograms
 - 12 SEM_PERF Package Subprograms
 - 13 SEM_RDFCTX Package Subprograms
 - 14 SEM_RDFSA Package Subprograms
 
 - 
                     
                     
                        
                        10
                             SEM_APIS Package Subprograms
                     
                        
                     
                     
                     
 - 
               
               
                  
                  A
                      Enabling, Downgrading, or Removing RDF Semantic Graph Support
               
                  
               
               
               
- A.1 Enabling RDF Semantic Graph Support
 - A.2 Downgrading RDF Semantic Graph Support to a Previous Release
 - A.3 Removing RDF Semantic Graph Support
 
 - 
               
               
                  
                  B
                      SEM_MATCH Support for Spatial Queries
               
                  
               
               
               
- B.1 ogcf:boundary
 - B.2 ogcf:buffer
 - B.3 ogcf:convexHull
 - B.4 ogcf:difference
 - B.5 ogcf:distance
 - B.6 ogcf:envelope
 - B.7 ogcf:getSRID
 - B.8 ogcf:intersection
 - B.9 ogcf:relate
 - B.10 ogcf:sfContains
 - B.11 ogcf:sfCrosses
 - B.12 ogcf:sfDisjoint
 - B.13 ogcf:sfEquals
 - B.14 ogcf:sfIntersects
 - B.15 ogcf:sfOverlaps
 - B.16 ogcf:sfTouches
 - B.17 ogcf:sfWithin
 - B.18 ogcf:symDifference
 - B.19 ogcf:union
 - B.20 orageo:aggrCentroid
 - B.21 orageo:aggrConvexHull
 - B.22 orageo:aggrMBR
 - B.23 orageo:aggrUnion
 - B.24 orageo:area
 - B.25 orageo:buffer
 - B.26 orageo:centroid
 - B.27 orageo:convexHull
 - B.28 orageo:difference
 - B.29 orageo:distance
 - B.30 orageo:getSRID
 - B.31 orageo:intersection
 - B.32 orageo:length
 - B.33 orageo:mbr
 - B.34 orageo:nearestNeighbor
 - B.35 orageo:relate
 - B.36 orageo:sdoDistJoin
 - B.37 orageo:sdoJoin
 - B.38 orageo:union
 - B.39 orageo:withinDistance
 - B.40 orageo:xor
 
 - Glossary
 - Index