SPARQL-插入属性(如果不存在)>>

问题描述 投票:0回答:1

我目前正在尝试创建一个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。这是我对空白本体的目标查询:...

sparql jena owl ontology owl-api
1个回答
0
投票

您需要使用减号条件来测试是否缺少特定的三元组。

前缀t:

© www.soinside.com 2019 - 2024. All rights reserved.