sparql select множественный счетчик возвращает разные результаты - PullRequest
0 голосов
/ 18 сентября 2018

Я выполняю следующие запросы в Protégé на тех же данных

SELECT (COUNT(?VM) AS ?count_VM) 
WHERE {
    ?VM a cocoon:VM .
}

Правильно дает мне 57

SELECT (COUNT(?storage) AS ?count_storage) WHERE { ?storage a cocoon:Storage . } Правильно дает мне 8

Но SELECT (COUNT(?VM) AS ?count_VM) (COUNT(?storage) AS ?count_storage) WHERE { ?VM a cocoon:VM . ?storage a cocoon:Storage . } дает мне

"456"^^<http://www.w3.org/2001/XMLSchema#integer>

для ?count_VM и ?count_storage

что не так?

1 Ответ

0 голосов
/ 18 сентября 2018

Лучший ответ AKSW :

select ?cls (count(?s) AS ?count)
{VALUES ?cls {cocoon:Storage cocoon:VM} ?s a ?cls}
group by ?cls

Старый ответ Станислав Кралин :

select * { 
    {
        select (count(?storage) AS ?count_storage)
        { ?storage a cocoon:Storage . }
    } 
    {
        select (count(?VM) AS ?count_VM) 
        { ?VM a cocoon:VM . } 
    } 
}
...