我正在尝试在TopBraid Composer(ME 5.5.2)中使用Sparql插入新类。我的简单本体看起来像这样:
然后我编写了一个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无法执行此操作,我还可以使用哪些其他工具/工作流程?
很抱歉遇到这样的新手问题。任何帮助表示赞赏。
答案 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
的实例视为“系统类”,其图标是棕色的,而不是黄色的。