MINI MINI MANI MO

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

Rem
Rem $Header: sdo/admin/sdoseminfih.sql /main/48 2017/03/17 13:26:19 rjanders Exp $
Rem
Rem sdoseminfih.sql
Rem
Rem Copyright (c) 2006, 2017, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      sdoseminfih.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/sdoseminfih.sql
Rem    SQL_SHIPPED_FILE: md/admin/sdoseminfih.sql
Rem    SQL_PHASE: SDOSEMINFIH
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    rjanders    03/09/17 - Add missing SQL_FILE_METADATA information
Rem    sravada     01/11/17 - bug 25370681
Rem    rjanders    03/15/13 - #16473696: Start/End _ORACLE_SCRIPT
Rem                           initialization
Rem    alwu        09/20/12 - avf_plsql_po: handling of XSD data types
Rem    alwu        09/19/12 - add cls_maxqc3_query_po
Rem    alwu        09/19/12 - add cls_maxc2_query_po
Rem    alwu        09/18/12 - add build_stmt_avf_plsql_po
Rem    alwu        09/18/12 - add optimized build_stmt_avf_query_po
Rem    alwu        08/20/12 - fix bug 14514349
Rem    krieb       07/16/12 - add new function to handle datatype restrictions
Rem    alwu        07/09/12 - add owl:hasSelf semantics
Rem    krieb       06/14/12 - handle leading hints for incremental inference
Rem                           case correctly in non-procedural SVFH/AVFH
Rem    krieb       06/05/12 - add non-procedural SVFH implementation
Rem    rjanders    02/07/12 - Remove DOC> C-style comments (security)
Rem    alwu        01/10/11 - add transtivity related rules for NG local
Rem                           inference
Rem    alwu        01/04/11 - split build_stmt_svfh_avfh_plsql into two parts for NG local inference
Rem    alwu        01/03/11 - refactor and use new API build_stmt_find_matching_sub
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    alwu        12/03/10 - add local inference part1
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    vkolovsk    07/28/10 - XbranchMerge vkolovsk_bug-9724396 from
Rem                           st_sdo_11.2.0
Rem    vkolovsk    06/09/10 - add proc. dom
Rem    vkolovsk    06/03/10 - change build_stmt_fp: remove vcModelsUnion from
Rem                           param
Rem    vkolovsk    05/27/10 - sec. inj. fixes
Rem    vkolovsk    04/23/10 - XbranchMerge vkolovsk_bug-9646520 from main
Rem    vkolovsk    04/21/10 - add dom version of cls-svf2 rule
Rem    alwu        04/20/10 - factor common string in get_dumb_123
Rem    vkolovsk    04/15/10 - added sam_prop rule
Rem    vkolovsk    04/13/10 - added missing owl 2 rl rules
Rem    vkolovsk    11/19/09 - procedural ran opt.
Rem    vkolovsk    07/07/09 - add cls-svf2 rule
Rem    vkolovsk    06/10/09 - procedural RAN optimization, non procedural ran
Rem                           fix
Rem    vkolovsk    06/09/09 - add fpDifHint
Rem    alwu        05/15/09 - add same optimization as in
Rem                           match_intersect_inst_dist
Rem    alwu        05/05/09 - revert property chain api
Rem    alwu        03/30/09 - fix property chain axiom: should not have bNode
Rem                           as predicate
Rem    vkolovsk    03/19/09 - move process owlthing rules here
Rem    alwu        03/17/09 - add chain instance rule
Rem    alwu        03/09/09 - drop svf_spo
Rem    vkolovsk    02/26/09 - simplify el_r3 rule
Rem    vkolovsk    02/19/09 - add svf_spo
Rem    alwu        02/19/09 - add build_stmt_chain
Rem    alwu        02/11/09 - increase CUT_MARKER size
Rem    vkolovsk    02/07/09 - refactoring 2-step rules
Rem    vkolovsk    02/06/09 - refactoring two-step rpocedural rules
Rem    alwu        01/05/09 - three column design
Rem    vkolovsk    01/02/09 - build_stmt for svf_plsql, svfh_plsql, avf_plsql
Rem    vkolovsk    12/16/08 - fp and ifp related fixes for incremental
Rem    alwu        11/19/08 - add intersection support
Rem    alwu        02/27/07 - improve SVF for lubm1000
Rem    alwu        01/02/07 - add build_stmt_hva
Rem    alwu        07/18/06 - optimize FP_DIF 
Rem    alwu        07/14/06 - more RDFS rules 
Rem    alwu        06/28/06 - factor out get/set proof from sdo_sem_infi 
Rem                           package 
Rem    alwu        06/27/06 - add new APIs for passing proof parameter 
Rem    alwu        06/23/06 - start adding proof 
Rem    alwu        06/13/06 - remove get_hint_hash_unique 
Rem    alwu        06/07/06 - add fp_circle_dif rule:a dif b, a fp b, c fp c => a dif c 
Rem    alwu        06/01/06 - move COMPH related APIs to sdoseminfh package 
Rem    alwu        05/23/06 - add FP/IFP caused differentFrom 
Rem    alwu        05/19/06 - add disjointWith rule for instances 
Rem    alwu        05/16/06 - add symmetricity 
Rem    alwu        05/12/06 - add API for hash unique hint 
Rem    alwu        05/10/06 - add new language constructs: dom, ran, etc. 
Rem    alwu        05/02/06 - start
Rem    alwu        05/02/06 - start
Rem    alwu        05/02/06 - Created
Rem

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

-- /** 
--  * Individual (instance) related inference including classification etc. 
--  */
create or replace package sdo_sem_infi authid current_user as
  CUT_MARKER constant varchar2(20) := ' /* CUT */ ';

--   /** 
--    * RDFS9: Expand instance classifications based on class subsumption hierachy.
--    */
  function build_stmt_scoi(models            mdsys.rdf_models,
                           rulebases         mdsys.rdf_rulebases,
                           vcTabName         varchar2,
                           vcViewName        varchar2,
                           vcModelsUnion     varchar2,
                           iIdType           int,
                           iIdSco            int
                           )
  return varchar2;


--   /** 
--    * RDFS7: Expand role assertions based on role hierachy.
--    */
  function build_stmt_spoi(models            mdsys.rdf_models,
                           rulebases         mdsys.rdf_rulebases,
                           vcTabName         varchar2,
                           vcViewName        varchar2,
                           iIdSpo            int
                           )
  return varchar2;


  -- 
  -- i type _:x
  -- _:x owl:hasSelf True, _:x onProperty op
  -- ==> i op i 
  --
  function build_stmt_hasselfi(models            mdsys.rdf_models,
                               rulebases         mdsys.rdf_rulebases,
                               vcTabName         varchar2,
                               vcViewName        varchar2,
                               iIdType           int,
                               iIdHasSelf        int,
                               iIdTrueBoolean    int,
                               iIdOP             int
                               )
  return varchar2;

  -- 
  -- i op i 
  -- _:x owl:hasSelf True, _:x onProperty op
  -- ==> i type _:x
  --
  function build_stmt_hasselft(models            mdsys.rdf_models,
                               rulebases         mdsys.rdf_rulebases,
                               vcTabName         varchar2,
                               vcViewName        varchar2,
                               iIdType           int,
                               iIdHasSelf        int,
                               iIdTrueBoolean    int,
                               iIdOP             int
                               )
  return varchar2;


--   /**
--    * Rules: RDFS2 : http://www.w3.org/TR/rdf-mt/#RDFRules
--    */
  function build_stmt_dom( models            mdsys.rdf_models,
                           rulebases         mdsys.rdf_rulebases,
                           vcTabName         varchar2,
                           vcViewName        varchar2,
                           vcModelsUnion     varchar2,
                           iIdDom            int,
                           iIdType           int) return varchar2;

--   /**
--    * Rules: RDFS3 : http://www.w3.org/TR/rdf-mt/#RDFRules
--    * aaa rdfs:range xxx .
--    * uuu aaa vvv .             ==> vvv rdf:type xxx .
--    *
--    * Note when @bRDFS is true, we have to skip those objects
--    * that are not URIs.
--    * A motivating example is: 
--    *    xyz   rdfs:label "10.1"
--    *    rdfs:label rdfs:range rdfs:Literal, 
--    * we don't want to infer "10.1" type rdfs:Literal
--    */
  function build_stmt_ran( models            mdsys.rdf_models,
                           rulebases         mdsys.rdf_rulebases,
                           vcTabName         varchar2,
                           vcViewName        varchar2,
                           vcModelsUnion     varchar2,
                           iIdRan            int,
                           iIdType           int,
                           bRDFS             boolean default false,
                           vcXMLSchemaList   varchar2)
    return varchar2;


--   /**
--    * p1 inv p2, a p1 b => b p2 a
--    */
  function build_stmt_inv(models            mdsys.rdf_models,
                          rulebases         mdsys.rdf_rulebases,
                          vcTabName         varchar2,
                          vcViewName        varchar2,
                          iIdIo             int
                          ) return varchar2; 


--   /**
--    * Note: due to pD* semantics, we need to add  
--    *       p1 inv p2, a p2 b => b p1 a explictly.
--    */
  function build_stmt_inv_reverse(models            mdsys.rdf_models,
                                  rulebases         mdsys.rdf_rulebases,
                                  vcTabName         varchar2,
                                  vcViewName        varchar2,
                                  iIdIo             int
                                  ) 
  return varchar2;


--   /**
--    * FP rule: p1 :type owl:FunctionalProperty,  x p1 a, x p1 b =>
--    * a owl:sameAs b   and b owl:sameAs a (through the beauty of Joins)
--    */
  function build_stmt_fp(models            mdsys.rdf_models,
                         rulebases         mdsys.rdf_rulebases,
                         vcTabName         varchar2,
                         vcViewName        varchar2,
                         vcFPTabName       varchar2,
                         iIdType           int,
                         iIdFP             int,
                         iIdSam            int,
                         iPreds    IN OUT  int,
                         bReflexive        boolean
                         ) return varchar2;

--   /**
--    * IFP rule: p1 :type owl:InverseFunctionalProperty,  a p1 x, b p1 x =>
--    * a owl:sameAs b   and b owl:sameAs a (through the beauty of Joins)
--    */
  function build_stmt_ifp(models           mdsys.rdf_models,
                         rulebases         mdsys.rdf_rulebases,
                         vcTabName         varchar2,
                         vcViewName        varchar2,
                         vcIFPTabName      varchar2,
                         iIdType           int,
                         iIdIFP            int,
                         iIdSam            int,
                         iPreds  IN OUT    int,
                         bReflexive        boolean
                         ) return varchar2;

--  /**
--    * SAM_PROP rule: 
--    *  a) p1 owl:sameAs p2, i p1 o  => i p2 o
--    * Symmetricity will take care the other half.
--    */
  function build_stmt_sam_prop(models           mdsys.rdf_models,
                         rulebases         mdsys.rdf_rulebases,
                         vcTabName         varchar2,
                         vcViewName        varchar2,
                         vcModelsUnion     varchar2,
                         iIdSam            int
                         ) return varchar2;


--  /**
--    * SAM/SAMH rule: 
--    *  a) i1 owl:sameAs i2, i1 p o  => i2 p o
--    *  b) i1 owl:sameAs i2, s  p i1 => s  p i2
--    * Symmetricity will take care the other half.
--    */
  function build_stmt_sam(models           mdsys.rdf_models,
                         rulebases         mdsys.rdf_rulebases,
                         vcTabName         varchar2,
                         vcViewName        varchar2,
                         vcModelsUnion     varchar2,
                         iIdSam            int
                         ) return varchar2;

--   /**
--    * SYMM rule: a symmetricprop b => b symmetricprop a  for a 
--    * particular symmetric role.
--    */
  function build_stmt_symm(models            mdsys.rdf_models,
                           rulebases         mdsys.rdf_rulebases,
                           vcTabName         varchar2,
                           vcViewName        varchar2,
                           vcModelsUnion     varchar2,
                           iIdSymmRole       int,
                           vcMarker          varchar2
                           ) 
  return varchar2;


--   /**
--    * ALL_SYMM rule: a symmetricprop b => b symmetricprop a  for 
--    * all symmetric roles.
--    */
  function build_stmt_allsymm(models            mdsys.rdf_models,
                              rulebases         mdsys.rdf_rulebases,
                              vcTabName         varchar2,
                              vcViewName        varchar2,
                              iIdSymP           int,
                              iIdType           int
                              ) 
  return varchar2;


--   /**
--    * ALL_TRANS rule: a transp b, b transp c => a transp c
--    * for all transitive roles.
--    * Note that those default transtive properties like rdfs:subClassOf,
--    * subPropertyOf, equivalentClass, sameAs, etc may not be covered by this method
--    * if there is no explicit definition like:
--    *    owl:equivalentClass rdf:type owl:TransitiveProperty .
--    */
  function build_stmt_alltrans(models            mdsys.rdf_models,
                               rulebases         mdsys.rdf_rulebases,
                               vcTabName         varchar2,
                               vcViewName        varchar2,
                               vcModelsUnion     varchar2,
                               iIdTP             int,
                               iIdType           int
                               ) 
  return varchar2;


--   /**
--    * Build statement for rule:
--    *   C1 :disjointWith C2, i1 :type C1, i2 :type C2 => i1 :differentFrom :i2
--    */
  function build_stmt_disj(models            mdsys.rdf_models,
                           rulebases         mdsys.rdf_rulebases,
                           vcTabName         varchar2,
                           vcViewName        varchar2,
                           vcModelsUnion     varchar2,
                           iIdDisj           int,
                           iIdType           int,
                           iIdDif            int
                           ) return varchar2;




--   /**
--    * Build statement for rule:
--    *     a fp b, a1 fp b1, b dif b1 (or b1 dif b) => a dif a1
--    */
  function build_stmt_fp_dif(models            mdsys.rdf_models,
                             rulebases         mdsys.rdf_rulebases,
                             vcTabName         varchar2,
                             vcViewName        varchar2,
                             vcModelsUnion     varchar2,
                             iIdType           int,
                             iIdFP             int,
                             iIdDif            int
                             ) 
  return varchar2;


  /**
   * Build statement for rule:
   *     a ifp b, a1 ifp b1, a dif a1 (or a1 dif a) => b dif b1
   */
  function build_stmt_ifp_dif(models            mdsys.rdf_models,
                              rulebases         mdsys.rdf_rulebases,
                              vcTabName         varchar2,
                              vcViewName        varchar2,
                              vcModelsUnion     varchar2,
                              iIdType           int,
                              iIdIFP            int,
                              iIdDif            int
                              ) 
  return varchar2;


  /**
   * Build statement for rule:
   *     a dif b, a fp b, c fp c => a dif c 
   * Note: this rule is different from fp_dif 
   *     which is "a dif b, a fp b, c fp a => a dif c"
   */
  function build_stmt_fp_circle_dif(models            mdsys.rdf_models,
                                    rulebases         mdsys.rdf_rulebases,
                                    vcTabName         varchar2,
                                    vcViewName        varchar2,
                                    vcFPTabName       varchar2,
                                    iIdType           int,
                                    iIdFP             int,
                                    iIdDif            int,
                                    iPreds IN OUT     int
                                    ) 
  return varchar2;

  function build_stmt_fp_circle_dif_org(models            mdsys.rdf_models,
                                    rulebases         mdsys.rdf_rulebases,
                                    vcTabName         varchar2,
                                    vcViewName        varchar2,
                                    vcModelsUnion     varchar2,
                                    iIdType           int,
                                    iIdFP             int,
                                    iIdDif            int
                                    ) 
  return varchar2;


  /**
   * Build statement for rule:
   *     a dif b, b ifp a, c ifp c => a diff c
   */
  function build_stmt_ifp_circle_dif(models            mdsys.rdf_models,
                                     rulebases         mdsys.rdf_rulebases,
                                     vcTabName         varchar2,
                                     vcViewName        varchar2,
                                     vcIFPTabName      varchar2,
                                     iIdType           int,
                                     iIdIFP            int,
                                     iIdDif            int,
                                     iPreds     IN OUT int
                                     ) 
  return varchar2;

  function build_stmt_ifp_circle_dif_org(models            mdsys.rdf_models,
                                     rulebases         mdsys.rdf_rulebases,
                                     vcTabName         varchar2,
                                     vcViewName        varchar2,
                                     vcModelsUnion     varchar2,
                                     iIdType           int,
                                     iIdIFP            int,
                                     iIdDif            int
                                     ) 
  return varchar2;


  /**
   * RDFS4A: 
    -- RDFS4a uuu aaa xxx. => UUU rdf:type rdfs:Resource
   */
  function build_stmt_rdfs4a(models            mdsys.rdf_models,
                             rulebases         mdsys.rdf_rulebases,
                             vcTabName         varchar2,
                             vcViewName        varchar2,
                             vcModelsUnion     varchar2,
                             iIdType           int,
                             iIdResource       int,
                             vcMarker          varchar2
                             ) 
  return varchar2;


  /**
   * RDF1: 
   *  uuu aaa yyy. => aaa rdf:type rdf:Property 
   */
  function build_stmt_rdf1(models            mdsys.rdf_models,
                           rulebases         mdsys.rdf_rulebases,
                           vcTabName         varchar2,
                           vcViewName        varchar2,
                           vcModelsUnion     varchar2,
                           iIdType           int,
                           iIdPro            int,
                           vcMarker          varchar2
                           ) 
  return varchar2;


  /**
   * RDFS4B: 
   * uuu aaa VVV. => VVV rdf:type rdfs:Resource
   */
  function build_stmt_rdfs4b(models            mdsys.rdf_models,
                             rulebases         mdsys.rdf_rulebases,
                             vcTabName         varchar2,
                             vcViewName        varchar2,
                             vcModelsUnion     varchar2,
                             iIdType           int,
                             iIdResource       int,
                             vcMarker          varchar2
                             ) 
  return varchar2;


  /**
   * RDFS8 uuu rdf:type rdfs:Class => UUU rdfs:subClassOf rdfs:Resource
   * or
   * RDFS13 uuu rdf:type rdfs:Datatype => UUU rdfs:subClassOf rdfs:Literal
   */
  function build_stmt_rdfs_sco(models            mdsys.rdf_models,
                               rulebases         mdsys.rdf_rulebases,
                               vcTabName         varchar2,
                               vcViewName        varchar2,
                               vcModelsUnion     varchar2,
                               iIdType           int,
                               iIdRdfsCls        int,
                               iIdSco            int,
                               iIdObj            int,
                               vcMarker          varchar2
                               ) 
  return varchar2;


  /**
   *    RDFS6  uuu rdf:type rdf:Property => UUU rdfs:subPropertyOf UUU.
   * or
   *    RDFS10 uuu rdf:type rdfs:Class => UUU rdfs:subClassOf UUU
   */
  function build_stmt_rdfs_reflex(models            mdsys.rdf_models,
                                  rulebases         mdsys.rdf_rulebases,
                                  vcTabName         varchar2,
                                  vcViewName        varchar2,
                                  vcModelsUnion     varchar2,
                                  iIdType           int,
                                  iIdObj            int,
                                  iIdRole           int,
                                  vcMarker          varchar2
                                  ) 
  return varchar2;


  /**
   * Build statement for rule:
   *     a fp b, a1 fp b1, b dif b1 (or b1 dif b) => a dif a1
   */
  function build_stmt_single_fp_dif(models            mdsys.rdf_models,
                                    rulebases         mdsys.rdf_rulebases,
                                    vcTabName         varchar2,
                                    vcViewName        varchar2,
                                    vcModelsUnion     varchar2,
                                    iIdOneFP          int,
                                    iIdDif            int,
                                    bFpDifHint        boolean
                                    ) return varchar2;

  /**
   * Build statement for rule:
   *     a ifp b, a1 ifp b1, a dif a1 (or a1 dif a) => b dif b1
   */
  function build_stmt_single_ifp_dif(models            mdsys.rdf_models,
                                     rulebases         mdsys.rdf_rulebases,
                                     vcTabName         varchar2,
                                     vcViewName        varchar2,
                                     vcModelsUnion     varchar2,
                                     iIdOneIFP         int,
                                     iIdDif            int
                                     ) return varchar2;


  /** 
   * RDFP14a: v hasValue w, v onProperty p, u p w ==> u type v
   */
  function build_stmt_hva(models            mdsys.rdf_models,
                          rulebases         mdsys.rdf_rulebases,
                          vcTabName         varchar2,
                          vcViewName        varchar2,
                          vcModelsUnion     varchar2,
                          iIdType           int,
                          iIdHV             int,
                          iIdOP             int
                          ) return varchar2;


  /** 
   * RDFP14b: v hasValue w, v onProperty p, u type v ==> u p w 
   */
  function build_stmt_hvb(models            mdsys.rdf_models,
                          rulebases         mdsys.rdf_rulebases,
                          vcTabName         varchar2,
                          vcViewName        varchar2,
                          iIdType           int,
                          iIdHV             int,
                          iIdOP             int
                          ) return varchar2;

  function build_stmt_avf_plsql(outputtab       varchar2,
                                iIDType         number,
                                nRCClass        number,
                                nRCBnode        number,
                                nRCOnp          number,
                                vcModelsUnion   varchar2,
                                bHintAvfNoMerge boolean) return varchar2;

  function build_stmt_avf_plsql_po(outputtab       varchar2,
                                   iIDType         number,
                                   iIdAVF          number,
                                   iIdOP           number,
                                   nRCOnp          number,
                                   vcModelsUnion   varchar2,
                                   bHintAvfNoMerge boolean,
                                   vcXMLSchemaList varchar2) return varchar2;


  function build_stmt_svf_plsql(outputtab varchar2,
                                iIdType int, 
                                nRCBnode number,
                                nRCClass number,
                                nRCOnp   number,
                                vcModelsUnion varchar2,
                                bDoIncremental boolean,
                                bHintSvfNoMerge boolean) return varchar2;

  function build_stmt_cls_svf2_query(vcModelsUnion varchar2, 
                                iIdSVF        number,
                                iIdOP         number,
                                iIdThing      number,
                                vcDeltaTab    varchar2) return varchar2;

  function build_stmt_cls_svf2_plsql(outputTab       varchar2,
                                iIdType         int, 
                                nRCBnode        number,
                                nRCOnp          number,
                                vcModelsUnion   varchar2,
                                bDoIncremental  boolean,
                                bHintSvfNoMerge boolean) return varchar2;
 
  function build_stmt_svf_query(vcModelsUnion varchar2, 
                                iIdSVF        number,
                                iIdOP         number,
                                vcDeltaTab    varchar2) return varchar2 ;

  function build_stmt_avf_query(vcModelsUnion varchar2, 
                                iIdAVF        number,
                                iIdOP         number,
                                vcDeltaTab    varchar2) return varchar2;

  -- Note that _po stands for predicate only
  --
  function build_stmt_avf_query_po(vcModelsUnion varchar2, 
                                iIdAVF        number,
                                iIdOP         number,
                                vcDeltaTab    varchar2) return varchar2;

  /**
   * Build a statement that finds the subjects using a query pattern (?s :p :o)
   */
  function build_stmt_find_matching_sub(vcModelsUnion varchar2, 
                                        iIdType       number,
                                        iIdIFP        number) return varchar2;

  function build_stmt_trans_query(vcModelsUnion varchar2,
                                  iIdType number,
                                  iIdTP   number,
                                  iIdSco  number,
                                  iIdSpo  number,
                                  iIdEqup number,
                                  iIdEquc number,
                                  iIdSam  number) return varchar2;
  
  function build_stmt_intersecth(vcModelsUnion       varchar2, 
                                 vcBatch1            varchar2, 
                                 vcBatch2            varchar2,
                                 iIdSco              number,
                                 vcPartitionedTmpTab varchar2) return varchar2;


  function build_stmt_cls_maxqc3_query(vcModelsUnion varchar2,
                                      iIdMaxQCard    integer,
                                      iIdOP         integer,
                                      iId1Int       integer,
                                      iIdOC         integer,
                                      vcDeltaTab    varchar2) return varchar2;

  -- Predicate by predicate (or Predicate Only) style
  --
  function build_stmt_cls_maxqc3_query_po(vcModelsUnion varchar2,
                                      iIdMaxQCard    integer,
                                      iIdOP         integer,
                                      iId1Int       integer,
                                      iIdOC         integer,
                                      vcDeltaTab    varchar2) return varchar2;

  function build_stmt_cls_maxqc3_plsql(vcOutputTab    varchar2,
                                     nClass          number,
                                     nRConp          number,
                                     nClass2         number,
                                     iIdType         number,
                                     iIdSam          number,
                                     vcModelsUnion   varchar2,
                                     bReflexive      boolean) return varchar2;

  function build_stmt_cls_maxqc3_plsql_po(vcOutputTab     varchar2,
                                          iIdmaxQCard     number,
                                          iId1Int         number,
                                          iIdOP           number,
                                          iIdOC           number,
                                          nRConp          number,
                                          iIdType         number,
                                          iIdSam          number,
                                          vcModelsUnion   varchar2,
                                          bReflexive      boolean) return varchar2;

  function build_stmt_cls_maxqc4_query(vcModelsUnion varchar2,
                                      iIdmaxQCard    integer,
                                      iIdOP         integer,
                                      iId1Int       integer,
                                      iIdOC         integer,
                                      iIdThing      integer,
                                      vcDeltaTab    varchar2) return varchar2;
   
  function build_stmt_cls_maxc2_plsql(vcOutputTab    varchar2,
                                     vcRuleName      varchar2,
                                     nClass          number,
                                     nRConp          number,
                                     iIdType         number,
                                     iIdSam          number,
                                     vcModelsUnion   varchar2,
                                     bReflexive      boolean) return varchar2;


  function build_stmt_cls_maxc2_query(vcModelsUnion varchar2,
                                      iIdMaxCard    integer,
                                      iIdOP         integer,
                                      iId1Int       integer,
                                      vcDeltaTab    varchar2) return varchar2;

  -- Predicate by predicate (or Predicate Only) style
  --
  function build_stmt_cls_maxc2_query_po(vcModelsUnion varchar2,
                                         iIdMaxCard    integer,
                                         iIdOP         integer,
                                         iId1Int       integer,
                                         vcDeltaTab    varchar2) return varchar2;

  -- Predicate by predicate (or Predicate Only) style
  --
  function build_stmt_cls_maxc2_plsql_po(vcOutputTab     varchar2,
                                         vcRuleName      varchar2,
                                         iIdMaxCard      number,
                                         iIdOP           number,
                                         iId1Int         number,
                                         nRConp          number,
                                         iIdType         number,
                                         iIdSam          number,
                                         vcModelsUnion   varchar2,
                                         bReflexive      boolean) return varchar2;

  function build_stmt_svfh_avfh_nonproc(outputTab     varchar2,
                                        vcModelsUnion varchar2,
                                        vcRuleName    varchar2,
                                        iIdSvfAvf     number,
                                        iIdScpo       number,
                                        iIdAvf        number,
                                        iIdSco        number,
                                        iIdOp         number,
                                        iNumBodyPatterns out number,
                                        bInc          boolean default false,
                                        bEnableHint   boolean default true) return varchar2;
 
  function build_stmt_svfh_avfh_query(vcModelsUnion  varchar2, 
                                      iIdP           number,
                                      vcDeltaTab     varchar2) return varchar2;

  function build_stmt_svfh_avfh_plsql_p1(outputTab     varchar2,
                                 vcRuleName      varchar2,
                                 nRCBnode1       number,
                                 iIDScpo         number, --SCO/SPO
                                 iIDSco          number, --SCO/SPO
                                 nRCBnode2       number, 
                                 iIDOpSvf        number, --onP/SVF/AVF
                                 vcModelsUnion   varchar2,
                                 flip_conclusion boolean) return varchar2;

  function build_stmt_svfh_avfh_plsql_p2(outputTab     varchar2,
                                 vcRuleName      varchar2,
                                 nRCBnode1       number,
                                 iIDScpo         number, --SCO/SPO
                                 iIDSco          number, --SCO/SPO
                                 nRCBnode2       number, 
                                 iIDOpSvf        number, --onP/SVF/AVF
                                 vcModelsUnion   varchar2,
                                 flip_conclusion boolean) return varchar2;

  function  build_stmt_dom_plsql(outputTab       varchar, 
                                 vcModelsUnion   varchar2, 
                                 nProp           number,
                                 nClass          number,
                                 iIdTYpe         number) return varchar2;

 
  function  build_stmt_ran_plsql(outputTab       varchar, 
                                 vcModelsUnion   varchar2, 
                                 nProp           number,
                                 nClass          number,
                                 iIdTYpe         number) return varchar2;

  function build_stmt_ran_dom_query(vcFromTab      varchar2,
                                vcModelsUnion  varchar2, 
                                iIDRanDom      number,
                                iIdSco         number) return varchar2;

  function build_stmt_proc_svf_outer(vcModelsUnion    varchar2,
                                     vcDeltaTab       varchar2,
                                     iIdSVF           number,
                                     iIdOP            number,
                                     bDoIncremental   boolean) return varchar2;

 /** 
   * RDFP15: v svf w, v onProperty p, u p x, x type w => u type v
   */
  function build_stmt_svf(models            mdsys.rdf_models,
                          rulebases         mdsys.rdf_rulebases,
                          vcTabName         varchar2,
                          vcViewName        varchar2,
                          vcModelsUnion     varchar2,
                          iIdType           int,
                          iIdSVF            int,
                          iIdOP             int,
                          bHintSvf          boolean
                          ) return varchar2;


  /** 
   * RDFP16: v avf w, v onProperty p, u type v, u p x => x type w
   */
  function build_stmt_avf(models            mdsys.rdf_models,
                          rulebases         mdsys.rdf_rulebases,
                          vcTabName         varchar2,
                          vcViewName        varchar2,
                          vcModelsUnion     varchar2,
                          iIdType           int,
                          iIdAVF            int,
                          iIdOP             int,
                          bHintAvf          boolean,
                          vcXMLSchemaList   varchar2
                          ) return varchar2;


             
  /**
   * Set a flag to denote whether we are in performance tracking/tuning
   * mode so that some execution plans can be dumped.
   */
  procedure set_perf_tune_mode(b boolean);


  /** 
   * Intersection rule.
   */
  function build_stmt_intersecti(models            mdsys.rdf_models,
                                 rulebases         mdsys.rdf_rulebases,
                                 vcTabName         varchar2,
                                 vcViewName        varchar2,
                                 vcModelsUnion     varchar2,
                                 iIdType           int,
                                 iIdSco            int,
                                 vcCurrentBatch    varchar2
                                 )
  return varchar2;


  function build_stmt_scothingi(models            mdsys.rdf_models,
                           rulebases         mdsys.rdf_rulebases,
                           vcTabName         varchar2,
                           vcViewName        varchar2,
                           vcModelsUnion     varchar2,
                           iRolePropagate    int, -- type
                           iRoleSource       int, -- sco
                           iIdThing          int
                           ) return varchar2;

  function build_stmt_el_init_r(vcModelsUnion varchar2,
                                vcELRTab      varchar2, 
                                iIdOP         integer,
                                iIdSVF        integer) return varchar2;
 
  --EL+ rule 2: X sco A, A sco some(r, B) => R(r,X,B)
  --expanded: X sco A, A sco b, b svf B, b onProp r => R(r,X,B)
  --optimized: X sco A, A sco b, L(b,r,B) => R(r,X,B)
  function build_stmt_el_r2(vcModelsUnion varchar2,
                            vcOutputTab   varchar2,
                            vcELRTab      varchar2,
                            vcELLTab      varchar2,
                            iIdSCO        number) return varchar2;


  --EL+ rule3: R(r,X,Y), Y sco A, some(r,A) sco B => X sco B 
  --expanded: R(r,X,Y), Y sco A, b sco B, b svf A, b onProp r => X sco B
  function build_stmt_el_r3(vcModelsUnion varchar2,
                            vcOutputTab   varchar2,
                            vcELRTab      varchar2,
                            vcELLTab      varchar2,
                            iIdSCO        number) return varchar2 ;


  --R4: R(r,x,y), r spo p => R(p,x,y) 
   function build_stmt_el_r4(vcModelsUnion    varchar2,
                            vcELRTab         varchar2,
                            vcOutputTab      varchar2,
                            vcNotExistsTab   varchar2,
                            iIdSPO        number) return varchar2;

  --R5: R(r,x,y), R(s,y,z), r chain s spo p => R(p,x,z)
  function build_stmt_el_r5(vcModelsUnion   varchar2,
                            vcELRTab        varchar2,
                            vcOutputTab     varchar2,
                            vcCurrentBatch  varchar2) return varchar2;
  
  function build_stmt_match_intersectscoh(vcModels      varchar2,
                                    vcModelsUnion       varchar2, 
                                    vcIntersectScohTab  varchar2,
                                    vcIntersectTab      varchar2,
                                    vcOutputTab         varchar2,
                                    iDist               int,
                                    iIdType             int,
                                    iIdCls              int,
                                    iIdRdfNil           int,
                                    iIdRdfFst           int,
                                    iIDSco              int) return varchar2;

  function build_stmt_el_r3_alt(vcModelsUnion varchar2,
                            vcELRTab      varchar2,
                            vcOutputTab   varchar2,
                            vcNotExistTab varchar2,
                            iIdSCO        number) return varchar2;

--  L(r,x,y,),L(r,x1,y1), y sco y1 => x sco x1
  function build_stmt_svfh_el(vcModelsUnion varchar2, 
                              vcOutputTab   varchar2,
                              vcELLTab      varchar2,
                              iIdSco        integer) return varchar2;


  function build_stmt_chain(models            mdsys.rdf_models,
                            rulebases         mdsys.rdf_rulebases,
                            vcTabName         varchar2,
                            vcViewName        varchar2,
                            vcModelsUnion     varchar2,
                            vcCurrentBatch    varchar2
                            )
  return varchar2;


  function build_stmt_dt_restrictions(models            mdsys.rdf_models,
                                      rulebases         mdsys.rdf_rulebases,
                                      vcOutputTab       varchar2,
                                      vcViewName        varchar2,
                                      vcModelsUnion     varchar2,
                                      vcDtRestrictions  varchar2,
                                      iIdSvf            number, -- owl:someValuesFrom
                                      iIdAvf            number, -- owl:allValuesFrom
                                      iIdType           number, -- rdf:type
                                      iNumBodyPatterns  out number
                                      )
  return varchar2;


  function build_owlthing_stmt(vcOutputTab   varchar2, 
                                      vcModelsUnion varchar2,
                                      iIdCls        integer,
                                      iIdSco        integer,
                                      iIdType       integer,
                                      iIdThing      integer)
  return varchar2;
  function build_owlthing_sameas_stmt(vcOutputTab   varchar2, 
                                      vcModelsUnion varchar2,
                                      iIdSam        integer,
                                      iIdType       integer,
                                      iIdThing      integer)
  return varchar2;

  function build_stmt_hasKey(models        mdsys.rdf_models,
                         rulebases         mdsys.rdf_rulebases,
                         vcTabName         varchar2,
                         vcModelsUnion     varchar2,
                         iIdType           int,
                         iIdSam            int,
                         iIdHasKeyC        int,
                         iIdHasKeyP1       int,
                         bReflexive        boolean
                         ) 
  return varchar2;

  function build_stmt_hasKey(models        mdsys.rdf_models,
                         rulebases         mdsys.rdf_rulebases,
                         vcTabName         varchar2,
                         vcModelsUnion     varchar2,
                         iIdType           int,
                         iIdSam            int,
                         iIdHasKeyC        int,
                         iIdHasKeyP1       int,
                         iIdHasKeyP2       int,
                         bReflexive        boolean
                         ) 
  return varchar2;
 
  function build_stmt_hasKey(models        mdsys.rdf_models,
                         rulebases         mdsys.rdf_rulebases,
                         vcTabName         varchar2,
                         vcModelsUnion     varchar2,
                         iIdType           int,
                         iIdSam            int,
                         iIdHasKeyC        int,
                         iIdHasKeyP1       int,
                         iIdHasKeyP2       int,
                         iIdHasKeyP3       int,
                         bReflexive        boolean
                         ) 
  return varchar2;
  
  function build_stmt_cls_svf2_dom(
                         vcTabName         varchar2,
                         vcModelsUnion     varchar2,
                         iIdDom            int,
                         iIdOP             int,
                         iIdSvf            int,
                         iIdThing          int) 
  return varchar2 ;

end;
/

show errors;

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


OHA YOOOO