假设我有这些数据:
<http://foo/toast> <veg:two> <http://foo/id_A> .
<http://foo/apple> <veg:one> <http://foo/id_A> .
<http://foo/banana> <veg:one> <http://foo/id_A> .
<http://foo/banana> <veg:two> <http://foo/id_B> .
<http://foo/mango> <veg:one> <http://foo/id_B> .
如何使用URI http://foo/apple查询该数据,以获取连接到<http://foo/apple> <veg:one>
所连接的同一对象的任何资源。就像<http://foo/apple> <veg:one> <http://foo/id_A>
我期待查询返回:
<http://foo/toast> , <http://foo/banana> , <http://foo/mango>
我尝试了这样的查询,但是他们没有工作:
SELECT * WHERE{
<http://foo/apple> ?p ?id .
?fr (<veg:one>)*/(<veg:two>)* ?otherId .
}
我不确定如何将属性路径连接回?id。 我应该用反向路径联合查询吗?这似乎有点矫枉过正,而且可能有一种更简单的方式
我可以创建一个查询来获取toast和banana URI,但不能创建芒果URI
谢谢!
答案 0 :(得分:2)
如果我理解你,听起来你想要的资源有一条以veg开头的路径:一个或蔬菜:两个,并通过跟随veg结束苹果的id:一个或蔬菜:两个向后和向前再次。如果这是正确的,那么它看起来像
export class DeleteKeyMutation extends Relay.Mutation {
static fragments = {
viewer: () => Relay.QL`
fragment on Viewer { id }
`,
};
getMutation() { return Relay.QL`mutation {deleteKey}`; }
getVariables() {
return {
id: this.props.id,
};
}
getFatQuery() {
return Relay.QL`
fragment on DeleteKeyPayload {
viewer { keys }
}
`;
}
getConfigs() {
return [
{
type: 'FIELDS_CHANGE',
fieldIDs: {
viewer: this.props.viewer.id,
},
},
];
}
}