This discussion is archived
11 Replies Latest reply: Mar 24, 2013 2:12 PM by 998859 RSS

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

rcx4009v2 Newbie
Currently Being Moderated
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?

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points