首页 文章

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

提问于
浏览
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到芝麻的路径的问题 . 我试图让我的问题更具体,因为我是Stack Overflow的新手 .

顺便说一句,不,我不想使用SWRL . 我无法用SWRL表达我需要的约束 . 我使用SPARQL取得了成功 .

谢谢 .

1 回答

  • 0

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

    你确定你不能在Protégé或芝麻中使用它们吗?使用属性 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字符串,请参阅首选项> TopBraid Composer> SPIN并选中“生成sp:text ...”中的一个框 . 然后,您可以通过以下查询获取查询文本:

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

相关问题