Model 如何使用Jena框架加载基于本体的内存模型?

Model 如何使用Jena框架加载基于本体的内存模型?,model,ontology,jena,in-memory,Model,Ontology,Jena,In Memory,我想知道如何从使用Jena框架的本体中加载一个模型,在该模型中,我将检索本体中定义的完全相同的语义。我发现 提供了在本体模型、类等方面工作的可能性 然后给出以下示例: <owl:Class rdf:ID="DigitalCamera"> <rdf:type owl:ObjectProperty /> </owl:Class> 但是,我正在搜索直接接触DigitalCamera类/实例,而不是通过OntClass或Resource,如下所示: Digita

我想知道如何从使用Jena框架的本体中加载一个模型,在该模型中,我将检索本体中定义的完全相同的语义。我发现 提供了在本体模型、类等方面工作的可能性

然后给出以下示例:

<owl:Class rdf:ID="DigitalCamera">
  <rdf:type owl:ObjectProperty />
</owl:Class>
但是,我正在搜索直接接触DigitalCamera类/实例,而不是通过OntClass或Resource,如下所示:

DigitalCamera camera = new DigitalCamera();
然后,当搜索相机的某个属性时,我可以直接访问它,并像DSL一样关注数据的语义。 耶拿有没有提出这样的建议?表示任何本体的框架


谢谢

做您所要求的事情存在一个概念上的问题,即RDF的优势在于数据模型是可延展的。这有时表现为任何人都可以对任何事情说任何话。换句话说,应用程序状态完全由图形中的内容在任何时候定义。假设资源r当前有rdf:type foaf:Person,那么该图完全有可能并且合法地进行更改,以使r具有rdf:type skos:Concept。或者,事实上,两者兼而有之。因此,使用某种ORM将资源表示为不变的Java类人员或概念有可能变得不完整或过时。这就是Jena不这样做的部分原因:Jena中的状态完全基于RDF图中的内容

这就是说,如果您愿意接受这种风险,或者您知道在您的应用程序中,从资源URI到Java对象类的映射很少或根本不可能发生根本性的变化,那么有一些Jena扩展可以帮助您。我建议把它作为一个例子

DigitalCamera camera = new DigitalCamera();