Анализ n-троек данных Викиданных - PullRequest
1 голос
/ 08 мая 2020

Я впервые работаю с WikiData и RDF. Я загрузил набор данных WikiData 24 ГБ "правдивый" (доступен только в формате N-Triples .nt), но теперь мне трудно его понять.

Вот несколько строк из .nt файл, связанный с Jack Bauer , показывающий (субъект, предикат, объект) троек:

<http://www.wikidata.org/entity/Q24> <http://schema.org/description> "protagonista della serie televisiva americana ''24''"@it .

<http://www.wikidata.org/entity/Q24> <http://schema.org/name> "Jack Bauer"@en .

<http://www.wikidata.org/entity/Q24> <http://www.wikidata.org/prop/direct/P27> <http://www.wikidata.org/entity/Q30> .

<http://www.wikidata.org/entity/Q24> <http://www.wikidata.org/prop/direct/P451> <http://www.wikidata.org/entity/Q284262> .

Итак, мои вопросы:

  1. Все ли URI для троек разрешаются в Engli sh из этого одного гигантского файла, или мне нужно делать вызовы API? Например, я хочу разрешить эту тройку:
<http://www.wikidata.org/entity/Q24> <http://www.wikidata.org/prop/direct/P27> <http://www.wikidata.org/entity/Q30> .

в англоязычную sh удобочитаемую форму, например:

Jack Bauer, country of citizenship, United States of America

Содержит ли этот файл необходимую информацию для получения sh -читаемых на английском языке имен для Q24, P27 , и Q30? Или мне придется делать отдельные вызовы HTTP API для их решения?

Я также могу получить .json дамп этого файла . Правильно ли я понимаю, что .nt тройки - это просто обход в глубину JSON иерархии для сглаживания всех данных в тройки?

1 Ответ

1 голос
/ 11 мая 2020

Все ли URI для троек разрешаются в Engli sh из этого одного гигантского файла, или мне нужно выполнять вызовы API?

Преобразование троек в Engli sh потребуется другое представление троек, например http://wiki.bitplan.com/index.php/SiDIF. Большинство сериализаций RDF не очень хорошо читаются людьми. https://www.w3.org/TR/turtle/ - один из наиболее читаемых. https://gbv.github.io/aREF/aREF.html тоже хорошая идея. Общий набор инструментов для RDF не очень удобен для программистов. См. JSON -LD и Почему я ненавижу Semanti c Web

Возможно, вы захотите импортировать тройки в хранилище SPARQL, а затем использовать для этого интерфейс запросов. Это значительно упростит вашу жизнь. Это тот тип «API», о котором вы, возможно, думали.

См. http://wiki.bitplan.com/index.php/Get_your_own_copy_of_WikiData для описания процедуры. С 2020-05-11 я, например, импортирую в Apache Jena.

Интерфейс запроса https://query.wikidata.org/ может быть проще в использовании для простых запросов. Пожалуйста, найдите ниже запрос, который представляет троек, которые вы нашли.

# WikiData statements about Jack Bauer
SELECT ?pLabel ?oLabel 
WHERE 
{
  wd:Q24 ?p ?o.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

попробуйте!

Содержит ли этот файл необходимую информацию для получения английского языка sh -читаемые имена для Q24, P27 и Q30? Или мне придется делать отдельные вызовы HTTP API для их решения? Файл должен содержать информацию, поскольку «правдивость» означает, что у вас нет данных о происхождении, но есть все данные о фактах. Работа с WikiData может быть довольно громоздкой, см. http://wiki.bitplan.com/index.php/WikiData. Существуют библиотеки, которые помогут вам напрямую работать с WikiData через API языков программирования. Например, https://github.com/Wikidata/Wikidata-Toolkit для Java. См. https://www.wikidata.org/wiki/Wikidata: Tools / For_programmers для более полного списка.

Я также могу получить дамп этого файла. json. Правильно ли я понимаю, что тройки .nt - это просто обход в глубину иерархии JSON для сглаживания всех данных в тройки?

Содержимое троек должно быть таким же . Я не уверен, в каком порядке тройки в дампе json. Плохая новость заключается в том, что импортировать только часть дампа недостаточно, потому что вы потеряете информацию о ссылке.

...