Предположим, у меня есть диаграмма, содержащая учащихся трех разных классов.
Пример диаграммы:
<http://some/graph#John_Doe> rdf:type <http://some/graph/ontology#Student>
<http://some/graph#John_Doe> <http://some/graph#hasGrade> <http://some/graph#Grade_3>
<http://some/graph#Grade_3> rdf:type <http://some/graph/ontology#Grade>
Я хочу создать атрибут для каждого экземпляра класса Оценка называется gradeStrength для хранения количества учеников в этом классе.
В приведенном выше примере это будет выглядеть так:
<http://some/graph#Grade_3> <http://some/graph#gradeStrength> 1^^xsd:integer
В настоящее время я использую два отдельных запроса следующим образом:
- Запустите запрос SELECT + GROUP BY на графике, чтобы получить количество оценок за оценку
- Перебрать результат строк из 1. для создания строки троек
- Запустить запрос обновления INSERT DATA на графике
Как я могу добиться этого, используя один запрос SPARQL / Update с помощью INSERT и конструкции GROUP BY? Я попытался написать такой запрос, но он не работает в Blazegraph.