[英]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
是所有者Katrin
和emily
的共享主题,因此您无法为b:ID_13
插入不会自动应用于Katrin
和emily
的排名。
错误不是您的INSERT
操作,而是您的输入数据。 您需要确保Katrin
和emily
拥有的资源不会共享相同的主题标识符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.