0

在乌龟我有这样的事情:

@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"
4

1 回答 1

2

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

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

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

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

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

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

于 2014-04-14T06:46:06.037 回答