【问题标题】:Nested SPARQL Query嵌套 SPARQL 查询
【发布时间】:2020-04-13 12:58:02
【问题描述】:

我有以下结构一个对象,每个对象都有多个子对象作为父对象的更改日志,每个更改日志都有一个作者。

现在每个变更日志都有状态和时间戳我现在想编写一个 SPARQL 查询,我需要在其中获取以我为作者且特定状态为“待批准”的对象列表,它必须是最新的变更日志。

这个查询是我迄今为止尝试过的: 我尝试先获取更改日志,然后获取与其相关的对象,然后获取其中的所有其他更改日志,并按时间戳比较最新的更改日志,如果更大,则对其进行过滤。

select ?Object WHERE{  ?author myPrefix:userId "myuserid".             
      ?changelog myPrefix:hasApprover ?author .
      ?changelog myPrefix:timestamp ?dv
      FILTER( ?dv >= ?latestdate )
       {
            SELECT (max(?dv1) AS ?latestdate) WHERE { 
               ?Object myPrefix:hasChangeLog ?changelog .
               ?Object  myPrefix:hasChangeLog ?changelog1 .
               ?changelog1 myPrefix:timestamp ?dv1 .                    
            }

        }
       ?changelog myPrefix:status "To be approved" .
       ?Object  myPrefix:hasChangeLog ?changelog .}

我在这里做错的是它将它与所有对象更改日志进行比较,而不是对象比较我怎样才能做到这一点?

【问题讨论】:

  • 您应该显示示例 RDF 数据以及您迄今为止尝试过的数据。
  • 您好,我在这里上传了查询,不确定是否可以发布数据,因为它是机密的,但如果需要可以准备一些
  • 好的,不确定我是否理解正确,但您不应该只获取每个对象的最新更改日志吗?将内部查询更改为SELECT ?Object (max(?dv1) AS ?latestdate) WHERE { ?Object myPrefix:hasChangeLog ?changelog . ?Object myPrefix:hasChangeLog ?changelog1 . ?changelog1 myPrefix:timestamp ?dv1 . } group by ?Object
  • 哎呀!!!这就是我所缺少的谢谢 :)
  • 只是另一个问题,我这样做的方式是正确的还是有更好的方法来编写相同的查询?

标签: sparql rdf jena ontology


【解决方案1】:

根据 UninformedUser 的建议:

select ?Object WHERE{  ?author myPrefix:userId "myuserid".             
  ?changelog myPrefix:hasApprover ?author .
  ?changelog myPrefix:timestamp ?dv
  FILTER( ?dv >= ?latestdate )
   {
        SELECT (max(?dv1) AS ?latestdate) WHERE { 
           ?Object  myPrefix:hasChangeLog ?changelog1 .
           ?changelog1 myPrefix:timestamp ?dv1 .                    
        }group by ?Object

    }
   ?changelog myPrefix:status "To be approved" .
   ?Object  myPrefix:hasChangeLog ?changelog .}

【讨论】:

    猜你喜欢
    • 2016-09-21
    • 1970-01-01
    • 2015-05-09
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    相关资源
    最近更新 更多