[英]Order by in SPARQL masking results
我在 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))
如何在不顯示字段“情緒”本身或總體上改進查詢的情況下形成查詢並對結果進行排序?
謝謝。
謝謝你的報告。 如果變量沒有被投影,這個 ORDER BY 問題可能會出錯,這是一個已知的 AllegroGraph 問題 (bug25806),將在即將發布的 7.0 版本中修復。
雖然我不太了解 SPARQL 的規范,無法確定這在錯誤解決方法之外是否有意義,但您始終可以通過將查詢包裝為 SPARQL 1.1 子查詢來“屏蔽”結果:
SELECT ?var1 ?var2 ... ?varn
{
...
}
“屏蔽” ?var x變成
SELECT ?var1 ?var2 ... ?var(x-1) ?var(x+1) ... ?varn
{
SELECT ?var1 ?var2 ... ... ?varn
{
...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.