在 ontology 中插入多个人

Insert multiple individuals in an ontology

我创建了一个简单的 ontology,如下所示 ,其中包含 4 个 类、1 个 objectTypeProperty 和 2 个 DatatypeProperties。现在我想创建相同 ontology 的不同个体。个人,我指的是下面显示的一行数据 table 。我正在尝试将这些人直接插入 ontology with Jena。

到目前为止,我已经阅读了耶拿的ontology,但是我应该如何插入所有这些人。我是否需要使用任何类型的循环或 Jena 中有特定规定来插入重复信息。

注意:我之前在 http://answers.semanticweb.com/questions/31641/use-an-ontology-to-store-csv-data-into-rdf-form 上问过类似的问题。我得到了答案,但我想知道不使用对齐 ApI,我可以纯粹使用 Jena 吗?

注:answers.semanticweb.com目前好像宕机了。

使用 SPARQL 插入多个三元组可能最简单。它基本上是

prefix : <...>

insert data {
  :individual1 :place :p1 ; :date "110114" ; temperature 13 .
  :individual2 :place :p2 ; :date "120114" ; temperature 14 .
  :individual3 :place :p3 ; :date "130114" ; temperature 15 .
}

如果您已经知道需要插入的数据,那将很方便。如果你不这样做,或者你正在从其他文件中读取它,那么通过代码构建它可能会更容易。

因为我不能post发表评论,所以我会在这里...

Haroon,关于 answers.semanticweb.com 上的问题,我只是跟着 Alignment API 因为你说你需要找到 CSV 列和概念之间的映射。仅使用 Jena,您无法做到这一点,因为据我所知,Jena 不会为您提供任何方法或任何类型的对齐或语义注释支持。事实上,你也可以在没有 Alignment API 的情况下执行此操作,方法是使用其他一些库,如第二个字符串(我在那里的评论之一),或任何其他允许你 运行 字符串比较(或结构或语义...)。

如果你不需要在运行时间内计算比对,我的意思是,如果你手动设置的话,你可以使用Jena来创建个体。除了使用第一个答案中指出的 SPARQL 之外,您还可以将 ontology 加载到 Jena 模型中并使用 Jena 方法创建个体。如果您得到一个 OntClass,则有一个方法 'createIndividual' 允许您创建该类型的个体。

如果您的 ontology 太大,您可以获得其中的一部分,或者只创建您需要的资源,稍后将其附加到您的模型中。您可以通过使用 Jena 方法,或像 Joshua Taylor 所说的那样通过代码创建 SPARQL 更新来做到这一点。

如果你采用其他答案中的代码示例并排除 Alignment API 部分,你就有这个 Jena 实现(官方文档也很容易理解)。只需将映射保存在某个存储(文件、数据库等)中,然后使用它将列映射到概念。

一旦您在 Jena 模型中创建了个体,它们将成为您 ontology 的一部分,但仅限于您记忆中的版本,因此,您需要将其保存回原来的位置:一些文件或 SPARQL 端点支持 SPARQL 更新。

希望能为您解答!