0

是否有插件或其他方式在 Protege 中创建和编辑 SPARQL/SPIN 约束和构造函数?

据我了解,要在 RDF 中捕获 SPIN 约束,需要对 ASK 或 CONSTRUCT 查询的 SPARQL 代码进行解析和编码。它不存储为不透明的字符串。因此,似乎需要一些了解 SPARQL 和 SPIN 的插件。

我已经从 Topbraid Composer 将 RDF(包括 SPIN 约束)加载到 Protege 4.3.0 中,它似乎将约束视为注释,但我似乎无法找到所有细节,尤其是包括所有底层 SPARQL 代码。我在文本编辑 RDF 文件时确实看到了它。

从广义上讲,我试图找到一种方法来创建/编辑 SPIN 约束和构造函数,并将它们加载到 Sesame 中,让它们对从我的类实例化的个体进行操作。我发布了另一个关于从 TopBraid Composer 到 Sesame 的路径的问题。因为我是 Stack Overflow 的新手,所以我试图让我的问题更加具体。

顺便说一句,不,我不想改用 SWRL。我在使用 SWRL 表达我需要的约束时遇到了麻烦。我已经成功使用 SPARQL。

谢谢。

4

1 回答 1

0

在某些版本中,TopBraid Composer 默认将 SPIN 约束存储在 RDF 中。鉴于查询存储为 RDF 三元组,将它们存储在任何 RDF 数据存储中应该没有问题。应用 SPIN 约束是一个不同的问题,因为系统需要知道如何解释不同 SPIN 属性的查询。

你确定你不能在 Protégé 或​​ Sesame 中“看到”它们吗?约束是使用该属性在类上定义的,spin:constraint并且应该显示为 bnode。确保您还导入http://spinrdf.org/spin,或者至少定义一个名为spin:constraint. 至少,以下内容应该始终可以找到您的约束:

SELECT ?constraint ?class
WHERE {
   ?class <http://spinrdf.org/spin#constraint> ?constraint
}

...where?constraint绑定到表示 RDF 中的约束的 bnode,并且?class是定义约束的类。

此外,如果您希望将约束存储为 SPARQL 字符串,请参阅 Preferences > TopBraid Composer > SPIN 并选中“Generate sp:text...”中的框之一。然后您可以通过以下查询获取查询文本:

SELECT ?query ?class
WHERE {
   ?class <http://spinrdf.org/spin#constraint> ?constraint .
   ?constraint <http://spinrdf.org/sp#text> ?query
}
于 2016-06-24T22:53:32.467 回答