我目前正在尝试创建一个SPARQL查询,如果目标图中不存在该查询,则可以插入新的公理。我正在使用集成Jena ARQ的ONT-API。
这是我关于空白本体的目标查询:
PREFIX t: <testOntologyIRI#> INSERT DATA { t:testClassA t:hasProperty t:testClassB }
这不会产生预期的结果:我的空白本体
testClassA hasProperty testClassB
中的一个新公理>如果目标本体中不存在新属性,我会产生一些问题。
问题是,如果我在上面运行相同的查询(知道本体中存在属性hasProperty)==>它隐式生成单独的testClassA,testClassB,最后生成我的目标公理。
为了解决这个“问题”,我想在查询中创建条件,例如:
PREFIX t: <testOntologyIRI#> PREFIX owl: <http://www.w3.org/2002/07/owl#> INSERT DATA { t:testClassA ?hasProperty t:testClassB . BIND(IF(EXISTS{t:hasProperty},t:hasProperty, t:hasProperty a owl:ObjectProperty) as ?hasProperty). }
此查询对我来说很乱,它不起作用。您建议编辑什么以自动生成本体中不存在的属性,并且需要插入所需的公理?
最诚挚的问候,
我目前正在尝试创建一个SPARQL查询,如果目标图中不存在该查询,则可以插入新的公理。我正在使用集成Jena ARQ的ONT-API。这是我对空白本体的目标查询:...
您需要使用减号条件来测试是否缺少特定的三元组。
前缀t: