单个请求中的多个SPARQL"INSERT WHERE"查询

Nik*_*hil 7 rdf sparql

我的问题类似于在这个线程上提出的问题是否可以将这两个SPARQL INSERT合并为一个?

我想在查询中有多个INSERT WHERE语句,但是对于不同的主题.我想测试一个特定的值("testValueN"),如果存在,则希望为该主题插入一个新的三元组.

一个例子是,

PREFIX Sensor: <http://example.com/Equipment.owl#> 
{
    INSERT { 
        ?subject1 Sensor:test2 'newValue1' . 
           }
    WHERE {
        ?subject1 Sensor:test1  'testValue1' . 
          }
};
{
    INSERT { 
        ?subject2 Sensor:test2 'newValue2' . 
           }
    WHERE {
        ?subject2 Sensor:test1  'testValue2' . 
          }
};
Run Code Online (Sandbox Code Playgroud)

我知道上面的查询是错误的.我想知道SPARQL中是否有类似的东西.

Jee*_*tra 8

是的,这是可能的.事实上,你的例子几乎完全没问题,只是丢失了每个插入的括号:

PREFIX Sensor: <http://example.com/Equipment.owl#> 
INSERT { 
    ?subject1 Sensor:test2 'newValue1' . 
}
WHERE {
    ?subject1 Sensor:test1  'testValue1' . 
};
INSERT { 
   ?subject2 Sensor:test2 'newValue2' . 
}
WHERE {
   ?subject2 Sensor:test1  'testValue2' . 
}
Run Code Online (Sandbox Code Playgroud)

是一个有效的SPARQL更新序列.