MINI MINI MANI MO

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

Rem
Rem $Header: sdo/admin/sdoseminfh.sql /main/33 2017/11/22 08:47:59 anestrad Exp $
Rem
Rem sdoseminfh.sql
Rem
Rem Copyright (c) 2006, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      sdoseminfh.sql - <one-line expansion of the name>
Rem
Rem    DESCRIPTION
Rem      <short description of component this file declares/defines>
Rem
Rem    NOTES
Rem      <other useful comments, qualifications, etc.>
Rem
Rem    BEGIN SQL_FILE_METADATA
Rem    SQL_SOURCE_FILE: sdo/admin/sdoseminfh.sql
Rem    SQL_SHIPPED_FILE: md/admin/sdoseminfh.sql
Rem    SQL_PHASE: SDOSEMINFH
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    anestrad    11/08/17 - Add is_user_label function
Rem    rjanders    03/09/17 - Add missing SQL_FILE_METADATA information
Rem    anestrad    02/10/16 - Add user_name_in parameter in create_rules_index
Rem    rjanders    03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem                           initialization
Rem    sdas        01/05/13 - XbranchMerge sdas_bug-10406620_12.1 from
Rem                           st_sdo_12.1.0.1
Rem    matperry    12/20/12 - refactor creation of clique views
Rem    krieb       07/16/12 - add function to check restriction datatype
Rem                           heirarchy
Rem    alwu        07/06/12 - add wrapper calls for label APIs
Rem    alwu        05/15/12 - with Karl, start ladder based inference
Rem    alwu        05/07/12 - add two more helper APIs
Rem    alwu        03/16/12 - add APIs to extract entailment ID and signature
Rem    alwu        03/07/12 - add a new API for extracting delta view name in
Rem                           inference extension
Rem    krieb       02/13/12 - add IGNORE_NULL optimization flag for
Rem                           user-defined inference functions
Rem    alwu        02/10/12 - rename count
Rem    alwu        01/31/12 - add API for inf extension function to trace
Rem                           performance
Rem    alwu        01/24/12 - add vid to res related APIs
Rem    alwu        01/20/12 - add helper APIs for inference extension function
Rem    alwu        01/19/12 - add new inference extension API. add column flag constants
Rem    alwu        01/13/12 - add inference extension action constants
Rem    alwu        01/12/12 - add query extension capabilities
Rem    matperry    03/09/11 - add create_ent_views
Rem    alwu        01/10/11 - add transtivity related rules for NG local
Rem                           inference
Rem    alwu        01/03/11 - NG local inference part 3
Rem    alwu        12/21/10 - add local inference for named graph part2
Rem    alwu        12/17/10 - name graph local inference
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    vkolovsk    09/14/10 - use sem_graphs
Rem    alwu        08/16/10 - auto dop for inference
Rem    vkolovsk    07/28/10 - XbranchMerge vkolovsk_bug-9724396 from
Rem                           st_sdo_11.2.0
Rem    vkolovsk    07/07/10 - add NG options
Rem    vkolovsk    06/02/10 - add build models union clause
Rem    vkolovsk    06/02/10 - introduce a new definer''s rights package to
Rem                           contain most of the logic
Rem    vkolovsk    05/27/10 - add build_models_union fcn since inf_i needs it
Rem                           to prevent potential sql inj.
Rem    alwu        02/04/09 - rename use_perfect_reverse_hashing to use_raw
Rem    alwu        01/27/09 - udpate m() mapping function
Rem    alwu        01/26/09 - add mapping function
Rem    alwu        01/05/09 - three column design
Rem    alwu        09/07/06 - bring back sdo_sem_inference to public for passing tst
Rem    alwu        09/07/06 - sync up 11g document and proposed APIs
Rem    alwu        06/29/06 - remove COPYRD option 
Rem    alwu        05/04/06 - add two APIs for COPYRD support 
Rem    alwu        04/25/06 - add replace for synonym 
Rem    alwu        04/21/06 - add grant to make this package public 
Rem    alwu        04/20/06 - start
Rem    alwu        04/20/06 - start
Rem    alwu        04/20/06 - Created
Rem

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

create or replace package sdo_sem_inf_internal as

  procedure get_uid(vcName      in varchar2,
                    vcLitType   in varchar2,
                    vcValueType in varchar2,
                    iID   out int);

  --table containing two number columns (M and G)
  procedure create_rules_index(user_name_in      varchar2,
                               index_name_in     varchar2,
                               models_in         mdsys.rdf_models,
                               rulebases_in      mdsys.rdf_rulebases,
                               passes            integer  default 0,
                               inf_components_in varchar2 default null,
                               options           varchar2 default null,
                               delta_in          mdsys.rdf_models default null,
                               ng_tab_name       varchar2,
                               ng_tab_schema     varchar2 default null,
                               inf_ng_name       varchar2 default null,
                               inf_ext_user_func_name varchar2 default null,
                               ols_ladder_inf_lbl_seq varchar2 default null  -- A string a numeric labels
                                                                             -- delimited by a space
                               );

  procedure create_ent_views(index_name_in       varchar2,
                             ptn_name_in         varchar2);

  procedure create_clique_views(vcIdx            varchar2,
                                vcCliquePtnName  varchar2);

  function m(i int) return varchar2;
  function build_models_union_clause(models            mdsys.rdf_models, 
                                     bJustModels       boolean,
                                     bDefaultGraphOnly boolean) return varchar2;

  function satisfy_restriction_datatype(literal_type         varchar2,
                                        restriction_datatype varchar2,
                                        lax_check            integer default 0) 
  return int deterministic PARALLEL_ENABLE;
  pragma restrict_references (satisfy_restriction_datatype,WNDS,WNPS,RNDS);

 end;
/

create or replace package sdo_sem_inference authid current_user as

  INF_EXT_ACTION_START constant varchar2(100) := 'START';   -- prepare phase
  INF_EXT_ACTION_RUN   constant varchar2(100) := 'RUN';     -- action phase
  INF_EXT_ACTION_END   constant varchar2(100) := 'END';     -- cleanup phase


  -- INF_EXT_OPT_FLAG_NONE means that there is no optimization 
  INF_EXT_OPT_FLAG_NONE          constant integer := 0;
  -- INF_EXT_OPT_FLAG_ALL_IDS means that the output table contains only ID based triples/quads
  INF_EXT_OPT_FLAG_ALL_IDS       constant integer := 1;
  -- INF_EXT_OPT_FLAG_ALL_IDS means that the output table contains only new triples/quads
  INF_EXT_OPT_FLAG_NEWDATA_ONLY  constant integer := 2;
  -- INF_EXT_OPT_FLAG_ALL_IDS means that the output table contains only distinct triples/quads
  INF_EXT_OPT_FLAG_UNIQDATA_ONLY constant integer := 4;
  -- INF_EXT_OPT_FLAG_IGNORE_NULL means triples with null values for s, p, or o should be ignored
  INF_EXT_OPT_FLAG_IGNORE_NULL   constant integer := 8;

  procedure create_rules_index(index_name_in          varchar2,
                               models_in              mdsys.rdf_models,
                               rulebases_in           mdsys.rdf_rulebases,
                               passes                 integer  default 0,
                               inf_components_in      varchar2 default null,
                               options                varchar2 default null,
                               delta_in               mdsys.rdf_models default null,
                               ng_tab_name            varchar2,
                               ng_tab_schema          varchar2 default null,
                               inf_ng_name            varchar2 default null,
                               inf_ext_user_func_name varchar2 default null,
                               ols_ladder_inf_lbl_seq varchar2 default null -- A string a numeric labels
                                                                            -- delimited by a space
                               );


  procedure create_rules_index(index_name_in          varchar2,
                               models_in              mdsys.rdf_models,
                               rulebases_in           mdsys.rdf_rulebases,
                               passes                 integer  default 0,
                               inf_components_in      varchar2 default null,
                               options                varchar2 default null,
                               delta_in               mdsys.rdf_models default null,
                               include_named_g        sem_graphs default null,
                               include_default_g      mdsys.rdf_models default null,
                               include_all_g          mdsys.rdf_models default null,
                               inf_ng_name            varchar2 default null,
                               inf_ext_user_func_name varchar2 default null,
                               ols_ladder_inf_lbl_seq varchar2 default null -- A string a numeric labels
                                                                            -- delimited by a space
                               );

  -- oracle_orardf_res2vid translates an RDF resource to 
  -- its internal integer ID
  -- Note that a blank Node must has a string value that starts with _:
  -- And a literal RDF resource must start with a double quote.
  -- The rest of RDF resources will be treated as URIs.
  function oracle_orardf_res2vid(res in varchar2, 
                                  lt in varchar2 default null, 
                                lang in varchar2 default null) return number
      deterministic parallel_enable  -- result_cache
      ;

  function oracle_orardf_add_res(res in varchar2, 
                                 lt in varchar2 default null, 
                               lang in varchar2 default null) return number
      deterministic parallel_enable  -- result_cache
      ;

  -- This function will extract a delta view name
  -- from the src_tab_view argument. 
  -- For example, if the src_tab_view is something like 
  -- 'MDSYS.RDF#4#SV /* MDSYS.RDF#4#DV */'
  -- a string value of MDSYS.RDF#4#DV will be returned.
  -- This function will return NULL if there is no
  -- delta view embedded 
  function extract_delta_view_name(src_tab_view in varchar2)
    return varchar2
      ;


  -- 
  -- This method extracts the entaliment ID information from
  -- the inf_ext_options that is passed into a user's inference
  -- extension function.
  -- A NULL value will be returned if the inf_ext_options
  -- is using an unexpected syntax.
  --
  function extract_entailment_id(inf_ext_options in varchar2)
    return number
      ;

  -- 
  -- This method extracts the entaliment signature from
  -- the inf_ext_options that is passed into a user's inference
  -- extension function.
  -- A NULL value will be returned if the inf_ext_options
  -- is using an unexpected syntax.
  --
  function extract_entailment_sig(inf_ext_options in varchar2)
    return varchar2
      ;

  -- Returns a lexical form of the given RDF resource ID
  -- If the resource ID does not exist in MDSYS.RDF_VALUE$,
  -- then a NULL value will be returned.
  function oracle_orardf_vid2lex(vid in number) return varchar2
      deterministic parallel_enable -- result_cache
      ;

  -- Returns a lexical form of the given RDF resource ID
  -- If the resource ID does not exist or it is not representing
  -- a URI, then a NULL value will be returned.
  function oracle_orardf_vid2uri(vid in number) return varchar2
      deterministic parallel_enable -- result_cache
      ;

  -- Returns a lexical form (without leading and trailing double quotes)
  -- of the given RDF resource ID
  -- If the resource ID does not exist or it is not representing
  -- a literal, then a NULL value will be returned.
  function oracle_orardf_vid2lit(vid in number) return varchar2
      deterministic parallel_enable -- result_cache
      ;

  -- Returns a lexical form (without leading and trailing double quotes)
  -- of the given RDF resource ID
  -- If the resource ID does not exist or it is not representing
  -- a blank node, then a NULL value will be returned.
  function oracle_orardf_vid2bnode(vid in number) return varchar2
      deterministic parallel_enable -- result_cache
      ;


  -- Returns a lexical form of the given RDF resource ID
  -- If the resource ID does not exist in MDSYS.RDF_VALUE$,
  -- then a NULL value will be returned.
  procedure oracle_orardf_vid2lex(vid   in number
                                , res  out varchar2
                                , lt   out varchar2
                                , lang out varchar2) 
      deterministic parallel_enable 
      ;


  --
  -- A few internal string manipulation helper functions
  --
  function extract_fname(v varchar2) return varchar2;
  function extract_uname(v varchar2) return varchar2;
  function extract_callout_func_names(vcInfExtUserFuncNames varchar2)
    return mdsys.rdf_longVarcharArray;
  function extract_labels(vcLabelString varchar2) 
    return mdsys.rdf_longVarcharArray;

  procedure enforce_definer( vcUser varchar2
                           , vcSpecifiedUser varchar2
                           , infExtUserFuncName varchar2);

  function is_user_label(nLabel number) return boolean;
  procedure set_label(nLabel number);
  procedure set_label_wrapper(nLabel number);
  procedure set_row_label_wrapper(nLabel number);
  function numeric_label_wrapper(policy_name in varchar2) return number;
  function numeric_row_label_wrapper(policy_name in varchar2) return number;

  --
  -- Print the execution plan for last SQL Statement using DBMS_OUTPUT
  --
  procedure print_plan(nStartTime number default null, vcLineStart varchar2 default null);
 end;
/

create or replace public synonym sdo_sem_inference for mdsys.sdo_sem_inference;
grant execute on sdo_sem_inference to public;

show errors;

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


OHA YOOOO