Количество вхождений SPARQL - PullRequest
0 голосов
/ 28 апреля 2018

Привет! Я использую SPARQL для запроса LMDB (http://data.linkedmdb.org/snorql/) и пытаюсь также получить количество экземпляров, когда возвращаются некоторые результаты запроса. Я пытался добавить (COUNT(?something) AS ?somethingElse), а затем либо GROUP or ORDER BY к моим запросам, но затем переменная ?somethingElse заменяет все остальные результаты. Я думаю, что лучшим способом было бы использовать UNION и получать результаты в отдельной строке, которая не имеет ничего общего с другими, но по какой-то причине я не могу найти правильное решение.

Мой запрос:

PREFIX mov: <http://data.linkedmdb.org/resource/movie/> 
SELECT DISTINCT ?Names  WHERE 
{ ?link mov:actor_name 'guy boyd' . 
?movie mov:actor ?link; 
mov:actor ?Link_To_Actor_Page.  
?Link_To_Actor_Page mov:actor_name ?Names.  } 

Если вы выполните этот запрос, все будет хорошо, но если вы добавите (COUNT(?Names) AS ?total), то будет напечатано только ?total. Поэтому я думаю, что мои вопросы: как я могу распечатать столько переменных, сколько захочу, и получить COUNT(?something) в виде отдельного столбца. В основном без COUNT(?), заменяющего все остальные ?variable в запросе.

1 Ответ

0 голосов
/ 28 апреля 2018

Утро

Просто добавьте то, что вам нужно, к методу SELECT. Количество запрашиваемых элементов не ограничено.

Вот ваш пример исправлен:

PREFIX mov: <http://data.linkedmdb.org/resource/movie/> 

SELECT DISTINCT ?Names (COUNT(?Names) as ?total)
WHERE { 
    ?link mov:actor_name 'guy boyd' . 
    ?movie mov:actor ?link ; 
    mov:actor ?Link_To_Actor_Page .  
    ?Link_To_Actor_Page mov:actor_name ?Names .
} GROUP BY ?Names

Вот местоположение конечной точки SPARQL: http://www.linkedmdb.org/snorql/

Я надеюсь, что это поможет вам, а не просто даст вам ответ, не понимая его.

...