繁体   English   中英

SPARQL插入查询

[英]SPARQL insert query

在乌龟我有这样的事情:

@prefix b: <http://www.fake.org/vl/> .

b:ID_13 b:OwnBy b:Katrin ;
    b:Rank   "5" .

b:FID_13 b:OwnBy b:emily ;
    b:Rank "9" ;
    b:Comment "comment \"George goes to school!" ;
    b:Time_Comment "at 10:18 21/01/2015" .

当我使用

SELECT * WHERE{

    ?ID  b:OwnBy  ?Name;
         b:Rank     ?Rank;
}

我得到的结果

ID       Name     Rank
ID_13   Katrin    "5"
ID_13   emily     "9"

如何插入ID_13 Katrin的另一个等级(仅适用于katrin)????

我已经试过了

INSERT {b:ID_13 b:Rank  "pppppppppppppp"}

WHERE{b:ID_13 b:OwnBy b:Cathy}

但是,当我使用select查看我插入的内容时,此查询将新排名同时插入Katring和emily,然后得到以下结果:

ID       Name     Rank
ID_13   Katrin    "5"
ID_13   Katrin    "pppppppp"
ID_13   emily     "9"
ID_13   emily     "pppppppp"

您的示例数据包含两个具有属性b:OwnBy三元组:

  b:ID_13 b:OwnBy b:Katrin .
  b:ID_13 b:OwnBy b:emily .

(我假设您问题中的b:FID_13是一个错字)

请注意,两个三元组共享相同的主题。 因此,由b:ID_13表示的资源由Katrin和emily拥有。

您的INSERT操作尝试添加三元组b:ID_13 b:Rank "pppppppppppppp" WHERE子句没有意义,因为没有变量可填充此模式-这不是完全错误,但实际上并没有做任何有用的事情。 除此之外,您要做的只是逻辑上的不可能。 由于b:ID_13是所有者Katrinemily的共享主题,因此您无法为b:ID_13插入不会自动应用于Katrinemily的排名。

错误不是您的INSERT操作,而是您的输入数据。 您需要确保Katrinemily拥有的资源不会共享相同的主题标识符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM