是否可以在WHERE子句中使用过滤器(COUNT(DISTINCT?obj)>;x)执行SPARQL DELETE{}WHERE{}?
我想实现一个delete,它删除每个主题少于x个不同对象的所有三元组 根据我的感觉,预期的查询应该是这样的:是否可以在WHERE子句中使用过滤器(COUNT(DISTINCT?obj)>;x)执行SPARQL DELETE{}WHERE{}?,sparql,virtuoso,Sparql,Virtuoso,我想实现一个delete,它删除每个主题少于x个不同对象的所有三元组 根据我的感觉,预期的查询应该是这样的: DELETE { ?sub ?pred ?obj . } WHERE { {SELECT ?sub ?pred ?obj (count(?obj) as ?count) WHERE { ?sub ?pred ?obj . } GROUP BY ?sub } FILTER(?count < 14) } DELETE{?sub?pred?
DELETE { ?sub ?pred ?obj . }
WHERE {
{SELECT ?sub ?pred ?obj (count(?obj) as ?count)
WHERE { ?sub ?pred ?obj .
} GROUP BY ?sub
} FILTER(?count < 14)
}
DELETE{?sub?pred?obj.}
何处{
{选择sub-pred-obj(计数(?obj)作为计数)
哪里{?sub?pred?obj。
}分组方式
}过滤器(?计数<14)
}
上述方法不起作用
另外,要实现每个子部分的obj
,还需要一个分组,但我不知道如何做到这一点
有人能告诉我解决这个问题的正确方向吗?请注意,您的子查询实际上不是合法查询。如果尝试仅验证上的子查询,则会得到以下输出:
语法错误:
SELECT中的非组键变量:?pred
不过,奇怪的是,整个查询确实通过了验证。从您尝试的查询中不清楚您正试图删除的内容以及以下语句:
我想实现一个delete,它删除每个主题少于x个不同对象的所有三元组
也不是很清楚。如果您试图删除一个主语的三元组,该主语在所有与该主语相关的谓词中与少于10个不同的对象相关,您会发现它们如下所示:
选择s?p?o{
?s?p?o
{select?s{s?pp?oo}
分组
有(计数(不同的?oo)<10)}
}
然后,将其扩展到执行删除操作很容易:
删除{s?p?o}
在哪里{
?s?p?o
{select?s{s?pp?oo}
分组
有(计数(不同的?oo)<10)}
}
请注意,您的子查询实际上不是合法查询。如果尝试仅验证上的子查询,则会得到以下输出:
语法错误:
SELECT中的非组键变量:?pred
不过,奇怪的是,整个查询确实通过了验证。从您尝试的查询中不清楚您正试图删除的内容以及以下语句:
我想实现一个delete,它删除每个主题少于x个不同对象的所有三元组
也不是很清楚。如果您试图删除一个主语的三元组,该主语在所有与该主语相关的谓词中与少于10个不同的对象相关,您会发现它们如下所示:
选择s?p?o{
?s?p?o
{select?s{s?pp?oo}
分组
有(计数(不同的?oo)<10)}
}
然后,将其扩展到执行删除操作很容易:
删除{s?p?o}
在哪里{
?s?p?o
{select?s{s?pp?oo}
分组
有(计数(不同的?oo)<10)}
}
您所说的“不起作用”是什么意思?如果有错误信息,请将其包含在问题中。首先,我认为您需要正确选择选项,但它似乎不正确。如果您认为您的挑战可能非常具体,请添加版本信息,并向、或提出您的问题。(ObDisclaimer:I work for,maker of。)您只想删除{sub?pred?obj.}
三元组还是想删除?sub
?如果需要后者,则需要删除对?sub
的引用。您所说的“不工作”是什么意思?如果有错误信息,请将其包含在问题中。首先,我认为您需要正确选择选项,但它似乎不正确。如果您认为您的挑战可能非常具体,请添加版本信息,并向、或提出您的问题。(ObDisclaimer:I work for,maker of。)您只想删除{sub?pred?obj.}
三元组还是想删除?sub
?如果您想要后者,您将需要删除对?sub
的引用。您应该将此作为错误报告给Jena开发人员。这正是我想要实现的,抱歉我的工资解释。(我对我的问题感到困惑,我想这无助于澄清这一点)我实际上遇到了这个问题。我尝试了验证器,当它没有抱怨时,我很高兴,所以我无法看到实际发生了什么!非常感谢。你应该向Jena开发者报告这个bug。这正是我想要实现的,抱歉我的工资解释。(我对我的问题感到困惑,我想这无助于澄清这一点)我实际上遇到了这个问题。我尝试了验证器,当它没有抱怨时,我很高兴,所以我无法看到实际发生了什么!非常感谢。