У меня есть длинный запрос в 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))
Как я мог сформировать запрос и упорядочить результаты, не показывая само поле «настроение» или улучшить запрос в целом?
Спасибо.
?Sentiment
из частиSELECT
? - person UninformedUser   schedule 19.12.2019ORDER BY DESC((?Sentiment))
, поэтому я бы попытался изменить это наORDER BY DESC(?Sentiment)
(и удалить?Sentiment
изSELECT
). - person TallTed   schedule 19.12.2019SELECT
...SAMPLE(?Text) as ?text)
должно быть(SAMPLE(?Text) as ?text)
. Кроме того, вы сказали, что перед добавлением?text
все работало нормально, но затем вы сказали, что проблема возникла при добавленииGROUP BY
(т.е. не при добавлении?text
) - поэтому, возможно, вам следует показать работающий запрос и измененный запрос, который не работает. , чтобы мы могли видеть, какие изменения вы вносите. - person TallTed   schedule 20.12.2019