Я новичок в DBpedia и SPARQL, я знаю те же основы, но я действительно запутался ... Я хотел бы получить количество всех ресурсов DBpedia (http://www.dbpedia.org/resource/xxxxxx), но я действительно не знаю, какой запрос SPARQL следует использовать.
Просто - не знаю, как запрашивать количество ресурсов.
Равно ли количество этих ресурсов количеству всех "субъектов" из этого запроса?
SELECT (count(distinct ?sub ) as ?amount) WHERE { ?sub ?predic ?obj . }
Спасибо за помощь.
Нет, ваш запрос возвращает именно то, что он делает: количество ресурсов RDF в позиции объекта тройки.
Спасибо, ребята, за быстрый ответ. Но я не уверен, что полностью понимаю. @AKSW - этот номер можно для чего-нибудь использовать? Как мне получить количество ресурсов?
Я только что сказал, что формально это возвращает только предметы. подумайте о ресурсах, которые не имеют исходящих троек, т.е. которые никогда не встречаются в позиции субъекта, а только в позиции объекта. SELECT (COUNT(DISTINCT ?x) AS ?cnt) WHERE { {?x ?p ?o} UNION {?s ?p ?x} }. Некоторые наборы данных также предоставляют статистику, но большинство - нет.
Думаю, я нашел решение. Пожалуйста, скажите мне, что я прав. SELECT (COUNT (DISTINCT? Resource) AS? Resources_amount) WHERE {? Resource rdf: type owl: Thing. } Я думаю, что каждая страница ресурса является подклассом owl: Thing, как показывает схема онтологии mappings.dbpedia.org/server/ontology/classes. Верно?
Это может работать для DBpedia, но не работает для наборов данных RDF в целом. Тем не менее, я не знаю, почему вы не можете взять опубликованную статистику со страницы DBpedia. Они уже предоставляют все эти цифры всякий раз, когда публикуют новый выпуск.
Да, но когда я хочу выполнить поиск в небольших dbpedia для некоторых стран, эта статистика мне не поможет.
HTH: https://dbpedia.org/sparql?qtxt=select+*+from+named+%3Chttp%3A%2F%2Fdbpedia.org%2Fvoid%2F%3E+{graph+%3Fg+{%3Fs+%3Fp+%3Fo}}+&format=text%2Fhtml
Также e. грамм. http://dbpedia.org/class/yago/WikicatAmbassadorsOfBangladeshToVenezuela не является owl:Thing. У него вообще нет rdf:type.





Я считаю, что это отвечает на исходный вопрос, получая количество всех сущностей с "/ resource /" в их URI (в настоящее время 5,489,631) -
SELECT ( COUNT ( DISTINCT ?s ) AS ?NumberOfResources )
WHERE
{
?s ?p ?o .
FILTER ( REGEX ( STR ( ?s ), "/resource/" ) )
}
Тем не менее, комментарии предполагают, что это не совсем то, чего желали. Переписывание вопроса, вероятно, поможет получить лучший ответ. Будьте осторожны, чтобы не стать жертвой проблема XY!
На самом деле, теоретически ваш запрос верен, но, как вы могли заметить, DBpedia очень огромна и запрашивает результаты с тайм-аутом. Если хотите, можете посмотреть статистику DBpedia с этой страницы (wiki.dbpedia.org/develop/datasets/dbpedia-version-2016-10).