SPARQL屏蔽结果中的排序依据

问题描述 投票:0回答:1

我在Sparql中查询很长,我想按数字字段“情感”对结果进行排序如果我在SELECT和GROUPBY中包含该字段,则一切工作正常,否则会崩溃。但是我想呈现查询而不显示SQL查询中的“情感”字段。在SPARQL中可以吗?

查询是:

SELECT  ?Sentiment ?Restaurant ?Name ?Address ?Score ?City ?State (SAMPLE(?photo) as ?image) SAMPLE(?Text) as ?text) (SAMPLE(?Review) as ?review) (SAMPLE(?TStyle) as ?style) (SAMPLE(?TAmbiance) as   ?ambient) (SAMPLE(?TService) as ?service)
where { ?Restaurant :hasName ?Name;
                :Dish ?Dish;
                :Score ?Score;
                :hasAddress ?Address;
                :photo ?photo;
                :HasReview ?Review;
                :Parking ?Parking;
                :CreditCard ?CreditCard;
                :Delivery ?Delivery;
                :Kids ?Kids;
                   :hasTopic ?o;
                   :Sentiment ?Sentiment.
   ?Address :hasCity ?City;
            :hasState ?State;
            :Lat ?Lat;
            :Long ?Long.
   ?Review :Text ?Text.
   BIND (exists{?Restaurant :hasTopic :style} AS ?TStyle).              
   BIND (exists{?Restaurant :hasTopic :ambiance} AS ?TAmbiance).
   BIND (exists{?Restaurant :hasTopic :service} AS ?TService).

   FILTER(contains(str(?Text), "sushi"))
   } GROUP BY ?Restaurant ?Name ?Address ?Score ?City ?State ?Sentiment
   ORDER BY DESC((?Sentiment))

我如何构成查询并对结果进行排序,而不显示字段“情感”本身或总体上改善查询?

谢谢。

performance sparql rdf allegrograph knowledge-graph
1个回答
0
投票

虽然我不了解SPARQL的规格足以决定是否在错误解决方法之外是否有意义,但是您始终可以通过将查询包装为SPARQL 1.1子查询来“屏蔽”结果:

SELECT ?var1 ?var2 ... ?varn
{
 ...
}

“ masking”?var x变成

SELECT ?var1 ?var2 ... ?var(x-1) ?var(x+1) ... ?varn
{
 SELECT ?var1 ?var2 ... ... ?varn
 {
  ...
 }
}
© www.soinside.com 2019 - 2024. All rights reserved.