如何在TopBraid Composer中进行Sparql INSERT?

时间:2018-07-31 17:27:03

标签: sparql owl ontology rdfs topbraid-composer

我正在尝试在TopBraid Composer(ME 5.5.2)中使用Sparql插入新类。我的简单本体看起来像这样:

enter image description here

然后我编写了一个Sparql查询,以插入Berry作为Fruit的子类:

PREFIX ft: <http://www.semanticweb.org/ontologies/2018/7/fruit#>
PREFIX rdfs: <ttp://www.w3.org/2000/01/rdf-schema#>

INSERT
{ft:Berry    rdfs:subClassOf  ft:Fruit}

但是出现了一条错误消息,说Encountered "insert". Was expecting one of: "base, "select", ...

类似的帖子:Sparql insert data not working说,Sparql查询是与Sparql Update不同的语言。其他一些帖子说Protege不支持Sparql Update,而Composer支持Sparql Update(因此我下载了Composer)。我还检查了Composer手册:https://www.topquadrant.com/docs/TBC-Getting-Started-Guide52.pdf,其中提到了Sparql Update,但内容不多。

然后我的问题是,是否可以在TopBraid中插入类和公理?如果是这样,怎么办?我的最终目标是插入的类将出现在分层视图中,并且插入的类定义也可以在侧面看到。如果Composer无法执行此操作,我还可以使用哪些其他工具/工作流程?

很抱歉遇到这样的新手问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

在SPARQL 1.1更新中,INSERT有两种形式:

您正在混合它们。

以下是针对kennedys.ttl示例的TBC 5.5.2 Free Edition中对我有用的东西:

INSERT DATA
    { kennedys:UralStateUniversity a kennedys:College }

由于是未知的URI,主题在查询编辑器中带有下划线,但是只需按“执行SPARQL”按钮即可。

更新

在您的特定情况下,您应该说类似

INSERT DATA
    { ft:Berry rdfs:subClassOf ft:Fruit; a owl:Class }

请注意,使用的是owl:Class。 TBC将rdfs:Class的实例视为“系统类”,其图标是棕色的,而不是黄色的。