Школа открытых данных 12. 11. 2013 Лекция №6 - shikardos.ru o_O
Главная
Поиск по ключевым словам:
страница 1страница 2
Похожие работы
Название работы Кол-во страниц Размер
Использование спутниковых данных (включая гиперспектральные) 1 42.31kb.
Результаты посещения открытых уроков и мероприятий орксэ преподавателями-тренерами. 1 171.25kb.
Анализ статистических данных о состоянии преступности среди несовершеннолетних... 1 158.76kb.
Постановление «12» август 2013 й. №1168 «12» августа 2013 г 1 114.47kb.
Образовательная программа «Каракулинская специальная (коррекционная) 13 4674.14kb.
База данных по выпускникам Казахского юридического колледжа 2013... 1 29.02kb.
Банк данных Поликлиническая терапия 266590 616. 1/. 4 К592 Козловский... 1 210.46kb.
Лекция 3 42 физический взгляд на мир 42 Лекция 1 6 1771.77kb.
Постановление №307 от 03. 10. 2013 года с. Большая Черниговка «Об... 1 100.58kb.
Банк данных педагогов мбоу оош №33 2012-2013 учебный год 1 62.46kb.
Анализ статистических данных о состоянии преступности, связанной... 1 119.32kb.
Компания «Централ Партнершип» иParamount Pictures представляют 1 186.07kb.
- 4 1234.94kb.
Школа открытых данных 12. 11. 2013 Лекция №6 - страница №1/2

Школа открытых данных_12.11.2013_Лекция №6

00:00:02


Turtle – просто запись в виде троек объектов. Для людей это выглядит вот так, в принципе, даже читабельно. Субъект, предикат, объект, разделенные пробелами. Для машин у нас есть сериализация в RDF, сериализация RDF в XML, есть j-sonio. В XML.. ой.. так.. тут у меня что-то видимо.. Поверьте мне на слово, XML вам не хочется смотреть, все-таки он для машин, Jason ну выглядит, собственно, как обычно выглядит Jason, много фигурных скобочек. Значит, дальше идет уровень, после представления данных, уровень уже представления знаний и представления уже некоторой информации, на которую мы опираемся в нашем представлении данных. В эту онтологию.
00:01:08

Для того, чтобы реализовывать онтологию в семантик вебе, мы используем 2 стандарта: RDFS и OWL. RDFS – RDF Scheme, OWL – Onthology Web Language. Значит, совсем в них углубляться не стоит, потому что применяются они в достаточно узком диапазоне приложений. Значит, служат для представления вот этих вот словарей, синонимов, глоссариев, онтологий и прочих, можете их встретить в разной литературе под разными именами – tbox, если вы относитесь к дескрипционной логике. (вопрос из зала, неразборчиво) – Я подойду к этому, да.


00:01:55

Собственно, нужны они для следующего: для того, чтобы обеспечивать background knowledge некоторые априорные знания о предметной области. Во-первых, это нужно для того, чтобы стандартизировать нашу терминологию, мы всегда будем называть дату рождения, например, всегда мы будем называть вот именно этим URI. И вот библиотека этих URI и называется онтологией. Первое назначение – это стандартизация терминологии. У нас тут пример: связь национальность будем всегда называть термином dbpedia.org/property//nationality.


00:02:39

Если у меня есть файл, в котором ровно вот этот один термин употребляется, я могу сказать, что у меня такая маленькая онтология, состоящая из одного элемента. Вторая вещь, для чего она нужна, для чего онтологии нужны, это для автоматического обогащения данных. Мир устроен так, что, если мы знаем некоторую, некоторое свойство объекта, мы часто можем вывести автоматически его другие свойства. И вот тут пример ,что если какой-то URI вдруг заимел связь “национальность», то наверное этот URI относится к людям.. потому что к другим объектам понятие «национальность» неприменимо.


00:03:25

И онтология как раз определяет эти правила вывода. Сейчас попробую это продемонстрировать. Значит, на примере нашей национальности – в онтологии мы определяем, что свойство «национальность» действует из множества персон в множество ну наверное стран, собственно, у нас есть наши данные о том, что Леонардо да Винчи национальность- Италия. Отсюда мы можем что вывести? Первое. Что Леонардо да Винчи – это персона, человек, а Италия- это страна. Что еще отсюда интересного можно вывести?


00:04:07

Мы можем сказать, что страна- это некоторый такой класс, он является разновидностью другого класса- «населенный пункт». Населенное место. Это мы определяем как отношение субклассов в нашей онтологии. Тогда получается, задав нашу онтологию и задав всего один кусочек данных, мы получаем, что Италия –это еще и населенная местность. Так… В итоге наш граф будет выглядеть вот так. То есть, мы начали с одной тройки, а закончили вот четырьмя, да?


00:04:51

Продолжаем. Дальше. У нас есть эти данные, мы их можем как-то обогащать, и прочее, но испольование данных – это запросы. И за запросы отвечает стандарт Sparql. Мы посвятим целый мастер-класс именно Спарклу. Расшифровывается он как-то совершенно плохо, и рекурсивно. Он определяет и протокол, и язык запросов. Кому видно? Никому не видно? Я могу писать вот здесь, в принципе, потому что тут не так много разных примеров. Значит, как выглялят спаркл-запросы. Мы очень много с ними будем сталкиваться, собственно, работают они вот следующим образом.


00:05:54

Мы добавляем переменную вместо URI в кусочек запроса, и таким образом запрашиваем все, что удовлетворяет вот этой переменной. Значит, вот здесь A, RDF –type dbpedia company. Передо мной мой граф, моя база данных на RDF. Большой граф. Если я задаю этот запрос, это значит, что мне нужно всех, кто связан связью RDF-type с URI dbpedia owl company, мне нужно их вывести. То есть вместо вот этого плейсхолдера A у меня подставится вот этот товарищ, вот этот товарищ, этот и этот. Теперь. Что прекрасно в спаркле- мы можем задавать гораздо более сложные запросы.


00:06:46

Например, если я хочу узнать – скажи мне какой-то объект, покажи мне объекты, которые связаны связью, например, национальность с Италией, это первое условие. Я могу добавлять сюда еще много условий. Например, я могу сказать, что этот же объект, он должен быть связан, скажем, birth place, местом рождения, с Россией. Таким образом, я задал вопрос «выдай мне те объекты, которые удовлетворяют вот этим условиям». Объекты «национальность- Италия», объекты, рожденные в России. Можно добавить, что тип должен быть «человек». Можно не добавлять, потому что, скорее всего, если у нас база данных хороша, она вряд ли туда добавила стулья или другие объекты.


00:08:06

(вопрос) Вы сохраняете синтаксис запросов?

- До определенной степени. Сейчас попробую сохранить.. ну вот так вот сохраняю. Наверное. Да. Такой запрос- существуют базы данных, в которых этот запрос будет синтаксически корректным. Конкретный синтаксис мы очень подробно обсудим.

(вопрос) Чем, например, вот эта база, видимо, RDF называется, чем они лучше баз Ql, SQL каких-нибудь? Что-то такое, которые организуются самостоятельно (нрзб)?

-Нет. PL/SQL это язык..

-Ну да, язык работы с базой. Я создаю свою базу, пишу запросы на этом языке, звездочка, скобочка..

-Сейчас скажу. Разница в первую очередь в том, как они позиционируются. Сейчас есть.. Ну хорошо. Разниц довольно много. То есть, во-первых, Sparql используется для того, чтобы публиковать данные, предоставлять к ним доступ. Фактически это универсальный API.
00:09:24

Когда мы говорим про semantic web, это фактически много-много баз данных, у которых у всех один API. SQL API лично я еще не видел. Может, они существуют, но он просто не приспособлен для этого.


00:09:40

Вторая вещь – это то, на какой парадигме основана база, SQL-базы основаны на реляционной парадигме, это основано на графах. Другой вопрос, чем он отличается от no-sql баз данных. Скорее всего, RDF-базы, они являются частным случаем no-sql баз. Ну то есть действительно – не sql же. Но они появились просто раньше, чем понятие no-sql.


00:10:09

Идем дальше.. вот наши базы. Вот эту картинку точно показывали, это обязательная к показу картинка того, как растет количество связанных между собой баз, из года в год их становится больше и больше, а тут вдруг, значит, перестали обновлять это облако, и за этот год у нас нет картинки. Наверное, еще больше стало. Откуда берутся эти данные? Кто их публикует? И вот тут у нас есть связь с нашими открытыми государственными данными.


00:10:51

Во-первых, есть данные, которые создают научные группы, например генетики, специалисты по нейронауке, и прочие, они очень много данных публикуют, потому что у них довольно много данных образуется. Во-вторых, их публикуют коммерческие фирмы, с разными целями. Например, BBC их публикует, просто чтобы доставлять свои сервисы во всех возможных проявлениях. То есть, вот ВВС, у них есть миссия, по которой все, что новое появляется, они у себя внедряют, все возможные способы дать пользователю контент, они тоже внедряют.


00:11:37

В-третьих, они генерируются из существующих не-RDF баз, тут очень много разных инструментов есть, которые мы не будем трогать. И государство их публикует. Да, почему-то я этого не указал, но государство сейчас публикует RDF с бешеными темпами, в первую очередь потому, что создатели World Wide Web, Тим Бернерс Ли, очень сильно старается продвинуть вперед практику публикации данных в едином формате, то есть вот все, что мне нужно, чтобы.. В идеале, все, что мне нужно, чтобы работать с открытыми государственными данными – это знание RDF и Sparql.


00:12:23

И, в случае Британии, например, это уже так. Все, что они публикуют, они публикуют в RDF. В случае с Америкой – они к этому тоже стремятся, сейчас уже создана некоторая шкала, по которой оценивается крутизна некоей нашей базы опубликованной, начиная с первого уровня, когда данные просто где-то есть в Интернете, опубликованы под открытой лицензией, и кончая последним уровнем, когда они в RDF, когда они подвязаны к этим онтологиям, они уже могут быть обработаны машинами, по ним можно делать логические выводы.


00:13:04

Мы будем заниматься вот этим процессом, называется Link Data Consumption, использование LinkData в приложениях. Для чего могут пригодиться связанные, вот эти linked, данные, разным группам населения. Во-первых, на основе них можно строить приложения для конечного пользователя, а для этого в этом облаке есть довольно много данных по музыке, по музыкальным группам, альбомам и прочему. Дальше то же самое с фильмами, довольно много интересного в секторе гос.данных, не в России, но в России тоже обещают. И довольно много энциклопедических данных. Энциклопедические данные мы вот будем сегодня разбирать, и я думаю, что, допустим, в туристических приложениях такие данные всегда востребованы.


00:14:06

Если у нас есть туристическое приложение, и в нем есть объект «Бородинская битва», нам наверное интересно автоматически забирать из Википедии данные о том, какое было соотношение сторон в этой битве. И прочие такие кейсы. Значит, во-вторых, помимо того, что можно строить прямо на основе этих данных, приложения, можно строить приложения, которые будут использованы в свою очередь где-то еще. В первую очередь это лингвисты, и здесь у нас есть довольно много интересных таксономий, которые лингвистами могут использоваться, то есть вот иерархии вида, не знаю.. собака – это разновидность животного. Вот когда у нас есть такая таксономия, в которой стул - это разновидность мебели, собака- это разновидность животного, мы можем такие вещи скармливать алгоритмам матлингвистики и улучшать, допустим, наши классификаторы.


00:15:13

Другая вещь – это рекомендационные системы. И сейчас есть несколько публикаций о том, как рекомендационные системы , а это очень жирный кусок бизнеса, который сейчас происходит в WWW, рекомендационные системы. Их можно усиливать с помощью вот этих знаний, которые мы получаем с помощью тех же таксономий или из связей между объектами. Их можно анализировать, в первую очередь госданные. Например, если вас интересуют европейские гос.данные, то там есть Евростат, который сейчас в RDF. И они могут быть частью логики системы. Вот например в области медицины очень много данных внедряется. Очень много технологий Semantic web внедряется, и они там действительно прописывают очень жесткие правила о том, что, например, мой палец является частью руки, и если я повредил палец, то это значит, что у меня повреждение руки, и значит такой-то вид страховки должен быть ко мне применим.


00:16:21

Это простой пример. Понятно, что для медицинских приложений это может быть связано со сложнейшими системами внутри, и они применяют это из года в год, и там действительно очень много людей из semantic web сообщества тоже находятся. Собственно, перед тем, как мы перейдем к одной конкретной базе знаний, как вообще искать данные в принципе в semantic web'е. для этого у нас очень много есть средств. Во-первых, мы можем смотреть каталоги, то есть, есть централизованные каталоги для semantic web данных, это в первую очередь ckan, это также поисковики по базам данных, по базам семантик веба, значит, конечно, надо общаться, и интересно, что по отношению к другим научным сообществам Семантик Веб сообщество как-то очень плотно друг за друга держится и общается не только на тематических конференциях, но и довольно много и в open source-формате, то есть в формате обсуждения продуктов с открытым кодом, и довольно много (нрзб) листов у них есть.


00:17:41

И есть некоторые техники, которые могут вам помочь, увидя новую базу данных на RDF, быстро понять, что в ней есть. Собственно, есть какая-то вот такая техника пробных Sparql-запросов, не уверен, что кто-то ее где-то публикуют, что кто-то ее описал, но все ею точно пользуются. Во-вторых, есть визуализации, в-третьих, есть метаданные, или какие-то описания статистики, чего есть (нрзб). И, наконец, по нему иногда можно просто погулять по ссылкам так, как мы гуляем по www. Вот пример визуализации freebase.com, это гугловская база знаний, то есть недавно ставшая гугловской и поддерживающая google knowledge graf, вот скоро опубликую, наверное, про нее статью, как раз про то, как с ней работать.


00:18:43

Мы с ней сегодня не будем работать, мы будем работать с дибипедией. А дибипедия- это распарсенная википедия, так выглядит ее визуализация, какие данные там представлены лучше, какие хуже. Пробные спаркл-запросы. Вот мы разобрали, как вообще выглядят спаркл-запросы, так.. а мне бы еще какую-ниб тряпочку к этому карандашу.. (пауза)


00:19:26

Мы потихонечку сползаем в наш мастер-класс. Если все, что начинается с вопросительного знака, это некоторые переменные и что-то нам неизвестное. А у нас были запросы вида, там, переменная, национальность, Италия. Ну вот этот запрос запрашивает всех, кто имеет национальность «италия». Что запрашивает вот такой вопрос – где у нас не одна переменная, а прямо три. Кто может догадаться?

- Связи..

-Связи..?

-Субъект-предикат-объект?

-Да. Собственно, смотрите, это три переменных. Покажи мне что-то, что связано как-то с чем-то. Я не знаю ни первого, ни второго, ни третьего. Это фактически мне запрос «выдай мне все содержимое своей базы данных». Такой универсальный запрос. Если мы уберем отсюда вот «с, п, и Италия». Что это будет? Покажи мне что-то, что связано хоть каким-то предикатом, какой-нибудь связью с Италией.


00:20:39

Ну, так вот устроен язык. Это вот первый пробный запрос, вы заходите в незнакомую вам базу данных, будем считать, что незнакомая нам база данных вот здесь. Dbpedia.org/sparql, кстати, вот загрузите у себя это в ноутбучках, делитесь друг с другом, садитесь рядом. Попробуйте выполнить этот запрос на dbpedia.org//sparql. Я это попробую сделать с вами. Уменьшить-увеличить? Увеличить. Ага. Вот наш первый спаркл-запрос.


00:21:49

Там было слово Distinct. И там была не звездочка, там был предикат. Собственно, вот теперь что означает вот этот запрос? Выбери мне объекты, которые связаны какие-нибудь с как-нибудь с кем-нибудь, и выдай мне только предикат. То есть только связи. А Distinct означает «не повторяйся». Следственно, это запрос на все связи. Если у нас есть, там, 100 млрд объектов, 100 млрд троек, но всего 5 типов связей, то этот запрос вернет всего 5 связей. В то время как вот такой запрос – с-п-о- вернет нам всю базу данных. В то время как такой запрос аналогичен вот такому запросу- звездочка. Звездочка эта означает «выдай мне все значения переменных, которые я там употребил в своем запросе».

(вопрос) что-то бывает еше, кроме субъекта-предиката-объекта?
00:22:57

-Нет, потому что вообще ничего не бывает больше в мире. В смысле, внутри спаркл-запросов бывает еще много разных вещей, фильтров и прочих вещей.. но внутри спаркл- запроса у нас обычные rdf-тройки. Субъект-предикат-объект. Итак.


00:23:21

Вот другой пробный спаркл-запрос, ну мы его не будем сильно разбирать, он чуть посложнее. Это все то же самое внутри самого главного блока у нас вот эта универсальная, универсальный фильтр, который, в общем, ничего не фильтрует. Вокруг его мы хотим посчитать, сколько объектов связаны тем или иным свойством. Соответственно, вот count-p-s. У кого получилось сделать первый запрос? Аха, у кого-то получилось. Хорошо. Выдает примерно такое, сейчас…


00:24:35

Аха.. как-то меня не приняли за своего в местном интернете..

(вопрос) А в запросе принципиально заглавные иметь?

-Нет. Так же, как в sql, он регистронезависимый. Значит, в конце каждого нашего условия мы ставим точку. Если у вас больше, чем одно условие, вы хотите добавить еще-еще-еще, просто разделяете их точкой. А я готов, наверное, сделать перерыв, потому что мы потихонечку перешли к мастер-классу. Давайте его сделаем.

(вопрос) Чтобы запустить, просто Enter?

-Там есть кнопочка run Query. Сколько у нас перерыв? 15 минут? Давайте 15 минут.


00:25:42

(вопрос) Что за база ,что она хранит, вот dbpedia?

-Сейчас я про это буду рассказывать.

(помогает кому-то разобраться с запросом)


00:26:37

(вопрос) такой вопрос, просто наверное не всем это интересно. Вот про избыточность связей. Ну то есть например мы можем залинковать все вообще до ужаса залинковать. Ну к примеру- у меня гугл гласс, ну предположим. Какое-то приложение для гугл-гласс. Я там спрашиваю – где находится такой-то кинотеатр? При этом у нас все настолько у этой базы, к которой он обращается, залинковано, что он мне вплоть до марки кирпича этого кинотеатра.. а мне это как бы не надо.. (нрзб).

-Это зависит от того, как мы линкуем. То есть вот как база устроена, так от этого и будет зависеть .удобно с ней работать или нет. Хорошо устроенная база, она содержит, допустим, не знаю, вот про один этот кинотеатр, в ней миллион фактов. Но при этом всего один факт в ней называется «кинотеатр», geographyсal coordinates. Я просто беру эти географикал координейтс и получаю их.
00:27:41

- Получается, зависит от точности запросов.

-Да-да-да. То есть, мы должны задавать очень точные запросы. Здесь не полнотекстовый поиск. Здесь вполне конкретный такой же, как в базах данных.

-Просто получается ситуация, когда мы все залинковали, но при этом задаем какие-то общие вопросы, и он нам выдает избыточные ответы.

- Секундочку..
00:28:19

Вот эти техники, это просто я показываю для того ,чтобы.. вот наткнулся на какую-то базу и решил посмотреть, что в ней.

- Нет, я в принципе такой вопрос.. я читал, конечно, мало читал. Просто например. Мы знаем, что правильный запрос будет – где географически находится кинотеатр. Тогда он нам четко выдаст адрес, да? А если мы, предположим, не знаем, а эта база супернаикрутейшая, и мы спрашиваем, где кинотеатр, и он нам вываливает «этот кинотеатр там-то, его история такая-то, кирпич такой-то, все такое-то..»

-Нет. Сейчас скажу. Как может выглядеть эта крутейшая база. Сейчас. Не, ну все равно.. вот сейчас покажу. Как база может быть чуть более как бы интеллектуальная.. это во-первых если мы подшили ее к правильной онтологии, и вот все ее используют, да?..


00:29:20

Например, у нас есть онтология «Фоф», в которой определяются связи между персонами. И вот если я говорю «дай мне фоф депикшн», то мне все равно, в общем, к какому дата-сету я обращаюсь, он все равно выдаст мне картинку человека. И в хорошей базе вот эти классы и предикаты, они используются как раз из этих онтологий. Соответственно, когда вы зададите свой вопрос, где мой кинотеатр, вы скорее всего спросите у него, там вот, «? a», вот есть онтология geo. Geo lat. И вот внутри этой базы может быть какой-то другой термин для широты, но, благодаря тому, что они используют онтологию гео, они сказали, что мой термин- это то же самое, что geo lat.


00:30:15

-получается, при запросе нужно ссылаться на ту онтологию..

-Верно, правильно. Да. Префиксы.

(нрзб).


Owl – это одна из онтологий.

- Грубо говоря, найди нам все субъекты по типологии вот этой онтологии, которой принадлежат параметры «гласс».

-Верно. Главное, осталось расшифровать букву «А». ну, собственно, про что вопрос.

-«Вопрос, А» мы пишем. Это – «вопрос, с», «вопрос, п»…

-это просто название переменной. Просто переменная. Я могу написать, не знаю, «вопрос Х».

-И что она будет значить?

- Ничего не будет значить.
00:31:31

Название переменной. Вот также, как.. если я скажу, что переменная.. вот я на С++ пишу, например, да, пишу «один =1». Мне никто не мешает переменной «один» присвоить значение 2. также и есть.

- Вы говорили, что ничего, кроме с, п, и о не бывает. Так вот это все-таки переменная, или что-то более…

-О, я плохо понял ваш вопрос, да. Конечно, мы можем задавать здесь произвольные названия переменной. Я имел в виду, что не бывает ничего, кроме троек. У нас всегда должно быть три объекта. Субъект, предикат, объект.

-Как мы понимаем, что здесь с, что здесь п, что здесь о?

-Что на первом месте, то и субъект.

- А, да? То есть на 2 месте всегда будет предикат..

-Предикат, да.


00:32:23

Плюс есть всякие сокращения. То есть, там вот точка с запятой вместо точки в конце, запятая и прочие там. Буква «а», кстати, тоже.

- Можно посмотреть список баз ,и что они в себя включают?

-Ну.. в общем, нет такого.

-то есть, мне захотелось получить информацию о преступности в Москве.

-Все плохо. В общем, все плохо. Насчет того, чтобы разобраться в куче баз, сейчас пытаются применять вот собственно подход веба, ну то есть какой у нас. Представьте себе, что вы на заре веба спрашиваете: «А вот мне хочется найти сайт, который про преступность». Вам, наверное, ответят, что «нуу… у нас тут есть.. альтависта, зайдите в альтависту, напишите «преступность», поварьируйте немножко, и может оно вам найдется». Сейчас тут такая же ситуация.


00:33:41

Фактически вот таких аггрегаторов, каких-то порталов, их не так уж много, которые действительно бы показывали, что .. Вот это облачко, которое росло у нас, это вот пример такой визуализации, я там могу подогадываться, какие данные у нас там есть.

- А как их связывать технически? У них должен быть общий идентификатор. Но если есть две базы, у них нет никакого общего идентификатора на данный момент, это были разрозненные базы. Как их связывать?
00:34:12

- У нас есть онтологии, которые определяют вещи типа «одно и то же». Вот есть такое отношение, называется «same as». И вот у меня есть база, допустим, моя, и у меня там есть URL, допустим, какой-нибудь НИИ картографии выпустило RDF-данные, и у него там есть такое свойство- широта. Никаких проблем. Мы просто создаем маленькую онтологию, в которой говорим: широта owl same as и берем какую-нибудь известную крутую онтологию geo lat. Все. После этого я могу запустить программку, называется (нрзб), которая найдет мне все щироты, скажет – ага, широта связана с этим объектом и с этим, и сгенерирует нам тройки с гео лат.

-То есть, получается онтология на онтологии.
00:35:29

-Да, то есть.. вообще где начинается онтология и кончаются собственно просто данные, там очень размытая граница.

- я имею в виду на этом примере, когда мы соединяем две онтологии..

-Да, (нрзб) третья онтология фактически.

-Словарь синонимов.

-Да-да. Вот кстати вот same as это очень крутая вещь.

-А это все в графовых базах?

-Да, это все в графовых базах.

-То есть, если графовых нет..

-Ааа!! Владелец ноутбука, подойдите пожалуйста ко мне! Мы сюда презентацию еще должны. Она тут есть, она нужна.


00:36:19

Все, я буду ее.. а, даже полноэкранная.. шикарно. Черный экран, я просто.. сейчас…

- такой вопрос. Вы сейчас сказали «географические координаты»- это как их искать, как выдавать, или какая-то база есть? Вопрос в следующем. У меня есть маленькая прикладная задача. Есть субъект федерации, есть административное деление.. В рамках административного деления мне нужно задать..

-Ой, я недавно задавал этот вопрос гислабовцам, они мне прямо ответили, сказали где искать, никак не связано с семантик вебом. Есть какой-то API, который выдает нам вот эти воронежские области и всю эту остальную вещь. Это вам нужно?

-Я тоже к ним ходила. Но мы друг с другом не договорились.

-Не, я просто в форуме спросил..

-У них она есть?

-Да, на гислабе.

-У меня маленький прикладной вопрос.

-Да, у меня тоже такое было. То есть нужно было.. Ну я тогда скину вам ссылочку.

-Спасибо!
00:37:45

-Можно вопрос? Есть наборы данных, которые публикуют госорганы. Они лежат у них в своих базах. Чтобы вот это вот, нам по сути надо выгрузить этот набор в граф-базу и его по сути парсить, да?

-Да. Или заставить их выгружать в графовые базы. Чем занимается Иван на уровне Москвы и, по-моему, федеральном, но я не уверен.

-т о есть, он выгружает..

-Нет, он не выгружает и загружает. Он навязывает им эти стандарты.

- А, то есть, они сами у себя графовую базу..

-Верно. Да. Или в них экспортируют..

- Портал открытых данных Москвы..

-Сейчас у нас есть вообще один прецедент того, что какие-то государственные органы это (нрзб), это РИА «Новости» сейчас опубликовали в виде RDF. Но это вопрос того, что у нас написано в бумажке с тем, как публиковать данные.. если в ней написан…
ШОД-131113-2
00:00:02

- Которые вроде бы на этом деньги зарабатывают. Кажется, в нашей фирме тоже какое-то подразделение работает над тем, чтобы…

(вопрос) А вручную это насколько сложно?

- Тоже можно. Тот же RDB2RDF, например.

-(в) А это бесплатный инструмент?

- Да. Да, насколько я помню, он открытый.

- (в) А если его, допустим, рекомендовать его госорганам. Насколько это трудоемко? Ведь они еще не начали это делать.. (нрзб)
00:00:43

-Ну, собственно, все что им нужно – это нанять человека, который это умеет.

(в) Который развернет базу? Есть ли просто специфика при публикации данных в этой базе или нет? Допустим, базу сделали, ckan туда привязали, можно?

- Да, можно. Самое главное, это просто хотя бы где-нибудь у себя опубликовать. Хоть как-то. Можно даже это не в виде базы делать. Можно это делать, я не знаю, отдельно в виде RDF-файлов. Тоже достаточно хорошо, потому что всегда найдется человек, который будет это у себя агрегировать, в нашем случае это Иван (нрзб). Он у себя агрегирует много разных таких данных, далеко не RDf-овских..

-(в) А вообще есть ли смысл делать RDF-базу, если, допустим, непонятно, востребована она или не востребована.

- Это фактически… ну.. сейчас вот точно скажу, что конвертация данных из какого-то одного формата в другой, более клевый формат, например, RDF – это не первостепенная задача. Первостепенная задача- это качество данных.


00:02:19

Первостепенная задача – это качество данных. Вот недавно Иван опубликовал прекрасную вещь, как товарищи опубликовали XML-данные, настоящие XML, классный, вглядываешься в этот XML и смотришь, что это оказывается .doc-файл. Структура в док-файле. Ну то есть вот форматы – это не так важно. Важно, чтобы эти данные были типизированы, чтобы не были грязными. То есть..

(в) Чтобы их можно было использовать.

-Да, тут надо прагматически к этому подходить. Можно просто идти по этой схеме со звездочками. Одна звездочка- это значит ты опубликовал и ты написал там «сс»- creative commons. Две зведочки – это ты опубликовал, написал «сс» и представил это в виде какой-нибудь таблички. Csv, excel или еще что-нибудь.


00:03:19

Три звездочки – это ты переконвертировал в RDF, 4 звездочки – это ты добавил онтологии, что-то такое. И вот британцы, они так и шли. К одной звездочки к 4.

-(в) У них 4 нет, у них 3 и 5 сразу.

(пауза, готовится к рассказу, смотрит в ноут)


00:04:46

- (в) С переменными у меня такой вопрос. Я пишу – в предыдущем самом простом примере, можно? Я пишу select distinct ?a, причем под “а» я хочу понимать, например, объект. Дальше меня subject не интересует, меня интересует только предикат и объект. То есть я сабжект опускаю, пишу, получается, «?p ?a.» Как он поймет, что под «а» я понимаю объект, а не…

-Вот сейчас. Я думаю, что у многих вопрос вот с этими субъектами-предикатами-объектами и что мы пишем после вопросительного знака. Давайте мы сделаем проще. Мы скажем, что вот это – штучка 1, Item 1, я запрашиваю именно его – item 1. Я могу переименовать абсолютно все. Абсолютно все равно, как я могу переименовать переменные.
00:05:47

Это важно понимать. Главное, это их взаимное расположение. То что на первом месте – это субъект, на втором месте- предикат, на третьем- объект.

-(в) то есть здесь нельзя после «в» в скобочках выкинуть какой-то из этих пунктов?

-Нет, нельзя. То есть, это всегда должна быть тройка. Так. Продолжаем. Значит, я говорил про вот эти онтологии, и сейчас есть довольно много онтологий, которые всеми используются. А из этих онтологий используются некоторые термины повсеместно тоже. Вот я тут представил список из этих вещей, например, rdf:type. Это некоторое такое отношение, которое означает что-то типа «является», «имеет тип». Оно еще иногда сокращается до одной буквы – а.


00:06:46

Другая вещь: rdfs:subClassof. Это означает, что одно, то, что слева, является подклассом того, что справа. Значит, rdfs:class. Owl:sameas. Я в перерыве рассказывал интересный пример. Был задан вопрос, а что ,если в одной базе мы называем географическую широту словом shirota, а в другой базе Мы ее называем latitude. Ответ такой – как их синтегрировать. Мы просто создаем маленькую онтологию, в которой будет всего одна тройка содержаться. Она будет говорить: shirota – субъект – owl:sameAs, т о есть синоним, geo latitude. И все, что у нас было помечено вот этим предикатом «широта», оно будет помечено предикатом «geo latitude» Same as.


00:07:53

(в) Можно еще маленький вопрос? (нрзб) храниться.

- Аааа.. где она должна храниться. Она должна храниться.. ммм.. сейчас.. тут сложно просто это объяснить.. давайте простейший случай. Мы можем публиковать rdf-базы в виде файлов. Вот просто в виде файлов. Опубликовал файл с расширением rdf. Вот это у меня файл, там где у меня употребляется слово «shirota». Вот это у меня файл, где употребляется geo latitude. Я создаю просто третий файл, храню его у себя, допустим, на веб-сервере, в котором у меня есть вот эта онтология. А как сделать так, чтобы это обрабатывалось – ну я просто беру некоторое программное средство, которое называется «движок логического вывода», и скармливаю ему все три вот этих файла.
00:08:58

Он добавляет в свою базу фактов факты отсюда, факты отсюда, факты отсюда. Видит, что у нас тут sameAs, и подставляет вместо широты вот эти geolatitude. Данных становится в 2 раза больше. Это одна из проблем логического вывода. Так. Другие термины, которые тоже очень частые. Это foaf:name, обозначает ну некоторое отношение “имеет имя» и применяется для различных персон во всех их проявлениях. То есть в dbpedia у нас есть какие-то исторические личности, у них есть имя. И это почти всегда будет foaf:name. В каком-нибудь другом месте у нас есть данные о пользователях в соцсетях, и у них есть имя. И это всегда будет foaf:name. То есть вот унификация терминологии.


00:09:53

Scos:related, rdfs range, dc subject. Вот dc subject. Это «о чем документ». Если у вас есть, допустим, какая-то база, в которой есть какие-то документы, то у нее будет, скорее всего, отношение dc:subject, если она представлена в rdf.

(в) А вот эти особенно популярные связки, они где описаны?

- Где описаны самые популярные предикаты. Ну.. сейчас подумаем. Специально нигде. Есть база под названием prefix.cc, можете зайти. Ну фактически она для частых.. как раз вот для этих частых аббревиатурок. То есть, вот мы же помним, что в rdf у нас все либо uri, либо literal. Вот это uri. Foaf:name это на самом деле значит http:// путь к онтологии foaf/name.

И вот есть база вот таких сокращений. Prefix.cc. и там есть статистика по тому, кто и сколько использует вот этих отношений. Их как раз оттуда и можно-то взять. Сейчас покажу.
00:11:33

Foaf;knows например. Это путь к онтологии foaf / knows. Но там, насколько я помню, какая-то статистика тоже была. По тому, кто сколько чего использует. Ага.. ну что, переходим давайте к практике. Будем разбирать dbpedia. Значит, дбпедия. Кому когда-нибудь приходила в голову мысль «а давайте мы попарсим википедию, потому что там есть клевые какие-то данные»? я рад, что никому. Но на удивление часто, особенно в разных хохотонах, люди начинают думать – ой, нам бы. Вот у нас тут внезапно появились какие-то художники, нам бы их вот даты рождения откуда-нибудь бы взять.. о, щас мы википедию распарсим, там как раз в инфобоксе есть даты рождения. И парсят. Зря. Зря. Почему?


00:12:53

Потому что ребята из дбпедии много из этих инфобоксов уже распарсили сами. И дбпедия- это такая вот как раз база с данными из википедии, которые легко получаются оттуда. То есть, они не занимаются какими-то хитрыми алгоритмами, которые не работают, я имею в виду алгоритм матлингвистики. Они занимаются только тупым извлечением данных из инфобоксов, из иерархии категорий. То есть, у нас есть, допустим ,какой-нибудь Роберт Дауни-младший, и у него есть , допустим, категория «актер». И вот они берут, это парсят, они говорят, что Роберт Дауна-младший, rdf:type, или Роберт Дауни-младший a – актер.


00:13:49

(в) RDF:type это предикат, правильно?

- Да, это предикат. Пример, как это преобразуется. Вот у нас был такой Леонардо да Винчи, мы берем, назначаем ему URI, потому что каждый объект должен идентифицироваться, мы говорим, мы преобразуем вот эти вот все его свойства в RDF-свойства, и мы преобразуем то, что в правом с толбике, в значения свойств.

(в) Это то, что сделали за нас..

-Это то, что сделали за нас дбпедийцы. Не помню, какой у них demonian, по-моему dbpedians по-английски.
00:14:36

В итоге мы получили действительно классный такой граф. Ну как. Леонардо да Винчи, от него расходятся куча –куча разных предикатов. Они втыкаются иногда просто в какое-то литеральное значение, ну например в дату его рождения. Но иногда они втыкаются в.. Италию. Или в Хай Ренессанс, или в какое-то Артс. И мы получаем, что Италия, которая была тоже распарсена, она имеет какой-то флаг, у нее есть столица Рим.. Мы получаем бесконечную большую-большую базу. Большой граф. Вот. Адрес, с которым мы будем работать. Все, надеюсь, туда зашли.


00:15:32

И мы начнем с того, что будем ну вот тему я выбрал не ренессанс и не Леонардо всякие да Винчи, а мы выбрали тему компаний, потому что мы говорим про открытые данные, у нас есть государственные данные. Вот в дбпедии есть много данных про компании. И давайте первое, что мы сделаем .это мы выберем все компании, которые есть. Из этого будет состоять наш первый запрос. Самый важный вопрос – ну как. Вот сейчас я покажу ответ. Для остальных не буду показывать ответ. Для остальных запросов. И вот я когда смотрел на этот ответ, когда я первый раз изучал Sparql, я думал «откуда они взяли вот это слово?» dbpedia.org/ontology/Company. Откуда они знали вот это слово? Почему они знали, что тип обозначается вот этим длинным URL?


00:16:33

Это самый важный вопрос. На него ответить просто. Назовите какую-нибудь компанию известную большую, которая достойна статьи в Википедии.

-(в) Гугл.

- Хорошо. У меня был IBM, но я наверное старый уже. Мы идем на dbpedia.org/page/Google. Я надеюсь, что это сработает. Вот это пример дбпедийной страницы. У нас есть ее слева свойства, справа – значения свойств. Вот у нас есть свойства dbpedia-owl:аbstract. И много вельюсов.

(еще раз называет адрес странички)
00:17:43

Вот смотрите: когда мы смотрим на какую-то типичную компанию, мы делаем предположение, и это часто оказывается верным предположением, что другие компании имеют какой-то схожий набор данных о себе. Вот это основное, что нужно помнить при создании sparql-запросов. Вот я думаю, а есть ли у меня в дбпедии данные о том, сколько зарабатывает эта компания в среднем в год. Ну я иду в какую-нибудь компанию,которая явно хорошо распарсена, которая очень репрезентативна, и ищу тут что-нибудь типа assets, отлично, вот! Ну и действительно тут какое-то большое число.


00:18:27

Теперь какую задачу мы решаем. Мы решаем задачу получить все компании. Я зашел на типичную компанию. Я хочу понять, как в дбпедии обозначается, что что-то является компанией. Ну я вот нажимаю ctrl+F, и ищу слова «Company». Но это если я совсем ничего не знаю. О, я нашел слово «Company»! Смотрите, RDF:type и dbpedia-owl:company. Отлично. Значит, я могу сделать запрос такого рода: select a where… теперь мы хотим что узнать? Мы хотим узнать субъект, правильно? Субъект какой – который похож на google. А чем он похож на google – тем, что у него есть связь rdf:type предикат, беру отсюда и копирую ее.


00:19:44

RDF:type, и она связана с dbpedia-owl: company. Копирую. Нажимаю точечку, закрываю скобочку, добавляю лимит. Ну чтобы побыстрее запрос. Все видели, как я догадался до этого запроса? Примерно, да? Я посмотрел на страницу гугла, и увидел, что у него есть Google rdf:type dbpedia-owl:company. И предположил, что остальные компании тоже имеют эту связь. Я их беру, выбираю. Нажимаю на run query – есть, заработало! И мне выдались URL, это кстати важно понимать. Мне не выдались названия компаний. Мне выдались сами компании. А сама компания –это есть URL компании. Так, хорошо. 10 штук- потому что я попросил 10 штук.


00:20:52

Они отсортированы по умолчанию. Умолчания у всех, по-моему, разные, по-моему, стандарт Sparql задает лексикографическую сортировку. По первому столбику ,во вторую очередь по второму, в третью- по третьему и так далее. Давайте еще что-нибудь попробуем сделать с гуглом.

- (в) Ну получили мы этот набор ссылок..

-Нет, смотрите. Вот мы получили.. Мы получили набор ссылок. Но нам, допустим, нужно узнать не просто ссылки на компании, на их страницы в дбпедии. Ну, это какая-то техническая ненужная информация. Нам хочется узнать их имена. Ну вот названия этих компаний.


00:21:45

И, допустим, слоган. Ну то есть вот чего там у Эппла? «думай не так». Think Different. Давайте посмотрим, какой слоган у гугла. Идем обратно на страницу гугла, ищем там что-нибудь типа «слоган», нет слогана. А у гугла вообще есть слоган? Я точно знаю, что у IBM есть слоган. По-моему, «думай!». А, вот он, вот он! «Думай». А, Title. Интересно, почему он стал тут Title. Ну давайте попробуем. Значит, у IBM есть некоторый Title, который… dbрprop:title он назывался, да? Think. И теперь смотрите: мы хотим выбрать субъект ,который связан dbpprop:title, но он связан с чем-нибудь. Соответственно, я тут ставлю другую переменную. Вот такую, например. Теперь, собственно, мой запрос стал таким. Сейчас покажу, каким. Я ищу следующие кусочки графа.


00:23:45

Я ищу такой объект, вот мой a, который связан rdf:type с компанией, и этот же объект связан Title с чем-нибудь. Вот тут вот я назвал эту переменную Qwert. Можно назвать ее другим именем. То есть вот с чем-нибудь. И все эти кусочки графа мне сейчас выдадутся. Давайте посмотрим. Не выдались. Потому что я попросил у него выдать мне только a, а должен еще попросить выдать qwert, правильно? Qwer то есть, конечно. Раз! Аха отлично. Ну вот выдал некоторое множество.


00:24:56

С этим множеством ..

(в) ..предикаты..

-А вы его найдите в странице кого-нибудь! Кого вы знаете. Dbpprop:title. Кстати это пример того, когда дбпедические данные у нас были плохими. Потому что вот смотрите сюда: у нас есть компания Korean Air, я не уверен.. хотя может и да. Хорошо. У нас есть студия Iron Cat, некоторая студия. У которой dbpprop:title почему-то равняется просто Iron Cat. Я не думаю, что это их слоган. Это пример того, когда дбпедийные данные оказались плохими. В отличие от многих других случаев, когда в этой ситуации нам остается только сесть и заплакать, в случае с дбпедией мы можем исправить ситуацию и помочь дбпедийному парсеру работать. Сказать ему, что вот смотри – у меня вот именно в этом инфобоксе есть Title. Я тебе сейчас скажу ,какое свойство, есть слоган. Я тебе сейчас скажу, какое свойство нам нужно, в какое свойство он должен превращаться, ты его превратишь.


00:26:16

Для этого есть такое средство – mappings.dbpedia.org. то есть это вот такое кроудсорсинговое средство помощи парсеру. Мы можем задавать эти способы парсинга. Почему это круто, почему я обожаю эту.. так.. сейчас она у меня загрузится. Почему я обожаю это программное средство – потому что, допустим, у меня возникла какая-нибудь бизнес-задача, связанная с тем же туризмом. Мне захотелось получить каких-нибудь полководцев и информацию о том, где они умерли, чтобы создать какой-нибудь тур по местам памяти этих полководцев. Я увидел, что данные распарсены были плохо, я добавил в mappings.dbpedia.org, который сейчас загрузится, добавил туда новое правило о том, как они должны загружаться, мои данные стали чище и в то же время я внес свой вклад в развитие dbpedia.


00:27:27

Прекрасно!

(в) то есть, всегда эти данные будут отображаться так, как вы сказали.

- Да, да. У них нет сейчас никакой модерации, даже этого..

-(в) любой человек может прийти и..

- нет, человек должен получить значок маппера, для этого он обычно заходит, говорит «привет, я тут хочу помаппить». Ну такое было года три назад, когда я туда заходил. Сейчас, я думаю, все то же самое.

-(в) Я правильно понимаю, что вот этот mappings.dbpedia.org и есть движок логического вывода?

-Нет. Движок логического вывода – это другое. Движок логического вывода- это штука, которая берет онтологию, смотрит, как там заданы правила и использует их как часть своей логики. А тут… ну в общем да, действительно, он тоже берет какие-то правила, которые вы ему задаете, и использует как часть своей логики, но он использует как часть своей логики для парсинга. А там он использует ее над датасетом, выводя из текущих данных новые данные.


00:28:33

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

00:29:36

Значит, что мы знаем про компанию Гугл. Значит, что мы знаем ,что она где-то базируется где-то в Штатах. IBM – базируется где-то в Штатах. Значит, ищем наши USA на странице IBM. United States.. отлично, давайте их подставим. Я нашел вот такую штуку, но она мне не очень нравится. Это вот некоторая такая вещь.. IBM имеет связь subject..

(в) Там есть locations company..

-Хорошо, давайте. Аха, на гугле есть. Location.. dbpedia-owl:locationCity. Калифорния. Location Country. United States. Тоже хорошо. Ну давайте попробуем по location country.


00:31:07

Как строку указывать. Строку указывать в кавычках. А, у нас просто строка Unated States, да. Хорошо. Строку указываем в кавычках. Хорошо, давайте попробуем выдать все страны, которые базируются в Russian Federation.

-(в) ну естественно надо (нрзб)

- Да, ну давайте попробуем тогда Russia.

-(в) А like есть?

-Да, есть like, есть соответствие регулярному выражению. Да, вопрос..

(в) «или»?

- Будет или. Мы сейчас будем от простого к все более навороченному запросу. Так, ну давайте запрашиваем. Я, правда, по-моему не по сценарию иду. Но, надеюсь, всем весело пока. Ага, хорошо.

-(в) как там «равно»-то ставится?

-(в) точнее, я вот ищу location country: US, и должен хотя бы Гугл находиться. И не находится.


00:32:49

-И не находится. Сейчас попробуем. А я вот буду копипастить, и тогда найдется. Наверное, вы пытаетесь сделать как-то вот так. А, qwer исчез, извиняюсь. Мы его не используем, не нужен совсем. Так, ага.. у меня получилось.. Небольшая техническая заметка. Вот кто сделал вот так, тот молодец. Потому что действовал исходя из поданной информации и действовал правильно. Но я не сказал, что в общем для разных языков у нас могут быть разные значения для свойства. И для этого используют вот эти языковые метки. @en. Соответственно, мы говорим: «выдай мне а, которые связаны dbpprop:locationCountry с United States @en.»


00:34:10

-(в) А что это значит - @en?

-Английский язык. Я не уверен, что с @ru что-то будет работать. А, с @ru не будет работать, потому что у нас нету United States. Давайте попробуем Russia @en. У меня получилось, нашел я оборонпром и прочие вещи. А теперь давайте попробуем «Россия» @ru.

-(в) @en указывает, что мы хотим искать на английском языке, как-то так?

-ААА! (вылетел интернет) Стоп. Российская федерация же. Смотрите, данные берутся из википедии.
00:35:30

Кто пытался редактировать чего-нибудь в википедии, понимает, как там можно сильно получить в глаз за то, что запятую не там поставил. Скорее всего, у них везде «Российская Федерация». Ну я думаю, что дело не в этом. Дело просто в том, что для России нет правила хорошего.

-(в) Вот сейчас Russia @en выдает кучу всего, а Russian Federation @en выдает одну компанию.

-А, да?


-(в) Один некорректный ввод. Значит, для русского у нас тут нет данных больше.. ничего утешительного сказать не могу. Идем дальше?
00:36:22

У нас есть некий такой синтаксический сахар, который позволяет не писать много раз вот эту букву «а». мы просто.. вот давайте сейчас.. Russia @ru @en, так выполним. У нас есть.. Всем видно? У нас есть такой синтаксический сахар замечательный, мы можем тут вместо точки поставить точку с запятой, и вот здесь вот не употреблять..

(в) «;»- это будет «и»?

-Да.


-(в) а палка будет «или»?

-Нет.


-(в) А что будет «или»?

- Юнион. Конструкция мощная. Это чтобы можно было сложные выражения внутрь запихивать. Вот. Где мой сценарий.. ну вот я тут сделал, собственно, company name, да, { ?a выдай мне dbpprop:companyName Corporation} и использовал «;», чтобы сократить запрос. Собственно, мы можем довольно длинные цепочки связывать вот этими точками с запятой.


00:37:59

Вот тут вот я взял company URL переменная, это просто имя переменной. RDF:type company dbpprop:companyName мне выдай, founedby – выдай мне того, кто ее основал. Давайте попробуем этот запрос. Ой! (ноут выключил случайно) Перейдем на аналоговую подачу информации. Помимо этого

Where.. владелец ноутбука тут присутствует?

(в) попробуйте Enter.

- Enter? Не думаю.
00:39:29

Помимо вот этой точки с запятой у нас есть еще другой синтаксический сахар. Вот тут вот какое-то у нас свойство, да, RDF:type, например, Type:company, мы можем еще ставить еще запятую, не точку с запятой, и сюда добавлять не только company, а, например, non-profit company. Ну мы где-то увидели, что у нас есть такой термин для non-profit компаний. И еще какой-нибудь. И добавлять таким образом… Так, товарищи, кто-нибудь имеет власть над ноутбуком? Нет? Хорошо, а человека достать? Так, сейчас мы попробуем что-то сымпровизировать. Отлично, обратно это воткнуть и разблокируйте, пожалуйста. Мы снова в бою. Отлично!


00:41:09

Значит, дальше.. теперь. Вот в моем этом примере мы.. следующим нашим шагом будет знать что-то про владельца компании. Не просто выдать мне список всех компаний, но выдать все компании, владельцы которых, допустим, являются представителями свободных искусств. Значит, артистами, художниками, скульпторами.. и обязательно сюда нужно включить каратистов тоже.. маршал артс. Значит, для того, чтобы выполнить запрос, который будет означать «выдай мне все компании, у которых создатели были художниками». Что мы делаем сначала. Мы сначала делаем вот такой запрос- выдай мне все компании. Потом его усложняем.


00:42:08

Выдай мне все компании и их имена, названия компаний; выдай мне все компании и урлы их фаундеров, создателей, и теперь мы говорим: выдай мне для этих фаундеров только тех, у которых тип является dbpedia-owl:artist. Значит, как это выглядит в виде графов. Какой я сейчас запрос задал. Кстати, если есть доброволец, который может порисовать.. буду очень рад. Никто не хочет интенсифицировать свое обучение? Ладно.


00:42:58

Вот у нас есть компания Company, от нее идет связь какая- type, да, она идет в dbpedia-owl:company. Мы еще хотим выдать ее имя Name –Name. Мы еще хотим выдать, получить ее файндера, получить ее URL, и мы хотим, чтобы этот фаундер имел такой-то и такой-то тип. Artist. Так. Корпорейшн.. Да, я не прав. Эта переменная «корпорейшн» , она здесь плохо названа, потому что она конечно должна называться Name, потому что это имя. Давайте, чтобы у нас соответствовало одно другому, давайте тут напишем «корпорейшн».


следующая страница >>