我有一个在sesame存储库中导入的本体。 我想为我的本体中定义的类添加个体。
是否可以将个人添加到另一个存储库而不是存储本体的存储库中?如果可以,我可以将个人链接到本体并对它们运行查询吗?
或者将它们全部存储在一起是一种好习惯吗?
答案 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 Workbench或programmatically的详细信息,请参阅Sesame用户文档。