- package org.bsirc.xmltoontology;
- import java.io.FileOutputStream;
- import java.io.OutputStream;
- import java.sql.SQLException;
- import java.util.Date;
- import java.util.GregorianCalendar;
- import org.bsirc.xmltoontology.db.oracle.OraRDFClient;
- import org.bsirc.xmltoontology.db.oracle.OracleJenaConn;
- import oracle.spatial.rdf.client.jena.GraphOracleSem;
- import oracle.spatial.rdf.client.jena.ModelOracleSem;
- import oracle.spatial.rdf.client.jena.Oracle;
- import oracle.spatial.rdf.client.jena.OracleBulkUpdateHandler;
- import com.hp.hpl.jena.graph.Graph;
- import com.hp.hpl.jena.graph.GraphUtil;
- import com.hp.hpl.jena.graph.Triple;
- import com.hp.hpl.jena.ontology.OntClass;
- import com.hp.hpl.jena.ontology.OntModel;
- import com.hp.hpl.jena.ontology.OntModelSpec;
- import com.hp.hpl.jena.rdf.model.Model;
- import com.hp.hpl.jena.rdf.model.ModelFactory;
- import com.hp.hpl.jena.rdf.model.RDFWriter;
- import com.hp.hpl.jena.rdf.model.Resource;
- import com.hp.hpl.jena.rdf.model.Statement;
- import com.hp.hpl.jena.rdf.model.StmtIterator;
- import com.hp.hpl.jena.vocabulary.RDF;
- import com.hp.hpl.jena.vocabulary.RDFS;
- public class OraExample {
-
- // some default values
- private static String userName = "rdf";
- private static String password = "rdf";
- private static String host = "192.168.0.31";
- private static String sid = "cbpr";
- private static String port = "1134";
- private static String semTblSpaceName="rdf_tblspace";
-
- private static OntModel oraOntModel;
- private static String Tmhhs = "http://www.phinformatics.org/Ontology/Tmhhs.owl";
-
- public static Oracle getOracle() throws SQLException
- {
- Oracle orcl=null;
- String jdbcConn = "jdbc:oracle:thin:@" + host + ":"
- + port + ":" + sid;
- try {
- orcl=new Oracle(jdbcConn, userName, password);
- }
- catch(Exception ex)
- {
- ex.printStackTrace();
- }
- return orcl;
- }
-
- public static void main(String[] args) {
- try
- {
- //Recording Start Time
- GregorianCalendar day = new GregorianCalendar();
- Date startProcessTime= day.getTime();
- System.out.println(startProcessTime.toLocaleString());
-
- //Your model name goes here...Each OntModel will have a unique model name
- String modelName="X7Param";
-
- //Getting Oracle Connection
- Oracle orcl=getOracle();
-
- //Use this statement for loading already existing models from Oracle
- //oraOntModel=createInMemOwlModel(orcl,modelName);
-
- //Use this to load your local file to Oracle for first time
- oraOntModel = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
- oraOntModel.read("file:\\C:\\Users\\nkunapareddy\\NK_Workspace\\XMLToOntology\\Parameter.OWL");
- /*Your custom code to modify OntModel goes here....
- OntClass oTest=oraOntModel.createClass(Tmhhs+"#OraTest");
- for(int i=0;i<1000;i++)
- {
- oTest.addSubClass(oraOntModel.createResource(Tmhhs+"#OraTest"+String.valueOf(i)+"Sub").addProperty(RDF.type, RDFS.Class));
- }
- */
-
- //Model Connection
- Model modelOracle = ModelOracleSem.createOracleSemModel(orcl, modelName);
- GraphOracleSem g = (GraphOracleSem) modelOracle.getGraph();
- try
- {
- g.dropApplicationTableIndex();
- }
- catch(Exception ex)
- {
- ex.printStackTrace();
- }
- ((OracleBulkUpdateHandler) g.getBulkUpdateHandler()).addInBatch(
- GraphUtil.findAll(oraOntModel.getGraph()), semTblSpaceName);
- g.rebuildApplicationTableIndex();
- orcl.dispose();
-
- //saveModel();
-
- //Recording End Time
- GregorianCalendar day2 = new GregorianCalendar();
- Date endProcessTime = day2.getTime();
- System.out.println(endProcessTime.toLocaleString());
- }
- catch(Exception ex)
- {
- ex.printStackTrace();
- }
- }
- /**
- * This method returns an in-memory OWL model given an Oracle RDF Model.
- */
- public static OntModel createInMemOwlModel(Oracle oracle,String modelName) throws SQLException
- {
- Graph gr = null;
- OntModel ontModel = null;
-
- try {
- Model modelOracle = ModelOracleSem.createOracleSemModel(oracle, modelName);
- gr = modelOracle.getGraph();
- ontModel = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
- ontModel.add(modelOracle);
- }
- finally {
- if (gr != null) gr.close();
- }
- return ontModel;
- }
- private static void saveModel() {
-
- try {
-
- // Now write the model in XML form to a file
- String fileName = "C:\\Documents and Settings\\nkunapareddy\\NK_Workspace\\XMLToOntology\\TmhhsOra.owl";
- FileOutputStream fout = new FileOutputStream(fileName);
- RDFWriter writer = oraOntModel.getWriter("RDF/XML");
- writer.setProperty("xmlbase", Tmhhs);
- writer.write(oraOntModel.getBaseModel(), fout, Tmhhs);
- } catch (Exception ex) {
- System.out.println(ex);
- }
- }
- }
复制代码 推理,也将在数据库层解决.速度会很快. |