Онтология (информатика)
Ошибка скрипта: Модуля «hatnote» не существует.{{#if: | }}
Онтоло́гия в информатике — это попытка всеобъемлющей и подробной формализации некоторой области знаний с помощью концептуальной схемы. Обычно такая схема состоит из структуры данных, содержащей все релевантные классы объектов, их связи и правила (теоремы, ограничения), принятые в этой области. Этот термин в информатике является производным от древнего философского понятия «онтология» ({{#if:neolat|{{#if:|{{{зачин}}} }}{{#if:||{{#switch:neolat |ab=абхазск. |abq=абазинск. |af=африкаанс |akk=аккадск. |akz=алабама |ale=алеутск. |als=тоскск. |am=амхарск. |an=арагонск. |ang=др.-англ. |ani=андийск. |ar=арабск. |arc=арамейск. |av=аварск. |ae|ave=авест. |awd=аравакск. |az=азерб. |eu=баскск. |ba=башк. |bar=бав. |be=белор. |ber=берберск. |bg=болг. |bn=бенг. |bo=тибетск. |br=брет. |bs=босн. |bua=бурятск. |ca=каталанск. |ce=чеченск. |cel=галльск. |cel-pro=пракельт. |ch=чам. |chm=мар. |cho=чокт. |chu-ru=русск.-церк.-слав. |chu-sr=сербск.-церк.-слав. |chu-bg=болг.-церк.-слав. |cjs=шорск. |ckt=чук. |co=корс. |crh=кр.-тат. |cs=чешск. |csb=кашубск. |cu=ст.-слав. |cv=чувашск. |cy=валл. |da=датск. |dar=дарг. |ddo=цезск. |de=нем. |dsb=н.-луж. |dty=дотели |dum=ср.-нидерл. |egy=егип. |el=греч. |en=англ. |enm=ср.-англ. |eo=эспер. |es=исп. |et=эст. |ett=этрусск. |fa=перс. |fi=финск. |fo=фарерск. |fr=франц. |frk=др.-франкск. |frm=ср.-франц. |fro=ст.-франц. |frr=сев.-фризск. |fry=зап.-фризск. |fur=фриульск. |fy=фризск. |ga=ирл. |gag=гагаузск. |gd=гэльск. |gdo=годобер. |gem=прагерм. |gez=древнеэфиопск. |gin=гинухск. |gkm=ср.-греч. |gl=галис. |gmh=ср.-в.-нем. |gml=ср.-н.-нем. |gmy=микен. |gn=гуарани |goh=др.-в.-нем. |got=готск. |grc=др.-греч. |grc-pro|grk-pro=протогреч. |gsw=алеманнск. |gu=гуджарати |ha=хауса |haw=гавайск. |hbo=др.-евр. |hbs=сербохорв. |he=ивр. |hi=хинд. |hit=хетт. |hr=хорв. |hsb=в.-луж. |ht=гаит. |hu=венг. |hy=армянск. |id=индон. |inh=ингушск. |is=исл. |it=итал. |itl=ительм. |iu=инукт. |ja=яп. |jv=яванск. |ka=груз. |kaa=каракалп. |kas=кашм. |kg=конго |kik=кикуйю |kjh=хакас. |kk=казахск. |kky=кууку-йимитирск. |kl=гренландск. |kn=канн. |ko=корейск. |kom=коми-зыр. |koi=коми-перм. |krc=карач.-балк. |krl=карельск. |kum=кумыкск. |ky=кирг. |la=лат. |lad=сефардск. |lb=люксемб. |lez=лезг. |liv=лив. |lmo=ломбардск. |lng=лангобардск. |lo=лаосск. |lt=лит. |ltg=латг. |lv=латышск. |mad=мадурск. |mdf=мокш. |mg=малаг. |mga=ср.-ирл. |mi=маори |mic=микмакск. |mk=макед. |mn=монг. |mnc=маньчжурск. |mns=мансийск. |mnw=монск. |ms=малайск. |mt=мальтийск. |myv=эрзянск. |myz=мандейск. |na=науру |nah=науатль |niv=нивх. |nds=нж.-нем. |ne=непали |nl=нидерл. |no=норв. |non=др.-сканд. |nuk=нутка |oc=прованс. |ojp=ст.-яп. |orv=др.-русск. |os=осет. |osp=ст.-исп. |osx=др.-сакс. |ota=османск. |otk=др.-тюрк. |pa=пендж. |pap=папьям. |pcd=пикардск. |pdc=пенсильв.-нем. |peo=др.-перс. |phn=финик. |pi=пали |pie=праиндоевр. |pl=польск. |pox=полабск. |ppol=праполинез. |pro=ст.-оксит. |prg=др.-прусск. |pt=порт. |pt-BR=браз.-порт. |qu=кечуа |rm=ретором. |ro=рум. |roa-nor=нормандск. |rom=цыганск. |ru=русск. |rw=киньяруанда |sa=санскр. |sah=якутск. |sc=сард. |scn=сицил. |sco=скотс. |se=северносаамск. |see=сенека |sga=др.-ирл. |sh=сербохорв. |shh=шошонск. |sjd=кильдин-саамск. |sjt=терско-саамск. |sk=словацк. |sl=словенск. |sla-pro=праслав. |smi-pro=прасаамск. |smn=инари-саамск. |sms=коллта-саамск. |sqi|sq=алб. |sr=сербск. |sux=шумерск. |sv=шведск. |sw=суах. |syc=сирийск. |syd=самодийск. |ta=там. |tab=табасаранск. |tg=тадж. |th=тайск. |tin=тинд. |tk=туркм. |tl=тагальск. |tn=тсвана |tnq=таино |tpn=тупи |tr=тур. |trk=тюрк. |tt=тат. |ttt=татск. |txb=тохар. B |ty=таитянск. |tyv=тувинск. |udm=удм. |ug=уйгурск. |uga=угаритск. |uk=укр. |ur=урду |urj-pro=прауральск. |uz=узб. |vec=венет. |vi=вьетн. |vot=водск. |vsn=др.-инд. |xas=камас. |xal=калм. |xcl=грабар |xh=коса |xil=иллир. |xld=лидийск. |xmf=мегр. |xno=англ.-норм. |xpr=парфянск. |xpu=пуническ. |xto=тохар. A |yi=идиш |yrk=ненецк. |zh=кит. |zu=зулусск. |neolat.}}}}}}{{#if:ontologia|{{#if:neolat|{{#if:|| }}}}Шаблон:Aslinks{{#if:|Ошибка скрипта: Модуля «string» не существует.}}}}{{#if:| }}{{#if:| «{{{3}}}{{#if:|, {{{4}}}}}{{#if:|, {{{5}}}}}»}}{{#if:| ({{{comment}}})}}{{#if:|}}{{#if:|Шаблон:Категория}}{{#if:|Шаблон:Категория}}{{#if:|Шаблон:Категория}} от Шаблон:Lang-grc род. п. Шаблон:Lang-grc2 — сущее, то, что существует и Шаблон:Lang-grc2). Однако в информатике он имеет прикладной, инженерный характер и обозначает формализованный артефакт, ориентированный на машинную обработку знаний.
Общее определение
Хотя термин «онтология» изначально философский, в информатике он принял самостоятельное значение. Здесь есть два существенных отличия:
- Онтология в информатике должна иметь формат, который компьютер сможет легко обработать;
- Информационные онтологии создаются всегда с конкретными целями — решения конструкторских задач; они оцениваются больше с точки зрения применимости, чем полноты.
Одно из наиболее цитируемых определений онтологии в информатике принадлежит Томасу Груберу:
- «Онтология — это формальная, явным образом заданная спецификация совместно используемой концептуализации».<ref>Шаблон:Cite journal</ref>
В этом определении:
- концептуализация понимается как абстрактная модель предметной области;
- явная спецификация означает явное задание понятий и связей;
- формальность обеспечивает машиночитаемость;
- совместное использование указывает на ориентацию на повторное применение и обмен знаниями.
Назначение и роль
Онтологии используются для:
- формального описания предметных областей;
- обеспечения единых понятийных моделей между различными системами;
- поддержки логического вывода;
- повышения интерпретируемости и объяснимости вычислительных процессов.
В отличие от неформальных моделей знаний, онтологии предполагают строгую семантику и возможность автоматической проверки корректности.
Онтологии используются в процессе программирования как форма представления знаний о реальном мире или его части. Основные сферы применения — семантическая паутина (англ. Шаблон:Lang-en2), искусственный интеллект. Одной из сфер применения онтологий является семантическое (формальное) моделирование бизнес-процессов.<ref>Шаблон:Cite web</ref>
Основные компоненты онтологии
Типичная онтология включает следующие элементы:
- Классы — абстрактные категории объектов предметной области;
- Экземпляры — конкретные объекты, принадлежащие классам;
- Отношения — связи между классами или экземплярами;
- Свойства — атрибуты объектов;
- Аксиомы и ограничения — логические правила, определяющие допустимые интерпретации.
Наличие аксиом позволяет выполнять автоматический логический вывод.
Онтологии и представление знаний
Онтологии являются развитием классических подходов к представлению знаний, таких как:
- семантические сети,
- фреймовые модели,
- логические базы знаний.
В отличие от них, онтологии ориентированы на независимость от конкретной программной реализации и на интероперабельность между системами.<ref>Studer, R., Benjamins, V. R., Fensel, D. (1998). Knowledge Engineering: Principles and Methods. Data & Knowledge Engineering, 25(1–2), 161–197.</ref>
Специализированные и общие онтологии
Специализированные (предметно-ориентированные) онтологии — это представление какой-либо области знаний или части реального мира. В такой онтологии содержатся специальные для этой области значения терминов. К примеру, слово «поле» в сельском хозяйстве означает участок земли, в физике — один из видов материи, в математике — класс алгебраических систем.
Общие онтологии используются для представления понятий, общих для большого числа областей. Такие онтологии содержат базовый набор терминов, глоссарий или тезаурус, используемый для описания терминов предметных областей.
Если использующая специализированные онтологии система развивается, то может потребоваться их объединение. Подзадачей объединения онтологий является задача отображения онтологий. И для инженера по онтологиям это серьёзная задача. Онтологии даже близких областей могут быть несовместимы друг с другом. Разница может появляться из-за особенностей местной культуры, идеологии или вследствие использования другого языка описания. Объединение онтологий выполняют как вручную, так и в полуавтоматическом режиме. В целом это — трудоёмкий, медленный и дорогостоящий процесс. Использование базисной онтологии — единого глоссария — несколько упрощает эту работу.
Языки описания онтологий
Для формального описания онтологий используются специализированные языки. Язык описания онтологий — формальный язык, используемый для кодирования онтологии. Существует несколько подобных языков (список неполон):
- OWL — Web Ontology Language, стандарт W3C, язык для семантических утверждений, разработанный как расширение RDF и RDFS<ref>OWL основан на логиках описаний и поддерживает автоматический вывод.</ref> — язык описания онтологий с формальной логической семантикой<ref>W3C. OWL 2 Web Ontology Language Document Overview. https://www.w3.org/TR/owl2-overview/</ref>;
- RDF (Resource Description Framework) — модель представления данных в виде графа утверждений<ref>W3C. RDF 1.1 Concepts and Abstract Syntax. https://www.w3.org/TR/rdf11-concepts/</ref>;
- RDFS (RDF Schema) — расширение RDF для задания иерархий классов и свойств<ref>W3C. RDF Schema 1.1. https://www.w3.org/TR/rdf-schema/</ref>
- Шаблон:Нп3 (англ. Шаблон:Lang-en2 — формат обмена знаниями) — основанный на S-выражениях синтаксис для логики;
- Common Logic (CL) — преемник KIF (стандартизован — ISO/IEC 24707:2007).
- Шаблон:Нп3 — онтологический язык, использующийся в проекте Cyc. Основан на исчислении предикатов с некоторыми расширениями более высокого порядка.
- Шаблон:Нп3
- Шаблон:Нп3
- Шаблон:Нп3
Для работы с языками онтологий существует несколько видов технологий: редакторы онтологий (для создания онтологий), СУБД онтологий (для хранения и обращения к онтологии) и хранилища онтологий (для работы с несколькими онтологиями).
Онтологии и семантический веб
Онтологии являются ключевым компонентом семантического веба — расширения Всемирной паутины, в котором информация снабжается формальной семантикой, понятной вычислительным агентам.<ref>Berners-Lee, T., Hendler, J., Lassila, O. (2001). The Semantic Web. Scientific American, May 2001.</ref>
В этом контексте онтологии обеспечивают:
- формальное описание значений данных;
- интерпретацию связей между ресурсами;
- интеграцию разнородных источников информации.
Онтологии и искусственный интеллект
В системах искусственного интеллекта онтологии используются как:
- символические модели знаний;
- основа для логического вывода;
- средство обеспечения объяснимости решений.
В гибридных ИИ-системах онтологии сочетаются со статистическими методами машинного обучения, обеспечивая семантическую интерпретацию данных.<ref>Russell, S., Norvig, P. Artificial Intelligence: A Modern Approach. Pearson.</ref>
Отличие от философской онтологии
Несмотря на общее происхождение термина, онтология в информатике отличается от философской онтологии:
- по цели (практическая инженерная модель vs. метафизическое исследование бытия);
- по методам (формальные языки и логика vs. философский анализ);
- по критериям оценки (работоспособность и формальная корректность vs. философская обоснованность).<ref>Guarino, N. (1998). Formal Ontology in Information Systems. Proceedings of FOIS’98.</ref>
Применение
Онтологии применяются в:
- системах искусственного интеллекта;
- управлении знаниями;
- биоинформатике и медицине;
- корпоративных информационных системах;
- интеллектуальных поисковых системах;
- интеграции и согласовании данных.
См. также
- База знаний
- Высшая онтология
- Глоссарий
- Извлечение информации
- Открытые биомедицинские онтологии
- Представление знаний
- Шаблон:Нп3
- Семантический веб
- Таксономия
- Искусственный интеллект
Примечания
Литература
- Шаблон:Книга
- Лапшин В. А. Онтологии в компьютерных системах. — М.: Научный мир, 2010.
- Gruber, T. R. A Translation Approach to Portable Ontology Specifications
- Studer, R., Benjamins, V. R., Fensel, D. Knowledge Engineering: Principles and Methods
- Guarino, N. Formal Ontology in Information Systems
- Russell, S., Norvig, P. Artificial Intelligence: A Modern Approach
Ссылки
- Использование онтологий в системах управления знаниями Шаблон:Wayback
- Обзор инструментов инженерии онтологий (на 2004 год)
- Редактор онтологий на естественном языке Шаблон:Wayback — обзор редактора Fluent Editor, работающего с контролируемым английским языком и OWL. Так же упоминает редакторы онтологий Protégé и TopBraid Composer.
- Руководство по созданию Вашей первой онтологии
Шаблон:Инженерия знаний Шаблон:Software Engineering Шаблон:Семантическая паутина