簡體   English   中英

使用定義的OWL本體創建RDF

[英]create RDF using defined OWL ontology

我正在為數據庫表生成RDF。 我使用Protégé為表生成了OWL本體。 我想使用該OWL本體並使用Jena為表數據創建RDF / XML格式的RDF。 我知道如何將RDF和OWL文件讀寫到內存中以生成模型,並且知道如何使用Resource,Property,ModelFactory等類生成RDF。 我無法做的是使用生成的本體(OWL文件)並為那些OWL類創建RDF實例。 例如:

樣本貓頭鷹:

<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>

我能夠生成如下RDF:

<rdf:Description rdf:about="Jack">
  <ns:salary>2004</ns:salary>
</rdf:Description>

您需要一個所謂的RDB2RDF映射器。 嘗試D2RQ ,一個基於Java的RDB2RDF映射器,例如。

免責聲明:我是W3C RDB2RDF工作組的聯合主席,並且我的組為D2RQ的開發做出了巨大的貢獻-還提供了許多其他使用各種語言的實現

所需輸出與現在正在創建的輸出之間的唯一區別是存在Triple :Jack rdf:type :Person (並且,如果需要,可以定義默認名稱空間,這樣就不需要ns:前綴了)在您的XML元素上)。

從您的RDF開始

<rdf:Description rdf:about="Jack">
  <ns:salary>2004</ns:salary>
</rdf:Description>

並添加三重Jack rdf:type Person ,您將擁有

<rdf:Description rdf:about="Jack">
  <rdf:type rdf:resource="Person"/>
  <ns:salary>2004</ns:salary>
</rdf:Description>

RDF / XML規范允許rdf:type三元組的簡寫rdf:type 如果該類型的URI可以縮寫為XML名稱,則可以將其用作元素名稱。 使用此速記,您可以

<ns:Person rdf:about="Jack">
  <ns:salary>2004</ns:salary>
</ns:Person>

除非前綴非常重要,否則這是您所需的輸出。 如果是這樣, PrefixMapping#setNsPrefix需要使用PrefixMapping#setNsPrefix來設置前綴。 Model實現PrefixMapping 。)

model.setNsPrefix( "", "http://yourontologies.com/thisOntology#" );

你會得到的

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

當您序列化模型時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM