2012-11-15 52 views
3

我使用Protege生成了OWL本體。我想使用我的OWL本體,並使用Jena創建RDF三元組以保存在三重商店中。創建owl本體類的實例並將它們保存在rdf商店

我知道如何讀寫RDF,但我不知道如何爲這些OWL類創建實例。例如:

樣品OWL本體我需要

<owl:Class rdf:about="Person"/> 
    <owl:Class rdf:about="Animal"/> 

    <owl:DatatypeProperty rdf:about="salary"> 
    <rdfs:domain rdf:resource="Person"/> 
    <rdfs:range rdf:resource="&xsd;real"/> 
    </owl:DatatypeProperty> 

RDF是類似的東西

<Person rdf:about="Jack"> 
     <salary>1234</salary> 
    </Person> 

回答

4

您可以創建以編程方式使用耶拿本體API實例。有兩種方法可以完成。這都需要你提供一個OntClass objectOntModel

  1. 調用createIndividual方法的OntClass對象。

    OntClass class = ontModel.createClass(yourNamespace + "SomeClass"); 
    Individual instance = class.createIndividual(yourNamespace + "individual1"); 
    
  2. 調用createIndividual方法的OntModel物體上,並通過一個OntClass對象作爲參數。

    OntClass class = ontModel.createClass(yourNamespace + "SomeClass"); 
    Individual individual = ontModel.createIndividual(yourNameSpace + "individual2", class); 
    

欲瞭解更多信息,您可以訪問official tutorial for Jena Ontology API

+1

謝謝,但這只是intances,如何使用這些不使用這些實例創建rdf三元組。 –

2

方法#1 當你使用耶拿或芝麻解析OWL,你會得到貓頭鷹三元的形式在任何一個模式或圖表。這些三元組可以存儲在三元組商店中。

方法#2 您可以通過以三元組形式創建實例來解決此問題。以下是示例java代碼。請注意,我沒有測試這個代碼,這只是爲了理解。

StringBuilder sb = new StringBuilder();

sb.append(「xmlns:drug = \」http://www.healthcare.com/patient/drug# \「」); sb.append(「xmlns:rdf = \」http://www.w3.org/1999/02/22-rdf-syntax-ns# \「」);

sb.append( 「順應性:treatmensub的rdf:資源= \」 http://www.healthcare.com/patient/drug##id_pa_ 「+ ID +」 PR 「+」 _ 「+ drugname +」 \ 「/>」);

但我建議方法#1遵循,因爲你有一個OWL文件。