Школа открытых данных_Хёффнер

реклама
00:00
Англ.
00:12
В качестве примера работы с рдф я покажу вам небольшой проект, который я сделал. Это
связанные расходы, linking spending.
00:19
Англ.
00:25
Я взял государственные открытые данные о расходах и превратил их в рдф.
00:47
Англ.
00:56
Данные из open spending – это данные государственных расходов, доступные всем и каждому.
01:01
Англ.
01:08
Они включают о том, сколько денег, кем и на какие цели были потрачены.
01:13
Англ.
01:24
Во многих странах мира многие люди заинтересованы в том, чтобы знать, куда идут деньги из их
налогов.
01:31
Англ.
01:52
Это повышает государственную активность. И если, например, политик узнает, что он потратил
миллион рублей на то, чтобы построить мост. А мост построен не был, то в следующие выборы его
не изберут.
02:06
Англ.
02:09
Это уменьшает коррупцию.
02:11
Англ.
02:22
Поскольку если политик раскрывает на то, на что он тратит деньги, и мы видим, что что-то там
упущено, то опять же мы можем привлечь его к ответственности.
02:29
Англ.
02:36
Ну, то есть люди, обладающие правом голоса, могут принять взвешенные решения, и это
усиливает демократию.
02:43
Англ.
03:16
Ну, также это усиливает государство, поскольку, например, вот в Германии строили станцию для
троллейбусов и люди выходили на протесты. И благодаря тому, что вся информация
раскрывалась, люди могли действительно принимать. Да, много денег построено, но вот такой
результат мы получим.
03:38
Англ.
03:46
Многие государства Европы уже публикуют данные открытым образом.
03:50
Англ.
04:02
Уже существует портал openspending, на котором опубликовано огромное количество данные о
расходов с многочисленных стран мира.
04:09
Англ.
04:24
В общем, более 350 дата-сетов и при этом там, например, есть бюджеты таких городов, как
Берлин.
04:30
Англ.
04:40
Там уже 17 млн транзакций, то есть таких вот единичных записей, и данные постоянно появляются
новые. То есть буквально один массив данных, один набор данных в неделю.
04:53
Англ.
04:57
Данные там представлены вот примерно таким вот образом.
05:02
Англ.
05:10
Теперь вам стоит меня спросить, зачем, если вот данные уже есть, мне нужно их конвертировать в
рдф?
05:16
Англ.
05:25
Данные уже структурированы, они в джейсоне и они находятся в базе данных, но они не
семантические.
05:31
Англ.
05:35
Это означает, что компьютер не понимает эти данные.
05:38
Англ.
05:45
То есть они действительно открыты, любой их может скачать, но при этом они не связаны с какимлибо другими данными.
05:50
Англ.
05:55
Ну, сеть, сеть данных.
05:57
Англ.
06:10
Закрытый формат. Да, это оказывается, такой узкий термин. Закрытый такой, фактически некий.
06:16
Комментарий из зала:
База закрытая, не связанная с другим базами, отдельная.
06:20
То есть это одиноко стоящие, но открытые данные.
06:24
Комментарий из зала:
Возможно, да.
06:26
Англ.
06:44
Если данные находятся в рдф, то это создает множество возможностей для работы с данными для
маши и для людей. Вы можете получать их в URI, sparql, тампами и так далее.
06:56
Англ.
07:13
Есть специальные словари, которые касаются именно расходов и при использовании их
позволяется достаточно простая интеграция с другими массивами данных, которые тоже касаются
расходов.
07:24
Англ.
07:34
И, конечно, Вы можете использовать инфраструктуру семантического веба, например, как
отвечать на вопросы.
07:39
Англ.
07:43
Конрад сейчас покажет больше примеров.
07:45
Англ.
07:53
Проблемы, с которыми я столкнулся при конвертации в рдф.
07:55
Англ.
08:05
Он говорит, что к сожалению, там не было возможности для массовой выгрузки download,
поэтому приходилось использовать джейсон и пи ай, которые предоставлялись на проекте.
08:15
Англ.
08:20
Данные часто меняются, и там ест ошибки.
08:23
Англ.
08:30
И там еще такая специфическая модель данных под название дата-куб.
08:34
Англ.
08:40
Поскольку данных очень много, то очень важно, чтобы данные можно было бы сконвертировать
достаточно быстро, чтобы не было долгого ожидания.
08:47
Англ.
09:00
Несмотря на то, что формат данных общий, но словари и тексты, которыми описывают их, они
разные. И описание расходных статей в Германии и в Соединенных Штатах оно отличается.
09:13
Англ.
09:29
В итоге все это решилось с помощью специальной программы, которая использовала paf
expressions, то есть некие способы, языки запросов в джейсоне и собственно обращалась к этому
ай пи ай.
09:45
Англ.
09:52
Был использован специальный язык, соответствие различных полей в форматах джейсон полям в
рдф.
10:00
Англ.
10:11
Ну, то есть, проблема частых изменений решилась тем, что в начале все было выгружено, а потом
уже данные преобразовывались из выгруженного джейсона в рдф.
10:20
Англ.
10:42
Ну, то есть, проблема с ошибками была решена путем тех массивов данных, в которых количество
ошибок достаточно большое. И благодаря тому, что здесь было довольно много массивов по
расходам, выбирались те, которые были более пригодны для дальнейшей обработки.
10:59
Англ.
11:14
В рдф очень часто используют, вообще в семантическом вебе используются специальные
программы, resanors, я не буду сейчас переводить этот термин, но суть его в том, что это
преобразование в том числе значений на естественном языке на понятия в рдф. И если там
содержатся ошибки, то, соответственно, они не будут корректно работать. Поэтому важно
отсеивание ошибок.
11:35
Англ.
11:44
Например, если кто-то слишком долго работает в университете, можно сказать, то он женат на
университете.
11:49
Англ.
11:58
Да, но если вы это закодируете в рдф, то resanor – это как раз программа, которая интерпретирует
связи. Она действительно решит, что университет- это персона, фамилия такая.
12:10
Англ.
12:16
Ну, то есть, основной смысл всего этого, что лучше иметь небольшое количество качественных
данных, чем работать с некачественными.
12:24
Англ.
12:39
Ну, в общем, проблему с разными, как раз, словарями по статьям расходов мы так и не решили. И
решаем это на уровне студенческого тезиса, возможно, и работой с экспертами.
12:51
Англ.
12:57
Ну, то есть, если вы захотите, то можете тоже написать дипломную работу на эту тему.
13:02
Англ.
13:13
Результат – это мы получили линкин спендинг, набор данных, в котором примерно 5 млн, как раз,
этих самых триплов.
13:21
Англ.
13:28
Вы можете прямо сейчас это посмотреть по ссылке, которая представлена: likedspending.aksw.org.
13:34
Англ.
13:39
Ну, то есть, это в процессе активной разработки, поэтому оно может быть немножко
подтормаживать и быть еще в бете.
13:48
Англ.
13:56
То есть там еще не активирована безопасность, поэтому, пожалуйста, ничего не удалите.
14:03
Англ.
14:08
Теперь, когда у нас, наконец-то, есть рдф, мы можем с помощью него отвечать на различные
вопросы.
14:14
Англ.
14:23
Например, какие транзакции были больше, чем там 100 млн евро.
14:29
Англ.
14:37
Или, как например, какие массивы данных, в которых инфляция была больше 10%.
14:42
Англ.
15:14
Ну, то есть, вот как раз вот этим примером с уровнем инфляции мы показываем о том, как
работает интеграция использования рдф, потому что эти данные находятся в дппедии, их нету в
данных линкид спендинг. Но мы строим таким образом запрос, что мы получаем информацию,
используя одновременно два эти массива.
15:33
Англ.
15:47
Вот, например, сейчас мы смотрим на пример с валютами, в которых больше ,чем на 10%
инфляция.
15:54
Англ.
16:04
Ну, запрос не оптимизирован, поэтому там, как вы видите, некоторые результаты дублируются, но
вы в принципе видите, как это работает.
16:10
Англ.
16:27
Ну, у нас в этом докладе получается три раза мы будем задавать вопросы. Это была часть по
линкид спендинг, то есть вопросы по линкид спендинг. Вот прямо сейчас задавать и Конрад готов
на них ответить.
16:42
Вопрос по-англ.
17:02
Ответ на вопрос по-англ.
17:20
То есть фактически рдф может быть описан в том числе для описания модели валап, есть
специальный вокабуляр, словарь в рдф, который это позволяет. Вот, но в принципе, это разные
несколько модели.
17:34
Продолжение ответа по-англ.
17:46
Вопрос по-англ.
18:03
Ответ по-англ.
18:08
Продолжение вопроса по-англ.
18:39
Продолжение ответа по-англ.
18:57
Я тогда переведу. Вопрос был о том, почему использовать рдф, а не проприетарные форматы,
описания олап. И ответ, что главная возможность рдф в том, что рдф позволяет связывать
различные массивы данных.
19:10
Еще вопросы?
19:14
Англ.
19:22
Мы переходим к следующей интересной части под названием «Ответы на вопросы».
19:27
Англ.
19:36
В этот раз не Конрад будет отвечать на вопросы, а компьютер будет отвечать на вопросы.
19:47
Англ.
20:05
Ну, это можно назвать проблемой, а можно назвать то, что это не проблема. Но больше, больше и
больше данных в рдф становится доступными.
20:11
Англ.
20:31
Ну, то есть в предыдущем примере я рассказывал про то, как доступно 50 млн триплов, а вот у
коллеги Конарда есть массивы данных, в которых миллиарды триплов касательно гео-данных.
20:43
Англ.
20:51
Проблема с этими данными, это с одной стороны данные есть, а с другой стороны – как найти в
них именно те данные, которые релевантны именно для вас.
20:59
Англ.
21:07
Ну, конечно, вы можете выкачать 10-гигабайтный файл и поискать в нем в текстовом редакторе,
но вообще-то так не очень удобно делать.
21:13
Англ.
21:28
Ну, и даже если у вас URI, вы можете запустить в браузер, но при этом вы получите один
конкретный ресурс, и не факт, что релевантный именно для вас.
21:37
Англ.
21:41
В прошлый раз я вам рассказывал про запросы в спарквеле.
21:44
Англ.
21:51
Спарквель – это очень хорошая штука и этот язык стандартный для запросов в семантическом
вебе.
21:56
Англ.
22:04
Ну, то есть, спарквель для семантического веба идентичен эскелю в обычных базах данных.
22:10
Англ.
22:17
Он невероятно выразителен и вы можете делать на нем довольно сложные вещи особенно для
пользователей с опытом.
22:27
Англ.
22:36
Но при этом у него достаточно сложный синтаксис и в нем надо разбираться, и вы должны челко
понимать, что вы хотите сделать.
22:42
Англ.
22:50
Ну, поскольку мы хотим, чтобы семантический веб был доступен каждому, это, конечно, проблема
для нормального среднего пользователя.
22:55
Англ.
23:02
Поскольку нормальный пользователь не сможет сделать запросы, например, как те, что привожу
здесь.
23:09
Англ.
23:13
Для этой проблемы есть несколько решений.
23:15
Англ.
23:32
И в зависимости от того случая, с которым вы работаете, у вас есть некоторый баланс между
выразительностью, простотой использования и простотой настройки.
23:40
Англ.
23:47
Спарквель, про который я говорил, он невероятно выразителен, но тяжел в использовании.
23:51
Англ.
23:57
Фасетированный поиск, фасетный поиск, возможно, вы знаете из магазинов, таких, как «Амазон».
24:03
Англ.
24:11
Ну, например, вы выбираете, что я хочу именно ботинки специфического размера, из конкретного
цены и из конкретного магазина.
24:19
Англ.
24:43
Но если вы, например, не смотря на то, что это позволяет там делать какие-то запросы, но он все
равно достаточно ограничен, и, например, вы не можете сделать запрос, что я хочу, например,
обувь, которая является синей и там производится компаниями из Австралии.
24:56
Англ.
25:14
Ну, то есть, может быть это не лучший пример для шопинга, но в случаях, когда мы говорим про
расходы, там это очень часто происходит, когда нужно делать запрос по разным категориям.
25:22
Англ.
25:38
И сейчас я расскажу об ответах на вопросы, questions answering. Это подход ,который очень,
достаточно очень прост в использовании, достаточно выразителей, хотя и сложен в
предварительной настройке и реализации.
25:51
Англ.
26:06
Несмотря на то, что есть какие-то готовые решения, вы можете их взять и применить именно к
своей области, тем не менее это занимает какое-то время на настройку, может быть не месяцы,
но дни, и что это требует определенных усилий.
26:20
Англ.
26:28
То есть это работает, когда у вас очень много данных, и много пользователей, которые к ним
обращаются.
26:34
Англ.
26:50
Для того, чтобы понять, что такое ответы на вопросы, это надо понять, что пользователи могут
задавать вопросы в естественном языке. Ну, если не в русском, то хотя бы на английском. И
получать разумные ответы.
27:03
Англ.
27:13
Есть 4 пространства, направления именно ответов на вопросы.
27:18
Англ.
27:26
Это тип ввода, это источник, это охват и среда поиска.
27:35
Англ.
27:43
То есть основанный на вводу, это, например, гугл и работающие на ключевых словах.
27:50
Англ.
28:02
Преимущество в том, что это чрезвычайно просто, очень быстро. Вы можете использовать
мобильный телефон, чтобы найти быстро интересную информацию.
28:11
Англ.
28:17
Ну, в общем, это не очень-то выразительно и, например, какие-нибудь отношения между
понятиями вы таким образом выразить не сможете.
28:23
Англ.
28:59
Ну, другой подход – это решения такие, как сири. Это в решениях apple iphone, там уже требуется
полноценный набор инструментов, чтобы они могли отвечать на вопросы там «кто?», «что?»,
«где?» и уже их раскрывать. То есть это требует некоторой более сложной работы по обработке
естественного языка.
29:20
Англ.
29:37
Это хорошо в тех случаях, когда действительно надо говорить с голоса и если какое-то одно слово
не понято, то по крайней мере будут поняты другие слова.
29:44
Англ.
29:51
И третий способ – это вопросы типа «зачем» и «почему».
29:54
Англ.
30:01
Это действительно сложная задача, потому что требуется понимание принадлежности каждого из
этих вопросов и осознание вопросов системы.
30:11
Англ.
30:21
То есть коммерческих продуктов таких они пока ни одного не нашел, но вот известен один
конкретный исследовательский прототип.
30:28
Англ.
30:46
Чтобы начать внедрение системы, которая отвечала бы на вопросы, надо вначале понять, какие
типовые вопросы будут задавать пользователи. И какие именно вопросы пойдут от них и на какие
должна отвечать система.
30:59
Англ.
31:10
Например, мне нужно найти отели в Москве, в которых есть беспроводный интернет, и для этого
мне достаточно только ключевых слов.
31:16
Англ.
31:25
Но если у меня более сложные вопросы и мне нужны отели рядом с Москвой, то это уже вопрос
со связностью и требуется уже обработка на естественном языке.
31:36
Англ.
31:50
Следующий вопрос: является ли тигр кошкой или котом? Того же типа, что и предыдущие, то есть
на него может быть дан однозначный ответ. И они похожи по типу.
32:01
Англ.
32:10
Следующего типа вопросы они более сложные, поскольку они требуют, правильно сказать,
переосмысления компьютером самого вопроса.
32:19
Англ.
32:33
То есть в большинстве случаев, системы, которые работают с вопросами, они работают по
фиксированным шаблонам. И вот скорее всего подозрение, что сири именно так и делает, что
просто по определенному шаблону они структурирует фразу и таким образом определяет, что
человек спросил.
32:48
Англ.
32:55
Несмотря на то, что сири кажется очень умное решение, но тем не менее, они таким, скорое всего,
не является.
33:01
Англ.
33:09
И вот, наконец, более сложные вопросы: это зачем, например, мне нужен сегодня зонтик?
33:14
Англ.
33:28
И, наконец, следующий тип вопросов – это вопросы «как». И, например, вот «как готовить борщ?»
Это вопрос, которые уже понимают такие системы, как комода. Они не такие простые, как
предыдущие, но все еще возможны для решения.
33:40
Англ.
33:52
Следующие два примера, это как раз примеры, когда первый вопрос достаточно простой, на
который есть ответы да-нет. А вот следующий вопрос это сложный, на который в принципе
простого ответа быть не может.
34:03
Англ.
34:09
Коверед на сегодняшний день не знает ни одного подхода, который бы позволил отвечать на
последний тип вопросов.
34:14
Англ.
34:18
То есть если у вас что-то есть такое, это было бы интересно.
34:22
Англ.
34:34
Следующий – это источник информации, это не выбор дизайна, это определяется по тому, что
есть.
34:42
Англ.
34:51
Ну, то есть если это текст, это может быть наиболее сложный случай, когда википедия текст о
Лейпциге.
34:58
Англ.
35:05
Знаете ли вы про дивипедию?
35:07
Англ.
35:12
Это вот собственно, то что предыдущая была презентация Ампари, это как раз семантическая
версия википедии – двпедия.
35:19
Англ.
35:27
Для любой статьи в википедии есть специальная аналогичная статья в дппедии с семантической
версткой.
35:33
Англ.
36:05
Вот я не смогу перевести самую последнюю фразу там запроса. Но в общем смысл в том, что
дппедия – это такой очень удобный инструмент, самый популярный в семантическом вебе сейчас,
позволяющий делать очень сложные запросы и на основе страниц из википедии.
36:21
Англ.
36:39
Ну, то есть если вы хотите задаться вопросом – откуда все это берется, то на самом деле это
берется не из текста, а в википедии у каждой страницы есть специальные инфо-боксы, то есть
разделы, такие поясняющие таблички справа на страницах. Именно оттуда извлекаются данные,
которые идут в наполнение дппедии.
36:56
Англ.
37:09
То есть к примеру, в википедии есть идентичные инфо-боксы, шаблоны, по которым записана
каждая страница города и на основе него в дппедии построен специальный класс с информацией
тоже по каждому городу.
37:23
Англ.
37:38
То есть извините за короткое отступление, но общий смысл в том, что источники информации у
вас могут быть самые-самые разные – традиционные данные, текст, полуструктурированные и
даже уже совершенно готовые данные, как дппедия.
37:50
Англ.
38:06
Ну, то есть первое, что касается широты охвата, это предметная область и она должна, ответы на
вопросы обычно зависят от нее. Например, если у вас есть предметная область – это библиотеки,
то и могут быть задаваться вопросы о книгах.
38:22
Англ.
38:37
Ну то есть это очень просто реализовать, поскольку можно сузить область. Но в то же время если
реализовать подобную систему ответов на вопросы, то перенести ее потом, например, на ответы
про машины будет сложно, потому что там уже будут совершенно другие конструкции.
38:49
Англ.
39:02
Ну, то есть, есть предметно-независимые системы ответов на вопросы. Они гораздо сложнее в
реализации, они не ограничены какой-то конкретной темой, но при этом у них ниже качество
результатов, но сравнимо легко переносимы на любую из областей.
39:18
Англ.
39:36
Ну, то есть еще есть вариант такой комбинированный, когда у вас есть для базового лексикона в
словарях какой-то набор, базовый корневой модуль и при этом для каждой из предметных
областей специальный расширяющий лексикон, позволяющий работать именно с ней.
39:51
Англ.
40:04
Ну, то есть, это сложнее всего реализовать с самого начала, но в дальнейшем зато сильно
упрощает всю работу.
40:10
Англ.
40:20
Ну, то есть, среда поиска – это, она собственно, ограничивает или навязывает определенные
особенности, свойства.
40:29
Англ.
40:43
Ну, то есть, фактически, если у вас очень-очень большие объемы данных, то попытаться
проникнуть в смысл выражения, разобрать там, ризонинг это будет затруднен.
40:54
Англ.
41:17
Ну, то есть, если вы используете много гетерогенных, множество связанных данных, таких, как
дппедия, у вас будет проблема всегда с множеством описанием терминов. То есть когда вы ищите
по одному, а у него есть много разных представлений. И будет проблема с ключевыми словами,
потому что по ним будет выходить много разных понятий.
41:36
Англ.
41:44
Ну, иногда нужна многоязычность и поддерживать несколько входных языков.
41:48
Англ.
41:52
Несколько примеров.
41:53
Англ.
42:02
Я покажу пример, который в нашем институте разрабатывается – это autosparcl tbsl.
43:07
Англ.
42:12
Он умеет обрабатывать так называемые wh queries, то есть запросы, которые начинаются в
английском языке со слов wh, то есть КТО, КЕМ и так далее.
42:24
Англ.
42:30
И там использован комбинированный подход, с предметно-независимой частью и с предметозависимыми дополнениями.
42:39
Англ.
42:46
Ну, то есть это работает на больших массивах с достаточно сложными гетерогенными данными, но
только для английского языка. С другой стороны, это адаптируемо.
42:55
Англ.
43:06
Ну, вот по ссылке вы можете посмотреть демо, которое, возможно, даже работает.
43:10
Англ.
43:27
Ну, вот пример, который я покажу, вы можете спросить, например, о домах в Оксфорде, а можете
спросить вопросы по дппедии.
43:34
Англ.
44:00
Ну, то есть, вы можете сформулировать запрос, например, там вот дома в Оксфорде с двумя
спальнями, и при этом каждый запрос будет транслирован в спаркеле и этот спаркель уйдет в
непосредственно базу данных, и потом результаты будут выведены.
44:16
Англ.
44:41
То есть гласное отличие от гугла в том, что гугл ищет конкретно по каждому слову. Если вы
напишите «я ищу дома с двумя спальнями», «более, чем с двумя спальнями», то дома с тремя
спальнями он не найдет, потому что он не сможет интерпретировать, что нужно больше двух, 3, 4
и так далее. Это как раз преимущество использования rdf-данных, поскольку натуральный язык
будет преобразован и спаркель таким образом будет проводить запрос.
45:08
Англ.
45:19
Ну, то есть иногда компьютер не может окончательно понять, что человек хочет запросить и
опытные пользователи могут выбрать несколько интерпретаций.
45:29
Англ.
45:38
Ну, то есть, вот живой пример, который позволяет найти фильмы, где играл Бред Питт.
45:46
Англ.
45:56
Ну, это была последняя третья часть нашего выступления. Конрад ждет ваших вопросов.
Вопросы? Вопросы? Ну, вероятно, вопросы уже закончились после первого и второго.
46:22
Вопрос по-англ.
47:32
Перевод вопроса на русский (очень тихий звук!):
Вопрос состоит в следующем: если мы переведем текст, написанный человеком в рдф-триплеты, а
потом попробуем использовать этот, такой массив для поиска уже машиной по подготовленному
тексту, мы получим, по идее, гораздо более адекватный поиск, чем тот, который используем
сейчас, по сути ключевой, по ключевым словам. Знает ли наш гость Конрад какие-то примеры
такого подхода, какого-то использования. В этом и есть вопрос.
48:11
Перевод этого вопроса на англ.
48:51
Ответ на вопрос по-англ.
50:42
Да, основной смысл в том, что действительно такой подход с поиском по, используется. Есть такие
проекты семантическая Библия, семантический Коран, которые фактически были преобразованы
в рдф базы данных и фактически перемоделированы. И там были определенные выявлены
шаблоны. И это позволило, действительно, делать довольно сложные и специфические запросы к
подобным базам данных. Но это сложная работа, которую не со всяким текстом можно сделать.
Например, с «Гамлетом» так быстро не получится.
51:13
Англ.
51:25
Немножко выбились из времени.
51:30
Вопросов больше нет? А вот.
51:34
(очень тихий звук!)
Но он по второй части. Если вот мы допустим возьмем пять человек и поставим задачу, которую
решил Конрад: перевести расходы Лейпцига в модель рдф. Мы получим идентичные, эти пять
человек получат идентичные результаты, или они будут отличаться?
52:00
Перевод вопроса на англ.
52:29
Уточнения по вопросу на русском.
52:35
Перевод уточнения по вопросу на англ.
52:49
Ответ на вопрос по-англ.
53:19
Перевод ответа:
Ну, то есть вы, конечно, можете сделать сами да то, что он делает все является открытой схемой. И
вы можете взять, собственно, эту схему, чтобы понять, если будете делать самостоятельно работу,
чтобы увидеть, какой была последовательность действий.
53:32
Из зала:
Это не этот вопрос.
53:32
Англ.
53:34
Мне он тоже не очень понятен, если честно.
53:38
Из зала (очень тихий звук!):
Давайте я отвечу. Просто суть в том, то, что итоговые данные зависят от схемы, которую им
задают. То есть те атрибуты, которые есть… Будут, конечно, расхождения.
53:53
Англ.
53:58
Ну, то есть, если у вас будет схожая схема, вы можете делать тоже самое с этими данными. Если у
вас будет другая, то там модель работы с ними будет немножко другой.
54:04
Коллеги, ну, я предлагаю сделать перерыв еще 10 минут. Вот, и перейти к следующему
докладчику. Спасибо Конраду за очень интересный доклад. Вот.
Похожие документы
Скачать