MINI MINI MANI MO
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