我想在Sparql中向rdf添加数据

时间:2015-12-07 02:59:56

标签: sparql virtuoso

我尝试使用SPARQL更新某些数据。这是原始数据的样子:

<http://dbpedia.org/resource/Switzerland#1 >
   <http://www.w3.org/2000/01/rdf-schema#label > "1"@ja ;
   <http://linkdata.org/property/rdf1s2307i#num > "1"@ja ;
   <http://learningsparql.com/ns/addressbook#code > "1234"@ja .

这是我希望更新后数据的样子:

<http://dbpedia.org/resource/Switzerland#1 >
   <http://www.w3.org/2000/01/rdf-schema#label > "1"@ja ;
   <http://linkdata.org/property/rdf1s2307i#num > "1"@ja ;
   <http://learningsparql.com/ns/addressbook#code > "1234"@ja ;
   <http://learningsparql.com/ns/addressbook#name > "taro"@ja .

我有一个我试图使用的查询,但最终我收到了错误消息。这是我得到的查询和错误:

PREFIX schema: <http://www.w3.org/2000/01/rdf-schema# >
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos# >
PREFIX ab: <http://learningsparql.com/ns/addressbook# >
PREFIX res: <http://www.w3.org/2000/01/rdf-schema# >

INSERT DATA{
  GRAPH <http://ddd.test/addressbook> { ab:name "taro" . }
}
  

SQLState:22023消息:SR007:函数exec_metadata需要一个字符串   或NULL作为参数1,而不是ARRAY_OF_POINTER(193)

类型的arg

1 个答案:

答案 0 :(得分:4)

一些事情:

  1. 不要在前缀URI的末尾留下任何空格。
  2. 使用INSERT DATA时,请确保您的陈述是三倍的。您只使用谓词和对象。
  3. 如果您在执行前通过SPARQL验证程序传递了查询,则可能已经接收到上述内容。

    试试这个:

    PREFIX schema: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
    PREFIX ab: <http://learningsparql.com/ns/addressbook#>
    PREFIX res: <http://www.w3.org/2000/01/rdf-schema#>
    
    INSERT DATA{
      GRAPH <http://ddd.test/addressbook> {
          <http://dbpedia.org/resource/Switzerland#1> ab:name "taro" .
      }
    }