Эффективный метод для получения тройной статистики или подсчета в репозитории Apache Jena Fuseki

#sparql #jena #fuseki

#sparql #jena #fuseki

Вопрос:

У меня есть требование, при котором мне нужно подсчитать / оценить количество троек в репозитории. На данный момент я использую запрос SPARQL для подсчета количества троек в репозитории, но это замедляется по мере роста размера. Есть ли лучший способ получить ту же информацию без выполнения запроса? Мне было интересно, возможно ли получить оценку? Я думаю, что под капотом планировщика запросов может быть эта информация. Таким образом, одной из возможностей может быть написание функции расширения или пользовательского плагина для получения статистики из планировщика.

Буду очень признателен, если кто-нибудь сможет дать представление о быстродействующем способе получения количества / оценки троек в репозитории. Мне не нужна фильтрация. Все, что мне нужно, это общее количество троек. Даже оценка будет в порядке, если она не слишком далека от фактического количества троек.

Комментарии:

1. в зависимости от того, как часто меняется ваш набор данных, вы можете просто отслеживать его, добавляя / обновляя размер внутри самого графика с помощью простого RDF triple. Например, использование пустого словаря и добавление, например void:triples 100 , в график

2. «Есть ли лучший способ получить ту же информацию без выполнения запроса?» Fuseki использует тот же запрос в информации о наборе данных. Говорят, что «это может быть медленным и налагать значительную нагрузку на большие наборы данных» .

3. «Мне было интересно, возможно ли получить оценку» . Если ваши данные типизированы и сформированы, попробуйте что-то вроде этого: SELECT ?triples { { SELECT (COUNT(*) AS ?type1) { [] a org:Organization } } { SELECT (COUNT(*) AS ?type2) { [] a foaf:Person } } BIND (7*?type1 5*?type2 AS ?triples)} .