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

标签 sparql rdf

我有几个这样的三元组

: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/

相关文章:

python - 在Sparql中查询字母mu

SPARQL 查询 : using VALUES inline data or UNION with bigdata store

editor - 是否有用于 Notation3 (n3) 文件的独立或离线查看器?

sql - 翻译 SPARQL-TO-SQL 查询

rdf - skos :ConceptScheme and skos:Collection? 有什么区别

java - Jena 结果采用 UTF-8 格式

sparql - 使用 sparql 生成带有子图的图

xml - 表达性地重新映射 rdf 数据

oop - SPARQL 主语及其所有父类(super class)的所有谓词-宾语对