MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/md/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/md/admin/sdordfxh.sql

Rem Copyright (c) 2005, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      sdordfxh.sql - <one-line expansion of the name>
Rem
Rem    DESCRIPTION
Rem      <sdo_rdf package>
Rem
Rem    NOTES
Rem      <package body in sdordfxb.sql>
Rem
Rem    BEGIN SQL_FILE_METADATA
Rem    SQL_SOURCE_FILE: sdo/admin/sdordfxh.sql
Rem    SQL_SHIPPED_FILE: md/admin/sdordfxh.sql
Rem    SQL_PHASE: SDORDFXH
Rem    SQL_STARTUP_MODE: NORMAL
Rem    SQL_IGNORABLE_ERRORS: NONE
Rem    SQL_CALLING_FILE: sdo/admin/semrelod.sql
Rem    END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    sdas        11/03/17 - add degree param to move/restore/append
Rem                           sem_network_data
Rem    sdas        08/30/17 - move_sem_network_data
Rem    echong      08/07/17 - make indexes invisible for rdf inmemory
Rem    matperry    06/26/17 - add R2RML TTL option for create_rdfview_model
Rem    matperry    06/16/17 - enhance gather stats apis
Rem    sdas        05/16/17 - add pragma to getv$ functions for ORDER_ cols
Rem    sdas        04/05/17 - bug 25223880
Rem    sdas        03/23/17 - cleanup
Rem    rjanders    03/09/17 - Add missing SQL_FILE_METADATA information
Rem    echong      12/22/16 - make IMVM id-based
Rem    sdas        11/20/16 - bug 25124268: minor sig changes
Rem    sdas        09/09/16 - BLFST: CLOB support
Rem    sdas        03/17/16 - add getV\$GeometryVal - VC rdfterm version
Rem    sdas        03/16/16 - getV$Geo\*: use col-metadata SRID, if present,
Rem                           instead of 8307
Rem    echong      03/02/16 - RDF in-memory processing
Rem    anestrad    02/15/16 - Port changes from 12.1.0.2.0 - add options
Rem                           argument to all escape/unescape functions
Rem    anestrad    02/12/16 - Add convert_to_gml311_literal
Rem    anestrad    02/10/16 - Add has_role and get_user_or_dba_schema functions
Rem    matperry    02/05/16 - add options argument to create_sem_model
Rem    matperry    02/03/16 - add options argument to create_sem_network
Rem    manlopez    01/27/16 - Adding preprocessor parameters
Rem    matperry    01/19/16 - add model_name argument to pg rdfview procedures
Rem    matperry    01/19/16 - update for new pg rdfview naming scheme
Rem    sdas        01/02/16 - forward merge from 12.1.0.2.0 patch for bug
Rem                           21901250
Rem    matperry    12/18/15 - add vc rdf term versions of rdf_term_equal and
Rem                           rdf_term_comp
Rem    echong      12/17/15 - improve order-by query processing
Rem    sdas        12/16/15 - escape_rdf_*: add options parameter
Rem    sdas        12/11/15 - pencd: add options parameter
Rem    matperry    12/10/15 - add helper functions for REGEX
Rem    sdas        12/08/15 - fix parallel exec issue with sdo_rdf.url_unescape
Rem                           wrapper with parallel_enable
Rem    matperry    12/08/15 - add vc rdf term versions of SPARQL string
Rem                           functions
Rem    sdas        10/28/15 - pencd(): %encode, but escape unicode and squote
Rem    matperry    11/09/15 - add SPARQL_MAX_VC_LEN
Rem    anestrad    09/10/15 - Add sparql_to_sql function
Rem    anestrad    08/11/15 - Add options to escape_rdf_value
Rem    anestrad    03/25/15 - Add unescape in rdfTermComp
Rem    anestrad    10/02/14 - Add delete as insert
Rem    matperry    09/12/14 - add extra options parameter to update_model
Rem    matperry    09/03/14 - add public versions of processGraphs,
Rem                           parse_property_value and parse_object_node
Rem    anestrad    07/14/14 - Add blank node cleanup procedure
Rem    matperry    06/10/14 - modify merge_models for use with SPARQL UPDATE
Rem    matperry    05/23/14 - change update_stmt argument to CLOB in
Rem                           apply_update
Rem    matperry    04/18/14 - add update_model
Rem    sdas        04/14/14 - RDB2RDF: add LTC (Logical Tab Cols) table
Rem    matperry    02/26/14 - add PG RDF view creation API
Rem    matperry    12/23/13 - handle character escaping with strbefore,
Rem                           strafter, contains, strstarts, strends
Rem    anestrad    12/17/13 - Move expand_uri_w_base from rdf_apis_internal
Rem    matperry    09/27/13 - fix parallel execution for some sparql order by
Rem                           helper functions
Rem    rjanders    09/16/13 - OCCS: Remove hardtabs
Rem    matperry    06/24/13 - fix character escaping issues with SPARQL string
Rem                           functions
Rem    matperry    05/16/13 - change names of escaping/unescaping functions to
Rem                           use underscores
Rem    matperry    04/02/13 - add unescaping for blank nodes and URIs
Rem    matperry    03/28/13 - change escaping/unescaping functions to character
Rem                           set any_cs
Rem    sdas        03/21/13 - bug 9501171: purge unused values from RDF_VALUE$
Rem    matperry    03/15/13 - add character escaping functions
Rem    rjanders    03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem                           initialization
Rem    matperry    03/12/13 - add character unescaping for CLOBs
Rem    matperry    03/07/13 - add literal unescaping function
Rem    sdas        01/05/13 - XbranchMerge sdas_bug-10406620_12.1 from
Rem                           st_sdo_12.1.0.1
Rem    sdas        01/03/13 - chg name of RR table
Rem    sdas        12/01/12 - add tescp
Rem    sdas        11/27/12 - criri pragma
Rem    sdas        11/22/12 - add and use min_frac_sec to minimize frac sec
Rem    sdas        11/16/12 - misc fixes
Rem    sdas        11/08/12 - criri
Rem    sdas        11/03/12 - limit use of url_escape to rrIRI termType only
Rem    sdas        10/27/12 - test
Rem    sdas        10/11/12 - add URL_ESCAPE function
Rem    sdas        10/08/12 - create funcions for extracting value-components
Rem    spsundar    09/28/12 - merge the two create_rdfview_model interfaces into one
Rem    joseram     10/04/12 - add get_RegularExpresion_For function
Rem    spsundar    09/06/12 - change type of tables arg in create_rdfview_model
Rem    joseram     09/04/12 - adding function materialize_error_launch()
Rem    sdas        08/29/12 - add get_canon_val()
Rem    joseram     08/15/12 - adding optional base prefix to materialization
Rem    alwu        08/03/12 - re-enable delete_model_stats
Rem    alwu        08/02/12 - add new STATS APIs
Rem    matperry    07/26/12 - shorten max VC2 SPARQL literal length to 3500 for
Rem                           SPARQL query functions
Rem    matperry    07/25/12 - update for GeoSPARQL URI change
Rem    sdas        05/28/12 - shrink CRV interface
Rem    matperry    05/22/12 - update for GeoSPARQL URI revisions
Rem    matperry    05/15/12 - update for arbitrary entailment support in
Rem                           virtual models
Rem    sdas        04/26/12 - independent interface for maerializing rdfview
Rem                           model
Rem    jazarago    04/17/12 - Extend CLOB support on SPARQL helper functions
Rem    joseram     03/29/12 - Including option Materialize=T in create_rdfview_model()
Rem    jazarago    03/22/12 - Add string helper functions
Rem    matperry    03/20/12 - add getV$GeoSRID helper function
Rem    sdas        02/24/12 - simplify create_rdfview_model interface
Rem    spsundar    02/17/12 - rdb2rdf: generating schema info
Rem    jazarago    10/27/11 - Add TIMEZONE functions
Rem    jazarago    10/20/11 - Fix and add functionality to term construct
Rem                           functions
Rem    matperry    10/04/11 - add xsd constructor helpers
Rem    sdas        09/29/11 - RDB2RDF: handling R2RML mapping document
Rem    matperry    08/29/11 - add new sparql_if and sparql_coalesce helper
Rem                           functions
Rem    matperry    06/14/11 - add getvStringAndLangVal
Rem    sdas        05/25/11 - add wrappers for utl_url escape and unescape
Rem    krieb       04/11/11 - Optimize statistics table reads
Rem    krieb       03/17/11 - add user-level function to access stats
Rem                           information
Rem    matperry    03/16/11 - use 8307 (WGS 84 Long Lat) as default SRID for
Rem                           WKT Literals
Rem    rjanders    02/24/11 - Make sdo_geometry functions DETERMINISTIC
Rem    sdas        02/23/11 - CheckAppTabPriv: allow check for update-col priv
Rem    sdas        02/14/11 - external table: allow bad_file and log_file
Rem    sdas        02/08/11 - subprogram name change: use
Rem                           LOAD_INTO_STAGING_TABLE
Rem    sdas        02/04/11 - bulk-load api: simplified interface for using
Rem                           external table
Rem    krieb       01/31/11 - add rdf statistics table used to automatically
Rem                           generate hints (gather_model_stats,
Rem                           drop_model_stats)
Rem    matperry    12/02/10 - add getV$GeometryVal
Rem    sdas        11/22/10 - XbranchMerge sdas_ng_11.2.0.2.0_11.2.0.3.0 from
Rem                           st_sdo_11.2.0
Rem    sdas        11/22/10 - XbranchMerge sdas_ng_11.2.0.2.0 from
Rem    matperry    11/05/10 - add datatype indexing
Rem    matperry    10/22/10 - add orageo:srid namespace
Rem    matperry    10/15/10 - add constants for well-know-text literal type
Rem    vkolovsk    07/29/10 - XbranchMerge
Rem                           vkolovsk_rdf_ols_set_triple_label_11.2.0.2.0 from
Rem                           st_sdo_11.2.0
Rem    sdas        05/27/10 - XbranchMerge sdas_bug-9756570 from st_sdo_11.2.0
Rem    matperry    06/09/10 - parallel_enable FILTER functions
Rem    sdas        05/27/10 - bug 9756570: sem network index info view
Rem    matperry    03/18/10 - add more data type constants
Rem    matperry    02/23/10 - add helper functions for SPARQL SOLUTION
Rem                           MODIFIERs
Rem    matperry    11/20/09 - add langMatches as SPARQL FILTER helper function
Rem    matperry    11/12/09 - refactor all value$ filter functions to take all
Rem                           value$ columns as arguments
Rem    matperry    11/11/09 - remove getV$RDFTVal
Rem    matperry    10/16/09 - add isVCLOBhelper function for FILTER
Rem    matperry    09/09/09 - add constants for xsd type URIs
Rem    matperry    09/04/09 - add getV$STRVal()
Rem    matperry    08/31/09 - remove unused getV$ functions after Filter
Rem                           refactoring
Rem    matperry    08/13/09 - add rdfTermEqual and rdfTermComp
Rem    sdas        08/04/09 - for BASIC compress of OLTP data
Rem                           allow MOVE within same tablespace
Rem    matperry    06/26/09 - add dateTimeComp() and dateTimeEqual()
Rem    vkolovsk    06/11/09 - change order of parameters in merge_models
Rem    vkolovsk    06/09/09 - fix bug 8584453
Rem    matperry    05/12/09 - add cascade option to drop_sem_network
Rem    alwu        04/28/09 - change API names
Rem    matperry    04/17/09 - add effective boolean value helper method for
Rem                           FILTER
Rem    vkolovsk    03/25/09 - add rename_model
Rem    matperry    01/29/09 - add helper functions for SPARQL FILTER
Rem    alwu        12/29/08 - XbranchMerge alwu_new_ha_apis from st_sdo_11.1
Rem    matperry    10/31/08 - add create_virtual_model, drop_virtual_model
Rem    sdas        10/14/08 - flex indexing: add COMPRESS param
Rem    alwu        07/14/08 - migrate remove_duplicates or remove_duplicates API
Rem    alwu        07/14/08 - add HA APIs
Rem    alwu        06/27/08 - add logic to counter act the truncate trigger
Rem    alwu        06/26/08 - add more parameters to clean_model API
Rem    alwu        06/25/08 - add new APIs for UTH enhancement requests
Rem    spsundar    04/19/08 - update bulk_load_from_staging_table signature
Rem    sdas        02/28/08 - fif: generalize for inference and rules_index
Rem    sdas        02/20/08 - fif: allow more options on alter
Rem    sdas        02/15/08 - flexible indexing framework
Rem    alwu        09/13/07 - add statistics on demand
Rem    alwu        08/22/07 - add get_triple_id, is_triple for CLOB
Rem    sdas        04/16/07 - remove rdf dummy upgrade/downgrade routines
Rem    alwu        04/13/07 - remove gather_rdf_stats
Rem    sdas        03/28/07 - cleanup
Rem    sdas        03/16/07 - add REFRESH_SEM_TABLESPACE_NAMES
Rem    sdas        03/09/07 - allow storing diff RDF models in diff tablespaces
Rem    sdas        01/30/07 - change interface: IS_TRIPLE, GET_TRIPLE_ID
Rem    sdas        12/13/06 - put utility functions into SDO_RDF
Rem    sdas        10/24/06 - check INS priv for model in constructor
Rem    sdas        09/16/06 - remove add_namespaces
Rem    alwu        09/07/06 - sync up 11g document and proposed APIs
Rem    sdas        07/07/06 - add flags 
Rem    sdas        06/19/06 - add SEM interfaces 
Rem    sdas        06/14/06 - add upgrade and downgrade procedures 
Rem    sdas        06/08/06 - add BATCH_LOAD_FROM_STAGING_TABLE 
Rem    alwu        04/06/06 - fix bug: 5146335 
Rem    nalexand    02/14/06 - add create_logical_network(), drop_logical_network()
Rem    nalexand    02/10/06 - add gather_rdf_stats 
Rem    nalexand    01/31/06 - add get_model_name() 
Rem    echong      11/17/05 - define update_user_table$()
Rem    nalexand    10/11/05 - add cleanup_batch_load() 
Rem    nalexand    05/20/05 - remove get_triple_cost() 
Rem    nalexand    05/12/05 - add is_reified_quad() 
Rem    nalexand    05/12/05 - remove default tablespace_name 
Rem    nalexand    05/09/05 - nalexand_rdftrig0429
Rem    nalexand    05/06/05 - add get_triple_cost; remove rdf_geturl() 
Rem    nalexand    05/04/05 - new signature for create_rdf_model 
Rem    nalexand    05/03/05 - Created
Rem

Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@@?/rdbms/admin/sqlsessstart.sql
Rem ********************************************************************

CREATE OR REPLACE PACKAGE sdo_rdf AUTHID CURRENT_USER AS

--
--  !!!!! PLEASE READ BEFORE YOU ADD APIS IN THIS PACKAGE !!!!!!!!!!!!
--
--  All APIs in sdo_rdf should be wrapped and duplicated in sdordf.sql
--  That way, we have a consolidated view of sem_apis package
--

 /*---------------------------- Constants --------------------------*/
  XSDNSP                 CONSTANT VARCHAR2(33) := 'http://www.w3.org/2001/XMLSchema#';
  GML31RDFNSP            CONSTANT VARCHAR2(31) := 'http://www.opengis.net/ont/gml#';
  SFRDFNSP               CONSTANT VARCHAR2(30) := 'http://www.opengis.net/ont/sf#';
  GEOSPARQLNSP           CONSTANT VARCHAR2(37) := 'http://www.opengis.net/ont/geosparql#';
  GEOEPSGNSP             CONSTANT VARCHAR2(38) := 'http://www.opengis.net/def/crs/EPSG/0/';
  EPSG_DEFAULT           CONSTANT VARCHAR2(44) := 'http://www.opengis.net/def/crs/OGC/1.3/CRS84';
  ORARDFNSP              CONSTANT VARCHAR2(28) := 'http://xmlns.oracle.com/rdf/';
  ORAGEONSP              CONSTANT VARCHAR2(32) := ORARDFNSP || 'geo/';
  ORAGEOSRIDNSP          CONSTANT VARCHAR2(37) := ORAGEONSP || 'srid/';

  XSD_DECIMAL            CONSTANT VARCHAR2(40) := XSDNSP || 'decimal';
  XSD_DOUBLE             CONSTANT VARCHAR2(39) := XSDNSP || 'double';
  XSD_FLOAT              CONSTANT VARCHAR2(38) := XSDNSP || 'float';
  XSD_INTEGER            CONSTANT VARCHAR2(40) := XSDNSP || 'integer';
  XSD_INT                CONSTANT VARCHAR2(36) := XSDNSP || 'int';
  XSD_NONPOSITIVEINTEGER CONSTANT VARCHAR2(51) := XSDNSP || 'nonPositiveInteger';
  XSD_NEGATIVEINTEGER    CONSTANT VARCHAR2(48) := XSDNSP || 'negativeInteger';
  XSD_LONG               CONSTANT VARCHAR2(37) := XSDNSP || 'long';
  XSD_SHORT              CONSTANT VARCHAR2(38) := XSDNSP || 'short';
  XSD_BYTE               CONSTANT VARCHAR2(37) := XSDNSP || 'byte';
  XSD_NONNEGATIVEINTEGER CONSTANT VARCHAR2(51) := XSDNSP || 'nonNegativeInteger';
  XSD_UNSIGNEDLONG       CONSTANT VARCHAR2(45) := XSDNSP || 'unsignedLong';
  XSD_UNSIGNEDINT        CONSTANT VARCHAR2(44) := XSDNSP || 'unsignedInt';
  XSD_UNSIGNEDSHORT      CONSTANT VARCHAR2(46) := XSDNSP || 'unsignedShort';
  XSD_UNSIGNEDBYTE       CONSTANT VARCHAR2(45) := XSDNSP || 'unsignedByte';
  XSD_POSITIVEINTEGER    CONSTANT VARCHAR2(48) := XSDNSP || 'positiveInteger';
  XSD_BOOLEAN            CONSTANT VARCHAR2(40) := XSDNSP || 'boolean';
  XSD_STRING             CONSTANT VARCHAR2(39) := XSDNSP || 'string';
  XSD_DATE               CONSTANT VARCHAR2(37) := XSDNSP || 'date';
  XSD_TIME               CONSTANT VARCHAR2(37) := XSDNSP || 'time';
  XSD_DATETIME           CONSTANT VARCHAR2(41) := XSDNSP || 'dateTime';
  XSD_DAYTIMEDURATION    CONSTANT VARCHAR2(48) := XSDNSP || 'dayTimeDuration';

  GML31LITERAL           CONSTANT VARCHAR2(47) := GEOSPARQLNSP || 'gmlLiteral';
  OGC_WKT_LITERAL        CONSTANT VARCHAR2(47) := GEOSPARQLNSP || 'wktLiteral';
  ORA_GML31_LIT          CONSTANT VARCHAR2(44) := ORAGEONSP    || 'GML31Literal';
  WKT_LITERAL            CONSTANT VARCHAR2(42) := ORAGEONSP    || 'WKTLiteral';
  WKT_DEFAULT_SRID       CONSTANT NUMBER       := 8307; -- WGS 84 (Long Lat) in that order

  ORATEXT_DTYPE          CONSTANT VARCHAR2(32) := ORARDFNSP || 'text';
  ORALIKE_DTYPE          CONSTANT VARCHAR2(32) := ORARDFNSP || 'like';

  -- max VC2 literal length for SPARQL query functions --
  --SPARQL_MAX_LIT_LEN     CONSTANT INTEGER := 3500;
  SPARQL_MAX_VC_LEN      CONSTANT INTEGER := 4000;

  -- RDB2RDF constants
  RR_TAB_NAME_PREFIX              CONSTANT varchar2(30) := 'RDF_RR$TAB';
  RR_LTC_NAME_PREFIX              CONSTANT varchar2(30) := 'RDF_RR$LTC'; -- description of Logical Table Cols
  RR_TAB_NAME_MIDFMT              CONSTANT varchar2(30) := 'FMXXXXXXXX';

  SAVED_RR_TAB_NAME_PREFIX        CONSTANT varchar2(30) := 'RDF$RR$TAB';
  SAVED_RR_LTC_NAME_PREFIX        CONSTANT varchar2(30) := 'RDF$RR$LTC';

  -- two constants for STATS APIS
  VALUE_TAB_ONLY          CONSTANT VARCHAR2(32) := 'VALUE_TAB_ONLY';
  LINK_TAB_ONLY           CONSTANT VARCHAR2(32) := 'LINK_TAB_ONLY';

 /*---------------------- Procedures and Functions -----------------*/
  FUNCTION raise_parse_error (
    errtext VARCHAR2, lexval VARCHAR2, new_lexval VARCHAR2 default NULL)
  return varchar2 deterministic;
  pragma restrict_references (raise_parse_error,WNDS,RNDS,WNPS,RNPS);

  FUNCTION replace_rdf_prefix (
    string                       VARCHAR2
  , options                      VARCHAR2 default NULL
  ) RETURN                       VARCHAR2 deterministic;
  pragma restrict_references (replace_rdf_prefix,WNDS,RNDS,WNPS,RNPS);

  FUNCTION pov_typed_literal (
    lexval IN     VARCHAR2
  , options IN    VARCHAR2 default NULL
  ) RETURN        VARCHAR2;
  pragma restrict_references (pov_typed_literal,WNDS,RNDS,WNPS);

  FUNCTION get_esc_val (
    lexval varchar2 CHARACTER SET ANY_CS
  , esc_reserved_chars_bit pls_integer default 0
  , options varchar2 default null
  ) RETURN varchar2 CHARACTER SET lexval%CHARSET deterministic parallel_enable;

  FUNCTION url_escape (
    url                   IN VARCHAR2 CHARACTER SET ANY_CS,
    esc_reserved_chars    IN integer  DEFAULT  0,
    url_charset           IN VARCHAR2 DEFAULT  NULL
  )
  RETURN VARCHAR2 deterministic parallel_enable;

  FUNCTION url_unescape (
    url                   IN VARCHAR2 CHARACTER SET ANY_CS,
    url_charset           IN VARCHAR2 DEFAULT  NULL
  )
  RETURN VARCHAR2 deterministic parallel_enable;

  FUNCTION pencd (
    url                   IN VARCHAR2 CHARACTER SET ANY_CS,
    esc_reserved_chars    IN integer  DEFAULT  0,
    url_charset           IN VARCHAR2 DEFAULT  NULL,
    options               IN varchar2 DEFAULT  NULL
  )
  RETURN VARCHAR2 CHARACTER SET url%CHARSET deterministic parallel_enable;

  function tescp (val varchar2 CHARACTER SET ANY_CS, options varchar2 default null) return varchar2 CHARACTER SET val%CHARSET deterministic parallel_enable;
           pragma restrict_references (tescp,WNDS,RNDS,WNPS,RNPS);
  FUNCTION tuesc (val varchar2 CHARACTER SET ANY_CS) return varchar2 CHARACTER SET val%CHARSET deterministic parallel_enable;
           --pragma restrict_references (tuesc,WNDS,RNDS,WNPS,RNPS);

  FUNCTION criri (base_prefix varchar2 CHARACTER SET ANY_CS, val varchar2 CHARACTER SET ANY_CS, num_flag number default 0, options varchar2 default NULL)
           RETURN varchar2 CHARACTER SET val%CHARSET deterministic parallel_enable;
           --pragma restrict_references (criri,WNDS,RNDS,WNPS,RNPS);
  FUNCTION cbnod (val varchar2, options varchar2 default NULL)
           RETURN varchar2 deterministic parallel_enable;
           pragma restrict_references (cbnod,WNDS,RNDS,WNPS,RNPS);

  -- these functions return components of a non-CLOB RDF term
 
  FUNCTION vname (rdfterm varchar2, flags varchar2 default null) 
           RETURN varchar2 deterministic parallel_enable;
           pragma restrict_references (vname,WNDS,RNDS,WNPS,RNPS);

  FUNCTION vnpfx (rdfterm varchar2, flags varchar2 default null) 
           RETURN varchar2 deterministic parallel_enable;
           pragma restrict_references (vnpfx,WNDS,RNDS,WNPS,RNPS);

  FUNCTION vnsfx (rdfterm varchar2, flags varchar2 default null) 
           RETURN varchar2 deterministic parallel_enable;
           pragma restrict_references (vnsfx,WNDS,RNDS,WNPS,RNPS);

  FUNCTION vtype (rdfterm varchar2, flags varchar2 default null) 
           RETURN varchar2 deterministic parallel_enable;
           pragma restrict_references (vtype,WNDS,RNDS,WNPS,RNPS);

  FUNCTION ltype (rdfterm varchar2, flags varchar2 default null) 
           RETURN varchar2 deterministic parallel_enable;
           pragma restrict_references (ltype,WNDS,RNDS,WNPS,RNPS);

  FUNCTION latag (rdfterm varchar2, flags varchar2 default null) 
           RETURN varchar2 deterministic parallel_enable;
           pragma restrict_references (latag,WNDS,RNDS,WNPS,RNPS);

  -- CLOB to VARCHAR2 encoding: used in bulk-load to convert a CLOB value to VARCHAR2 using a specific encoding scheme
  FUNCTION clob2vc (lexval IN CLOB, options varchar2 default NULL)
           RETURN VARCHAR2 DETERMINISTIC parallel_enable;

  -- function to obtain canonical value for a lex value (even if identical)
  FUNCTION get_canon_val (lexval varchar2, flags varchar2 default null) RETURN varchar2 deterministic parallel_enable;
  pragma restrict_references (get_canon_val,WNDS,RNDS,WNPS,RNPS);

  FUNCTION get_roles_and_privs (options varchar2 default NULL) RETURN varchar2;

  FUNCTION checkAppTabPriv (
    owner        IN  varchar2
  , App_Tabname  IN  varchar2
  , App_Colname  IN  varchar2 default NULL
  , options      IN  varchar2 default NULL
  )
  return number;

  -- functions to get in-memory virtual columns
  FUNCTION GetVal(i_id NUMBER)
         RETURN VARCHAR2 DETERMINISTIC parallel_enable;

  FUNCTION GetPref(i_id NUMBER)
         RETURN VARCHAR2 DETERMINISTIC parallel_enable;

  FUNCTION GetSuff(i_id NUMBER)
         RETURN VARCHAR2 DETERMINISTIC parallel_enable;

  FUNCTION GetValTyp(i_id NUMBER)
         RETURN VARCHAR2 DETERMINISTIC parallel_enable;

  FUNCTION GetOrdTyp(i_id NUMBER)
         RETURN NUMBER DETERMINISTIC parallel_enable;

  FUNCTION GetOrdNum(i_id NUMBER)
         RETURN NUMBER DETERMINISTIC parallel_enable;

  FUNCTION GetOrdDate(i_id NUMBER)
         RETURN TIMESTAMP WITH TIME ZONE DETERMINISTIC parallel_enable;

  FUNCTION GetLitType(i_id NUMBER)
         RETURN VARCHAR2 DETERMINISTIC parallel_enable;

  FUNCTION GetLangType(i_id NUMBER)
         RETURN VARCHAR2 DETERMINISTIC parallel_enable;

  PROCEDURE CREATE_SOURCE_EXTERNAL_TABLE (
    source_table         varchar2
  , def_directory        varchar2
  , log_directory        varchar2 default NULL
  , bad_directory        varchar2 default NULL
  , log_file             varchar2 default NULL
  , bad_file             varchar2 default NULL
  , parallel             PLS_INTEGER default NULL
  , source_table_owner   varchar2 default NULL
  , prep_directory       varchar2 default NULL
  , preprocessor         varchar2 default NULL
  , flags                varchar2 default NULL
  );

  PROCEDURE LOAD_INTO_STAGING_TABLE (
    staging_table        varchar2
  , source_table         varchar2
  , input_format         varchar2 default NULL
  , parallel             PLS_INTEGER default NULL
  , staging_table_owner  varchar2 default NULL
  , source_table_owner   varchar2 default NULL
  , flags                varchar2 default NULL
  );

  PROCEDURE BULK_LOAD_FROM_STAGING_TABLE (
    model_name     IN          varchar2,
    table_owner    IN          varchar2, 
    table_name     IN          varchar2,
    flags          IN          varchar2 default NULL,
    debug          IN          PLS_INTEGER default NULL,
    start_comment  IN          varchar2 default NULL,
    end_comment    IN          varchar2 default NULL
  );

  PROCEDURE PRIVILEGE_ON_APP_TABLES (
    command varchar2 default 'GRANT'
  , privilege varchar2 default 'SELECT'
  );

  PROCEDURE PURGE_UNUSED_VALUES (
    flags               IN              varchar2 default NULL
  );

  PROCEDURE RESUME_LOAD_FROM_STAGING_TABLE (
    model_name          IN              varchar2,
    table_owner         IN              varchar2,
    table_name          IN              varchar2,
    session_id          IN              varchar2,
    flags               IN              varchar2 default NULL,
    start_comment       IN              varchar2 default NULL,
    end_comment         IN              varchar2 default NULL
  );

  FUNCTION get_model_id (
    model_name       IN  VARCHAR2
  ) RETURN               NUMBER;

  FUNCTION get_model_name(
    model_id         IN  NUMBER
  ) RETURN               VARCHAR2;

  FUNCTION is_triple (
    model_id         IN  NUMBER
  , rdf_t_id         IN  VARCHAR2
  ) RETURN               VARCHAR2;

  FUNCTION is_triple (
    model_name       IN  VARCHAR2
  , rdf_t_id         IN  VARCHAR2
  ) RETURN               VARCHAR2;

  FUNCTION is_triple (
    model_name           VARCHAR2
  , subject              VARCHAR2
  , property             VARCHAR2
  , object               VARCHAR2
  ) RETURN               VARCHAR2;

  FUNCTION is_triple (
      model_id        IN NUMBER
    , subject         IN VARCHAR2
    , property        IN VARCHAR2
    , object          IN VARCHAR2
  ) RETURN               VARCHAR2;


  FUNCTION is_triple (
    model_name           VARCHAR2
  , subject              VARCHAR2
  , property             VARCHAR2
  , object          CLOB
  ) RETURN               VARCHAR2;

  FUNCTION is_triple (
      model_id        IN NUMBER
    , subject         IN VARCHAR2
    , property        IN VARCHAR2
    , object     IN CLOB
  ) RETURN               VARCHAR2;

  FUNCTION get_triple_id (
    model_id             NUMBER
  , subject              VARCHAR2
  , property             VARCHAR2
  , object               VARCHAR2
  ) RETURN               VARCHAR2;

  FUNCTION get_triple_id (
    model_name           VARCHAR2
  , subject              VARCHAR2
  , property             VARCHAR2
  , object               VARCHAR2
  ) RETURN               VARCHAR2;


  FUNCTION get_triple_id (
    model_id             NUMBER
  , subject              VARCHAR2
  , property             VARCHAR2
  , object          CLOB
  ) RETURN               VARCHAR2;


  FUNCTION get_triple_id (
    model_name           VARCHAR2
  , subject              VARCHAR2
  , property             VARCHAR2
  , object          CLOB
  ) RETURN               VARCHAR2;


  FUNCTION is_reified_quad (
    model_id                IN  NUMBER
  , subject                 IN  VARCHAR2
  , property                IN  VARCHAR2
  , object                  IN  VARCHAR2
  ) RETURN                      VARCHAR2;

  FUNCTION is_reified_quad (
    model_name              IN  VARCHAR2
  , subject                 IN  VARCHAR2
  , property                IN  VARCHAR2
  , object                  IN  VARCHAR2
  ) RETURN                      VARCHAR2;

  PROCEDURE refresh_sem_tablespace_names (
    model_name                 VARCHAR2 default NULL  -- NULL => all
  );

  FUNCTION get_user_or_dba_schema RETURN VARCHAR2;

  PROCEDURE create_rdf_model (
    model_name          IN  VARCHAR2
  , table_name          IN  VARCHAR2
  , column_name         IN  VARCHAR2
  , model_tablespace    IN  VARCHAR2 default NULL
  , options             IN  VARCHAR2 default NULL
  );
  PROCEDURE drop_rdf_model (model_name IN VARCHAR2);

  PROCEDURE create_sem_model (
    model_name          IN  VARCHAR2
  , table_name          IN  VARCHAR2
  , column_name         IN  VARCHAR2
  , model_tablespace    IN  VARCHAR2 default NULL
  , options             IN  VARCHAR2 default NULL
  );
  PROCEDURE drop_sem_model (model_name IN VARCHAR2);

  /**
   * Note only owner of model and rules index (or dba) is
   * allowed to create a virtual model.
   */ 
  PROCEDURE create_virtual_model (
    vm_name             IN VARCHAR2
  , models              IN MDSYS.RDF_Models default NULL
  , rulebases           IN MDSYS.RDF_Rulebases default NULL
  , options             IN VARCHAR2 default NULL
  , entailments         IN MDSYS.RDF_Entailments default NULL
  );
  /**
   * Note only owner of virtual model (or dba) is allowed
   * to drop the virtual model.
   */
  PROCEDURE drop_virtual_model (vm_name IN VARCHAR2);

  PROCEDURE create_pg_rdfview (
    model_name          IN VARCHAR2
  , pg_name             IN VARCHAR2
  , tablespace_name     IN VARCHAR2 default NULL
  , options             IN VARCHAR2 default NULL
  );

  PROCEDURE create_pg_rdfview (
    model_name          IN VARCHAR2
  , pg_name             IN VARCHAR2
  , tablespace_name     IN VARCHAR2
  , pg_stag_tab         IN VARCHAR2
  , pg_edge_kv_tab      IN VARCHAR2
  , pg_node_kv_tab      IN VARCHAR2
  , pg_edge_tab         IN VARCHAR2
  , options             IN VARCHAR2 default NULL
  );

  PROCEDURE drop_pg_rdfview (
    model_name          IN VARCHAR2
  , options             IN VARCHAR2 default NULL
  );

  PROCEDURE drop_pg_rdfview (
    model_name          IN VARCHAR2
  , pg_stag_tab         IN VARCHAR2
  , options             IN VARCHAR2 default NULL
  );

  PROCEDURE build_pg_rdfview_indexes (
    pg_name             IN VARCHAR2
  , tablespace_name     IN VARCHAR2 default NULL
  , options             IN VARCHAR2 default NULL
  );

  PROCEDURE build_pg_rdfview_indexes (
    pg_name             IN VARCHAR2
  , tablespace_name     IN VARCHAR2
  , pg_edge_kv_tab      IN VARCHAR2
  , pg_node_kv_tab      IN VARCHAR2
  , pg_edge_tab         IN VARCHAR2
  , options             IN VARCHAR2 default NULL
  );

  PROCEDURE drop_pg_rdfview_indexes (
    pg_name             IN VARCHAR2
  , options             IN VARCHAR2 default NULL
  );

  FUNCTION get_RegularExpresion_For(
    regExp_type         VARCHAR2  
  )
  RETURN VARCHAR2;

  FUNCTION materialize_error_launch RETURN VARCHAR2;

  -- $$$TBD$$$ temporary begin ----------
  FUNCTION sqlTempl2sqlExpr(
    r2rmlTemplsql       VARCHAR2
  , termType            VARCHAR2
  , alias               VARCHAR2 -- alias_plus_dot
  , notNullColCondExpr IN OUT VARCHAR2
  , ltab_colList        VARCHAR2 default NULL -- for validation: ('col1','col2',...)
  , options             VARCHAR2 default NULL
  ) RETURN              VARCHAR2 deterministic;

  FUNCTION get_RESOURCE_From_Template(
    tabName          IN VARCHAR2  
  , template         IN VARCHAR2
  , notNullColCondExpr IN OUT VARCHAR2
  , options             VARCHAR2   default NULL
  ) RETURN              VARCHAR2 deterministic;
  -- $$$TBD$$$ temporary end ----------

  FUNCTION bfloat2LexFloat(val binary_float) RETURN varchar2 deterministic parallel_enable;
  FUNCTION bdouble2LexDouble(val binary_double) RETURN varchar2 deterministic parallel_enable;

  FUNCTION min_frac_sec (lexval varchar) RETURN varchar2 deterministic parallel_enable;
           pragma restrict_references (min_frac_sec,WNDS,RNDS,WNPS,RNPS);

  PROCEDURE export_rdfview_model (
    model_name          IN VARCHAR2
  , rdf_table_owner     IN VARCHAR2 default NULL
  , rdf_table_name      IN VARCHAR2 default NULL
  , options             IN VARCHAR2 default NULL
  );

  PROCEDURE create_rdfview_model (
    model_name          IN VARCHAR2
  , tables              IN SYS.ODCIVarchar2List
  , prefix              IN VARCHAR2 default NULL
  , r2rml_table_owner   IN VARCHAR2 default NULL
  , r2rml_table_name    IN VARCHAR2 default NULL
  , schema_table_owner  IN VARCHAR2 default NULL
  , schema_table_name   IN VARCHAR2 default NULL
  , options             IN VARCHAR2 default NULL
  , r2rml_string        IN CLOB CHARACTER SET ANY_CS default NULL
  , r2rml_string_fmt    IN VARCHAR2 default NULL
  );

  PROCEDURE drop_rdfview_model (model_name IN VARCHAR2,
                                options IN VARCHAR2 default NULL);

  /**
   * Note only the owner of the model (or dba) is allowed
   * to gather statistics for the model.
   */
  PROCEDURE gather_model_stats (
    model_name     IN VARCHAR2
  , options        IN VARCHAR2 default NULL
  );
  /**
   * Note only the owner of the model (or dba) is allowed
   * to drop statistics for the model.
   */
  PROCEDURE drop_model_stats (
    model_name     IN VARCHAR2
  );
  /**
   * Gets statistics information for the model.  This method is
   * meant to be used internally by SEM_MATCH, and not by a regular
   * user.  Note that any user with select privileges on the model
   * view will have access to the statistics
   */
  FUNCTION get_model_stats (
     model_name       IN VARCHAR2
  ,  stats_type       IN VARCHAR2
  ,  value_ids        IN SYS.ODCINumberList
  ,  options          IN VARCHAR2 default NULL
  )
  RETURN SYS_REFCURSOR;

 /**
  * Applies a sequence of SPARQL 1.1 UPDATE operations
  * to apply_model. Match operations from the WHERE clause
  * are matched against match_models and match_rulebases.
  */
  PROCEDURE update_model (
    apply_model        IN VARCHAR2
  , update_stmt        IN CLOB
  , match_models       IN MDSYS.RDF_Models    default NULL
  , match_rulebases    IN MDSYS.RDF_Rulebases default NULL
  , match_index_status IN VARCHAR2            default NULL
  , match_options      IN VARCHAR2            default NULL
  , options            IN VARCHAR2            default NULL
  );

 /**
  *  Translates a SPARQL query into SQL like SEM_MATCH
  *  table function does, but this one returns the
  *  translated SQL as a CLOB
  */
  FUNCTION sparql_to_sql (
    sparql_query   IN CLOB                CHARACTER SET ANY_CS
  , models         IN MDSYS.RDF_Models    
  , rulebases      IN MDSYS.RDF_Rulebases default NULL
  , aliases        IN MDSYS.RDF_Aliases   default NULL
  , index_status   IN VARCHAR2            default NULL
  , options        IN VARCHAR2            default NULL
  , graphs         MDSYS.RDF_Graphs       default NULL
  , named_graphs   MDSYS.RDF_Graphs       default NULL
  )
  RETURN CLOB;

 /**
   * If user has performed a series up id-only updates,
   * blank node identifiers may not be updated. This
   * procedure scans apply_model and resets blank node
   * prefixes according to current prefixing scheme.
   */
  PROCEDURE cleanup_bnodes (
    model_name         IN VARCHAR2
  , tablespace_name    IN VARCHAR2  default NULL
  , options            IN VARCHAR2  default NULL
  );
  
  /**
  * This procedure performs a delete as insert operation.
  * The model is truncated and everything, except triples
  * in del_tab_name is re-inserted.
  */
  PROCEDURE delete_as_insert (
    model_name         IN VARCHAR2
  , model_id_value     IN NUMBER   default NULL
  , del_tab_name       IN VARCHAR2
  , tablespace_name    IN VARCHAR2 default NULL
  , options            IN VARCHAR2 default NULL
  , mm_options         IN VARCHAR2 default NULL
  );
  
  /**
   * This procedure creates three required temporary tables for
   * SPARQL_UPDATE: RDF_UPD_INS$, RDF_UPD_INS_CLOB$, RDF_UPD_DEL$
   */
  PROCEDURE create_sparql_update_tables;

  /**
   * This procedure drops three required temporary tables for
   * SPARQL_UPDATE: RDF_UPD_INS$, RDF_UPD_INS_CLOB$, RDF_UPD_DEL$
   */
  PROCEDURE drop_sparql_update_tables;

  /**
   * This procedure takes a list of FROM graphs (graphs), a list of
   * FROM NAMED graphs (named_graphs), and a rules index name and
   * populates a models list and IDs list for the default graph and
   * and any named graphs
   */
  PROCEDURE processGraphs(graphs               MDSYS.RDF_Graphs,
                          named_graphs         MDSYS.RDF_Graphs,
                          precompIdx           VARCHAR2,
                          defaultGIDs      OUT SYS.ODCINumberList,
                          namedGIDs        OUT SYS.ODCINumberList,
                          defaultModels    OUT MDSYS.RDF_Models,
                          defaultMIDs      OUT SYS.ODCINumberList,
                          flag          IN OUT NUMBER);

  PROCEDURE parse_property_value (
    v_property       IN  VARCHAR2
  , pv_type          IN  VARCHAR2
  , pv_id            OUT NUMBER
  , new_pv           OUT BOOLEAN
  , flags            IN  VARCHAR2 DEFAULT NULL
  );

  PROCEDURE parse_object_node (
    v_object         IN  VARCHAR2
  , lit_type         IN  VARCHAR2
  , lit_lang         IN  VARCHAR2
  , ov_type          IN  VARCHAR2
  , ov_id            OUT NUMBER
  , cov_id           OUT NUMBER
  , new_ov           OUT BOOLEAN 
  );

  PROCEDURE parse_object_node (
    v_object         IN  CLOB
  , lit_type         IN  VARCHAR2
  , lit_lang         IN  VARCHAR2
  , ov_type          IN  VARCHAR2
  , ov_id            OUT NUMBER
  , cov_id           OUT NUMBER
  , new_ov           OUT BOOLEAN 
  );

  PROCEDURE cleanup_batch_load (table_name IN VARCHAR2);
  PROCEDURE cleanup_batch_load (
    table_name                  IN  VARCHAR2
  , temp_tab_name               IN  VARCHAR2
  );

  PROCEDURE move_sem_network_data (
    dest_schema      dbms_id
  , dest_tbs_name    dbms_id default NULL
  , degree           pls_integer
  , options          varchar2 default NULL
  );

  PROCEDURE restore_sem_network_data (
    from_schema      dbms_id
  , degree           pls_integer
  , options          varchar2 default NULL
  );

  PROCEDURE append_sem_network_data (
    from_schema      dbms_id
  , degree           pls_integer
  , options          varchar2 default NULL
  );

---------

  PROCEDURE create_rdf_network (
    tablespace_name in varchar2
  , options         in varchar2 default null);
  PROCEDURE drop_rdf_network (cascade in boolean default false);

  PROCEDURE create_sem_network (
    tablespace_name in varchar2
  , options in varchar2 default null);
  PROCEDURE drop_sem_network (cascade in boolean default false);

  PROCEDURE create_logical_network (model_name IN VARCHAR2);
  PROCEDURE drop_logical_network (model_name IN VARCHAR2);

  PROCEDURE migrate_data_to_current (options IN VARCHAR2 default NULL);
  PROCEDURE alter_sem_indexes (attr_name IN varchar2, new_val IN varchar2, 
                               options IN varchar2 default null);
  PROCEDURE enable_inmemory (populate_wait IN BOOLEAN);
  PROCEDURE disable_inmemory;

  /**
   * Note only model owner (or dba) is allowed to perform this action. 
   * All information in the existing application table will be lost. 
   * 'Triple' column will be reconstructed.
   * A commit will be performed at the very beginning of the procedure.
   */
  PROCEDURE remove_duplicates(model_name       IN VARCHAR2,
                        threshold       IN FLOAT DEFAULT 0.3,
                        rebuild_index    IN BOOLEAN DEFAULT TRUE);

  PROCEDURE get_change_tracking_info(model_name          IN     VARCHAR2,
                                     enabled             OUT BOOLEAN,
                                     tracking_start_time OUT TIMESTAMP);

  PROCEDURE get_inc_inf_info(entailment_name     IN     VARCHAR2,
                             enabled             OUT BOOLEAN,
                             prev_inf_start_time OUT TIMESTAMP);

  PROCEDURE merge_models(source_model           IN VARCHAR2,
                         destination_model      IN VARCHAR2,
                         rebuild_index          IN BOOLEAN DEFAULT TRUE,
                         drop_source_model      IN BOOLEAN DEFAULT FALSE,
                         options                IN VARCHAR2 DEFAULT NULL,
                         update_change_tracking IN BOOLEAN DEFAULT TRUE,
                         source_table           IN VARCHAR2 DEFAULT NULL);
                        
  /**
   * Note only model owner (or dba) is allowed perform this action. Not all 
   * parameters of dbms_stats.gather_table_stats makes sense here.
   */
  PROCEDURE analyze_model(
      model_name       IN VARCHAR2,
      estimate_percent IN NUMBER   DEFAULT DBMS_STATS.AUTO_SAMPLE_SIZE,
      method_opt       IN VARCHAR2 DEFAULT NULL,
      degree           IN NUMBER   DEFAULT NULL,
      cascade          IN BOOLEAN  DEFAULT DBMS_STATS.AUTO_CASCADE,
      no_invalidate    IN BOOLEAN  DEFAULT DBMS_STATS.AUTO_INVALIDATE,
      force            IN BOOLEAN  DEFAULT FALSE
     );

  /**
   * Note only rules index owner (or dba) is allowed perform this action. Not all 
   * parameters of dbms_stats.gather_table_stats makes sense here.
   */
  PROCEDURE analyze_rules_index(
      index_name IN VARCHAR2,
      estimate_percent IN NUMBER   DEFAULT DBMS_STATS.AUTO_SAMPLE_SIZE,
      method_opt       IN VARCHAR2 DEFAULT NULL,
      degree           IN NUMBER   DEFAULT NULL,
      cascade          IN BOOLEAN  DEFAULT DBMS_STATS.AUTO_CASCADE,
      no_invalidate    IN BOOLEAN  DEFAULT DBMS_STATS.AUTO_INVALIDATE,
      force            IN BOOLEAN  DEFAULT FALSE
     );


  PROCEDURE analyze_entailment(
      entailment_name  IN VARCHAR2,
      estimate_percent IN NUMBER   DEFAULT DBMS_STATS.AUTO_SAMPLE_SIZE,
      method_opt       IN VARCHAR2 DEFAULT NULL,
      degree           IN NUMBER   DEFAULT NULL,
      cascade          IN BOOLEAN  DEFAULT DBMS_STATS.AUTO_CASCADE,
      no_invalidate    IN BOOLEAN  DEFAULT DBMS_STATS.AUTO_INVALIDATE,
      force            IN BOOLEAN  DEFAULT FALSE
     );


  procedure export_model_stats(
   model_name      varchar2,
   stattab         VARCHAR2,
   statid          VARCHAR2 DEFAULT NULL,
   cascade         BOOLEAN  DEFAULT TRUE,
   statown         VARCHAR2 DEFAULT NULL,
   stat_category   VARCHAR2 DEFAULT 'OBJECT_STATS'
  );


  procedure import_model_stats(
   model_name      varchar2,
   stattab         VARCHAR2,
   statid          VARCHAR2 DEFAULT NULL,
   cascade         BOOLEAN  DEFAULT TRUE,
   statown         VARCHAR2 DEFAULT NULL,
   no_invalidate   BOOLEAN DEFAULT FALSE,
   force           BOOLEAN DEFAULT FALSE,
   stat_category   VARCHAR2 DEFAULT 'OBJECT_STATS'
   );


  procedure export_entailment_stats(
   entailment_name varchar2,
   stattab         VARCHAR2,
   statid          VARCHAR2 DEFAULT NULL,
   cascade         BOOLEAN  DEFAULT TRUE,
   statown         VARCHAR2 DEFAULT NULL,
   stat_category   VARCHAR2 DEFAULT 'OBJECT_STATS'
  );


  procedure import_entailment_stats(
   entailment_name varchar2,
   stattab         VARCHAR2,
   statid          VARCHAR2 DEFAULT NULL,
   cascade         BOOLEAN  DEFAULT TRUE,
   statown         VARCHAR2 DEFAULT NULL,
   no_invalidate   BOOLEAN DEFAULT FALSE,
   force           BOOLEAN DEFAULT FALSE,
   stat_category   VARCHAR2 DEFAULT 'OBJECT_STATS'
   );


  -- 
  -- This method will swap the names of two models and also the names of
  -- the two underlying application tables that correspond to these two models.
  -- 
  -- The input to this method are two model names. This method requires that the
  -- current session user is the owner of both models.
  --
  -- Note that a commit will be executed at the very beginning and very end of
  -- this method call.
  PROCEDURE swap_names(model1  in VARCHAR2,
                       model2  in VARCHAR2);

  PROCEDURE rename_model(old_name  in VARCHAR2,
                         new_name  in VARCHAR2);
  PROCEDURE rename_entailment(old_name  in VARCHAR2,
                              new_name  in VARCHAR2);


  /**
   * Note only model owner (or dba) is allowed perform this action. Not all 
   * parameters of dbms_stats.delete_table_stats makes sense here.
   */
  PROCEDURE delete_model_stats(
      model_name       IN VARCHAR2,
      cascade_parts    IN BOOLEAN  DEFAULT TRUE, 
      cascade_columns  IN BOOLEAN  DEFAULT TRUE,
      cascade_indexes  IN BOOLEAN  DEFAULT TRUE,
      no_invalidate    IN BOOLEAN  DEFAULT DBMS_STATS.AUTO_INVALIDATE,
      force            IN BOOLEAN  DEFAULT FALSE
     );


  /**
   * Note only model owner (or dba) is allowed perform this action. Not all 
   * parameters of dbms_stats.delete_table_stats makes sense here.
   */
  PROCEDURE delete_entailment_stats(
      entailment_name  IN VARCHAR2,
      cascade_parts    IN BOOLEAN  DEFAULT TRUE, 
      cascade_columns  IN BOOLEAN  DEFAULT TRUE,
      cascade_indexes  IN BOOLEAN  DEFAULT TRUE,
      no_invalidate    IN BOOLEAN  DEFAULT DBMS_STATS.AUTO_INVALIDATE,
      force            IN BOOLEAN  DEFAULT FALSE
     );


  PROCEDURE set_model_stats (
   model_name    VARCHAR2,
   numrows       NUMBER    DEFAULT NULL,
   numblks       NUMBER    DEFAULT NULL,
   avgrlen       NUMBER    DEFAULT NULL,
   flags         NUMBER    DEFAULT NULL,
   no_invalidate BOOLEAN   DEFAULT DBMS_STATS.AUTO_INVALIDATE,
   cachedblk     NUMBER    DEFAULT NULL,
   cachehit      NUMBER    DEFAULT NULL,
   force         BOOLEAN   DEFAULT FALSE
  );


  PROCEDURE set_entailment_stats (
   entailment_name  VARCHAR2,
   numrows          NUMBER   DEFAULT NULL,
   numblks          NUMBER   DEFAULT NULL,
   avgrlen          NUMBER   DEFAULT NULL,
   flags            NUMBER   DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT DBMS_STATS.AUTO_INVALIDATE,
   cachedblk        NUMBER   DEFAULT NULL,
   cachehit         NUMBER   DEFAULT NULL,
   force            BOOLEAN  DEFAULT FALSE
  );
  

  PROCEDURE add_sem_index (
    index_code      IN  VARCHAR2
  , tablespace_name IN  VARCHAR2 default NULL
  , compression_length IN  PLS_INTEGER default NULL
  );

  PROCEDURE drop_sem_index (
    index_code      IN   VARCHAR2
  );

  PROCEDURE add_datatype_index(
    datatype            IN VARCHAR2
  , tablespace_name     IN VARCHAR2 default NULL
  , parallel            IN PLS_INTEGER default NULL
  , online              IN BOOLEAN default FALSE
  , options             IN VARCHAR2 default NULL
  );

  PROCEDURE drop_datatype_index(
    datatype            IN VARCHAR2
  , force_drop          IN BOOLEAN default FALSE
  );

  PROCEDURE alter_datatype_index(
    datatype            IN VARCHAR2
  , command             IN VARCHAR2
  , tablespace_name     IN VARCHAR2 default NULL
  , parallel            IN PLS_INTEGER default NULL
  , online              IN BOOLEAN default FALSE
  );

  PROCEDURE alter_index_on_sem_graph (
    graph_name       IN  VARCHAR2
  , index_code       IN  VARCHAR2
  , command          IN  VARCHAR2
  , parallel         IN  PLS_INTEGER default NULL
  , online           IN  BOOLEAN default FALSE
  , tablespace_name  IN  VARCHAR2 default NULL
  , is_rules_index   IN  BOOLEAN default FALSE
  , use_compression  IN  BOOLEAN default NULL
  );

  PROCEDURE refresh_sem_network_index_info (
    options             IN VARCHAR2 default NULL
  );

  PROCEDURE alter_sem_graph (
    graph_name       IN  VARCHAR2
  , command          IN  VARCHAR2
  , tablespace_name  IN  VARCHAR2 default NULL
  , parallel         IN  PLS_INTEGER default NULL
  , is_rules_index   IN  BOOLEAN default FALSE
  );

  -- Helper functions for SPARQL FILTER --
  FUNCTION castToBoolean(
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION castToDouble(
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              BINARY_DOUBLE DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION castToFloat(
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              BINARY_FLOAT DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION castToDecimal(
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION castToInteger(
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION castToDateTime(
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              TIMESTAMP WITH TIME ZONE DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION castToString(
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , long_value       IN CLOB
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION isV$CLOB(
    vname            IN VARCHAR2
  ) RETURN              BOOLEAN DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$LitTypeFam(
    dTypeURI         IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$TypeFam(
    vType            IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION langMatches(
    value_type1      IN VARCHAR2
  , vname_prefix1    IN VARCHAR2
  , vname_suffix1    IN VARCHAR2
  , literal_type1    IN VARCHAR2
  , language_type1   IN VARCHAR2
  , value_type2      IN VARCHAR2
  , vname_prefix2    IN VARCHAR2
  , vname_suffix2    IN VARCHAR2
  , literal_type2    IN VARCHAR2
  , language_type2   IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION rdfTermComp(
    value_type1      IN VARCHAR2
  , vname_prefix1    IN VARCHAR2
  , vname_suffix1    IN VARCHAR2
  , literal_type1    IN VARCHAR2
  , language_type1   IN VARCHAR2
  , value_type2      IN VARCHAR2
  , vname_prefix2    IN VARCHAR2
  , vname_suffix2    IN VARCHAR2
  , literal_type2    IN VARCHAR2
  , language_type2   IN VARCHAR2
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION rdfTermEqual(
    value_type1      IN VARCHAR2
  , vname_prefix1    IN VARCHAR2
  , vname_suffix1    IN VARCHAR2
  , literal_type1    IN VARCHAR2
  , language_type1   IN VARCHAR2
  , value_type2      IN VARCHAR2
  , vname_prefix2    IN VARCHAR2
  , vname_suffix2    IN VARCHAR2
  , literal_type2    IN VARCHAR2
  , language_type2   IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION dateTimeComp(
    value_type1      IN VARCHAR2
  , vname_prefix1    IN VARCHAR2
  , vname_suffix1    IN VARCHAR2
  , literal_type1    IN VARCHAR2
  , language_type1   IN VARCHAR2
  , value_type2      IN VARCHAR2
  , vname_prefix2    IN VARCHAR2
  , vname_suffix2    IN VARCHAR2
  , literal_type2    IN VARCHAR2
  , language_type2   IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION dateTimeEqual(
    value_type1      IN VARCHAR2
  , vname_prefix1    IN VARCHAR2
  , vname_suffix1    IN VARCHAR2
  , literal_type1    IN VARCHAR2
  , language_type1   IN VARCHAR2
  , value_type2      IN VARCHAR2
  , vname_prefix2    IN VARCHAR2
  , vname_suffix2    IN VARCHAR2
  , literal_type2    IN VARCHAR2
  , language_type2   IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$EBVVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$NumericVal ( 
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;
  pragma restrict_references (getV$NumericVal,WNDS,RNDS,WNPS,RNPS);

  FUNCTION getV$StringVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$StringAndLangVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$DateTimeTZVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              TIMESTAMP WITH TIME ZONE DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$DateTZVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              TIMESTAMP WITH TIME ZONE DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$TimeTZVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              TIMESTAMP WITH TIME ZONE DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$BooleanVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$DatatypeVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$LangVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN               VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$STRVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , long_value       IN CLOB
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$GeometryVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , long_value       IN CLOB
  , srid             IN NUMBER 
  ) RETURN              MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

  -- VC rdfterm version
  FUNCTION getV$GeometryVal (
    term             IN VARCHAR2
  , srid             IN NUMBER
  ) RETURN MDSYS.SDO_GEOMETRY DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$GeoSRID (
    geom             IN MDSYS.SDO_GEOMETRY
  , col_SRID         IN NUMBER default null
  ) RETURN              VARCHAR2 PARALLEL_ENABLE;

  FUNCTION getV$GeoSRID_SDO (
    geom             IN MDSYS.SDO_GEOMETRY
  , col_SRID         IN NUMBER default null
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION convert_to_gml311_literal(
    geom             IN MDSYS.SDO_GEOMETRY
  , options          IN VARCHAR2 DEFAULT NULL
  ) RETURN              CLOB DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION convert_to_wkt_literal(
    geom             IN MDSYS.SDO_GEOMETRY
  , srid_prefix      IN VARCHAR2 DEFAULT NULL
  , options          IN VARCHAR2 DEFAULT NULL
  , col_SRID         IN NUMBER default null
  ) RETURN              CLOB DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_if (
    if_cond          IN NUMBER
  , value_types      IN SYS.ODCIVarchar2List
  , vname_prefixes   IN SYS.ODCIVarchar2List
  , vname_suffixes   IN SYS.ODCIVarchar2List
  , literal_types    IN SYS.ODCIVarchar2List
  , language_types   IN SYS.ODCIVarchar2List
  , long_values      IN MDSYS.RDF_CLOBS
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_coalesce (
    value_types      IN SYS.ODCIVarchar2List
  , vname_prefixes   IN SYS.ODCIVarchar2List
  , vname_suffixes   IN SYS.ODCIVarchar2List
  , literal_types    IN SYS.ODCIVarchar2List
  , language_types   IN SYS.ODCIVarchar2List
  , long_values      IN MDSYS.RDF_CLOBS
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_uri (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , base_prefix      IN VARCHAR2
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_bnode (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , no_args          IN PLS_INTEGER
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_strlang (
    value_type1      IN VARCHAR2
  , vname_prefix1    IN VARCHAR2
  , vname_suffix1    IN VARCHAR2
  , literal_type1    IN VARCHAR2
  , language_type1   IN VARCHAR2
  , long_value       IN CLOB
  , value_type2      IN VARCHAR2
  , vname_prefix2    IN VARCHAR2
  , vname_suffix2    IN VARCHAR2
  , literal_type2    IN VARCHAR2
  , language_type2   IN VARCHAR2
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_strdt (
    value_type1      IN VARCHAR2
  , vname_prefix1    IN VARCHAR2
  , vname_suffix1    IN VARCHAR2
  , literal_type1    IN VARCHAR2
  , language_type1   IN VARCHAR2
  , long_value1      IN CLOB
  , value_type2      IN VARCHAR2
  , vname_prefix2    IN VARCHAR2
  , vname_suffix2    IN VARCHAR2
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;
  
  FUNCTION sparql_timezone (
    value_type      IN VARCHAR2
  , vname_prefix    IN VARCHAR2
  , vname_suffix    IN VARCHAR2
  , literal_type    IN VARCHAR2
  , language_type   IN VARCHAR2
  , time_zone_func  IN PLS_INTEGER
  ) RETURN             MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION getV$RDFTermString (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , long_value       IN CLOB
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_substr (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , long_value       IN CLOB
  , offset           IN NUMBER
  , len              IN NUMBER
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_ucase (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , long_value       IN CLOB
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION sparql_lcase (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , long_value       IN CLOB
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION sparql_strbefore (
   value_types       IN SYS.ODCIVarchar2List
  , vname_prefixes   IN SYS.ODCIVarchar2List
  , vname_suffixes   IN SYS.ODCIVarchar2List
  , literal_types    IN SYS.ODCIVarchar2List
  , language_types   IN SYS.ODCIVarchar2List
  , long_values      IN MDSYS.RDF_CLOBS
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_strafter (
    value_types      IN SYS.ODCIVarchar2List
  , vname_prefixes   IN SYS.ODCIVarchar2List
  , vname_suffixes   IN SYS.ODCIVarchar2List
  , literal_types    IN SYS.ODCIVarchar2List
  , language_types   IN SYS.ODCIVarchar2List
  , long_values      IN MDSYS.RDF_CLOBS
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_replace (
    value_types      IN SYS.ODCIVarchar2List
  , vname_prefixes   IN SYS.ODCIVarchar2List
  , vname_suffixes   IN SYS.ODCIVarchar2List
  , literal_types    IN SYS.ODCIVarchar2List
  , language_types   IN SYS.ODCIVarchar2List
  , long_values      IN MDSYS.RDF_CLOBS
  , reg_exp          IN VARCHAR2
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_concat (
    value_types      IN SYS.ODCIVarchar2List
  , vname_prefixes   IN SYS.ODCIVarchar2List
  , vname_suffixes   IN SYS.ODCIVarchar2List
  , literal_types    IN SYS.ODCIVarchar2List
  , language_types   IN SYS.ODCIVarchar2List
  , long_values      IN MDSYS.RDF_CLOBS
  ) RETURN              MDSYS.SDO_RDF_TERM DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_contains (
    value_types      IN SYS.ODCIVarchar2List
  , vname_prefixes   IN SYS.ODCIVarchar2List
  , vname_suffixes   IN SYS.ODCIVarchar2List
  , literal_types    IN SYS.ODCIVarchar2List
  , language_types   IN SYS.ODCIVarchar2List
  , long_values      IN MDSYS.RDF_CLOBS
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_strlen (
    value_type       IN Varchar2
  , vname_prefix     IN Varchar2    
  , vname_suffix     IN Varchar2 
  , literal_type     IN Varchar2    
  , language_type    IN Varchar2
  , long_value       IN CLOB
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_strstarts (
    value_types      IN SYS.ODCIVarchar2List
  , vname_prefixes   IN SYS.ODCIVarchar2List
  , vname_suffixes   IN SYS.ODCIVarchar2List
  , literal_types    IN SYS.ODCIVarchar2List
  , language_types   IN SYS.ODCIVarchar2List
  , long_values      IN MDSYS.RDF_CLOBS
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_strends (
    value_types      IN SYS.ODCIVarchar2List
  , vname_prefixes   IN SYS.ODCIVarchar2List
  , vname_suffixes   IN SYS.ODCIVarchar2List
  , literal_types    IN SYS.ODCIVarchar2List
  , language_types   IN SYS.ODCIVarchar2List
  , long_values      IN MDSYS.RDF_CLOBS
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_encode_for_uri (
    value_name       IN VARCHAR2
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

 -- Begin VARCHAR rdf term versions of helper functions for simpler SQL generation
  FUNCTION rdfTermComp(
    term1            IN VARCHAR2
  , term2            IN VARCHAR2
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION rdfTermEqual(
    term1            IN VARCHAR2
  , term2            IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION sparql_substr (
    term             IN VARCHAR2
  , offset           IN NUMBER
  , len              IN NUMBER
  , canon            IN NUMBER
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_ucase (
    term             IN VARCHAR2
  , canon            IN NUMBER
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_lcase (
    term             IN VARCHAR2
  , canon            IN NUMBER
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_strbefore (
    term1            IN VARCHAR2
  , term2            IN VARCHAR2
  , canon            IN NUMBER
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_strafter (
    term1            IN VARCHAR2
  , term2            IN VARCHAR2
  , canon            IN NUMBER
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_regex (
    terms      IN SYS.ODCIVarchar2List
  , reg_exp    IN VARCHAR2
  ) RETURN     NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_replace (
    terms      IN SYS.ODCIVarchar2List
  , reg_exp    IN VARCHAR2
  , canon      IN NUMBER
  ) RETURN     VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_concat (
    terms      IN SYS.ODCIVarchar2List
  , canon      IN NUMBER
  ) RETURN     VARCHAR2 DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_contains (
    terms            IN SYS.ODCIVarchar2List
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION sparql_strlen (
    term             IN Varchar2
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION sparql_strstarts (
    terms            IN SYS.ODCIVarchar2List
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;

 FUNCTION sparql_strends (
    terms            IN SYS.ODCIVarchar2List
  , do_unescape      IN NUMBER DEFAULT 1
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;
  -- End VC RDF term functions


  -- End SPARQL FILTER functions --

  -- Helper functions for SPARQL SOLUTION MODIFIER --
  FUNCTION getV$OrderFamily (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  ) RETURN              NUMBER DETERMINISTIC PARALLEL_ENABLE;
  pragma restrict_references (getV$OrderFamily,WNDS,RNDS,WNPS,RNPS);

  FUNCTION getV$CalendarOrderVal (
    value_type       IN VARCHAR2
  , vname_prefix     IN VARCHAR2
  , vname_suffix     IN VARCHAR2
  , literal_type     IN VARCHAR2
  , language_type    IN VARCHAR2
  , dir              IN VARCHAR2
  ) RETURN              TIMESTAMP WITH TIME ZONE DETERMINISTIC PARALLEL_ENABLE;
  pragma restrict_references (getV$CalendarOrderVal,WNDS,RNDS,WNPS,RNPS);
  -- End SPARQL SOLUTION MODIFIER functions --

  -- Character escaping/unescaping functions --
  FUNCTION unescape_rdf_value(
    val       IN VARCHAR2 CHARACTER SET ANY_CS
  , options   IN VARCHAR2 DEFAULT NULL
  ) RETURN  VARCHAR2 CHARACTER SET val%CHARSET DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION unescape_clob_value(
    val           IN CLOB CHARACTER SET ANY_CS
  , start_offset  IN NUMBER   DEFAULT 1
  , end_offset    IN NUMBER   DEFAULT 0
  , include_start IN NUMBER   DEFAULT 0
  , options       IN VARCHAR2 DEFAULT NULL
  ) RETURN  CLOB CHARACTER SET val%CHARSET DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION unescape_rdf_term(
    term      IN VARCHAR2 CHARACTER SET ANY_CS
  , options   IN VARCHAR2 DEFAULT NULL
  ) RETURN  VARCHAR2 CHARACTER SET term%CHARSET DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION unescape_clob_term(
    term      IN CLOB CHARACTER SET ANY_CS
  , options   IN VARCHAR2 DEFAULT NULL
  ) RETURN  CLOB CHARACTER SET term%CHARSET DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION escape_rdf_value(
    val            IN VARCHAR2 CHARACTER SET ANY_CS
  , utf_encode     IN NUMBER   DEFAULT 1
  , allow_long     IN NUMBER   DEFAULT 0
  , options        IN VARCHAR2 DEFAULT NULL
  , term_padding   IN NUMBER   DEFAULT 0
  ) RETURN  VARCHAR2 CHARACTER SET val%CHARSET DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION escape_clob_value(
    val            IN CLOB CHARACTER SET ANY_CS
  , start_offset   IN NUMBER DEFAULT 1
  , end_offset     IN NUMBER DEFAULT 0
  , utf_encode     IN NUMBER DEFAULT 1
  , include_start  IN NUMBER DEFAULT 0
  , options        IN VARCHAR2 DEFAULT NULL
  ) RETURN  CLOB CHARACTER SET val%CHARSET DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION escape_rdf_term(
    term           IN VARCHAR2 CHARACTER SET ANY_CS
  , utf_encode     IN NUMBER DEFAULT 1
  , options        IN VARCHAR2 DEFAULT NULL
  ) RETURN  VARCHAR2 CHARACTER SET term%CHARSET DETERMINISTIC PARALLEL_ENABLE;

  FUNCTION escape_clob_term(
    term           IN CLOB CHARACTER SET ANY_CS
  , utf_encode     IN NUMBER DEFAULT 1
  , options        IN VARCHAR2 DEFAULT NULL
  ) RETURN  CLOB CHARACTER SET term%CHARSET DETERMINISTIC PARALLEL_ENABLE;
  -- End character escaping/unescaping functions --

  -- UTL_URL wrapper encode/decode funcs (NOTE: different default values)
  FUNCTION form_url_encode (
    data              IN VARCHAR2
  , charset           IN VARCHAR2 default NULL) RETURN VARCHAR2 PARALLEL_ENABLE;

  FUNCTION form_url_decode (
    data             IN VARCHAR2
  , charset          IN VARCHAR2 default NULL) RETURN VARCHAR2;
  
  FUNCTION expand_uri_w_base (
    base                   IN varchar2
  , query                  IN varchar2) RETURN VARCHAR2 DETERMINISTIC PARALLEL_ENABLE; 
  
END sdo_rdf ;
/
SHOW ERRORS;


Rem ********************************************************************
Rem #16473696: Indicate Oracle-Supplied object
@?/rdbms/admin/sqlsessend.sql
Rem ********************************************************************


OHA YOOOO