在芝麻店分别存储个人和本体

时间:2015-06-22 14:12:37

标签: sparql semantic-web sesame

我有一个在sesame存储库中导入的本体。 我想为我的本体中定义的类添加个体。

是否可以将个人添加到另一个存储库而不是存储本体的存储库中?如果可以,我可以将个人链接到本体并对它们运行查询吗?

或者将它们全部存储在一起是一种好习惯吗?

1 个答案:

答案 0 :(得分:2)

可以将您的个人和本体存储在单独的存储库中,然后一起查询它们,是的。但是,这不是处理事情的常用方法。一种更简单的方法是将两个数据集放在同一个存储库中,但将每个数据集放在单独的上下文命名图中。 Sesame是一个四元存储,这意味着它允许您在数据上设置命名图标识符(在Sesame的API中,这称为上下文标识符)。然后,可以使用它来标识存储库中的子集。有关如何以编程方式使用上下文的更多详细信息,请参阅documentation about the Repository API。如果您通过Workbench手动工作,只需确保在上传文件时,您在相应的表单字段中设置了适当的上下文标识符(任何URI都可以,但最好使其易于记忆)。

但是,如果您已经开始使用单独的存储库,那么可以使用两种现成方法来查询多个存储库。

第一种方法是使用SPARQL SERVICE子句。想象一下,您有两个存储库,一个名为Instances,另一个名为Ontology。每个Sesame存储库也是一个SPARQL端点,因此可以通过在Instances存储库上执行以下查询来查询组合数据集:

  SELECT ?i ?c
  WHERE { 
         SERVICE <http://localhost:8080/openrdf-sesame/repositories/Ontology> { 
                    ?c rdfs:subClassOf :SomeClass .
         }
         ?i a ?c .
  }

第二种方法是在Sesame中创建联合存储库。联合存储库是一个“虚拟”数据库,由许多“成员”存储库组成。您可以像任何其他存储库一样查询联合存储库,并且它将在成员存储上分发您的查询并集成结果。有关如何设置manually via the Workbenchprogrammatically的详细信息,请参阅Sesame用户文档。