天天看點

eclipse中使用Jena解析本體檔案



(1)在Jena的首頁(http://jena.sourceforge.net/downloads.html)下載下傳Jena的最新版本。将下載下傳的Jena-2.6.4.zip解壓到任意路徑,解壓之後生成Jena2.6.4檔案夾。

(2)使用Eclipse建立Java工程,右健單擊工程名字,選擇“Build Path”->“Configure Build Path”,在打開的對話框中選擇“Java建立路徑/Java Build Path”,在右邊标簽中選擇“庫/Libraries”,之後選擇“添加外部檔案/Add Extenal JARs”,找到Jena2.6.4\lib目錄下的所有jar檔案并将其添加到工程。這樣就可以使用Jena API。

(3)使用protégé建立一個本體,本體來源文章:基于關系資料庫的OWL本體存儲及查詢方法。本體如下圖所示:

eclipse中使用Jena解析本體檔案

(4)詳細編碼

[java] view plain copy print ?

  1. package com.ont.demo;  
  2. import java.io.FileInputStream;  
  3. import java.io.FileNotFoundException;  
  4. import java.util.Iterator;  
  5. import java.util.Vector;  
  6. import com.hp.hpl.jena.rdf.model.*;  
  7. import com.hp.hpl.jena.db.DBConnection;  
  8. import com.hp.hpl.jena.db.IDBConnection;  
  9. import com.hp.hpl.jena.ontology.*;  
  10. public class OntAnalysisMysql  {  
  11.     public static final String strDriver = "com.mysql.jdbc.Driver"; //path of driver class    
  12.     public static final String strURL = "jdbc:mysql://localhost/ontodb3"; // URL of database    
  13.     public static final String strUser = "root"; //database user id    
  14.     public static final String strPassWord = "sql123"; //database password    
  15.     public static final String strDB =  "MySQL"; //database type    
  16.     public OntModel createOnt(String owlpath) {  
  17.        // 建立一個資料庫連接配接    
  18.         IDBConnection conn = new DBConnection ( strURL, strUser, strPassWord, strDB );   
  19.        // 加載資料庫驅動類,需要處理異常    
  20.         try{    
  21.             Class.forName(strDriver);  
  22.         }catch(ClassNotFoundException e) {    
  23.              e.printStackTrace();    
  24.         }    
  25.         //使用資料庫連接配接參數建立一個模型制造器  
  26.         ModelMaker maker = ModelFactory.createModelRDBMaker(conn);  
  27.         //建立一個預設模型  
  28.         Model base = maker.createDefaultModel();  
  29.         OntModel ontmodel = ModelFactory.createOntologyModel(getModelSpec(maker), base);  
  30.         try {  
  31.             ontmodel.read(new FileInputStream(owlpath), ""); // 讀取檔案,加載模型  
  32.         } catch (FileNotFoundException e) {  
  33.             System.out.println("讀取失敗" + e.getMessage());  
  34.         }  
  35.         return  ontmodel;  
  36.     }  
  37.     public static OntModelSpec getModelSpec(ModelMaker maker) {  
  38.          OntModelSpec spec = new OntModelSpec(OntModelSpec.OWL_MEM);  
  39.          spec.setImportModelMaker(maker);  
  40.          return spec;  
  41.     }  
  42.         public void getAllClasses(String owlpath) {  
  43.             OntModel ontModel = this.createOnt(owlpath);  
  44.             String str;  
  45.             // 列出所有的class  
  46.             for (Iterator allclass = ontModel.listClasses(); allclass.hasNext();) {  
  47.                 OntClass ontclass = (OntClass) allclass.next();  
  48.                 if(!ontclass.isAnon()){  
  49.                 String classstr = ontclass.toString();  
  50.                 OntClassDTO dto = new OntClassDTO();;  
  51.                 System.out.println(dto.getC_URI());  
  52.                 System.out.print("類URI:" + classstr + "   ");  
  53.                 str = classstr.substring(classstr.indexOf("#") + 1);  
  54.                 System.out.print("類名:" + str + "   ");  
  55.                 if (!ontclass.listSuperClasses().hasNext()) {  
  56.                     System.out.println("類描述類型:無");  
  57.                 } else {  
  58.                     for (Iterator supclasses = ontclass.listSuperClasses(); supclasses  
  59.                             .hasNext();) {  
  60.                         OntClass supclass = (OntClass) supclasses.next();  
  61.                         String supclasstr = supclass.toString();  
  62.                         str = supclasstr.substring(supclasstr.indexOf("#") + 1);  
  63.                         System.out.print("類描述類型:subClassOf   ");  
  64.                         System.out.println("類描述值:" + str);  
  65.                     }  
  66.                 }  
  67.                 }  
  68.             }  
  69.         }  
  70.         public void getAllProperties(String owlpath) {  
  71.             OntModel ontMdel = this.createOnt(owlpath);  
  72.             String str;  
  73.             OntProtyDAO dao = new OntProtyDAO();  
  74.             // 列出所有的對象屬性  
  75.             for (Iterator allobjpry = ontMdel.listObjectProperties(); allobjpry  
  76.                     .hasNext();) {  
  77.                 OntProperty objpry = (OntProperty) allobjpry.next();  
  78.                 // 屬性URI  
  79.                 String objprystr = objpry.toString();  
  80.                 System.out.print("屬性URI:" + objprystr + "  ");  
  81.                 // 屬性名  
  82.                 str = objprystr.substring(objprystr.indexOf("#") + 1);  
  83.                 System.out.print("屬性值:" + str + " 屬性:OP ");  
  84.                 // 屬性定義域  
  85.                 String domain = objpry.getDomain().toString();  
  86.                 String domainstr = domain.substring(domain.indexOf("#") + 1);  
  87.                 System.out.print("定義域 :" + domainstr);  
  88.                 // 屬性值域  
  89.                 String range = objpry.getRange().toString();  
  90.                 String rangestr = range.substring(range.indexOf("#") + 1);  
  91.                 System.out.println("  值域:" + rangestr);  
  92.             }  
  93.             // 列出所有的資料屬性  
  94.             for (Iterator alldatapry = ontMdel.listDatatypeProperties(); alldatapry  
  95.                     .hasNext();) {  
  96.                 OntProperty datapry = (OntProperty) alldatapry.next();  
  97.                 // 屬性URI  
  98.                 String dataprystr = datapry.toString();  
  99.                 System.out.print("屬性URI:" + dataprystr + "  ");  
  100.                 // 屬性名  
  101.                 str = dataprystr.substring(dataprystr.indexOf("#") + 1);  
  102.                 System.out.print("屬性值:" + str + " 屬性:DP ");  
  103.                 // 屬性定義域  
  104.                 String domain = datapry.getDomain().toString();  
  105.                 String domainstr = domain.substring(domain.indexOf("#") + 1);  
  106.                 System.out.print("定義域 :" + domainstr);  
  107.                 // 屬性值域  
  108.                 String range = datapry.getRange().toString();  
  109.                 String rangestr = range.substring(range.indexOf("#") + 1);  
  110.                 System.out.println("  值域:" + rangestr);  
  111.                 System.out.println(dataprystr );  
  112.                 System.out.println(str);  
  113.                 System.out.println(domainstr);  
  114.                 System.out.println(rangestr);  
  115.             }  
  116.         }  
  117.         public void getAllProcharac(String owlpath) {  
  118.             OntModel ontMdel = this.createOnt(owlpath);  
  119.             String str;  
  120.             // 列出所有的對象屬性  
  121.             for (Iterator allobjpry = ontMdel.listObjectProperties(); allobjpry.hasNext();) {  
  122.                 String info = null;  
  123.                 OntProperty objpry = (OntProperty) allobjpry.next();  
  124.                 OntProperty objinverof = objpry.getInverseOf();  
  125.                 if(objinverof!=null){  
  126.                 info = "屬性URI :"+objpry+"\n屬  性  名  :"+objpry.toString().substring(objpry.toString().indexOf("#")+1)  
  127.                         +"\n特征類型 :inverseOf  "+"\n特  征  值  :"+ objinverof.toString().substring(objinverof.toString().indexOf("#")+1);  
  128.                 System.out.println(info);  
  129.                 }  
  130.             }  
  131.             }  
  132.         public void getAllIndividuals(String owlpath) {  
  133.             OntModel ontModel = this.createOnt(owlpath);  
  134.             String str;  
  135.             // 疊代出本體檔案中所有的執行個體  
  136.             for (Iterator allIndivs = ontModel.listIndividuals(); allIndivs.hasNext();) {  
  137.                 Individual indiv = (Individual) allIndivs.next();  
  138.                 //對象屬性命名空間  
  139.                 String namespace = indiv.toString().substring(0,indiv.toString().indexOf("#") + 1);  
  140.                 // 執行個體所屬的類  
  141.                 OntClass classOfIndiv = indiv.getOntClass();  
  142.                 //執行個體所屬類的所有屬性  
  143.                 for (Iterator classPryOfIndivs = classOfIndiv.listProperties(); classPryOfIndivs.hasNext();)   
  144.                 {  
  145.                     OntProperty classPryOfIndiv = (OntProperty) classPryOfIndivs.next();  
  146.                     System.out.println(classPryOfIndivs.next());  
  147.                     String classPryOfIndivstr = classPryOfIndiv.toString();  
  148.                     String info = null;  
  149.                     info = "執行個體URI:"  
  150.                             + indiv  
  151.                             + " 執行個體名:"  
  152.                             + indiv.toString().substring(indiv.toString().indexOf("#") + 1) + "  執行個體所屬類:"  
  153.                             + classOfIndiv  
  154.                             +" 屬性URI:"  
  155.                             +classPryOfIndivstr;  
  156.                     // 擷取這個執行個體的屬性值  
  157.                     if (indiv.getPropertyValue(classPryOfIndiv) != null) {  
  158.                         String pryValueOfIndiv = indiv.getPropertyValue(classPryOfIndiv).toString();  
  159.                         if (pryValueOfIndiv.contains("^^")&&pryValueOfIndiv.contains("#")) {  
  160.                             info = info   
  161.                                     + "  屬性值:"  
  162.                                     + pryValueOfIndiv.substring(0, pryValueOfIndiv.indexOf("^^"));  
  163.                         }else{  
  164.                             info = info  
  165.                                     + "  屬性值:"  
  166.                                     + pryValueOfIndiv.substring(pryValueOfIndiv.indexOf("#") + 1);  
  167.                         }  
  168.                     } else {  
  169.                         info = info + "   無屬性值";  
  170.                     }  
  171.                     //輸出執行個體資訊  
  172.                     System.out.println(info);  
  173.                 }  
  174.             }  
  175.         }  
  176.         public static void main(String[] args) {  
  177.             String owlpath = "E:\\greenide\\workspace\\Ontology\\logistics.owl";  
  178.             System.out.println("--------------------------------------------清單1    類------------------------------");  
  179.             new OntAnalysisMysql().getAllClasses(owlpath);  
  180.             System.out.println("--------------------------------------------清單2    屬性-----------------------------");  
  181.             new OntAnalysisMysql().getAllProperties(owlpath);  
  182.             System.out.println("--------------------------------------------清單3   屬性特征--------------------------");  
  183.             new OntAnalysisMysql().getAllProcharac(owlpath);  
  184.             System.out.println("--------------------------------------------清單4    屬性限制--------------------------");  
  185.             new OntAnalysisMysql().getAllProcharac(owlpath);  
  186.             System.out.println("--------------------------------------------清單5    執行個體------------------------------");  
  187.             new OntAnalysisMysql().getAllIndividuals(owlpath);  
  188.         }  
  189.     }  
package com.ont.demo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Iterator;
import java.util.Vector;

import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.db.DBConnection;
import com.hp.hpl.jena.db.IDBConnection;
import com.hp.hpl.jena.ontology.*;

public class OntAnalysisMysql  {
	
    public static final String strDriver = "com.mysql.jdbc.Driver"; //path of driver class  
    public static final String strURL = "jdbc:mysql://localhost/ontodb3"; // URL of database  
    public static final String strUser = "root"; //database user id  
    public static final String strPassWord = "sql123"; //database password  
    public static final String strDB =  "MySQL"; //database type  
	
	/* 函數功能說明
	 * 
	 * 建立本體模型,然後讀取.owl檔案,加載模型
	 * 
	 * */
	public OntModel createOnt(String owlpath) {
		
	   // 建立一個資料庫連接配接  
        IDBConnection conn = new DBConnection ( strURL, strUser, strPassWord, strDB ); 
       // 加載資料庫驅動類,需要處理異常  
        try{  
      		Class.forName(strDriver);
        }catch(ClassNotFoundException e) {  
             e.printStackTrace();  
        }  
        
		//使用資料庫連接配接參數建立一個模型制造器
        ModelMaker maker = ModelFactory.createModelRDBMaker(conn);
		//建立一個預設模型
        Model base = maker.createDefaultModel();
        OntModel ontmodel = ModelFactory.createOntologyModel(getModelSpec(maker), base);
        
        try {
			ontmodel.read(new FileInputStream(owlpath), ""); // 讀取檔案,加載模型
		} catch (FileNotFoundException e) {
			System.out.println("讀取失敗" + e.getMessage());
		}
		return  ontmodel;
	}
	
	public static OntModelSpec getModelSpec(ModelMaker maker) {
	    
		 OntModelSpec spec = new OntModelSpec(OntModelSpec.OWL_MEM);
	     spec.setImportModelMaker(maker);
	     
	     return spec;
	}

		/*函數功能說明
		 * 
		 * 擷取owl檔案中所有的class,内容包括:
		 * 類URI,類名,類描述類型,類描述值
		 * 
		 */
		public void getAllClasses(String owlpath) {
			OntModel ontModel = this.createOnt(owlpath);
			String str;
			// 列出所有的class
		    
			for (Iterator allclass = ontModel.listClasses(); allclass.hasNext();) {
				
				OntClass ontclass = (OntClass) allclass.next();
				if(!ontclass.isAnon()){
				String classstr = ontclass.toString();
				OntClassDTO dto = new OntClassDTO();;
				System.out.println(dto.getC_URI());
				System.out.print("類URI:" + classstr + "   ");
				str = classstr.substring(classstr.indexOf("#") + 1);
				System.out.print("類名:" + str + "   ");
				if (!ontclass.listSuperClasses().hasNext()) {
								
					System.out.println("類描述類型:無");
				} else {
					for (Iterator supclasses = ontclass.listSuperClasses(); supclasses
							.hasNext();) {
						OntClass supclass = (OntClass) supclasses.next();
						String supclasstr = supclass.toString();
						str = supclasstr.substring(supclasstr.indexOf("#") + 1);
						System.out.print("類描述類型:subClassOf   ");
						System.out.println("類描述值:" + str);
						
						
					}
				}
				}
			}
		}

		/* 函數功能說明
		 * 
		 * 擷取owl檔案中所有的屬性,内容包括:
		 * 屬性URI,屬性名,屬性,定義域,值域
		 * 
		 * */
		public void getAllProperties(String owlpath) {
			OntModel ontMdel = this.createOnt(owlpath);
			String str;
			OntProtyDAO dao = new OntProtyDAO();
			
			// 列出所有的對象屬性
			for (Iterator allobjpry = ontMdel.listObjectProperties(); allobjpry
					.hasNext();) {

				OntProperty objpry = (OntProperty) allobjpry.next();
				
				// 屬性URI
				String objprystr = objpry.toString();
				System.out.print("屬性URI:" + objprystr + "  ");
				// 屬性名
				str = objprystr.substring(objprystr.indexOf("#") + 1);
				System.out.print("屬性值:" + str + " 屬性:OP ");
				// 屬性定義域
				String domain = objpry.getDomain().toString();
				String domainstr = domain.substring(domain.indexOf("#") + 1);
				System.out.print("定義域 :" + domainstr);
				// 屬性值域
				String range = objpry.getRange().toString();
				String rangestr = range.substring(range.indexOf("#") + 1);
				System.out.println("  值域:" + rangestr);

			}
			// 列出所有的資料屬性
			for (Iterator alldatapry = ontMdel.listDatatypeProperties(); alldatapry
					.hasNext();) {

				OntProperty datapry = (OntProperty) alldatapry.next();
				// 屬性URI
				String dataprystr = datapry.toString();
				System.out.print("屬性URI:" + dataprystr + "  ");
				// 屬性名
				str = dataprystr.substring(dataprystr.indexOf("#") + 1);
				System.out.print("屬性值:" + str + " 屬性:DP ");
				// 屬性定義域
				String domain = datapry.getDomain().toString();
				String domainstr = domain.substring(domain.indexOf("#") + 1);
				System.out.print("定義域 :" + domainstr);
				// 屬性值域
				String range = datapry.getRange().toString();
				String rangestr = range.substring(range.indexOf("#") + 1);
				System.out.println("  值域:" + rangestr);
				System.out.println(dataprystr );
				System.out.println(str);
				System.out.println(domainstr);
				System.out.println(rangestr);
			}
		}

		/* 函數功能說明
		 * 
		 * 列出所有的屬性特征,内容包括:
		 * 屬性URI、屬性名、特征類型、特征值
		 * 
		 * */
		public void getAllProcharac(String owlpath) {
			OntModel ontMdel = this.createOnt(owlpath);
			String str;
			// 列出所有的對象屬性
			for (Iterator allobjpry = ontMdel.listObjectProperties(); allobjpry.hasNext();) {

				String info = null;
				OntProperty objpry = (OntProperty) allobjpry.next();
				OntProperty objinverof = objpry.getInverseOf();
				
				if(objinverof!=null){
				info = "屬性URI :"+objpry+"\n屬  性  名  :"+objpry.toString().substring(objpry.toString().indexOf("#")+1)
						+"\n特征類型 :inverseOf  "+"\n特  征  值  :"+ objinverof.toString().substring(objinverof.toString().indexOf("#")+1);
				System.out.println(info);
				}
			}
			}
		
		
		/* 函數功能說明
		 * 
		 * 列出所有的執行個體,内容包括:
		 * 執行個體URI、執行個體名、類URI、屬性URI、屬性值
		 * 
		 * */
		public void getAllIndividuals(String owlpath) {
			OntModel ontModel = this.createOnt(owlpath);
			String str;

			// 疊代出本體檔案中所有的執行個體
			for (Iterator allIndivs = ontModel.listIndividuals(); allIndivs.hasNext();) {
				Individual indiv = (Individual) allIndivs.next();
				//對象屬性命名空間
				String namespace = indiv.toString().substring(0,indiv.toString().indexOf("#") + 1);
				// 執行個體所屬的類
				OntClass classOfIndiv = indiv.getOntClass();
				
				//執行個體所屬類的所有屬性
				for (Iterator classPryOfIndivs = classOfIndiv.listProperties(); classPryOfIndivs.hasNext();) 
				{
					OntProperty classPryOfIndiv = (OntProperty) classPryOfIndivs.next();
					System.out.println(classPryOfIndivs.next());
					String classPryOfIndivstr = classPryOfIndiv.toString();
					String info = null;
					info = "執行個體URI:"
							+ indiv
							+ " 執行個體名:"
							+ indiv.toString().substring(indiv.toString().indexOf("#") + 1) + "  執行個體所屬類:"
							+ classOfIndiv
							+" 屬性URI:"
							+classPryOfIndivstr;
					
					// 擷取這個執行個體的屬性值
					if (indiv.getPropertyValue(classPryOfIndiv) != null) {
						String pryValueOfIndiv = indiv.getPropertyValue(classPryOfIndiv).toString();
						/*判斷對象屬性或資料屬性
						 * 如果執行個體屬性值中包括"^^"和"#",則為資料屬性,否則為對象屬性
						 */
						if (pryValueOfIndiv.contains("^^")&&pryValueOfIndiv.contains("#")) {
							info = info 
									+ "  屬性值:"
									+ pryValueOfIndiv.substring(0, pryValueOfIndiv.indexOf("^^"));
						}else{
							info = info
									+ "  屬性值:"
									+ pryValueOfIndiv.substring(pryValueOfIndiv.indexOf("#") + 1);
						}
					} else {
						info = info + "   無屬性值";
					}
					//輸出執行個體資訊
					System.out.println(info);
				}
		
			}

		}

		public static void main(String[] args) {
			String owlpath = "E:\\greenide\\workspace\\Ontology\\logistics.owl";
			System.out.println("--------------------------------------------清單1    類------------------------------");
			new OntAnalysisMysql().getAllClasses(owlpath);
			System.out.println("--------------------------------------------清單2    屬性-----------------------------");
			new OntAnalysisMysql().getAllProperties(owlpath);
			System.out.println("--------------------------------------------清單3   屬性特征--------------------------");
			new OntAnalysisMysql().getAllProcharac(owlpath);
			System.out.println("--------------------------------------------清單4    屬性限制--------------------------");
			new OntAnalysisMysql().getAllProcharac(owlpath);
			System.out.println("--------------------------------------------清單5    執行個體------------------------------");
			new OntAnalysisMysql().getAllIndividuals(owlpath);
			
		}

	}
           

(5)結果

[plain] view plain copy print ?

  1. --------------------------------------------清單1    類------------------------------  
  2. 類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#顧客   類名:顧客   類描述類型:無  
  3. 類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商   類名:銷售商   類描述類型:無  
  4. 類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單   類名:訂單   類描述類型:無  
  5. 類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#團體顧客   類名:團體顧客   類描述類型:subClassOf   類描述值:顧客  
  6. 類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#一般顧客   類名:一般顧客   類描述類型:subClassOf   類描述值:顧客  
  7. --------------------------------------------清單2    屬性-----------------------------  
  8. 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨人  屬性值:訂貨人 屬性:OP 定義域 :訂單  值域:顧客  
  9. 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨  屬性值:發貨 屬性:OP 定義域 :銷售商  值域:顧客  
  10. 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#下訂單  屬性值:下訂單 屬性:OP 定義域 :顧客  值域:銷售商  
  11. 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨日期  屬性值:訂貨日期 屬性:DP 定義域 :訂單  值域:date  
  12. 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量  屬性值:訂貨數量 屬性:DP 定義域 :訂單  值域:positiveInteger  
  13. 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨日期  屬性值:發貨日期 屬性:DP 定義域 :銷售商  值域:date  
  14. --------------------------------------------清單3   屬性特征--------------------------  
  15. 屬性URI :http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨  
  16. 屬  性  名  :發貨  
  17. 特征類型 :inverseOf    
  18. 特  征  值  :下訂單  
  19. --------------------------------------------清單4    屬性限制--------------------------  
  20. http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單  
  21. http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量  
  22. MaxCardinalityRestriction  
  23. 100  
  24. http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單  
  25. http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量  
  26. MinCardinalityRestriction  
  27. 1  
  28. --------------------------------------------清單5    執行個體------------------------------  
  29. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#韓梅梅 執行個體名:韓梅梅  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#一般顧客 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#下訂單  屬性值:淘寶  
  30. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#李明 執行個體名:李明  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#團體顧客 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#下訂單  屬性值:麥考林  
  31. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#淘寶 執行個體名:淘寶  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨   無屬性值  
  32. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#淘寶 執行個體名:淘寶  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨日期  屬性值:2011-04-05  
  33. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#麥考林 執行個體名:麥考林  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨  屬性值:李明  
  34. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#麥考林 執行個體名:麥考林  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨日期   無屬性值  
  35. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#高跟鞋 執行個體名:高跟鞋  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨日期  屬性值:2011-04-01  
  36. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#高跟鞋 執行個體名:高跟鞋  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量  屬性值:10  
  37. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#高跟鞋 執行個體名:高跟鞋  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨人  屬性值:韓梅梅  
  38. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#雪地靴 執行個體名:雪地靴  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨日期  屬性值:2012-11-11  
  39. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#雪地靴 執行個體名:雪地靴  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量  屬性值:60  
  40. 執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#雪地靴 執行個體名:雪地靴  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨人  屬性值:李明  
--------------------------------------------清單1    類------------------------------
類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#顧客   類名:顧客   類描述類型:無
類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商   類名:銷售商   類描述類型:無
類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單   類名:訂單   類描述類型:無
類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#團體顧客   類名:團體顧客   類描述類型:subClassOf   類描述值:顧客
類URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#一般顧客   類名:一般顧客   類描述類型:subClassOf   類描述值:顧客
--------------------------------------------清單2    屬性-----------------------------
屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨人  屬性值:訂貨人 屬性:OP 定義域 :訂單  值域:顧客
屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨  屬性值:發貨 屬性:OP 定義域 :銷售商  值域:顧客
屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#下訂單  屬性值:下訂單 屬性:OP 定義域 :顧客  值域:銷售商
屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨日期  屬性值:訂貨日期 屬性:DP 定義域 :訂單  值域:date
屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量  屬性值:訂貨數量 屬性:DP 定義域 :訂單  值域:positiveInteger
屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨日期  屬性值:發貨日期 屬性:DP 定義域 :銷售商  值域:date
--------------------------------------------清單3   屬性特征--------------------------
屬性URI :http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨
屬  性  名  :發貨
特征類型 :inverseOf  
特  征  值  :下訂單
--------------------------------------------清單4    屬性限制--------------------------
http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單
http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量
MaxCardinalityRestriction
100
http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單
http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量
MinCardinalityRestriction
1
--------------------------------------------清單5    執行個體------------------------------
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#韓梅梅 執行個體名:韓梅梅  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#一般顧客 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#下訂單  屬性值:淘寶
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#李明 執行個體名:李明  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#團體顧客 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#下訂單  屬性值:麥考林
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#淘寶 執行個體名:淘寶  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨   無屬性值
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#淘寶 執行個體名:淘寶  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨日期  屬性值:2011-04-05
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#麥考林 執行個體名:麥考林  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨  屬性值:李明
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#麥考林 執行個體名:麥考林  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#銷售商 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#發貨日期   無屬性值
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#高跟鞋 執行個體名:高跟鞋  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨日期  屬性值:2011-04-01
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#高跟鞋 執行個體名:高跟鞋  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量  屬性值:10
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#高跟鞋 執行個體名:高跟鞋  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨人  屬性值:韓梅梅
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#雪地靴 執行個體名:雪地靴  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨日期  屬性值:2012-11-11
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#雪地靴 執行個體名:雪地靴  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨數量  屬性值:60
執行個體URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#雪地靴 執行個體名:雪地靴  執行個體所屬類:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂單 屬性URI:http://www.semanticweb.org/ontologies/2012/10/logistics.owl#訂貨人  屬性值:李明
           

僅作學習交流,轉載請标注此文!

http://blog.csdn.net/xiaocong1314/article/details/8439696