Русский
Русский
English
Статистика
Реклама

Wikipedia

Картирование цифровых прав, часть I. Право на публикацию цифровых произведений

28.08.2020 12:23:00 | Автор: admin
TL;DR: Эксперты делятся видением проблем в России, связанными с цифровым правом на использование, создание и публикацию цифровых произведений.

Этой статьей Теплица социальных технологий и РосКомСвобода открывают серию публикаций о картировании технологических вызовов и возможных решений в преддверии хакатона по цифровому гражданству и цифровым правам demhack.ru, который пройдет 12-13 сентября 2020 г. В преддверие хакатона, организаторы провели пять круглых столов по изучению проблемного поля цифровых прав для того, чтобы поделиться сконцентрированным знанием с участниками будущими участниками хакатона о наблюдаемых проблемах и возможных технологических решениях.

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

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

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

Сюжеты, которые мы рассмотрели:

  1. Дигитализация оффлайна и авторское право;
  2. Вопросы Creative Commons и Общественное достояние (Public Domain);
  3. Угрозы open-инициативам (open data, open access и т.д.);
  4. Продукты искусственного интеллекта и авторское право;
  5. Поведенческий излишек собственность пользователей или собственность платформы?
  6. Защита авторских прав VS свободное использование произведений;


Сюжет 1. Дигитализация оффлайна и авторское право



Самая простая DIY-модель сканнера книг. Источник: Daniel Reetz // Instructables.

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

Например, для репрессированных авторов 70 лет освобождения авторского права считается со срока их реабилитации, а дата реабилитации есть только в архиве ФСБ. Та же проблема с фотографиями из семейного архива. Родственники не являются правообладателями, правообладатель фотограф в фотоателье. Если фотограф неизвестен, то 70 лет с даты обнародования. Но родственники, при этом, формально не могут обнародовать фотографии. Очистить эти права нельзя. А волю автора узнать уже невозможно автор мертв. В этом же русле находятся произведения, которые опубликованы, но они коммерчески не используются очень длительное время. Коммерческое использование предполагает составление договора. Резюмируя, можно говорить о том, что для произведений, которые проходят аналогово-цифровой переход существует острая проблема очистки прав.

Проблема поиска правообладателя (проблема очистки прав) сложно найти того, кто обладает правом на произведение.

Решения для хакатона:

  1. Создание базы сиротских произведений;
  2. Сервис поиска правообладателя;


Сюжет 2. Вопросы Creative Commons и Общественного достояния



Логотип Creative Commons, выполненный в стиле изразцов зулляйдж. Источник: Creative Commons (CC-BY-SA)

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

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

Проблема отсутствия произведений общественного достояния в хорошем качестве. В России нет портала, на котором были бы выложены произведения общественного достояния, находящиеся в public domain. За рубежом есть сайты, которые курируют и публикуют хорошо обработанные произведения общественного достояния например, Wolne Lektury (Бесплатное чтение, Польша). Но в России самый простой способ найти Достоевского это на Флибусте.

Решение для хакатона: создать портал и процесс для публикации и курирования произведений общественного достояния.

Проблема популяризации Creative Commons формулируется следующим образом несмотря на то, что ГК РФ содержит статью 1286.1 об открытых лицензиях и лицензии эти используются, в том числе на гос.сайтах, авторы и юристы не знают про открытые лицензии и Creative Commons.

Существует недоверие к лицензиям типа Creative Commons даже не смотря на их устойчивый юридический статус в РФ. Этими лицензиями могли бы воспользоваться многие сайты, но из-за неграмотности этого не делают.

Решения для хакатона:

  • Сервис, в котором люди могли бы генерить шаблонные письма Переведите ваш сайт на Creative Commons с объяснением сути вопросов и отправлять в соответствующие ведомства, библиотеки и т.д.
  • Один из экспертов формулирует вопрос так: Creative Commons слишком сложные для понимания. Многим авторам важно просто, чтобы их читали. И поэтому они думают, что знак копирайта это абсолютная ценность, моральные права не понимая того, что авторство и свобода распространения содержания это не взаимоисключающие понятия. Вполне возможно, что и коммерческие права им вообще не нужны. Решение: популяризировать знак авторства, не предполагающий защиту коммерческих прав например, а в кружочке (такой символ уже есть в юникоде инициатива предлагалась Ассоциацией интернет-издателей). Чтобы автор понял, что распространение в его руках.


Проблема с поиском авторства для русскоязычного контента нет поисковиков по изображениям, музыке и иным произведениям с лицензиями Public Domain или Creative Commons.

Решение для хакатона: поисковик или лучший способ индексации или идентификации произведение с таким режимом авторства.

Проблема с архивированием сайтов. Сайты периодически умирают. Проекты, например, Ивана Бегтина стараются архивировать российский государственный веб. Wayback Machine старается архивировать весь веб, но русскоязычного контента там не так много.

Решения для хакатона:

  • Бот, который бы автоматически отправлял бы сайт в веб-архив.
  • Нет ПО, которое бы позволяло удобно и прозрачно генерировать .WARC (web archive) файлы эксперты считают, что существующие методы очень сложны для простого пользователя. На хакатоне можно было бы создать инструменты, которые бы упрощали бы этот процесс.
  • Всероссийская инициатива по веб-архивированию.


Проблема плохого CC. Люди могут ошибочно или злонамеренно указывать лицензию CC, но при этом не обладать правами на это.

Решение для хакатона: сервис проверки лицензии Creative Commons Проверь свою лицензию: проверить, например, с помощью обратного поиска по изображениям на наличие чего-то закопирайченного.

Сюжет 3. Угрозы open-инициативам (open data, open access и т.д.)



И вот эту таблицу они не могли выложить в машиночитаемом формате? У них, что там у всех лапки? WTF? вольная интерпретация очередной стоковой фотографии. Фото: jeshoots.com // Unsplash (CC-BY-SA)

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

Однако, даже в рамках исключительно легального подхода к свободным данным, существует т.н. проблема пейволлов, т.е. когда академические статьи присутствуют и в платном, и в бесплатном доступе, но находятся (в том числе, по ссылками DOI) в первую очередь порталы, которые предлагают платный доступ. За рубежом, подобную проблему решает браузерный плагин Kopernio, однако, как отмечают эксперты, там нет ничего под русский контент.

Решение для хакатона: создать русскоязычный аналог Kopernio или подключить к Kopernio русскоязычный контент (например, из Киберленинки).

Сюжет 4. Продукты искусственного интеллекта и авторское право



Скриншот сайта музыкальной ИИ-системы Av3ry

Формально, авторское право возникает на основе творческого труда человека. Существует правовая неопределенность с тем, что производит нечеловек (камеры внешнего наблюдения, рентгены и т.д.)? Сейчас искусственный интеллект создаёт неплохие произведения, однако нет правовой определенности, кого считать автором: копирайт находится у программиста алгоритма или в общественном достоянии?

Этот вопрос находится пока в серой зоне. Нет громких дел, вопрос пока в технической и юридической плоскости. Шоубизнес уже видит в ИИ угрозу, т.к. есть прецеденты, когда искусственный интеллект сначала генерирует мелодии, а потом массово отправляет их в общественное достояние, что потенциально может привести к падению доходов музыкантов.

Решения для хакатона: алгоритмы, освобождающие мелодии, картины, узоры и т.д. т.е. которые генерируются ИИ и сразу передаются в общественное достояние.

Сюжет 5. Поведенческий излишек собственность пользователей или собственность платформы




Принцип работы Solid. Источник: Private Internet Access Blog (CC-BY-SA)

Поведенческий излишек (behavioral surplus) термин, введенный Шошаной Зубофф, обозначающий деривативы поведенческих данных пользователей, используемые для продажи таргетированной рекламы и аналогичных услуг.

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

В этом сюжете следует отметить решения, связанные с аппаратным управлением собственными данными и вопросом прав принятия решений (decision rights) в области персональных данных. Т.е. основной вопрос знает ли пользователь о том, какие данные собираются, как они обрабатываются, кому продаются, и на каком этапе пользователь может отозвать или принять любое другое решение, касающееся своих данных или деривативов, произведенных на их основе.

Решения для хакатона: В контексте хакатона интересными направлениями являются эксперименты со следующими технологиями:

  • работа с проектом Solid Тима Бернерса-Ли;
  • технология (и в довесок к ней управленческая рамка) DoNotTrack, которую предлагается принять владельцам сайтов и создателям браузеров, чтобы уважать права принятия решений пользователей в отношении сбора их данных;
  • отдельные плагины для браузеров, которые контейнеризируют данные, собираемые для различных маркетинговых экосистем. Mozilla Firefox уже имеет подобный контейнер для данных, собираемых экосистемой Facebooka. Возможно стоит сделать подобные контейнеры для других маркетинговых систем: Alphabet, MRG, Yandex.


Сюжет 6. Защита авторских прав VS свободное использование произведений



Коллаж. Фото: Mika @mikafinland // Unsplash (CC-BY-SA)

В российской системе права нет fair use, свободное использование регулируется статьей ГК 1274. В этом смысле, считают участники круглого стола, россияне свободнее, чем граждане юрисдикций, где fair use однозначно определено с помощью четырех критериев: 1) назначение работы, цитирующей материал, 2) суть цитируемого материала, 3) объем цитаты, 4) влияние использования цитаты на рынок.

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

Теплица социальных технологий и РосКомСвобода благодарят Владимира Харитонова, исполнительного директора Ассоциации интернет-издателей, а также всех экспертов, принявших участие в круглом столе. Зарегистрироваться на хакатон цифрового гражданства и цифровых прав demhack.ru можно до 10-го сентября 2020 г.
Подробнее..

Парсим Википедию, фильтруя, для задач NLP в 44 строки кода

31.07.2020 12:10:12 | Автор: admin

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


Началось все с того, что мне нужны были определения для различных терминов. Термины и их определения, как правило, являются первым предложением на каждой странице Википедии. Пойдя по самому простому пути, я извлек все статьи и регулярками быстро выцепил все, что было нужно. Проблема в том, что объем определений перевалил за 500 Мб, причем, было слишком много лишнего, например, именованные сущности, города, годы и т.д. которые мне не нужны.


Я верно предположил, что у инструмента WikiExtractor (я буду использовать другую версию, ссылка будет ниже) есть какой-то фильтр и это оказался фильтр по категориям. Категории являются тегами для статей, которые имеют иерархическую структуру для организации страниц. Я на радостях выставил категорию "Точные науки", очень наивно полагая, что все статьи, которые относятся к точным наукам будут включены в список, но чуда не случилось у каждой страницы свой, крошечный, набор категорий и на отдельно взятой странице нет никакой информации о том, как эти категории соотносятся. Значит, если мне нужны страницы по точным наукам, я должен указать все категории, которые являются потомками для "Точных наук".


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


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


Работа проводилась на машине с Ubuntu 16.04, но, полагаю, что для 18.04 следующие инструкции не вызовут проблем.


Скачиваем и развертываем данные


Первым делом, нам необходимо скачать все необходимые данные вот отсюда, а именно


  • ruwiki-latest-pages-articles.xml.bz2
  • ruwiki-latest-categorylinks.sql.gz
  • ruwiki-latest-category.sql.gz
  • ruwiki-latest-page.sql.gz

Таблица categorylinks содержит связи между страницей, в смысле Википедии, и ссылкой на категорию вида [[Category:Title]] в любом месте этой страницы, информация. Нас интересуют столбцы cl_from, которая содержит id страницы, и cl_to, которая содержит название категории. Для того, чтобы связать id страницы, нам нужна таблица page (информация) со столбцами page_id и page_title. Но нам не нужно знать взаимосвязь всех страниц, мы хотим только категории. Все категории, или их большинство, как я понял, имеют свою страницу, значит нам нужен перечень всех категорий, чтобы фильтровать названия страниц. Эта информацию содержится в таблице category([информация](category table)) в столбце cat_title. Файл pages-articles.xml содержит текст самих статей.


Для работы с базами данных нам необходим mysql. Установить его можно, выполнив команду


sudo apt-get install mysql-server  mysql-client

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


$ mysql -u username -pmysql> create database category;mysql> create database categorylinks;mysql> create database page;

Создав базы данных, приступим к импорту. Он может занять весьма продолжительное время.


$  mysql -u username -p category < ruwiki-latest-category.sql$  mysql -u username -p categorylinks < ruwiki-latest-categorylinks.sql$  mysql -u username -p page < ruwiki-latest-page.sql

Формируем таблицу взаимосвязи категорий и восстанавливаем граф


Теперь нам нужно получить таблицу, в которой будет отражено как между собой связаны категории и для дальнейшей работы выгрузить таблицу в csv. Сделать это можно следующим запросом


mysql> select page_title, cl_to from categorylinks.categorylinks join page.pageon cl_from = page_id  where page_title in (select cat_title from category) INTO outfile '/var/lib/mysql-files/category.csv' FIELDS terminated by ';' enclosed by '"' lines terminated by '\n';

Результат будет выглядеть следующим образом. Не забудьте вручную добавить название столбцов.



Стоит заметить, что слева у нас потомок, а справа его предки, поэтому восстанавливать граф будем от потомков к предкам. Кроме того, есть еще очень много разных служебных категорий, которые мне лично не нужны, поэтому я их отфилтровал, сократив количество строк с примерно 1,6 миллионов до 1,1. Сделать все это можно при помощи следующего кода.


import pandas as pdimport networkx as nxfrom tqdm.auto import tqdm, trange#Filteringdf = pd.read_csv("category.csv", sep=";", error_bad_lines=False)df = df.dropna()df_filtered = df[df.parant.str.contains("[А-Яа-я]+:") != True] df_filtered = df_filtered[df_filtered.parant.str.contains("Страницы,_") != True]df_filtered = df_filtered[df_filtered.parant.str.contains("Статьи_проекта_") != True] df_filtered = df_filtered[df_filtered.parant.str.contains("Хорошие_статьи") != True] df_filtered = df_filtered[df_filtered.parant.str.contains("Перенаправления,_") != True] df_filtered = df_filtered[df_filtered.parant.str.contains("Избранные_списки_") != True]df_filtered = df_filtered[df_filtered.parant.str.contains("Избранные_статьи_") != True]df_filtered = df_filtered[df_filtered.parant.str.contains("Списки_проекта") != True] df_filtered = df_filtered[df_filtered.parant.str.contains("Добротные_статьи_") != True]df_filtered = df_filtered[df_filtered.parant.str.contains("Статьи") != True] # Graph recoveringG = nx.DiGraph()c = 0for i, gr in tqdm(df_filtered.groupby('child')):    vertex = set()    edges = []    for i, r in gr.iterrows():        G.add_node(r.parant, color="white")        G.add_node(r.child, color="white")        G.add_edge(r.parant, r.child)

Работаем с графом и извлекаем фильтрованные статьи


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


counter = 0nodes = []def dfs(G, node, max_depth):    global nodes, counter    G.nodes[node]['color'] = 'gray'    nodes.append(node)    counter += 1    if counter == max_depth:        counter -= 1        return    for v in G.successors(node):        if G.nodes[v]['color'] == 'white':            dfs(G, v, max_depth)        elif G.nodes[v]['color'] == 'gray':            continue    counter -= 1

В результате, в листе nodes у нас содержатся все категории начиная от указаной и до желаемой глубины от начала. Ниже представлен пример для начальной точки "Точные науки" с ограничением на глубину в 5 вершин. Всего их получилось около 2500 тысяч. Конечно, там содержатся категории, которые не относятся к точным наукам и, возможно, каких-то категорий, которые должны быть, там не окажутся, но с этим способом лучше не выйдет либо больше покрытие и больше ненужных категорий, либо наоборот. Однако, это гораздо лучше, чем вручную отбирать эти категории.


Результат нужно сохранить построчно в файл, он нам понадобится для фильтарции.


Подкатегории с вершины Точные науки
Точные_наукиИнформатикаCAMАвторы_учебников_информатикиАрхивное_делоАрхеографические_комиссииАрхеографические_комиссии_УкраиныВиленская_археографическая_комиссияАрхивистыАрхивариусыАрхивисты_по_алфавитуАрхивисты_по_векамАрхивисты_по_странамАрхивное_дело_на_УкраинеАрхивисты_Украины...Терминология_телевиденияТерминология_японских_боевых_искусствТермины_для_знаменитостейТермины_и_понятия_аниме_и_мангиТехнические_терминыТранспортная_терминологияФантастические_термины_по_их_изобретателямФилателистические_терминыФилософские_терминыЦирковые_терминыЭкономические_терминыЯпонские_исторические_терминыЭкономика_знанийИнкапсуляция_(программирование)...БесконечностьБесконечные_графыЕдиноеФилософы_математикиПрокл_ДиадохФункцииАрифметические_функцииМультипликативные_функцииБольшие_числаКусочно-линейные_функцииПреобразованияДискретные_преобразованияИнтегральные_преобразованияПреобразования_пространстваТеория_потенциалаТипы_функцийЧисла

Для того, чтобы применить эти категории для фильтрации для русского языка, однако, нужно кое-что подправить в исходниках. Я использовал эту версию. Сейчас там что-то новое, возможно, исправления ниже уже не актуальны. В файле WikiExtractor.py нужно заменить "Category" на "Категория" в двух местах. Области с уже исправленным вариантом представлены ниже:


tagRE = re.compile(r'(.*?)<(/?\w+)[^>]*?>(?:([^<]*)(<.*?>)?)?')#                    1     2               3      4keyRE = re.compile(r'key="(\d*)"')catRE = re.compile(r'\[\[Категория:([^\|]+).*\]\].*')  # capture the category name [[Category:Category name|Sortkey]]"def load_templates(file, output_file=None):...

if inText:    page.append(line)    # extract categories    if line.lstrip().startswith('[[Категория:'):        mCat = catRE.search(line)        if mCat:            catSet.add(mCat.group(1))

После этого нужно запустить команду


python WikiExtractor.py --filter_category categories --output wiki_filtered ruwiki-latest-pages-articles.xml

где categories это файл с категориями. Отфильтрованные статьи будут лежать в wiki_filtered.
На этом все. Спасибо за внимание.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru