插入Protege来创建/编辑SPIN约束和构造函数?

时间:2016-06-23 21:35:49

标签: sparql protege spin-rdf

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

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

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

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

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

感谢。

1 个答案:

答案 0 :(得分:0)

在某些版本中,TopBraid Composer默认会在RDF中存储SPIN约束。鉴于查询存储为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
}

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

此外,如果您希望将约束存储为SPARQL字符串,请参阅首选项&gt; TopBraid Composer&gt;旋转并选中“生成sp:文本...”中的一个框。然后,您可以通过以下查询获取查询文本:

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