gpt4 book ai didi

sparql - 删除除最早事件时间之外的所有关于事件时间的三元组

转载 作者:行者123 更新时间:2023-12-02 07:21:25 24 4
gpt4 key购买 nike

我有几个这样的三元组

:event1 :hasTimeStamp "2017-06-30T00:01:00Z" .
:event1 :hasTimeStamp "2017-06-30T00:02:00Z" .
:event1 :hasTimeStamp "2017-06-30T00:03:00Z" .

我想删除所有关于 :event1timestamp 的断言,除了最早的断言。

我知道如何选择最早的,将其插入到一个名为 scratch 的 graph 中,删除所有 :event1 timestamp,然后从 scratch graph 中复制回来。

有没有办法在不使用临时/临时图的情况下就地删除?

这是一个嵌套选择,其中内部子选择获得最短时间,然后将其与外部选择的各个时间进行比较。

现在我只需要将它包装在 delete 中。

PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT *
WHERE
{ ?s rdf:type <http://turbo.org/procStartTimeMeas> ;
<http://purl.obolibrary.org/obo/IAO_0000136> ?something .
?something <http://purl.obolibrary.org/obo/RO_0002223> ?another .
?another rdf:type <http://turbo.org/R2RInstantiation> .
?s <http://purl.obolibrary.org/obo/IAO_0000004> ?o
{ SELECT ?s (MIN(?o) AS ?earliest)
WHERE
{ ?s rdf:type <http://turbo.org/procStartTimeMeas> ;
<http://purl.obolibrary.org/obo/IAO_0000136> ?something .
?something <http://purl.obolibrary.org/obo/RO_0002223> ?another .
?another rdf:type <http://turbo.org/R2RInstantiation> .
?s <http://purl.obolibrary.org/obo/IAO_0000004> ?o
}
GROUP BY ?s
}
FILTER ( ?o != ?earliest )
}

最佳答案

试试这个(不是在生产环境中):

PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

DELETE {
?s <http://purl.obolibrary.org/obo/IAO_0000004> ?o2 .
}
WHERE {
?s <http://purl.obolibrary.org/obo/IAO_0000004> ?o2 .
?s rdf:type <http://turbo.org/procStartTimeMeas> .
FILTER EXISTS {
?s <http://purl.obolibrary.org/obo/IAO_0000004> ?o1 .
?s rdf:type <http://turbo.org/procStartTimeMeas> .
FILTER (?o2 > ?o1)
}
}

我不确定我是否正确理解了这些谓词的含义。

我想 <http://purl.obolibrary.org/obo/IAO_0000004>:hasTimeStamp最初的例子。
在我的回答中,?s rdf:type <http://turbo.org/procStartTimeMeas>是唯一的选择标准。请添加其他条件。

关于sparql - 删除除最早事件时间之外的所有关于事件时间的三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44848832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com