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()));
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'));
Records were inserted successfully, but when I try to Read Network, Maximum node id is larger than the Java maximum integer value error occurs.
net_name varchar(100) := 'rdf_nt_network';
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?
Good News! I got a confirmation from NDM engineering team that NDM 11203 should work with Oracle 18.104.22.168 (apart from the power law graph partitioning). You will need to get the following BLR from Oracle Support.
I have another question. I am confused regarding this Jena Adapter.
As I have said before, we are doing migration from Oracle 10gR2 to 11gR2 (22.214.171.124).
By installing Jena Adapter for Oracle, this will fix the issue Maximum node id is larger than the Java maximum integer value when I am executing SDO_NET_MEM.NETWORK_MANAGER.READ_NETWORK ?
I am actually not using SEM_MATCH functions in my Procedures/Packages.
Most of my Procedures and Packages are using SDO_NET_MEM subprograms (shortest path, reachable nodes, etc.).
Based on Jena Adapter for Oracle docs, queries were executed through SPARQL. Which is not applicable in our case.
You probably still want to use Jena Adapter's SemNetworkAnalyst to set things up before you can use
NDM on top of RDF data.
There is one fundamental difference between an RDF graph and a regular link table required by NDM.
In an RDF graph, links (predicates) can be shared while a regular link table requires every edge/link
to be distinct. So SemNetworkAnalyst actually does a mapping for the users. In addition, RDF graphs do
not come with edge/link weights. SemNetworkAnalyst allows one to assign weights to different links (predicates).
I would recommend you to start with SemNetworkAnalyst and get a concrete feeling about how these
pieces fit/work together.