找回密码
 欢迎注册
搜索
热搜: 活动 交友 discuz
查看: 248|回复: 0

oracle 的RDF读取sample code

[复制链接]
发表于 2007-10-6 07:02:08 | 显示全部楼层 |阅读模式
  1. package org.bsirc.xmltoontology;

  2. import java.io.FileOutputStream;
  3. import java.io.OutputStream;
  4. import java.sql.SQLException;
  5. import java.util.Date;
  6. import java.util.GregorianCalendar;

  7. import org.bsirc.xmltoontology.db.oracle.OraRDFClient;
  8. import org.bsirc.xmltoontology.db.oracle.OracleJenaConn;

  9. import oracle.spatial.rdf.client.jena.GraphOracleSem;
  10. import oracle.spatial.rdf.client.jena.ModelOracleSem;
  11. import oracle.spatial.rdf.client.jena.Oracle;
  12. import oracle.spatial.rdf.client.jena.OracleBulkUpdateHandler;

  13. import com.hp.hpl.jena.graph.Graph;
  14. import com.hp.hpl.jena.graph.GraphUtil;
  15. import com.hp.hpl.jena.graph.Triple;
  16. import com.hp.hpl.jena.ontology.OntClass;
  17. import com.hp.hpl.jena.ontology.OntModel;
  18. import com.hp.hpl.jena.ontology.OntModelSpec;
  19. import com.hp.hpl.jena.rdf.model.Model;
  20. import com.hp.hpl.jena.rdf.model.ModelFactory;
  21. import com.hp.hpl.jena.rdf.model.RDFWriter;
  22. import com.hp.hpl.jena.rdf.model.Resource;
  23. import com.hp.hpl.jena.rdf.model.Statement;
  24. import com.hp.hpl.jena.rdf.model.StmtIterator;
  25. import com.hp.hpl.jena.vocabulary.RDF;
  26. import com.hp.hpl.jena.vocabulary.RDFS;

  27. public class OraExample {
  28.        
  29.         // some default values
  30.         private static String userName = "rdf";
  31.         private static String password = "rdf";
  32.         private static String host = "192.168.0.31";
  33.         private static String sid = "cbpr";
  34.         private static String port = "1134";
  35.         private static String semTblSpaceName="rdf_tblspace";
  36.    
  37.     private static OntModel oraOntModel;
  38.         private static String Tmhhs = "http://www.phinformatics.org/Ontology/Tmhhs.owl";
  39.        
  40.     public static Oracle getOracle() throws SQLException
  41.         {
  42.                 Oracle orcl=null;
  43.                 String jdbcConn = "jdbc:oracle:thin:@" + host + ":"
  44.                 + port + ":" + sid;
  45.                 try {
  46.                         orcl=new Oracle(jdbcConn, userName, password);
  47.                 }
  48.                 catch(Exception ex)
  49.                 {
  50.                         ex.printStackTrace();
  51.                 }
  52.                 return orcl;
  53.         }
  54.    
  55.         public static void main(String[] args) {
  56.                 try
  57.                 {
  58.                         //Recording Start Time
  59.                         GregorianCalendar day = new GregorianCalendar();
  60.                         Date startProcessTime= day.getTime();
  61.                         System.out.println(startProcessTime.toLocaleString());
  62.                        
  63.                         //Your model name goes here...Each OntModel will have a unique model name
  64.                         String modelName="X7Param";
  65.                        
  66.                         //Getting Oracle Connection
  67.                         Oracle orcl=getOracle();
  68.                        
  69.                         //Use this statement for loading already existing models from Oracle
  70.                         //oraOntModel=createInMemOwlModel(orcl,modelName);
  71.        
  72.                         //Use this to load your local file to Oracle for first time
  73.                         oraOntModel = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
  74.                         oraOntModel.read("file:\\C:\\Users\\nkunapareddy\\NK_Workspace\\XMLToOntology\\Parameter.OWL");

  75.                         /*Your custom code to modify OntModel goes here....
  76.                         OntClass oTest=oraOntModel.createClass(Tmhhs+"#OraTest");
  77.                         for(int i=0;i<1000;i++)
  78.                         {
  79.                                 oTest.addSubClass(oraOntModel.createResource(Tmhhs+"#OraTest"+String.valueOf(i)+"Sub").addProperty(RDF.type, RDFS.Class));
  80.                         }
  81.                         */
  82.                        
  83.                         //Model Connection
  84.                         Model modelOracle = ModelOracleSem.createOracleSemModel(orcl, modelName);
  85.                         GraphOracleSem g = (GraphOracleSem) modelOracle.getGraph();
  86.                         try
  87.                         {
  88.                                 g.dropApplicationTableIndex();
  89.                         }
  90.                         catch(Exception ex)
  91.                         {
  92.                                 ex.printStackTrace();
  93.                         }   
  94.                     ((OracleBulkUpdateHandler) g.getBulkUpdateHandler()).addInBatch(
  95.                       GraphUtil.findAll(oraOntModel.getGraph()), semTblSpaceName);
  96.                     g.rebuildApplicationTableIndex();
  97.                     orcl.dispose();
  98.                        
  99.                         //saveModel();
  100.                     
  101.                     //Recording End Time
  102.                         GregorianCalendar day2 = new GregorianCalendar();
  103.                         Date endProcessTime = day2.getTime();
  104.                         System.out.println(endProcessTime.toLocaleString());
  105.                 }
  106.                 catch(Exception ex)
  107.                 {
  108.                         ex.printStackTrace();
  109.                 }
  110.         }
  111.         /**
  112.            * This method returns an in-memory OWL model given an Oracle RDF Model.
  113.            */
  114.           public static OntModel createInMemOwlModel(Oracle oracle,String modelName) throws SQLException
  115.           {
  116.             Graph gr = null;
  117.             OntModel ontModel = null;
  118.           
  119.             try {
  120.               Model modelOracle = ModelOracleSem.createOracleSemModel(oracle, modelName);
  121.               gr = modelOracle.getGraph();
  122.               ontModel = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
  123.               ontModel.add(modelOracle);
  124.             }
  125.             finally {
  126.               if (gr != null) gr.close();
  127.             }
  128.             return ontModel;
  129.           }
  130.           private static void saveModel() {
  131.                  
  132.                         try {
  133.                                  
  134.                                 // Now write the model in XML form to a file
  135.                                 String fileName = "C:\\Documents and Settings\\nkunapareddy\\NK_Workspace\\XMLToOntology\\TmhhsOra.owl";
  136.                                 FileOutputStream fout = new FileOutputStream(fileName);
  137.                                 RDFWriter writer = oraOntModel.getWriter("RDF/XML");
  138.                                 writer.setProperty("xmlbase", Tmhhs);
  139.                                 writer.write(oraOntModel.getBaseModel(), fout, Tmhhs);
  140.                         } catch (Exception ex) {
  141.                                 System.out.println(ex);
  142.                         }
  143.                 }
  144. }
复制代码
推理,也将在数据库层解决.速度会很快.
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

快速回复 返回顶部 返回列表