⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io.java

📁 对jena推理机的文件进行读取
💻 JAVA
字号:
package com;
import java.io.FileInputStream;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;


	 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.ontology.OntProperty;
	 import com.hp.hpl.jena.rdf.model.ModelFactory;
	 import java.sql.Connection; 
	 import java.sql.DriverManager; 
	 import java.sql.ResultSet; 
	 import java.sql.Statement; 
	 import java.util.Properties;
	 import java.sql.*;

	 public class io {
	 	 
	 	
	 	 
	 	 public static void main(String[]args){ 
	 		 
	 		String Driver = "com.mysql.jdbc.Driver";//驱动程序
	 		String URL = "jdbc:mysql://localhost:3306/db_owl";//连接的URL
	 		String Username = "root";
	 		String Password = "yhj";
	 	try{
	 			Class.forName(Driver).newInstance();
	 			Connection con = DriverManager.getConnection(URL,Username,Password);
	 			Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
	                     ResultSet.CONCUR_UPDATABLE);
	 		//}
	       // catch(Exception ex){
	     	//   System.out.println(ex.getMessage());
	        //}
	       
	        
	            OntModel model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null ); 

	       try 
	            { 
	     	     File myFile = new File("D:\\杨惠洁\\privacy.owl");
	 			 model.read(new FileInputStream(myFile), ""); 
	 			 String file_name = myFile.getName();
	 			 System.out.println(file_name);
	         	//model.read(new FileInputStream("D:\\杨惠洁\\sael_v1_0_fma_v1_0.owl"),"");
	         	//model.read(new FileInputStream("D:\\杨惠洁\\privacy.owl"),"");
	         	// model.read(new FileInputStream("D:\\杨惠洁\\PilotPollution1.owl"),"");
	         //model.read(new FileInputStream("D:\\杨惠洁\\o4oil.owl"),"");
	         //model.read(new FileInputStream("D:\\杨惠洁\\Jena\\Jena-2.5.4\\src-examples\\data\\test2.owl"),""); 
	           
	            //the class number 
	            int j=0; 
	            String sql = "select file_name from tb_fileindex where file_name='"+file_name+"'";
	            ResultSet result1 = stmt.executeQuery(sql);
	           if(result1.next())
	           { 
	        	   {}  
	           }
	           else{
	            	
	              sql="insert into tb_fileindex(file_name)  values('"+file_name+"');";
	 		      stmt.execute(sql);
	 		      sql= "select file_id from tb_fileindex where tb_fileindex.file_name ='"+file_name+"';";
	    
	 			ResultSet result=stmt.executeQuery(sql);
	 			while(result.next()){
	 			int fid = result.getInt("file_id");
	 			System.out.println(fid); 
	 		
	           //list classes 
	        for(Iterator i=model.listClasses();i.hasNext();) 
	            { 
	               
	                   OntClass c = (OntClass) i.next(); 
	                
	                   //getModel().usePrefix(c.getURI()); 
	                   if (!c.isAnon()) {
	                 	  // 如果不是匿名类,则打印类的名字
	                 	  j++;
	                 	  String Class = c.getLocalName();
	                 	 sql = "select class_name from tb_fileindex,tb_class where class_name='"+Class+"'AND tb_class.file_id=tb_fileindex.file_id ;";
	         	            result1 = stmt.executeQuery(sql);
	         	           if(result1.next())
	         	           { 
	         	        	   {}  
	         	           }
	         	           else{
	                 	 sql= "insert into tb_class(class_id,class_name,file_id)  values('"+j+"','"+Class+"','"+fid+"');";
	                 	 //sql = "update tb_class set class_id = 'j',class_name = Class,file_id = fid where id='j'";
	                 	  stmt.execute(sql);
	                    //  sql= "select id from tb_class where tb_class.class_name ='"+Class+"'and file_id='"+fid+"';";
	                 	   
	                 	//  result=stmt.executeQuery(sql);
	                 	//result = stmt.getResultSet();
	           		//int cid=0;
	                 	//  while(result.next()){
	           			// cid = result.getInt("id");
	           			//System.out.println(cid); }
	             //to list sub-classes for each class 
	                  // result.close();
	                 for (Iterator k = c.listSuperClasses(true); k.hasNext();)

	                   {
	                          OntClass sp = (OntClass) k.next();
	                          //String str = c.getModel().getGraph().getPrefixMapping().shortForm(c.getURI()) // 获取URI
	                          //+ "'s superClass is " ;
	                          
	                        if (!sp.isAnon()){
	                         	 String strSP = sp.getLocalName();
	                         	  sql = "select spclass_name from tb_superclass,tb_class where spclass_name='"+strSP+"'AND tb_superclass.class_id=tb_class.id AND tb_class.class_name ='"+Class+"';";
	             	            result1 = stmt.executeQuery(sql);
	             	           if(result1.next())
	             	           { 
	             	        	   {}  
	             	           }
	             	           else{
	                         	 sql="insert into tb_superclass(spclass_name,class_id) values('"+strSP+"','"+j+"');";
	                         	 stmt.execute(sql);
	                             sql="UPDATE tb_superclass,tb_class set tb_superclass.class_id=tb_class.id WHERE spclass_name='"+strSP+"' AND tb_class.class_name ='"+Class+"'AND tb_superclass.class_id='"+j+"';";
	                        	  stmt.execute(sql);}
	                        }
	                          //System.out.println("super class:"+strSP);}
	                          else{
	                         	 {}
	                          }

	                      
	                    // super class ends

	                   }
	                   //Iterator k=c.listSubClasses(true);
	                  for( Iterator k=c.listSubClasses(true);k.hasNext();) 
	                   //while(k.hasNext())
	                   { 

	                     //System.out.println("  "+"hasSubClass"); 
	                    OntClass subclass=(OntClass)k.next(); 
	                    String strSubClass=subclass.getLocalName();
	                    sql = "select subclass_name from tb_subclass,tb_class where subclass_name='"+strSubClass+"'AND tb_subclass.class_id=tb_class.id AND tb_class.class_name ='"+Class+"';";
         	            result1 = stmt.executeQuery(sql);
         	           if(result1.next())
         	           { 
         	        	   {}  
         	           }
         	           else{
	                    sql= "insert into tb_subclass(subclass_name,class_id) values('"+strSubClass+"','"+j+"');";
	                    stmt.execute(sql); //"select tb_class.id from tb_class where tb_class.class_name ='"+Class+"';" +
	 	 				sql="UPDATE tb_subclass,tb_class set tb_subclass.class_id=tb_class.id where subclass_name='"+strSubClass+"' AND tb_class.class_name ='"+Class+"'AND tb_subclass.class_id='"+j+"';";
	              	  stmt.execute(sql);
	                    
	                    //getModel().usePrefix(subclass.getURI()); 
	                  //  System.out.println("  "+"hasSubClass:"+strSubClass); 

	                     } }
	                 // for(Iterator y=c.listDeclaredProperties(true);y.hasNext();) 
	                      
	                  Iterator y=c.listDeclaredProperties(true);
	                 while(y.hasNext())
	                   {
	                 	  OntProperty property=(OntProperty)y.next(); 
	                 	  String strPropertyName=property.getLocalName();
	                 	 sql = "select property from tb_property,tb_class where property='"+strPropertyName+"'AND tb_property.class_id=tb_class.id AND tb_class.class_name ='"+Class+"';";
	         	            result1 = stmt.executeQuery(sql);
	         	           if(result1.next())
	         	           { 
	         	        	   {}  
	         	           }
	         	           else{
	                 	  sql= "insert into tb_property(property,class_id) values('"+strPropertyName+"','"+j+"');";
	                 	  stmt.execute(sql);
	                 	  		//"select tb_class.id from tb_class where tb_class.class_name ='"+Class+"';" +
	                 	  				sql="UPDATE tb_property,tb_class set tb_property.class_id=tb_class.id where tb_property.property = '"+strPropertyName+"' AND tb_class.class_name = '"+Class+"'AND tb_property.class_id='"+j+"' ;";

	                 	  stmt.execute(sql);
	                 	//System.out.println("associated property:"+strPropertyName.substring(0));
	                   }}

	           			//}
	                // cid++;
	           			  }
	         	           }
	                   else{
	                //   	 是匿名类;
	                 	       {}
	                        }
	                  
	               }
	       
	 			}
	       			/*sql= "select * from tb_fileindex;";
	       			ResultSet result1  = stmt.executeQuery(sql);
	       			while(result1.next()){
	       			System.out.print("name:"+result1.getString("file_name")+" ");	
	       			System.out.print("file_id:"+result1.getString("file_id")+" \n");
	       			}*/
	 			result.close();
	 	 } 
	            }
	     catch(IOException ioe) 
	     { 
	            System.err.println(ioe.toString()); 

	      }
	     model.close();
	    stmt.close();
	    con.close();
	     
	 	}
	             catch(Exception ex){
	        	  System.out.println(ex.getMessage());
	          }
	             
	           
	      }
	 }




   
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -