21878

Разработка информационных фильтров для программируемых сетевых агентов

Дипломная

Информатика, кибернетика и программирование

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

Русский

2015-01-19

548 KB

10 чел.

Разработка информационных фильтров для программируемых сетевых агентов


РЕФЕРАТ

Баяндина Е.В. РАЗРАБОТКА ИНФОРМАЦИОННЫХ ФИЛЬТРОВ ДЛЯ ПРОГРАММИРУЕМЫХ СЕТЕВЫХ АГЕНТОВ, диссертация на соискание звания магистра математики: стр. 49, рис. 9, библ. 10 назв.

Ключевые слова: ИНФОРМАЦИОННЫЙ АГЕНТ ПРОГРАММИРОВАНИЯ, ИНФОРМАЦИОННОЕ ПРОСТРАНСТВО, СОЦИАЛЬНАЯ СЕТЬ, СЕТЕВОЙ АГЕНТ, АГЕНТСКАЯ ФУНКЦИЯ.

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

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

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


[1]

[2]
Теоретическое обоснование

[2.1] Социальные сети

[2.1.1] История социальных сетей

[2.1.2] Концепция социальных сетей

[2.1.2.1] Сильные и слабые связи

[2.1.2.2] Централизация в сети

[2.1.3] Применение принципов построения социальной сети на практике

[2.1.3.1] Live Journal, DBLP и адаптационное поведение

[2.2] Информационные агенты

[2.2.1] Определение понятия агента

[2.2.2] Автономный агент

[3]
Разработка сетевого агента

[3.1] Информационное пространство

[3.2] Функции, выполняемые агентом

[3.2.1] Взаимодействие агента с внешним миром

[3.2.1.1] Формирование фильтров поиска

[4]
Используемые технологии

[4.1] Технология ASP

[4.2] Разработка базы данных на MySQL

[4.3] Визуализация с помощью CallGraph

[5]
Описание реализации сетевого агента

[5.0.1] Выбор социальной сети для исследований

[5.0.2] Проектирование информационного пространства

[5.0.3] Реализация функций агента

[5.0.4] Модельное исследование

[6]
Подведение итогов

[7]
ЛИТЕРАТУРА


Введение

Современное развитие компьютерной техники повлияло не только на науку и технологию, но и на социальное поведение людей. Благодаря новым технологиям, люди получили возможность общения в сети. Одним из таких феноменов стали социальные сети в интернете. Произошел перенос социальной жизни миллионов людей в среду интернет, в результате чего появилась необходимость некой «структуризации» общения, а именно общения в клубе по интересам. Благодаря чему и возникли такие сайты, как «Живой журнал» (livejournal.com), «В контакте» vkontakte.ru, «Хабрахабр» habrahabr.ru и многие другие, так называемые социальные сети в интернете. Каждое новое явление нуждается в научном осмыслении и объяснении. Целью моей работы является создания инструментария для социологического и психологического исследования этого феномена.

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


Теоретическое обоснование

Социальные сети

Социальная сеть — это «группа людей (или организаций, или других социальных единиц), связи в которой являются социальными, а именно: дружбой, совместной работой или обменом информации» (Garton и др., 1997). Хотя интернет и является основным источником избыточной информации, он также позволяет пользователю эффективно управлять своими социальными сетями и таким образом получать ту информацию, которая ему необходима.

Эта область знаний находится на пересечении таких наук, как информатика, социология и математика. Поэтому изучение использование социальных сетей в общественных и деловых целях должно проходить при помощи информационных и коммуникационных технологий (information communication technologies (ICTs)), в том числе, интернета.

История социальных сетей

Термин «Социальная сеть» был введён задолго до появления Интернета и собственно современных интернет-сетей, ещё в 1954 году социологом из «Манчестерской школы» Джеймсом Барнсом.
Во второй половине 20 века социальные сети стали активно развиваться как научная концепция, сначала они стали популярны на западе, чуть позже пришли и к нам. Затем это обычное профессиональное понятие социологов превратилось в модную концепцию, являющуюся одной из центральных в концепции веб 2.0, которую как понятие впервые ввёл Тим О’Рейли 30 сентября 2005 года в своей статье «Tim O’Reilly — What Is Web 2.0».

Первыми компьютерными социальными сетями стали, как ни странно, всё те же группы людей, использовавшие для создания и поддержания социальных связей средства компьютерного общения, которыми стала электронная почта. Случилось это 2 октября 1971 года – день первого сообщения, отправленного на удалённый компьютер, а первыми пользователями социальной сети стали военные в сети ARPA Net. Это был первый шаг к созданию Интернета и современных социальных интернет-сетей.

Следующим шагом стало изобретение IRC (англ. Internet Relay Chat — ретранслируемый интернет-чат) – сервисной системы для общения в режиме реального времени. IRC была создана в 1988 году финским студентом Ярко Ойкариненом. Это были уже более «продвинутые» социальные сети, однако ещё далекие от современных.

Из изобретения компьютеров, электронной почты, IRC и многих других 7 августа 1991 года вытекло изобретение Интернета. Именно в этот день британский ученый Тим Бернерс-Ли впервые опубликовал первые интернет-странички и сделал тем самым следующий шаг к современным социальным сетям.

И вот в 1995 году появилась первая, приближенная к современным, социальная сеть Classmates.com, которую создал Рэнди Конрад, владелец компании Classmates Online, Inc. Этот сайт помогал зарегистрированным посетителям находить и поддерживать отношения с друзьями, одноклассниками, однокурсниками и другими знакомыми людьми. Сейчас в этой сети зарегистрировано более 40 миллионов людей, преимущественно из США и Канады.

Концепция Classmates оказалось успешной и с далёкого 2005 года она развивается и уже не только в пределах этой сети появились такие мировые гиганты, как MySpace, FaceBook, Bebo и LinkedIn или гиганты рунета Одноклассники.ру, ВКонтакте, МойМир и МойКруг.

Концепция социальных сетей

Первые шаги в исследовании социальных были сделаны социологом Mark Granovetter и математиком Linton C. Freeman, которые написали основополагающие материалы еще до широкого распространения интернета.

Сильные и слабые связи

M. Granovetter (1973) заявил, что внутри социальных сетей слабые связи имеют гораздо большее значение, чем сильные. Он объяснял это тем, что через слабые связи информация «просачивается» быстрее. Это происходит, по его мнению, из-за того, что слабые связи «важнее для отдельных пользователей при их «вливании» и взаимодействии в сообществе, тогда как в результате сильных связей образуется тесная локальная группа».

В своей докторской диссертации Granovetter показал, что люди чаще находят работу благодаря своим слабым связям, а не сильным. Слабые связи — зто связи с людьми, которых мы почти не знаем, с которыми не делимся своим переживаниями и не поддерживаем отношения; но они оказываются полезнее всего. Это происходит из-за того, что люди с сильными связями делятся, в основном, одними и теми же данными или ресурсами, тем самым они менее полезны друг другу.

Наравне с ними, Granovetter определил и отсутствующие связи (также называемые «кивающими» (nodding)) — такие связи испытывают недостаток эмоциональной составляющей, времени, доверия и взаимности — как слабые. Кто-то, живущий с вами на одной улице, кому вы киваете каждый день, будет как раз примером такой связи. Отсутствующая связь — это персона, присутствующая в вашей жизни, но с которой у вас нет каких бы то ни было взаимоотношений. Связь с этим человеком будет вам полезна еще менее, чем слабая связь.

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

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

Централизация в сети

Для дальнейшего рассмотрения механизмов работы социальной сети необходимо ввести понятия центрирования и зависимости одного узла от остальных. В это связи будет полезна статья Linton C. Freeman по поводу центрирования в социальных сетях (Freeman, 1979). Freeman исследовал, как “граф центрирования” зависит от различий в выборе точек центрирования. Он также выделил три конкурирующие принципа, относящиеся к определению центрирования, а именно: ранг узла, контроль и независимость.

Ранг узла зависит от числа узлов, соединенных с данным. Проще говоря, он равен числу ваших друзей в социальной сети. Чем больше у вас друзей, тем вы важнее.

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

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

Рис. 1. Центр группы

  •  Ранг узла: у C и K наибольшее количество узлов, с которыми они связаны.
  •  Контроль: D служит мостом между большим количеством узлов и контролирует потоки информации.
  •  Независимость: K имеет достаточно близкую связь с остальными узлами через несколько других (I и Q).

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

Применение принципов построения социальной сети на практике

Принципы структуры узлов, силы связей и центральности можно применить и к существующим социальным сетям в интернете. Хорошим примером может послужить сравнительное исследование, проведенное Ravi Kumar, Jasmine Novak и Andrew Tomkins (2006). Они сравнили две социальных сети, Flickr и Yahoo 360, которые на тот момент в сумме насчитывали пять миллионов пользователей. Исследователи отметили, что социальные сети развиваются по стандартному сценарию, а именно: сначала стремительный рост, затем некоторый период падения, после него медленный, но стабильный рост. Ravi Kumar, Jasmine Novak и Andrew Tomkins также отметили, что социальная активность бывает трех типов:

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

Рис. 2а. Рыжая группа обозначает центральную часть. Голубым цветом отмечена периферия, состоящая из отдельных небольших групп. Серыми отмечены одиночки

Анализ узлов для таких сетей показал, что примерно половина узлов находится за пределами большого центра, в котором сосредоточено основное центрирование. Для такого центрирования использовалось определение «контроль». В исследовании также отмечалось большое количество «звезд» в периферии, каждая из которых представляет собой мини социальную сеть. Такие группы обычно имеют одного лидера, которого можно рассматривать как точку центрирования, а остальных — как его спутники, связанные с центральным лидером, но не друг с другом. В анализе Ravi Kumar, Jasmine Novak и Andrew Tomkins к таким группам принадлежат одна треть пользователей в Flickr и примерно десять процентов в Yahoo! 360.

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

Рис. 2б. Между центром и периферийной группой возникают связи.

Рис. 2в. Периферийная группа присоединяется к центру

Какие из этого можно сделать выводы? При проектировании своей сети нужно учесть, что большая ее часть будет расположена вне центральной части. По существу, социальная сеть представлена тысячами подсетей. Чем больше возможностей вы предоставите этим сетям для развития, тем больше будет общий рост.

Live Journal, DBLP и адаптационное поведение

Большинство социальных сетей вырастают на энтузиазме первых пользователей, которые переводят свои контакты из реального мира в интернет и выступают в роли «звезд». Но также важно рассмотреть развитие социальных сетей, основанное на внутренней активности пользователей. Lars Backstrom, Dan Huttenlocher и Jon Kleinberg (2006) анализировали создание групп в больших социальных сетях. Они использовали данные с LiveJournal о десяти миллионах пользователей и DBLP, базу данных соавторов в публикациях с конференций, чтобы изучить, как рост сообществ связан с социальными сетями, лежащими в их основе. Они показали, что у пользователя больше стимулов вступить в социальную сеть, если его друзья уже связаны в ней друг с другом. Несколько тесно связанных в социальной сети друзей пользователя повышают доверие к ней.

В статье последовательно показано, что основной рост идет за счет большого центра, в котором узлы обладают наибольшим центрированием. Подчеркивая важность большого центра, Lars Backstrom, Dan Huttenlocher и Jon Kleinberg подтвердили теорию Ravi Kumar и др. (2006) В их статье поднимается очень важный вопрос: «Когда отдельный узел узнает о поведение своих соседей, какие именно условия и связи внутри сети заставляют его это поведение принять?»

Другой группой исследователей, которая изучала базу данных DBLP, были Deng Cai, Zheng Shao, Xiaofei He, Xifeng Yan, Jiawei Han (2006) Они подчеркнули тот факт, что каждый узел принадлежит к нескольким разных социальным сетям, каждая из которых влияет на общие шаблоны формирования групп, развития и обмена информацией в сети. В результате, они заключили, что каждая сеть не может изучаться независимо, а только в контексте других существующих сетей. Ведь возможно и такое поведение пользователя, когда он покидает одну социальную сеть по причине активности других пользователей в других социальных сетях. Все это поднимает не менее важный для разработчиков вопрос: «Насколько активность в одной социальной сети зависит от активности других».

Особый интерес представляет тот факт, что сейчас Google lab тратит свои силы на разработку Social Stream. Этот проект, по идее, должен стать метасоциальной сетью, в которой будут сведены разные социальные сети. Social Stream (разрабатываемся в тесном сотрудничестве с университетом Carnegie Mellon) сейчас находится в состоянии закрытой беты. Еще одним важным вопрос для изучения, заключается в следующем: «Если пользователь получит доступ к управлению своей активностью в разных социальных сетях через единый интерфейс, как это повлияет на его сетевые предпочтения».

Понятно, что социальные сети в Интернете всегда будут развиваться как по причине внешнего воздействия, так и из-за активности пользователей внутри них. Brian S. Butler (2001) подчеркнул это, когда указал на следующую характерную особенность: размер социальной сети оказывает на саму сеть сложное влияние, чем больше одни пользователи добиваются успеха, тем больше других пользователей постигает неудача. Было указано на тот факт, что необходимо достигать баланса между плюсами и минусами размера сети и информационной активностью. Поэтому до сих пор нерешенным вопросом остается определения того, какой тип пользовательской активности и в какой части сети (в большом центре, на периферии или среди одиночек) оказывает больше всего влияния на саму сеть.

Информационные агенты

Обычная вычислительная программа, например, программа расчета колебаний струны, запускается на ЭВМ, получает входные данные, выполняется как последовательность заранее написанных команд, выводит результат. До следующего запуска извне (если он вообще состоится) она пребывает в состоянии "комы". В программе расчета колебаний струны, конечно, фигурирует такой параметр как время, но он используется наряду с другими параметрами, такими как амплитуда, и никакого отношения к реальному времени, в котором выполняется программа, не имеет.

Программа реального времени функционирует (запускается, приостанавливается, возобновляется, завершается, запускается вновь) в соответствии с внешними, физическими, а не абстрактными, часами. Это ее главный отличительный признак.

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

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

Эти и другие важные отличия от обычной программы привели к возникновению понятия программного агента и более широкого понятия – автономного агента.

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

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

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

Определение понятия агента

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

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

Б.Хайес-Рот считает, что "мыслящие агенты непрерывно выполняют три функции: восприятие динамически изменяющихся условий окружения; действия по влиянию на окружение; логический вывод для интерпретации получаемой информации, решения проблем, построения заключений и определения действий".

М.Вулдридж и Н.Дженнингс разделяют слабое и сильное понятия агента. Слабый агент рассматривается как система со свойствами автономности, возможности работать в обществе (social ability), реактивности, целенаправленности. Сильное понятие агента предполагает возможность непредписанных действий, предпринимаемых на основе собственных "идей".

Их определение включает следующие свойства:

1) автономия: агенты действуют без непосредственного вмешательства людей или чего-либо еще, определенным образом контролируют свои действия и внутреннее состояние;

2) социальные возможности: агенты взаимодействуют с другими агентами (и, возможно, людьми) с помощью некоторого языка;

3) реактивность: агенты воспринимают свое окружение (которое может быть физическим миром, пользователем – через графический пользовательский интерфейс, набором других агентов, Интернетом, или комбинацией всего этого) и отвечают периодически так, чтобы изменить что-то в своем окружении;

4) целенаправленность: агенты не просто отвечают своему окружению, они способны на целенаправленное поведение и проявление инициативы.

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

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

Достаточно ограниченное число агентов, что могут считаться полуинтеллектуальными (из-за своей простоты, слабой способности к принятию решений, ограниченности взглядов на внешний мир и плохой обучаемости) перечислены в следующем документе: Third Canadian Edition of «Management Information Systems for the Information Age» *1. Согласно нему, существует только 4 типа таких интеллектуальных агентов:

1. Роботы по закупкам.

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

2. Пользовательские или персональные агенты

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

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

  •  Играют в компьютерной игре как ваш оппонент или патрулируют области в игре для помощи вам
  •  Собирают новости. Существует несколько версий таких роботов, к примеру CNN
  •  Ищут информацию по выбранному предмету
  •  Самостоятельно заполняют web-формы, сохраняя информацию для последующего использования
  •  Просматривают веб-страницы, ища и подсвечивая ключевую информацию
  •  «Дискутирует» с вами на различные темы, от ваших страхов до спорта

3. Управляющие и наблюдающие агенты

Управляющие агенты, также известные как «предсказывающие агенты» ведут наблюдение и отправляют отчеты. К примеру, в NASA’s Jet Propulsion Laboratory есть агент, следящий за состоянием инвентаря, планированием, составлением расписания. Такие агенты обычно ведут наблюдение за компьтерными сетями и следят за конфигурацией каждого компьютера, подключенного к сети

4. Добывающие информацию агенты

Такие агенты действуют в хранилище данных, собирая информацию. Хранилище данных объединяет в себе информацию из разных источников. Сбор информации — это процесс поиска данных для последующего использования, например, для увеличения продаж или привлечения покупателей. 'Классификация' — один из наиболее часто используемых приемов для сбора информации, который находит и категоризирует образы в информации. Добывающие информацию агенты также могут обнаруживать ключевые изменения тенденций развития и предупредить вас о наличии новой информации.

Автономный агент

С.Франклин и А.Грэссер в 1996 году предложили следующее обобщенное определение агента:

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

Расшифровка этого определения дается перечнем свойств, которыми должен обладать автономный агент:

  •  реактивность;
  •  автономность;
  •  целенаправленность;
  •  непрерывность функционирования;
  •  коммуникативность;
  •  обучаемость (адаптивность);
  •  мобильность;
  •  гибкость;
  •  индивидуальность.

Разные авторы не совсем одинаково трактуют перечисленные свойства. Попытаемся объяснить их подробнее.

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

Не все изменения окружения становятся известными (доступными) сенсорам агента. Это вполне естественно. Ведь и человек не воспринимает звуки частотой свыше 30 кГц, радиоволны и т.д. Таким образом, окружение не является полностью наблюдаемым для агента.

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

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

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

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

Свойство коммуникативности означает, что агент общается с другими агентами (включая людей), используя для этого некоторый язык. Это не обязательно единый язык для всех агентов. Достаточно, чтобы у пары общающихся агентов был общий язык. Язык может быть сложным как, например, естественный язык. Но может быть и примитивным: обмен числами или короткими словами. Если многословные фразы сложного языка несут всю информацию, как правило, в себе, то слова простого языка предполагают "умолчание": обе стороны диалога "знают", о чем идет речь (как в известном анекдоте о занумерованных анекдотах).

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

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

Свойство гибкости означает, что действия агента не предписаны. Это, конечно, весьма относительное утверждение. Имеется в виду, что программа, заложенная в агента, предполагает выбор из многочисленных вариантов поведения. Такого рода выбор производится если не на каждом шагу, то достаточно часто, и зависит от выполнения или невыполнения различных условий. Выбор не является ни случайным, ни недетерминированным. Гибкость означает, что действия агента не примитивны, не легко предсказуемы.

Свойство индивидуальности означает наличие персональных свойств, данных, возможно, "эмоционального" состояния.

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


Разработка сетевого агента

Для того, чтобы разработать сетевого агента, необходимо сначала определить каким образом «мыслит» агент. То есть формализовать основные понятия «языка» агента.

Информационное пространство

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

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

Для этого представим информационное пространство как структуру данных, построенную на атомарном элементе, который назовем «объект». Объект характеризуется набором атрибутов (свойств), которые могут быть обязательными и необязательными, уникальными и повторяющимися. Основным объектом такого информационного пространства является участник социальной сети, формально в качестве участника рассматривается его профиль (учетная запись). Как известно участие в социальной сети не предполагает предоставления полной личной информации о человеке. Поэтому возникает возможность для создания и ведения нескольких профилей для одного участника, кроме того, возможна ситуация при которой под именем, зарегистрированным в сети и принадлежащим реальному человеку скрывается совершенно другое лицо. Таким образом, в рамках социальной сети имеет смысл рассматривать только профили участников сети, учитывая, что вся личная информация, хранящаяся в данном профиле, может не иметь никакого отношения к реальному человеку, участнику данной сети.

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

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

Предлагаем записывать характеристики объектов в следующем виде:

ОБЪЕКТ название типа

АТРИБУТ

имя

тип (уникальный / повторяемый)

обязательный (да / нет)

тип объекта, используемого для реализации атрибута

Исходя из вышесказанного, запишем объект схематично (на примере объекта профиль c атрибутом пол).

ОБЪЕКТ типа = профиль

АТРИБУТ (уникальный идентификатор)

имя = идентификатор

тип = уникальный

обязательный = да

тип объекта, используемого для реализации атрибута = число

АТРИБУТ (пол)

имя = пол

тип = повторяемый

обязательный = нет

тип объекта, используемого для реализации атрибута = text

Хранение данных естественно осуществлять при помощи баз данных. Важно отметить, что для настройки фильтрации данных важно, что любой атрибут объекта, кроме уникального идентификатора может быть отключен, то есть не учитываться при поиске информации, поэтому у каждого атрибута объекта  добавим специфическое свойство «выбранный», что означает, что поиск должен учитывать, что данный атрибут был выбран пользователем для отображения. Вся информация об объекте хранится в базе данных. Т.к. сетевой агент не является полностью интеллектуальным, необходимо определить множество возможных атрибутов на стадии проектирования. Для практически любой социальной сети характерна возможность, как личного общения, так и общения в сообществах, что реализовано за счет создания совместных ресурсов. Таким образом, в информационном пространстве на основе социальной сети можно выделить два типа объектов, такие как участник (user) и группа (group). Похожесть объектов в том, что они подчинены единой структуре социальной сети, что дает объекту group некоторые свойства объекта user. На пример в социальной сети Живой журнал в профиле любой группы можно увидеть, какие пользователи в нее входят, так же там есть такой атрибут как интересы, что естественнее воспринимать как качество человека, а не группы. Такая двойственность объектов накладывает ограничения на возможность хранения информации о них в базе данных. Т.к. для последующего использования хранение в одной таблице объектов разных типов не приемлемо. Главным свойством социальной сети является способность к общению участников между собой, формально объекты типа профиль могут взаимодействовать между собой. Собственно, для социологии интересно именно это взаимодействие. По этой причине необходимо учитывать связи объектов между собой, что приводит к дополнению атрибутов ссылками одного объекта на другой. Для возможности создания информационных фильтров, кроме уже обозначенных атрибутов объектов, необходимо также сохранять информацию о параметрах заданных пользователем.

Функции, выполняемые агентом

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

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

Взаимодействие агента с внешним миром

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

Агент

Языки взаимодействия

Java

Сервер

Транспортный механизм

Рис. 3 Сетевая модель агента

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

Сервер обеспечивает функционирование агента на нижнем уровне с помощью: алгоритмов навигации, транспортных протоколов, средств управления сетевыми ресурсами (сервера имен и т.д.) и мониторинга состояния объекта.

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

рис. 4 Схема работы агента в сети

Формирование фильтров поиска

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

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

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

Принципы функционирования агента

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

IF (условие) THEN действие

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

рис. 5 Агентская функция

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

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

рис.6 Принципиальная схема базы данных


Используемые технологии

Для реализации вышеизложенных идей нам потребуются специфические технологии, обзор которых будет произведен в данном разделе. Эти технологии – сервер IIS, технология ASP, скриптовый язык JavaScript и MySQL.

Сервер IIS необходим для того, для того чтобы получить web-сервер на компьютере, т.к. для реализации клиент/серверной архитектуры приложения необходимо развернуть сервер.

Технология ASP работает с сервером IIS и дает возможность написания серверных сценариев. Что необходимо организации клиент-серверного взаимодействия.

Основным языком написания кода является скриптовый язык JavaScrpit,который используется для написания и клиента и сервера.

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

Web-сервер IIS

Основным компонентом IIS является веб-сервер — служба WWW (называемая также W3SVC), которая предоставляет клиентам доступ к сайтам Всемирной паутины по протоколам HTTP и, если настроено, HTTPS.

Один сервер IIS может обслуживать несколько сайтов. Каждый сайт имеет следующие атрибуты:

  •  IP-адрес сайта;
  •  TCP-порт, на котором служба WWW ожидает подключений к данному сайту;

Заголовок узла (Host header name) — значение заголовка Host запроса HTTP, указывающее обычно DNS-имя сайта.

Таким образом, например, один сервер с одним IP-адресом может обслуживать на одном TCP-порту несколько сайтов. Для этого необходимо создать несколько DNS-записей, указывающих на IP-адрес сервера, и различать сайты по заголовкам узла.

Технология ASP

Active Server Pages — это среда программирования, которая обеспечивает возможность комбинирования HTML, скриптов и компонент для создания динамических Web-приложений. Возможность встраивания в Web-страницы скриптов (кода, написанного на языке программирования, например, VBScript или JScript) позволяет логичным образом объединить оформление с данными, полученными из различных источников, например, из БД.

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

Использование Active Server Pages не требует специфичных браузеров. Все ASP-скрипты запускаются и выполняются на Web-сервере, причем брaузер получает только результирующие HTML-файлы. Microsoft Internet Information Server, начиная с версии 3.0, поддерживает Active Server Pages.

Рассмотрим последовательность функционирования ASP. Клиент запрашивает ASP-страницу на Web-сервере. Сервер принимает запрос и начинает его обрабатывать. По расширению файла (.asp) определяет, что данный файл содержит ASP-скрипт, и начинает анализировать его содержимое, последовательно интерпретируя и выполняя вставки ASP-кода. ASP-код, в свою очередь, может содержать обращения к различным источникам данных, осуществлять обработку полученных данных и добавлять содержимое генерируемой страницы. В результате формируется «обычная» HTML-страница (уже не содержащая ASP-кода), которая и отправляется обратно клиенту.

Внешне ASP функционирует также, как CGI. Аналогичным образом передаются параметры (формат строки запроса) и осуществляется вывод результатов. Однако производительность ASP оказывается гораздо выше, т. к. при каждом запросе не происходит отдельной загрузки ASP-интерпретатора. Использование компонент ActiveX также значительно повышает производительность Web-сервера. В моей работе использована компорнента ickHTTP.

x = Server.CreateObject("ickHTTP.ickHTTP");

x.ContentType = "application/x-www-form-urlencoded";

x.Accept = "text/*";

}catch(e){

hrow Error("ickHTTP object is not created: "+e.description);

}

x.ReceiveBufferSize = buffer_size;

x.URL = url;

x.URLPort = port;

x.URLPath = url_path;

x.PostData = postdata;

Разработка базы данных на MySQL

MySQL является относительно небольшой и быстрой реляционной СУБД основанной на традициях Hughes Technologies Mini SQL (mSQL).

Приемущества использования MySQL:

  •  Многопоточность. Поддержка нескольких одновременных запросов.
  •  Оптимизация связей с присоединением многих данных за один проход.
  •  Записи фиксированной и переменной длины.
  •  ODBC драйвер в комплекте с исходником
  •  Гибкая система привилегий и паролей.  До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.
  •  Поддержка ключевых полей и специальных полей в операторе CREATE.
  •  Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках.
  •  Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице.
  •  Легкость управления таблицей, включая добавление и удаление ключей и полей

Наиболее простой способ работы с MySQL сводится к использованию программы MySQL. Это клиентская часть СУБД MySQL. Можно выполнять команды SQL непосредственно из командной строки системы unix или из интерактивного режима MySQL. Также доступен 32-битный ODBC драйвер для MySQL. Он позволяет запрашивать и получать данные из других источников с поддержкой ODBC.

Визуализация с помощью CallGraph

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

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

Для работы с программой CallGraph был разработан формат файла, в котором хранится описание графа для визуализации.

Формат файла:

{{[i], (x, y, z), q, "название", r}, {[j], m, k}, ...} ...

i – номер вершины, начиная с 0

x, y, z – координаты i вершины

q – заряд i вершины

name - имя i вершины (не требуется, по умолчанию "")

r - радиус i вершины (не требуется, по умолчанию 0.5)

j – номер вершины для связи i -> j

m – коэффициент взаимодействия i -> j

k – коэффициент электростатического взаимодействия i -> j (не требуется, по умолчанию 1)

Примеры визуализации графов:

 

Рис. 7 Первоначальная случайная расстановка

Рис.8 Расположение после обработки


Описание реализации сетевого агента

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

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

Выбор социальной сети для исследований

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

Проектирование информационного пространства

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

ОБЪЕКТ типа участники, который в нашем случае будет содержать:

  •  Уникальный идентификатор
  •  Имя участника
  •  Местоположение
  •  Интересы
  •  Идентификаторы друзей
  •  Количество друзей
  •  Идентификаторы групп
  •  Количество групп

ОБЪЕКТ типа группы, с полями:

  •  Уникальный идентификатор
  •  Имя группы
  •  Дата последнего сообщения

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

‘Дата поиска’ + ‘индекс последней записи+1’

Поскольку индексация в таблице предполагается сквозная, такой идентификатор будет уникальным.

Реализация функций агента

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

form.htm:

<form method="post" action="run.asp">

<input type=text name="var1" value="default">

<input type=hidden name="var2" value="var2value">

<input type=submit value="Обработать">

</form>

run.asp:

var1 = Request("var1")

var2 = Request("var2")

После того как параметры будут переданы. Агент начинает поиск информации. Поскольку проводится социологическое исследование и у нас нет предпочтений в выборе профиля, с которого начинается исследование, то будем выбирать первый профиль случайным образом. Далее с помощью компоненты ActiveX ickhttp получим страничку html кода, который собственно и содержит профиль пользователя. Далее за счет регулярных выражений можно получить информацию, которая будет удовлетворять фильтрам, установленным пользователем. При таком подходе возникает проблема интерпретации страницы профиля участника, т.к. в разных социальных сетях формат хранения профиля различен. В модельной реализации используется только одна социальная сеть, поэтому в данном случае проблема решена. После того, как из кода страницы получены необходимые данные, происходит их сохранение в базу данных. Затем поиск ведется по друзьям участника, профиль которого был выбран случайно. Таким образом, получается некий ориентированный граф, где вершины – это участники, а ребра – это их связи. Из-за особенностей построения профиля в Живом Журнале есть возможность определить взаимных друзей. Кроме этого можно определить принадлежность участника сети к разным группам. В результате поиска пользователь, либо просмотрит выбранное им количество профилей, либо поиск может завершиться аварийно. После этого, если необходимо визуализировать полученные данные, то можно будет использовать программу CallGraph. Т.к. она работает с файлом определенной структуры, то была написана соответствующая процедура, формирующая такой файл.

Модельное исследование

Для модельного исследования были выбраны следующие параметры:

  •  Работа с социальной сетью LiveJournal
  •  Пользовательские параметры: местоположение, интересы, друзья, группы
  •  Визуализация полученного результата
  •  Количество обработанных профилей=40.

Полученный результат показывает сложную структуру сети (рис.7). В рамках модельного исследования рассматривалась, только одна группа. По полученным результатам сложно судить о сильной связности в данной группе. Как видно в ней преобладают сильные связи. Более детальное исследование группы можно провести только с учетом не только фактора связи участников, но и других параметров.

рис. 9


Подведение итогов

В начале исследования нами была поставлена задача: облегчить работу пользователя с большими объемами данных при помощи агента – программы, анализирующей информацию в хранилище данных. Стремление сделать программу анализа информации более сообразительной и полезной пользователю заставило искать пути обучения и самообучения агента. Результатом явилась модель сетевого агента, построенного на основе применения фильтров, задаваемых пользователем, которые в свою очередь преобразовывались в агентские функции. Модель получила название «сетевой агент», т.к. выполняются не все критерии, необходимые для того, чтобы назвать агента интеллектуальным в смысле, вкладываемом в это понятие в рамках терминологии искусственного интеллекта.

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

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

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


ЛИТЕРАТУРА

  1.  Michael David Travers, Programming with Agents: New metaphors for thinking about computation. - © Massachusetts Institute of Technology, 1996
  2.  Toru Ishida, Q: A Scenario Description Language for Interactive Agents - Department of Social Informatics, Kyoto University JST CREST Digital City Project IEEE Computer October 2002 (to appear)
  3.  Backstrom, L., Huttenlocher, D., Kleinberg, J., and Lan, X. (2006.) Group formation in large social networks: membership, growth, and evolution. In Proceedings of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM Press: Philadelphia, PA, USA.
  4.  Butler, B. (2001.) Membership size, communication activity, and sustainability: a resource-based model of online social structures. Information Systems Research, 12 (4), p. 26.
  5.  Cai, D., Shao, Z., He, X., Yan, X., and Han, J. (2005) Mining hidden community in heterogeneous social networks. In Proceedings of the 3rd International Workshop on Link Discovery. ACM Press: Chicago, Illinois.
    Freeman, L. C. (1979.) Centrality in social networks conceptual clarification. Social Networks, 1 pp. 215-239.
  6.  Garton, L., C. Haythornthwaite and B. Wellman. (1997.) Studying online social networks. Journal of Computer Mediated Communication, 3 (1).
  7.  Granovetter, M. S. (1973) The strength of weak ties. American Journal of Psychology, 78 (6), pp. 1360-1380.
    Johnson, B., Lorenz, E. and Lundvall, B. (2002.) Why all this fuss about codified and tacit knowledge? Industrial and Corporate Change, 11 (2), pp. 245-262.
  8.  Kumar, R., J. Novak and A. Tomkins. (2006.) Structure and evolution of online social networks. Proceedings of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 611-617. ACM Press: Philadelphia, PA, USA.
  9.  N. Kasabov, Introduction: Hybrid intelligent adaptive systems. International Journal of Intelligent Systems, Vol.6, (1998) 453—454.
  10.  Haag, Stephen. «Management Information Systems for the Information Age», 2006. Pages 224—228

1 По [10]


Внешняя среда

Агент

енсоры

Профиль

Сохранить

Условия

Запрос

#*Идентификатор_
участника

*Имя

0Параметры

*Идентификатор_
поиска

Участники

Участники-Группы

#*Идентификатор_
поиска

#*Идентификатор_
участника

#*Идентификатор_
группы

#*Идентификатор_
группы

*Название

0Параметры

*Идентификатор_
поиска

Группы

  1.  

 

А также другие работы, которые могут Вас заинтересовать

61311. Сценарій «Пара року» 21.96 KB
  Для пари №1 Дівчині: Тебе знайомлять із юнаком. Хто має подати руку першим ти чи він Дівчина Хлопцеві: Ідучи із дівчиною вулицею ти маєш триматися праворуч чи ліворуч від неї Праворуч...
61313. РАЗРАБОТКИ КАЛЛИГРАФИЧЕСКИХ МИНУТОК ДЛЯ УЧАЩИХСЯ НАЧАЛЬНЫХ КЛАССОВ 18.49 KB
  Какой буквой он обозначается эс Какой звук еще обозначает буква эс c Охарактеризуйте его согл. Что общего в этих словах буквах тэ Какие звуки обозначает эта буква т т. Буква заблудилась.
61315. Урок закрепления знаний по теме «Нумерация. Числа больше 1000» 20.08 KB
  Учитель: Здравствуйте ребята Меня зовут Ирина Павловна. Учитель: Сегодня на уроке мы закрепим с вами знания по теме Нумерация. Учитель: Откройте учебник на странице 35.