2011-02-10 13 views
0

我想知道如何從使用Jena框架的本體中加載一個模型,在該模型中我將檢索在本體中定義的完全相同的語義。我發現了大約Jean ontology API 給人以本體模型,類操作的可能性,等等如何使用Jena框架加載基於本體的內存模型?

然後給下面的例子:

<owl:Class rdf:ID="DigitalCamera"> 
    <rdf:type owl:ObjectProperty /> 
</owl:Class> 

這是可以做到:

Resource r = myModel.getResource(myNS + "DigitalCamera"); 
OntClass cls = (OntClass) r.as(OntClass.class); 

不過我我正在搜索直接在DigitalCamera類/實例上獲取我的手,而不是通過OntClass或Resource傳遞,如下所示:

DigitalCamera camera = new DigitalCamera(); 

然後,當搜索該攝像機的某個屬性時,我可以直接訪問它,並將注意力集中在DSL等數據的語義上。Jena提出了這種表示任何本體的專用(生成的?)框架嗎?

感謝

回答

0

有一個概念性的問題做你問什麼,這是RDF的一個優勢是,數據模型具有延展性。有時這表達爲「任何人都可以說任何事情」。換句話說,您的應用程序狀態完全由圖中的內容定義。假設資源r當前有rdf:type foaf:Person,那麼改變該圖完全可能並且合法,以致r代替rdf:type skos:Concept。或者,確實是兩者兼而有之。因此,使用某種ORM將資源表示爲不變的Java類PersonConcept可能會變得不完整或陳舊。這是(部分)爲什麼耶拿不這麼做:在耶拿的狀態完全基於RDF圖中的內容。也就是說,如果你願意接受這種風險,或者你知道在你的應用程序中,從資源URI到Java對象類的映射很少或根本沒有機會從根本上改變,那麼有一些Jena擴展可以幫你。我建議以JenaBean爲例。

相關問題