为所有类本体创建测试人员

时间:2016-10-03 14:03:01

标签: sparql owl

我想测试一个OWL本体。由于它很大,我想自动创建命名个体作为每个类的成员,每个类一个,具有类的名称,附加" 1"。据我所知,SPARQL更新中没有迭代机制。但可能还有其他方法可以实现它。任何想法,将不胜感激。

1 个答案:

答案 0 :(得分:3)

不应该那么困难:

SELECT ?cls ?ind {
  ?cls a owl:Class .
  BIND(IRI(CONCAT(STR(?cls), "1")) AS ?ind)
}

此查询为每个类生成一个人。您可以将此SELECT查询放在SPARQL Update查询的WHERE部分中(未经测试):

INSERT {
  ?ind a ?cls .
} WHERE { 
   ?cls a <http://www.w3.org/2002/07/owl#Class>
    BIND(iri(concat(str(?cls), "1")) AS ?ind)
}