- PVSM.RU - https://www.pvsm.ru -
Одной из причин причина слабого использования Linked Data [1]-баз знаний в обычных, ненаучных приложениях является то, что мы не привыкли придумывать юзкейсы, видя перед собой только данные. Трудно спорить с тем, что сейчас в России производится крайне мало взаимосвязанных данных. Однако это не значит, что разработчик, создающий приложение для русскоязычной аудитории совсем уж отрезан от мира семантического веба: кое-что всё-таки у нас есть.
Основными источниками данных для нас являются международные базы знаний, включающие русскоязычный контент: DBpedia [2], Freebase [3] и Wikidata [4]. В первую очередь это справочные, лингвистические и энциклопедические данные. Каждый раз когда вам в голову приходит мысль распарсить кусочек википедии или викисловаря — ущипните себя как следует и вспомните о том, что всё, что хранится в категориях, инфобоксах [5] или таблицах, уже распарсено и доступно через API с помощью SPARQL или MQL-интерфейса.
Я попробую привести несколько примеров полезных энциклопедических данных, которые вы не найдете нигде, кроме Linked Data.
Эта статья — первая из цикла Базы знаний. Следите за обновлениями.
Если вас интересуют города и страны, то в Linked Data вы найдете не только информация об их местоположении (которую, если честно, лучше тащить из других источников), но также:
Обратите внимание, что когда мы здесь говорим, к примеру, о достопримечательностях, мы не имеем в виду жалкий список названий, упорядоченных по алфавиту. Все данные разбиты на категории, имеют привязку ко времени и месту, именам архитекторов, эпохам, художественным направлениям. Если вы наткнетесь на музей, вы сможете вытащить наиболее важные экспонаты, выставляемые в нем. Само собой, информация о людях-создателях этих экспонатов будет также доступна.
Как и везде в семантической паутине мы будем получать списки объектов, связанных с другими объектами и порой указывающими на альтернативные описания в других базах данных. Мне на ум сразу приходят туристические приложения: пользователю можно предоставить не просто возможность «посмотреть достопримечательности в районе Московского проспекта», но позволить ему отфильтровать только объекты, относящиеся к неоклассицизму первой четверти XX века. А если вы задействуете дерево категорий DBPedia, но можете предложить пользователю еще и связанные стили, например, ранний модерн.
Некоторые географические точки привязаны к событиям — про них тоже можно узнать довольно многое. Так например, довольно просто получить соотношение сил и количество убитых в Куликовской [6]или Бородинской [7]битвах. Разумеется, не забыты и персоналии, с которыми связаны события.
SELECT DISTINCT ?strength, ?result, ?longitute, ?latitude, ?commander WHERE { dbpedia:Battle_of_Kulikovo dbpprop:strength ?strength; dbpprop:result ?result; geo:long ?longitute; geo:lat ?latitude; dbpedia-owl:commander ?commander } LIMIT 1000
Такого рода даты часто нужны в аналитике. Например для того, чтобы подсчитывать, какой вуз выпускает больше всего олигархов/ученых/писателей, достойных упоминания в Википедии.
Насчет фильмов все выглядит более чем крепко: Freebase, Dbpedia и Linkedmdb располагают очень и очень неплохими массивами данных на тему кинематографии.
ileriseviye.wordpress.com/2012/07/11/is-semantic-web-and-linked-data-good-enough-sparql-dbpedia-vs-python-imdbpy/ [8]
Мы не только легко можем посмотреть, какой актер где снимался, в каком году вышел фильм и кто его выпустил, но еще и узнать, кто повлиял на актёра, когда он родился, что у него с семейным положением и занимается ли он чем-либо, кроме съемок.
Например, вот этот запрос к Dbpedia выведет всех актеров, которые снимались и в фильме The Shining, и в фильме Hoffa:
Самым замечательным источником данных в области музыки, пожалуй, является MusicBrainz [10]. Конечно же, он есть и в RDF, и конечно же, вы будете использовать традиционные API чтобы получить к ним доступ. Однако Freebase и Dbpedia могут пригодиться и тут — в последней есть, например, информация о гастролях музыкальных групп. Ну и даты рождения, влияние, стили и жанры — энциклопедические данные для музыки тоже присутствуют. Собственно в обучающих материалах Freebase используется как раз музыкальный пример: доставание данных о группе The Police:
{ "type" : "/music/album", "name" : "Synchronicity", "artist" : "The Police", "track" : [{ "name":null, "length":null }] }
Наверное, интересно было бы использовать это в связке с API Last.fm [11]
При описании персоналий в википедиях информационные боксы используются довольно интенсивно — это придаёт статье строгий вид. Поэтому если вы социальный активист и пишете сайт с информацией о политиках — вы найдете в Dbpedia, кто где учился, какие награды имеет и какие должности занимал. Приложения, связанные со спортом могут использовать данные о карьере спортсмена, его рост, вес и важные факты биографии.
Для нужд классификации и кластеризации, а также задач математической лингвистики часто нужны иерархии понятий. Например, что палец является разновидностью части тела. Semantic Web спешит на помощь и позволяет вам не парсить категории википедии, а доставать их готовыми из Dbpedia или www.mpi-inf.mpg.de/yago-naga/ [12] YAGO. Если же размер иерархии для вам менее важен, чем её качество, вы можете поглядеть на созданные вручную онтологии Dbpedia, Cyc, Umbel.
В конце 2012 года команда Dbpedia запустила проект Wiktionary — доступ к Викисловарю как к базе данных. Сейчас можно делать запросы к английскому, немецкому, французскому, русскому, греческому и вьетнамскому языкам. Давайте попробуем вытащить переводы для какого-нибудь хорошего русского слова [13] через SPARQL-точку Wiktionary [14]:
Среди Semantic Web энтузиастов немало лингвистов, а потому лингвистический мир имеет своё собственное облако взаимосвязанных данных.
Много полезной информации по Linked и не-Linked данным можно получить c порталов Open Knowledge Foundation [16] и нашего русского NLPub [17].
Для Freebase на главной странице есть визуализация того, какие категории содержат наибольшее количество объектов.
Для DBPedia простой способ понять, где скрываются качественные данные тоже есть. Надо обратиться к приложению Mappings.DBpedia и его статистической сводке [18].
Маппинги — это отличный инструмент, позволяющий пользователям DBpedia влиять на то, как работают парсеры. Я обязательно расскажу про них подробнеев последующих статьях, а пока ограничимся вот этой страницей:
В ячейках написаны названия википедических шаблонов. Более красные ячейки содержат данные, распарсенные полностью автоматически, более зеленые указывают на то, что парсинг производился с участием людей, а потому качество данных должно быть выше.
Ну а что тут сказать, поиск он и есть поиск. Мы используем движки Sig.ma [19], Sindice [20]и Swoogle [21]. Все они позволяют искать внутри одного датасета или же по всему множеству LInked Data.
В следующий раз я постараюсь описать то, как научиться строить SPARQL-запросы к базе знаний Dbpedia.
Автор: ganqqwerty
Источник [22]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/api/45827
Ссылки в тексте:
[1] Linked Data: https://en.wikipedia.org/wiki/Linked_data
[2] DBpedia: http://dbpedia.org
[3] Freebase: http://www.freebase.com/
[4] Wikidata: https://www.wikidata.org
[5] инфобоксах: http://en.wikipedia.org/wiki/Help:Infobox
[6] Куликовской : http://dbpedia.org/page/Battle_of_Kulikovo
[7] Бородинской : http://dbpedia.org/page/Battle_of_Borodino
[8] ileriseviye.wordpress.com/2012/07/11/is-semantic-web-and-linked-data-good-enough-sparql-dbpedia-vs-python-imdbpy/: http://ileriseviye.wordpress.com/2012/07/11/is-semantic-web-and-linked-data-good-enough-sparql-dbpedia-vs-python-imdbpy/
[9] Image: http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=%0D%0ASELECT+%3Fartist%0D%0AWHERE+%7B%0D%0A++%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FHoffa%3E+dbpedia-owl%3Astarring++%3Fartist+.%0D%0A++%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FThe_Shining_%28film%29%3E+dbpedia-owl%3Astarring++%3Fartist+.%0D%0A%7D%0D%0ALIMIT+10&format=text%2Fhtml&timeout=30000&debug=on
[10] MusicBrainz: http://musicbrainz.org/doc/Developer_Resources
[11] API Last.fm: http://habrahabr.ru/post/27755/
[12] www.mpi-inf.mpg.de/yago-naga/: http://www.mpi-inf.mpg.de/yago-naga/
[13] хорошего русского слова: http://wiktionary.dbpedia.org/page/%D1%81%D0%BE%D0%B1%D0%B0%D0%BA%D0%B0-Russian
[14] SPARQL-точку Wiktionary: http://wiktionary.dbpedia.org/sparql
[15] Image: http://wiktionary.dbpedia.org/sparql?default-graph-uri=&query=SELECT+%3Ftranslation%0D%0AFROM+%3Chttp%3A%2F%2Fwiktionary.dbpedia.org%3E%0D%0AWHERE+%7B%0D%0A++%3Fx+%3Chttp%3A%2F%2Fwiktionary.dbpedia.org%2Fterms%2FhasTranslation%3E+%3Chttp%3A%2F%2Fwiktionary.dbpedia.org%2Fresource%2F%D1%81%D0%BE%D0%B1%D0%B0%D0%BA%D0%B0-Russian%3E%3B%0D%0A+++++rdfs%3Alabel+%3Ftranslation.%0D%0A%7D%0D%0ALIMIT+1000&format=text%2Fhtml&timeout=0&debug=on
[16] Open Knowledge Foundation: http://linguistics.okfn.org/
[17] NLPub: http://nlpub.ru/
[18] статистической сводке: http://mappings.dbpedia.org/server/statistics/ru/
[19] Sig.ma: http://sig.ma
[20] Sindice : http://sindice.com/
[21] Swoogle: http://swoogle.umbc.edu/
[22] Источник: http://habrahabr.ru/post/195650/
Нажмите здесь для печати.