УДК 004.825
А. И. Капустина \ Д. Е. Пальчунов 1 2
1 Новосибирский государственный университет ул. Пирогова, 2, Новосибирск, 630090, Россия
2 Институт математики им. С. Л. Соболева СО РАН пр. Акад. Коптюга, 4, Новосибирск, 630090, Россия
[email protected], [email protected]
РАЗРАБОТКА ОНТОЛОГИЧЕСКОЙ МОДЕЛИ ТАРИФОВ И УСЛУГ СОТОВОЙ СВЯЗИ, ОСНОВАННОЙ НА ЛОГИЧЕСКИ ПОЛНЫХ ОПРЕДЕЛЕНИЯХ ПОНЯТИЙ
Статья посвящена разработке онтологической модели тарифов и услуг оператора сотовой связи. Онтологическая модель строится по принципу четырехуровневой модели представления знаний. Для создания онтологии используются точные и логически полные определения понятий. Их формальное описание представлено в логике предикатов, а также в OWL DL. Порождение новых знаний в онтологической модели реализуется при помощи автоматизированных средств логического вывода. Разрабатываемая программная система предназначена для того, чтобы предлагать пользователям наиболее подходящие услуги и тарифы данного оператора сотовой связи на основе анализа потребностей пользователя.
Ключевые слова: онтология, онтологическая модель, тарифы и услуги сотовой связи, представление знаний, порождение знаний, формальное определение понятия, атомарная диаграмма.
Введение
Статья посвящена разработке онтологической модели, предназначенной для того, чтобы предлагать пользователям наиболее подходящие услуги и тарифы данного оператора сотовой связи. Разработка онтологии тарифов и услуг оператора сотовой связи основана на формализации ключевых понятий данной предметной области в виде набора точных и логически полных определений. Точность определений понятий обеспечивается тем, что они формулируются на языке логики предикатов первого порядка. Далее эти определения автоматически транслируются в OWL DL [1].
В настоящее время мобильные телефоны стали неотъемлемой частью жизни каждого человека. Согласно исследованию AC&M Consulting, число абонентов мобильной связи с каждым годом увеличивается. По итогам II квартала 2016 г. в России насчитывалось 251,6 млн абонентов сотовой связи, что на 1,03 млн больше, чем в I квартале 2016 г.
Мобильные операторы ведут конкурентную борьбу за пользователей, стараясь привлечь к как можно больше абонентов. Создаются новые тарифы и услуги, для того чтобы удовлетворить потребности каждого абонента. Из-за этого количество предоставляемых тарифов быстро растет, и выбрать для себя подходящие тарифы и услуги становится все сложнее. Для поиска исчерпывающей информации о тарифах и услугах оператора сотовой связи абоненту необходимо пересмотреть огромный объем информации. Сложность такого выбора
Капустина А. И., Пальчунов Д. Е. Разработка онтологической модели тарифов и услуг сотовой связи, основанной на логически полных определениях понятий // Вестн. НГУ. Серия: Информационные технологии. 2017. Т. 15, № 2. С. 34-46.
ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2017. Том 15, № 2 © А. И. Капустина, Д. Е. Пальчунов, 2017
зачастую увеличивается из-за непрозрачности и непонятности интерфейсов, предоставляемых операторами сотовой связи для своих клиентов.
Чтобы избавить пользователя от этих проблем, разрабатываемая программная система должна решать следующие задачи:
• предоставлять пользователям информацию о тарифах и услугах в понятном и доступном виде;
• предоставлять пользователям удобный интерфейс для поиска выгодных тарифов;
• для уменьшения расходов предоставлять возможность комбинирования тарифов с различными услугами.
Для решения этих задач разрабатывается онтологическая модель тарифов и услуг оператора сотовой связи. Особое внимание при создании онтологии уделяется точным и логически полным определениям понятий. Определения понятий представляются в формальном виде логики предикатов, а также делается отображения из логики предикатов в представление на языке OWL DL 1.
Системы подбора оптимальных тарифов и услуг
В настоящее время существует много систем, предоставляющих рекомендации пользователям по подбору тарифов. К таким системам относятся Moneymatika, Tarifer, калькулятор тарифов Top Nomer и др.
Система Tarifer 2 анализирует детализацию услуг, предоставленных пользователю, рассчитывает, сколько пользователь заплатил бы за аналогичные услуги на других тарифах, и предоставляет подробный отчет. Отчеты предоставляются платно в том случае, если система обнаруживает, что можно сэкономить, если будет использован другой тариф. Если же система обнаружит, что пользователь уже имеет оптимальный тариф, то отчет предоставляется бесплатно.
Система не позволяет вручную вводить данные об использовании ресурсов оператора сотовой связи. Tarifer не может предложить пользователю использовать новые услуги, чтобы уменьшить расходы на мобильную связь, а только найдет аналогичные услуги у других мобильных операторов.
Система Moneymatika 3 - калькулятор мобильных тарифов и услуг, может рассчитать и выбрать оптимальный тариф, а также сравнить его с предложениями других операторов. Для наиболее полного и достоверного расчета оптимального варианта в расчете используется информация о количестве исходящих звонков и средней длине звонка, о количестве СМС и объеме используемого интернет-трафика.
Возможен расчет с дополнительными условиями: с учетом типа номера (федеральный или прямой) и способа оплаты (предоплата или постоплата), количества и продолжительности местных, междугородных и международных звонков, количества ММС.
Как только пользователь подберет оптимальный для себя тариф, ему предлагается ознакомиться с перечнем доступных к тарифу услуг и опций и самому сделать выводы относительно выгоды от их подключения.
Moneymatika позволяет получить наиболее полную информацию обо всех тарифах и опциях некоторых операторов. Предоставляется подробное описание не только действующих тарифов и услуг, но и архивных (подключение к таким тарифам закрыто, однако они все еще могут использоваться многими абонентами).
На странице калькулятора тарифов Top Nomer 4 представлены действующие тарифы от крупных мобильных операторов.
1 OWL 2 Web Ontology Language Document Overview (Second Edition). Официальный сайт международного консорциума W3C // W3C OWL Working Group. URL: http://www.w3.org/TR/owl2-overview
2 Tarifer. Telecom expense management: Калькулятор тарифов. URL: https://www.tarifer.ru/calculator
3 Финансовый супермаркет Moneymatica: Онлайн калькулятор мобильный тарифов. URL: http://www.money-matika.ru/mobilnye-tarify/raschet/6469767.html
4 Калькулятор тарифов Top nomer: Тарифы для мобильного телефона - подбор оптимального тарифа сотовой связи. URL: http://www.topnomer.ru/tarifs/
Используя фильтры поиска, пользователь может найти подходящий именно для него тарифный план сотового оператора. Если пользователю сложно сделать выбор самостоятельно, он может воспользоваться телефоном поддержки; специалисты помогут ему выбрать оптимальный тарифный план.
Описанные выше системы основаны на работе с базой данных, содержащей информацию о тарифах. Для создания рекомендаций для пользователя применяются SQL-запросы к базе данных. Другие системы, позволяющие дать рекомендации пользователям по оптимальным тарифам, используют аналогичные принципы работы.
Онтологическая модель тарифов мобильной связи
Разрабатываемая нами программная система для подбора оптимальных тарифов и услуг оператора сотовой связи по предпочтениям пользователя строится на основе онтологической модели тарифов и услуг данного оператора сотовой связи. В частности, онтологическая модель может быть использована для создания новых тарифов посредством добавления или удаления услуг из уже существующих тарифов. В отличие от других систем, данная система позволяет подбирать не только подходящий по расходам на мобильную связь тариф, но и оптимизировать этот тариф с помощью подключения к нему дополнительных услуг. При выдаче рекомендации пользователю о подключении конкретной услуги к тарифу учитываются особенности совместимости этой услуги с данным тарифом, а также ее совместимость с уже подключенными на этом тарифе услугами.
Общая структура онтологической модели
При создании онтологической модели предметной области тарифов и услуг оператора сотовой связи используется четырехуровневая модель представления знаний: 1) онтология; 2) общие знания; 3) прецеденты; 4) вероятностные и оценочные знания [2].
Определение [3]. Формальной онтологией предметной области Ж мы называем пару 0=<Л,а>, где а-множество ключевых понятий предметной области, Л - множество аналитических предложений, описывающих смысл этих ключевых понятий. Множество Т предложений, которые являются верными в каждом примере предметной области, мы называем теорией предметной области Ж.
Утверждение называется аналитическим, если его значение истинности зависит только от смысла понятий, используемых в данной предметной области [3].
Онтология содержит спецификацию смысла ключевых понятий данной предметной области. Для описания онтологии предметной области мобильной связи используется набор терминов, специфичных для данной области: «тариф», «услуга», «звонки», «интернет», «сообщения» [4].
Общие утверждения - это такие знания о предметной области, которые считаются полностью истинными на данный момент времени. При описании предметной области тарифов и услуг оператора сотовой связи такими знаниями являются информация о совместимости тарифов и услуг, стоимости международного роуминга и т. п.
Прецеденты данной предметной области - это информация об абонентах данного мобильного оператора. В частности, это данные, предоставленные абонентом, об использовании им различных ресурсов: минут разговоров, SMS, интернет-трафика и т. д.
Оценочные знания - это, в частности, знания, которые порождаются на основе информации о расходах на мобильную связь в предыдущие месяцы, представленной абонентом. Эти знания могут характеризовать предположительные расходы этого абонента в следующих месяцах.
Полнота определений ключевых понятий предметной области
С теоретико-модельной точки зрения построение онтологии предметной области состоит из описания сигнатуры (набора ключевых понятий предметной области) и формулировки набора аксиом, описывающих смысл этих понятий.
Для точного формального описания предметной области необходимо получить точные и полные определения понятий, входящих в данную предметную область. Точность определения понятий обеспечивается при помощи формального представления определений на языке логики предикатов первого порядка с дальнейшим их отображением в OWL DL [5]. В [5] для определения полноты определения понятий используется полнота относительно заданного контекста, так как в текстах естественного языка понятия, как правило, не имеют полных определений. В данной работе определения понятий рассматриваются в контексте данной предметной области тарифов и услуг оператора сотовой связи. Это значит, что в данном случае может рассматриваться свойство полноты относительно данной онтологии предметной области, введенное и исследованное в [5].
Для описания тарифов и услуг мы рассматриваем высказывания типа: «Тариф Smart предлагает абонентам 400 минут звонков по Новосибирской области на телефоны МТС и на телефоны других операторов». Это высказывание можно записать при помощи двух 4-местных предикатов вида иметь (Тариф, Звонки, Регион, Оператор). Для того чтобы эти данные могли быть записаны на языке OWL DL, нужно построить отображение из 4-местных предикатов в 2-местные, так как для описания свойств в языке OWL (основанном на RDF) по существу используются только 2-местные предикаты.
Так, предикат иметь (Тариф, Звонки, Регион, Оператор) представляется в виде трех 2-местных предикатов:
• Иметь звонки в регион (Тариф, Регион)
• Иметь звонки оператору (Тариф, Оператор)
• Иметь звонки в регион Xабонентам оператора Y (Тариф, Звонки).
Так, для рассматриваемого предложения получаем предикаты:
• Иметь звонки в регион (Smart, Новосибирская область)
• Иметь звонки оператору (Smart, МТС)
• Иметь звонки оператору (Smart, Другой оператор)
• Иметь звонки в Новосибирскую область абонентам МТС (Smart, 400 минут)
Аналогично происходит перевод других многоместных предикатов, описывающих тарифы и услуги оператора сотовой связи, в 2-местные.
Для описания предметной области введем сигнатуру am.
am = {c,P(x,y)\c - константы,P(x,yдвуместные предикаты}.
Определим типы констант: названия тарифов; названия услуг;
n минут, где n е {200, 300, 600, 900,1800, 3500}; n Гб, где n е {1,6, 8,10}; n СМС, где n е {200,300, 600,900,1800, 3500}; константы для обозначения цены.
В 2-местных предикатах P (x, y\ переменные x и y имеют определенный тип. Например,
у предиката Иметь звонки (x,y\ переменная x имеет тип Тариф, а переменная y имеет тип Звонки; у предиката иметь сообщения (x,y\ переменная x имеет тип Тариф, а переменная y имеет тип Сообщения.
Все константы сигнатуры am отображаются в OWL DL как классы, а предикаты сигнатуры om отображаются в свойства.
В результате синтаксического задания набора необходимых классов и свойств мы определили сигнатуру онтологии рассматриваемой предметной области. Далее представлен фрагмент данной онтологии в виде графа, созданного в редакторе онтологий Protégé [6] (см. рисунок). Прямоугольниками обозначены классы онтологии (т. е. константы сигнатуры am ), а стрелками между ними - свойства (т. е. 2-местные предикаты сигнатуры am ).
Граф онтологии предметной области
Обозначим
={Р (с, й )| Р, с, й е^} ,
где За - это множество всех атомарных предложений сигнатуры ап. Обозначим
За ={Р(с,й)|Р,с,й еоп, при этом константы с и й имеют типы, соответствующие аргументам предиката Р},
где З0а - это множество «семантически правильных» атомарных предложений сигнатуры ап. Обозначим
З0 = {(&...&Фи )) е За},
где З0 - это множество фрагментов атомарных диаграмм, представленных конъюнкциями «семантически правильных» атомарных предложений сигнатуры сп.
Для описания онтологии мы задали конечное множество аксиом аналитической теории Т , в том числе:
п '
• {—Р (с, й)|пара (с, й) не соответствует типу аргументов предиката Р};
• {Р(с,й) ^ — Р(с,е)|Р(с,й),Р(с,е) е З0а (сп ),Р Ф Иметь подключенную услугу, й Ф е}.
Для задания определений тарифов и услуг использовалось описание, представленное для абонентов оператором сотовой связи. Информация о тарифах и услугах имеет четкую структуру. Рассмотрим ее более подробно.
Для каждого тарифа определены следующие свойства:
• абонентская плата;
• количество услуг, предоставляемых за абонентскую плату: о количество СМС-сообщений;
о количество минут звонков; о объем интернет-трафика;
• стоимость услуг, после исчерпания лимита по абонентской плате:
о стоимость СМС-сообщения в разные регионы и на разные операторы сотовой связи;
o стоимость минуты звонка в разные регионы и на разные операторы сотовой связи; o стоимость интернет-трафика;
• стоимость услуг на международные направления;
• пакет услуг, подключенных автоматически.
Для каждой структурной части был определен предикат описывающий свойство для тарифа или услуги. Например, для информации о том, что тариф Smart предоставляет 400 СМС для абонентов Новосибирской области был введен предикат иметь сообщения абонентам Новосибирской области (Smart, 400смс).
Рассмотрим определения тарифа Smart на естественном языке.
Тариф Smart предоставляет за абонентскую плату 300 руб. в месяц:
• 1 Гб интернет-трафика;
• безлимит на мобильные телефоны МТС России;
• 400 минут звонков на все сети Новосибирской области и МТС России;
• 400 СМС на все мобильные номера Новосибирской области.
Стоимость услуг:
• 0 руб. за минуту - стоимость исходящих вызовов на мобильные телефоны МТС Новосибирской области;
• 1,5 руб. за минуту - стоимость исходящих вызовов абонентам других операторов мобильной связи Новосибирской области;
• 0 руб. за минуту - стоимость исходящих вызовов на мобильные телефоны МТС России;
• 5,0 руб. за минуту - стоимость исходящих вызовов на мобильные телефоны остальных операторов России;
• 1,5 руб. - исходящие SMS абонентам МТС и других мобильных операторов Новосибирской области;
• 1,95 руб. - исходящие SMS абонентам МТС и других мобильных операторов России;
• первоначальный пакет услуг: дополнительный пакет 500 Мб интернет-трафика; Определитель номера; Переадресация вызова; БИТ за границей; Мобильный Интернет; Видеозвонок; Вам звонили!; GOOD OK Smart.
Представим описания тарифа Smart в виде аксиомы:
def
Тариф (Smart) ^ Иметь звонки абонентам МТС (Smart, Безлимит) & иметь звонки в Новосибирскую область (Smart, 400 минут) & иметь интернет (Smart, 1 Гб) & Иметь сообщения абонентам Новосибирской области (Smart, 400 смс) & Иметь абонентскую плату в месяц ( Smart, 300.0) & Иметь цену за минуту звонка абонентам МТС (Smart, 0.0) & Иметь цену за минуту звонка абонентам другого оператора Новосибирской облас-ти(Smart, 1.5) & Иметь цену за минуту звонка абонентам другого оператора другого региона (Smart, 5.0) & Иметь цену за сообщения абонентам Новосибирской области (Smart, 1.5) & Иметь цену за сообщения абонентам другого региона (Smart, 1.95) & Иметь подключенную услугу (Smart, 500 Мб) & Иметь подключенную услугу (Smart, Определитель номера) & Иметь подключенную услугу (Smart, Переадресация вызова) & Иметь подключенную услугу (Smart, GOOD OK Smart) & Иметь подключенную услугу (Smart, Мобильный Интернет) & Иметь подключенную услугу (Smart, БИТ за границей) & Иметь подключенную услугу (Smart, Видеозвонок) & Иметь подключенную услугу (Smart, Вам звонили).
Введем понятие полноты определений относительно фиксированного множества предложений.
Определение ф тарифа t eam называется полным, если для любого предложения (am )П {Р c)\P, с еат}) выполнено Тт U {ф} Ь у или Тт U {ф} Ь -у.
Для предоставления информации пользователям о тарифах и услугах не всегда подходят полные определения. Полные определения обладают избыточной информацией. Для этого введем множество А - множество утверждений о тарифах и услугах, которые интересны
для пользователя p :
Аp <=((am)П{Р(t,с)\Р,сeam}).
Если ф - определение тарифа I, то можно рассмотреть фг - редуцированное определение тарифа t; при этом выполнено ф Ь фг.
Редуцированное определение фг назовем полным относительно множества предложений А (т. е. относительно интересов пользователя р), если для любого предложения уеАр
выполнено Тт и {фг} Ь у или Тт и {фг} Ь -у.
Предложение. Определения тарифов и услуг, которые содержатся в описанной выше онтологии тарифов и услуг оператора сотовой связи, являются полными.
Общие знания о тарифах и услугах мобильной связи
Общие знания о тарифах и услугах мобильного оператора сотовой связи не следуют из определений тарифов и услуг, т. е. не являются аналитическими предложениями и соответственно не входят в онтологию предметной области. Они определяются оператором, причем могут периодически изменяться.
К общим знаниям относится информация о доступности определенных услуг на определенных тарифах, информация о международном роуминге и др.
Рассмотрим на примере описание общих знаний.
Оператор сотовой связи предоставляет информацию о стоимости услуг в международном роуминге. Эта информация также имеет определенную структуру: стоимость минуты входящего звонка;
стоимость минуты исходящего звонка на российские номера; стоимость минуты исходящего звонка на номера страны пребывания; стоимость минуты исходящего звонка на номера других стран; стоимость входящих СМС-сообщений; стоимость исходящих СМС-сообщений; стоимость мобильного Интернета.
Эта информация также представляется в виде 2-местных предикатов. Для этого в описанную ранее сигнатуру ст добавится новый константный символ - название страны.
Например, Стоимость минуты входящего звонка представляется в виде предиката Иметь стоимость минуты входящего звонка (Страна, Стоимость).
Для остальной информации, предоставляемой оператором, происходят аналогичные преобразования.
Принципиальное отличие онтологических знаний от общих знаний о предметной области, с точки зрения их использования, состоит в следующем: определение тарифа или услуги остается неизменным, а общие знания меняются во времени. Из этого, в частности, вытекают ограничения переиспользования (повторное использование) общих знаний. Такого ограничения нет для знаний, представленных в онтологии [7].
Использование логического вывода
для пополнения знаний в онтологической модели
В предыдущем примере мы видели, что фраза Тариф Smart предлагает абонентам 600 минут звонков по Новосибирской области на телефоны МТС и на телефоны других операторов представляется четырьмя предикатами:
• Иметь звонки в регион (Smart, Новосибирская область);
• Иметь звонки оператору (Smart, МТС);
• Иметь звонки оператору (Smart, Другой оператор);
• Иметь звонки в Новосибирскую область (Smart, 600 минут).
Но в описании тарифа используется лишь иметь звонки в Новосибирскую область (Smart, 400 минут).
Информация о первых трех предикатах может быть получена автоматически из информации о четвертом при помощи логического вывода. Мы рассматриваем правила вывода, где
каждое правило состоит из двух частей - посылки и заключения. Если посылка выполнена, то к знаниям добавляется заключение. Например:
Иметь звонки в Новосибирскую область (x, y) ^ Иметь звонки в регион (x, Новосибирская область) & Иметь звонки оператору (x, МТС) & Иметь звонки оператору (x, Другой оператор).
И посылка, и заключение могут состоять из нескольких атомарных предложений. В примере посылка состоит из одного атомарного предложения, а заключение - из трех. Каждое атомарное предложение представляет собой предикат - утверждение об объектах, определенных в онтологии, а также специальные конструкции, которые определены в языке SWRL (Semantic Web Rule Language) [8]. Специальными конструкциями в языке SWRL являются математические операции: сравнение, сложение, умножение, деление, вычитание, модуль и др. 5 Все эти конструкции могут быть представлены при помощи одно-, двух- и трехместных предикатов, которые входят в дополнительную сигнатуру cr.
Приведем примеры специальных конструкций:
• swrl:add(x,y,z) представляется предикатом add (x, y, z), который эквивалентен выражению x = y + z;
• swrlb:greaterThanOrEqual(x,y) представляется предикатом greaterThanOrEqual(x,y), который эквивалентен выражению x > y. Если выполняется это неравенство, то предикат истинен, иначе ложен;
• swrlb:multiply(x,y,z) представляется предикатом multiply(x,y,z), который эквивалентен выражению x = y х z.
Эти специальные конструкции также используются в правилах вывода.
При составлении правил в качестве аргументов могут выступать переменные или конкретные объекты онтологии. Так, например, в предикате Иметь звонки оператору (x, МТС), x - это переменная, а МТС - это константа, обозначающая конкретный объект онтологии.
В формализованном виде правила вывода представляются так:
(&{P (,..., xn )|n < 3, P ес|)(&{p. (,..., xn )|n < 3, P. ec|),
с = C иС .
m w r
Машина логического вывода Pellet [9] основана на табличном алгоритме [10], поддерживает полную выразительность OWL-DL. Она проверяет истинность предикатов в правилах вывода на основе данных, представленных в онтологии, и если посылка правила вывода истинна, то заключение добавляется к определению понятия посредством конъюнкции с уже существующим определением. К определению добавляются только предикаты из сигнатуры ст. Предикаты из языка SWRL к определению понятий не добавляются.
Рассмотрим пример добавления знаний к определению при срабатывании правила вывода, представленного в предыдущем примере. К определению тарифа Smart добавятся новые знания, и мы получим следующее определение.
def
Тариф (Smart) ^ иметь звонки абонентам МТС (Smart, Безлимит) & иметь звонки в Новосибирскую область (Smart, 400 минут) & иметь интернет (Smart, 1 Гб) & иметь сообщения абонентам Новосибирской области (Smart, 400 смс) & иметь абонентскую плату в месяц (Smart, 300.0) & иметь цену за минуту звонка абонентам МТС (Smart, 0.0) & иметь цену за минуту звонка абонентам другого оператора Новосибирской области (Smart, 1.5) & иметь цену за минуту звонка абонентам другого оператора другого региона (Smart, 5.0) & иметь цену за сообщения абонентам Новосибирской области (Smart, 1.5) & иметь цену за сообщения абонентам другого региона (Smart, 1.95) & иметь подключенную услугу (Smart, 500 Мб) & иметь подключенную услугу (Smart, Определитель номера) & иметь подключенную услугу (Smart, Переадресация вызова) & иметь подключенную услугу (Smart, GOOD OK Smart) & иметь подключенную услугу (Smart, Мобильный Интернет) & иметь подключенную услугу (Smart, БИТ за границей) & иметь подключенную услугу (Smart, Видеозвонок) & иметь
5 SWRL API: Документация по использованию SWRL, SWRL API, SQWRL, SQWRL API. URL: https:// github.com/protegeproject/swrlapi/wiki
подключенную услугу (Smart, Вам звонили) & Иметь звонки в регион (x, Новосибирская область) & Иметь звонки оператору (x, МТС) & Иметь звонки оператору (x, Другой оператор).
Система порождения рекомендаций для пользователя
Выяснение потребностей пользователя
Для того чтобы предоставлять рекомендации пользователям по подбору тарифов, нам необходимо знать, что именно нужно пользователю. Таким образом, мы рассматриваем третий уровень онтологической модели - прецеденты.
Нам сначала необходимо преобразовать потребности пользователей в формальный вид, пригодный для автоматизированной обработки. Приведем пример пользовательских предпочтений относительно мобильной связи:
• «В месяц мне необходимо около 200 СМС-сообщений, 100 минут звонков и безлимитный Интернет»;
• «Я не могу назвать точное количество звонков и сообщений, но хочу, чтобы цена за них была минимальной среди всех других цен, предоставляемых тарифами».
Приведенные примеры демонстрируют основные типы потребностей:
• точные (конкретные цифры - «200 СМС»);
• неточные (нет цифр, но есть желание уменьшить расходы - «минимальная цена, среди всех цен, предоставляемых тарифами»);
• комбинированные (относительно каких-либо услуг есть конкретные цифры, а относительно других нет).
Все эти типы потребностей можно представить в логике предикатов. Для этого нам потребуется расширить имеющуюся сигнатуру cm до сигнатуры с1 путем объединения сигнатуры предметной области cm и сигнатуры языка запросов сgr. Сигнатура cgr состоит
из константных символов: минимальная стоимость 1-го сообщения, минимальная стоимость минуты звонка, минимальная стоимость 1 Мб интернет-трафика и т. д., и одноместных предикатов: иметь сообщения не менее (x), иметь сообщения более (x), иметь звонки не менее (x), иметь звонки более (х), иметь количество интернет-трафика не менее (x), иметь количество интернет-трафика более (x).
Рассмотрим пример преобразования данных пользователя в расширенную сигнатуру с1.
• Количество сообщений не менее x ^ Иметь сообщения не менее (x)
• Количество сообщений более x ^ Иметь сообщения более (x)
• Количество звонков не менее у ^ Иметь звонки не менее (у)
• Количество звонков более у ^ Иметь звонки более (у)
• Количество интернет-трафика не менее z ^ Иметь количество интернет-трафика не менее (z)
• Количество интернет-трафика более z ^ Иметь количество интернет-трафика более (z)
• Минимальная стоимость минуты звонка ^ Минимальная стоимость минуты звонка
• Минимальная стоимость 1-го сообщения ^ Минимальная стоимость 1-го сообщения
• Минимальная стоимость 1 Мб интернет-трафика ^ Минимальная стоимость 1 Мб интернет-трафика
Использование инструментов и технологий Semantic Web
В мае 2004 г. исследователями National Research Council of Canada, Network Inference и Stanford University в рамках работы W3C был представлен выпуск «A Semantic Web Rule Language» (SWRL). Это технология, которая основана на объединении OWL и RuleML, т. е.
объединены онтологии (OWL-DL) и правила. SQWRL (Semantic Query-Enhanced Web Rule Language) - язык запросов для owl-онтологий [11].
Чтобы константы из сигнатуры с1 представить в сигнатуре cm, нам необходимы специальные конструкции, представленные в языке SQWRL. Для использования этих конструкций введем их в сигнатуру ogr.
Для этого используются следующие конструкции языка SQWRL:
• sqwrl:makeBag (x, y1, ..., yn) означает создание множества x из элементов y1, ..., yn. Далее с этим множеством можно производить операции: поиск максимального элемента, минимального элемента, сортировка, группировка по признакам и др. В нашем случае мы создаем множество, состоящие из значений цен минуты звонка для всех тарифов.
• sqwrl:min (y, x) означает поиск минимального объектаy из множества элементов x.
Приведем пример преобразования констант сигнатуры с1:
• минимальная стоимость минуты звонка ^ sqwrl:makeBag (x, Цена звонка) & sqwrl:min (y, x);
• минимальная стоимость 1 сообщения ^ sqwrl:makeBag (x, Цена сообщения) & sqwrl:min (y, x);
• минимальная стоимость 1 Мб интернет-трафика ^ sqwrl:makeBag (x, Цена за интернет) & sqwrl:min (y, x).
Приведем пример преобразования одноместных предикатов сигнатуры с1:
• Иметь сообщения не менее (x) ^ Иметь количество сообщений (y, s) & greaterThanOrEqual (s, x).
Остальные выражения преобразуются аналогичным образом.
Приведем пример преобразования потребностей пользователя в логику предикатов после их формального представления.
Потребность пользователя: «В месяц мне нужно не менее 200 СМС-сообщений, не менее 100 минут звонков в домашнем регионе и минимальная цена за пользования Интернетом».
В расширенной сигнатуре с1: Иметь сообщения не менее (200) & Иметь звонки не менее (100) & Минимальная стоимость 1 Мб интернет-трафика.
В сигнатуре om: Иметь количество сообщений (Тариф, s) & greaterThanOrEqual (s, 200) & Иметь количество звонков (Тариф, с) & greaterThanOrEqual (с, 100) & sqwrl:makeBag (x, Цена за интернет) & sqwrl:min (y, x).
Обработка запросов к онтологической модели
После того как мы составили описание потребностей пользователя в сигнатуре о, можно создавать запросы к онтологической модели. Для этого используется язык SQWRL. Он позволяет извлечь информацию из OWL-онтологии. SQWRL основывается на SWRL и использует посылку правила SWRL для спецификации поискового запроса.
Общий вид формально представляется следующим образом:
(&{P (,...,xn)|n < 3, P е«^})sqwrl:select(,...,xn);
= °m U .
Оператор SQWRL sqwrl:select(,...,xn) может принимать несколько аргументов (обычно
это переменные) и строит таблицу. В этой таблице аргументы sqwrl:select используются в качестве столбцов. Все варианты, которые удовлетворяют посылке правила, сохраняются в этой таблице.
Важно отметить, что SQWRL имеет доступ к информации, которая выводится из правил вывода машиной логического вывода и явно в онтологии не хранится, т. е. перед запуском SQWRL-запросов происходит проверка всех правил вывода для получения новой информации, и только после этого происходит запрос к онтологии.
Для создания запросов к онтологии тарифов и услуг оператора сотовой связи используются шаблоны, созданные заранее на основе основного списка вопросов и структуры определе-
ний. Например, если в тариф за абонентскую плату входит больше или равно x СМС в регион r, то стоимость их использования будет равна абонентской плате за тариф (x, r - это данные, предоставленные пользователем). Для этого случая SQWRL запрос будет выглядеть так:
Тарифу) & иметь абонентскую плату в месяц (t, p) & иметь сообщения абонентам в регион (t, r) & иметь количество сообщений (y, s) & greaterThanOrEqual(s, x) ^ sqwrl:select (x, p).
После выполнения всех сгенерированных запросов происходит анализ выведенных данных. Из полученных данных извлекается информация о тарифе, услуге, стоимости в месяц предоставляемых услуг. По стоимости делается вывод о том, какой из тарифов и услуг является выгоднее. Эти данные сортируются в порядке увеличения стоимости их использования. Рекомендация пользователю представляется в виде дизъюнкции тарифов и услуг, подобранных системой. Далее пользователь по своему желанию может выбрать понравившийся тариф с набором предложенных услуг.
Пользователь может посмотреть полную информацию о рекомендованных ему тарифах и услугах. Информация, представленная в онтологии, является непротиворечивой, точной и полной. Это позволит пользователю сделать правильный выбор.
Заключение
Данная статья посвящена разработке онтологической модели предметной области тарифов и услуг оператора сотовой связи. Была выполнена реализация программной системы, предназначенной для подбора тарифов и услуг, наиболее подходящих для данного пользователя.
Онтологическая модель строится на основе четырехуровневой модели представления знаний. Особое внимание при разработке онтологии предметной области уделялось проблеме логической полноты определений понятий. Формальное представление определений тарифов и услуг дано на языке логики предикатов первого порядка. Реализовано отображение формальных определений понятий в язык представления онтологий OWL DL. Построенные определения понятий являются точными и логически полными. Разработанная система порождает знания о тарифах и услугах, наиболее предпочтительных для пользователя, исходя из формализованного представления потребностей пользователя.
Список литературы
1. Трофимов И. В. Эволюция выразительных способностей языка OWL // Программные системы: теория и приложения: электрон. научн. журнал. 2011. № 4 (8). С. 85-94. URL: http://psta.psiras.ru/read/psta2011_4_85-94.pdf
2. Найданов Ч. А., Пальчунов Д. Е., Сазонова П. А. Теоретико-модельные методы интеграции знаний, извлеченных из медицинских документов // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2015. Т. 13, вып. 3. С. 29-41.
3. Пальчунов Д. Е. Моделирование мышления и формализация рефлексии. Ч. 2: Онтологии и формализация понятий // Философия науки. 2008. № 2 (37). С. 62-99.
4. Долгушева Е. В., Пальчунов Д. Е. Теоретико-модельные методы порождения знаний о предпочтениях абонентов мобильных сетей // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2016. Т. 14, вып. 2. С. 5-16.
5. Корсун И. А., Пальчунов Д. Е. Теоретико-модельные методы извлечения знаний о смысле понятий из текстов естественного языка // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2016. Т. 14, № 3. С. 34-48.
6. Муромцев Д. И. Онтологический инжиниринг знаний в системе Protégé: Метод. пособие. СПб: СПб ГУ ИТМО, 2007. 62 с.
7. Gruber T. R. The Role of Common Ontology in Achieving Sharable, Reusable Knowledge Bases. Stanford University, 1991.
8. Khala K. A. Sequential Presentation of Method for Integration the OWL DL and SWRL Using Protеgе-owl API // Open Semantic Technologies for Intelligent Systems (OSTIS-2017): Материалы междунар. науч.-техн. конф. Минск: БГУИР, 2017. С. 139-144.
9. Moller R., Haarslev V. Tableau-based Reasoning // Handbook on Ontologies, S. Staab, R. Studer (eds), 2nd edition. Springer-Verlag, 2009. Р. 509-528.
10. Zuo M., Haarslev V. Intelligent Tableau Algorithm for DL Reasoning // Proceedings of the 22nd International Conference on Automated Reasoning with Analytic Tableaux and Related Methods. Nancy, France, 2013. Р. 273-287.
11. O'Connor M., Das A. SQWRL: a query language for OWL // Proceedings of the 6th International Conference on OWL: Experiences and Directions (OWLED-2009). 2009. Vol. 529. P. 208215.
Материал поступил в редколлегию 15.03.2017
A. I. Kapustina, D. E. Palchunov
1 Novosibirsk State University 2 Pirogov Str., Novosibirsk, 630090, Russian Federation
2 Institute of Mathematics SB RAS 4 Acad. Koptyug Ave., Novosibirsk, 630090, Russian Federation
a.kapustina@g. nsu.ru, [email protected]
THE DEVELOPMENT OF ONTOLOGICAL MODEL OF TARIFFS AND SERVICES OF MOBILE OPERATOR, BASED ON LOGICALLY COMPLETE DEFINITIONS OF CONCEPTS
The paper is devoted to the development of ontological model of tariffs and services of mobile operator. The ontological model is based on the four-level model of knowledge representation. We create the ontology on the base of precise and logically complete definitions of concepts. The formal description of definitions is presented in predicate logic, and in OWL DL. The generation of new knowledge in the ontological model is implemented using automated logical reasoning. We develop a software system designed to offer users the most suitable services and tariffs of the mobile operator on the base of analysis of user's needs.
Keywords: domain ontology, ontological model, tariffs and services of mobile operator, knowledge representation, knowledge generation, formal definition, the atomic diagram.
References
1. Trofimov I. V. The evolution of the OWL language power. Program system: Theory and application, 2011, no. 4 (8), p. 85-94. URI: http://psta.psiras.ru/read/psta2011_4_85-94.pdf (in Russ.).
2. Naidanov C. A., Palchunov D. E., Sazonova P. A. Model-theoretic methods of integration of knowledge extracted from medical documents. Vestnik NSU Series: Information Technologies, 2015, vol. 13, no. 3, p. 29-41. ISSN 1818-7900 (in Russ.).
3. Palchunov D. E. Modeling of reasoning and formalization of reflection II: Ontologies and formalization of concepts. Filosofiya nauki, 2008, no. 2 (37), p. 62-99 (in Russ.).
4. Dolgusheva E. V., Palchunov D. E. Model-theoretic methods of generation of knowledge about mobile subscribers' preferences. Vestnik NSU Series: Information Technologies, 2016, vol. 14, no. 2, p. 5-16. ISSN 1818-7900 (in Russ.).
5. Korsun I. A., Palchunov D. E. Model-Theoretic Methods of Extraction of Knowledge on the Meaning of Concepts from the Natural Language Texts. Vestnik NSU Series: Information Technologies, 2016, vol. 14, no. 3, p. 34-48. ISSN 1818-7900 (in Russ.).
6. Muromtsev D. I. Ontology engineering knowledge in the system St. Petersburg, 2007, 62 p. (in Russ.).
7. Gruber T. R. The Role of Common Ontology in Achieving Sharable, Reusable Knowledge Bases. Knowledge Systems Laboratory, Stanford University, 1991.
8. Khala K. A. Sequential Presentation of Method for Integration the OWL DL and SWRL Using Protеgе-owl API. Open Semantic Technologies for Intelligent Systems (OSTIS-2017), 2017, p.139-144.
9. Möller R., Haarslev V. Tableau-based Reasoning. Handbook on Ontologies, S. Staab, R. Studer (eds), 2nd ed. Springer-Verlag, 2009, p. 509- 28.
10. Zuo M., Haarslev V. Intelligent Tableau Algorithm for DL Reasoning. Proceedings of the 22nd International Conference on Automated Reasoning with Analytic Tableaux and Related Methods. Nancy, France, 2013, p. 273-287.
11. O'Connor M., Das A. SQWRL: a query language for OWL. Proceedings of the 6th International Conference on OWL: Experiences and Directions (OWLED-2009), 2009, vol. 529, p. 208215.