11 Replies Latest reply: Mar 24, 2013 4:12 PM by 998859 RSS

    RDF Error: Maximum node id is larger than the Java maximum integer value

    rcx4009v2
      Hi,

      I'm currently doing migration from Oracle 10gR2 RDF to Oracle 11gR2 Semantic Technology.

      I followed the steps on the documentation and successfully created the network using the following:

      -----
      EXECUTE SEM_APIS.CREATE_SEM_NETWORK('rdf_tblspace');
      CREATE TABLE rdf_network_trace (id NUMBER, triple SDO_RDF_TRIPLE_S);

      --Created SEQUENCE andTRIGGER FOR rdf_network_trace id
      /*
      .......
      */

      execute sem_apis.create_sem_model(model_name =>'rdf_nt', table_name => 'rdf_network_trace', column_name => 'triple');

      CREATE INDEX nt_sub_idx2 ON rdf_network_trace (triple.GET_SUBJECT());
      CREATE INDEX nt_prop_idx2 ON rdf_network_trace (triple.GET_PROPERTY());
      CREATE INDEX nt_obj_idx2 ON rdf_network_trace (TO_CHAR(triple.GET_OBJECT()));

      EXECUTE SEM_APIS.CREATE_RULEBASE('rb_rdf_nt');
      INSERT INTO mdsys.semr_rb_rdf_nt VALUES(
      'connected_rule',
      '(?x :connectedTo ?y)',
      NULL,
      '(?x :connected ?y)',
      SEM_ALIASES(SEM_ALIAS('','http://www.sample.com/rdf_nt/')));
      COMMIT;

      BEGIN
      SEM_APIS.CREATE_ENTAILMENT(
      'rdfs_rix_rdf_nt'
      ,Sem_Models('rdf_nt')
      ,Sem_Rulebases('RDFS','rb_rdf_nt')
      ,SEM_APIS.REACH_CLOSURE, null, 'USER_RULES=T'
      );
      END;
      COMMIT;


      CREATE TABLE path_link_rdf_nt

      CREATE TABLE path_rdf_nt

      CREATE OR REPLACE VIEW node_rdf_nt$

      CREATE OR REPLACE VIEW link_rdf_nt$

      CREATE OR REPLACE VIEW path_rdf_nt$

      CREATE OR REPLACE VIEW path_link_rdf_nt$

      INSERT INTO user_sdo_network_metadata(network, network_category, node_table_name, link_table_name, link_direction, path_table_name, path_link_table_name)
      VALUES( 'rdf_nt_network', 'LOGICAL','node_rdf_nt$', 'link_rdf_nt$', 'UNDIRECTED', 'path_rdf_nt$','path_link_rdf_nt$');
      COMMIT;

      SELECT sdo_net.validate_network('rdf_nt_network') FROM DUAL;

      sdo_net.validate_network says that my network is Valid.

      I inserted 3 records to my rdf_network_trace:
      INSERT INTO rdf_network_trace (triple) VALUES (SDO_RDF_TRIPLE_S('rdf_nt','http://www.sample.com/rdf_nt/SPL01780','http://www.sample.com/rdf_nt/connectedTo','http://www.sample.com/rdf_nt/SEC06007'));
      INSERT INTO rdf_network_trace (triple) VALUES (SDO_RDF_TRIPLE_S('rdf_nt','http://www.sample.com/rdf_nt/SEC06007','http://www.sample.com/rdf_nt/connectedTo','http://www.sample.com/rdf_nt/SEC05890'));
      INSERT INTO rdf_network_trace (triple) VALUES (SDO_RDF_TRIPLE_S('rdf_nt','http://www.sample.com/rdf_nt/SEC05890','http://www.sample.com/rdf_nt/connectedTo','http://www.sample.com/rdf_nt/DP02702'));
      COMMIT;
      -----

      Records were inserted successfully, but when I try to Read Network, Maximum node id is larger than the Java maximum integer value error occurs.

      declare
      net_name varchar(100) := 'rdf_nt_network';
      begin
      SDO_NET_MEM.NETWORK_MANAGER.READ_NETWORK(net_name, 'FALSE');
      SDO_NET_MEM.NETWORK_MANAGER.DROP_NETWORK(net_name);
      end;

      -----
      ORA-29532: Java call terminated by uncaught Java exception: oracle.spatial.network.NetworkDataException: oracle.spatial.network.NetworkDataException: Maximum node id is larger than the Java maximum integer value
      ORA-06512: at "MDSYS.SDO_NETWORK_MANAGER_I", line 284
      ORA-06512: at "MDSYS.SDO_NETWORK_MANAGER_I", line 114
      ORA-06512: at line 4
      -----

      when I looked at my Node Ids, they were like +635762253807433724+, +6118969225776891730+. The problem is, I am not the one who is assigning Node Ids, They were automatically generated when inserting TRIPLE data to the rdf table.

      Am I doing something wrong here? or Did I miss something when I created my network?