diff --git a/Contents/biblio/biblio.bib b/Contents/biblio/biblio.bib index cc72cd5e..bee43568 100644 --- a/Contents/biblio/biblio.bib +++ b/Contents/biblio/biblio.bib @@ -5542,4 +5542,7 @@ @article{Rajabi2013 shorthand = {Rajabi.Z..EnterpriseADBEO-2013art} } + annotation = {***} +} + @Comment{jabref-meta: databaseType:bibtex;} diff --git a/Contents/chapter1.tex b/Contents/chapter1.tex index 267acf10..ae0e954f 100644 --- a/Contents/chapter1.tex +++ b/Contents/chapter1.tex @@ -6,6 +6,9 @@ \scsection[\scnidtf{История эволюции и современное состояние \textit{компьютерных систем} и, в том числе, \textit{интеллектуальных компьютерных систем}}]{Предметная область и онтология компьютерных систем} \label{sd_comp_sys} +\scsubsection{Предметная область и онтология семантических технологий} +\input{Contents/chapter1/sd_sem_web.tex} + \scchapter{Предметная область и онтология технологий автоматизируемых видов и областей человеческой деятельности} \label{tech_human_activity_types} diff --git a/Contents/chapter1/sd_sem_web.tex b/Contents/chapter1/sd_sem_web.tex new file mode 100644 index 00000000..bd00f48a --- /dev/null +++ b/Contents/chapter1/sd_sem_web.tex @@ -0,0 +1,63 @@ +\begin{SCn} + + \scnsectionheader{\currentname} + + \scnstartsubstruct + + \scnheader{Предметная область и онтология семантических технологий} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_intro.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_descriptive_logic.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_entity_identification_principles.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_2.2_section_conclusions.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_early_presentation_langs.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_rdf.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_rdfs.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_widely_used_dicts_examples.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_2.3_section_conclusions.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_desc_logic_stats_langs.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_2_section_conclusions.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_Information_storage_facilities.tex} + + \bigskip + \scnendstruct \scnendcurrentsectioncomment + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_data_processing.tex} + + \newpage + \input{Contents/chapter1/sd_sem_web/sem_web_development_directions.tex} + +\bigskip + +\scnrelfromlist{выводы к разделу}{ +\scnfileitem {\textit{Стандарты} \textit{\textbf{Semantic Web}} практически не меняются на протяжении более 15 лет. Это связано с тем, что: \begin{scnitemize}\item сами \textit{стандарты} все еще описаны в традиционной \textit{гипертекстовой форме}, которая достаточно трудоемка в сопровождении;\item существует огромное количество \textit{средств}, которые жестко завязаны на определенную \textit{версию} того или иного \textit{стандарта} и сопровождаются сторонними коллективами разработчиков. Соответственно, каждое изменение \textit{стандарта} должно отразиться и в указанных \textit{средствах}, что зачастую очень сложно;\item значительная часть \textit{средств}, построенных на основе \textit{стандартов}, напрямую зависит не только от \textit{семантики языков}, но и от конкретной \textit{формы записи} того или иного \textit{языка}, что еще усугубляет проблему из предыдущего пункта.\end{scnitemize}}; +\scnfileitem {Фактически все \textit{семейство стандартов} \textit{\textbf{Semantic Web}} изначально создавалось для реализации идей \textit{семантической паутины}, т.е. описания \textit{метаинформации} для различных \textit{web-ресурсов}, приведение их к согласованному виду (как с синтаксическом, так и в семантическом плане) и т.д. Указанные \textit{стандарты} изначально не претендовали на всеобщую \textit{стандартизацию принципов представления} и \textit{обработки} любого рода \textit{информации} в \textit{интеллектуальных системах} произвольного назначения. Однако, де-факто в настоящее время они часто используются именно в такой роли, поскольку не существует более мощной и удобной альтернативы, общепризнанной в мировом сообществе.}} + + \bigskip + \scnendstruct \scnendfragmentcomment + +\end{SCn} + diff --git a/Contents/chapter1/sd_sem_web/sem_web_2.2_section_conclusions.tex b/Contents/chapter1/sd_sem_web/sem_web_2.2_section_conclusions.tex new file mode 100644 index 00000000..b71961f5 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_2.2_section_conclusions.tex @@ -0,0 +1,10 @@ +\scncomment{ +\scntext{выводы к разделу}{ + \begin{scnitemize} + \item Одной из основных задач \textit{URI} и других стандартов идентификации является возможность отличать сущности, имеющие одинаковое название, но возможно, разную трактовку в разных онтологиях (пространствах имен). Данная проблема действительно важна и она решается существующими стандартами; + \item Вопрос с решением аналогичной проблемы в \textit{OSTIS} активно не поднимался, нужно подумать, актуальна ли она для нас. У нас нет жесткой привязки к именам и в принципе нет трагедии в том, что два разных \textit{sc-элемента} будут иметь одинаковые имена. Проблема возникнет в ситуации, когда мы захотим объединить две базы знаний, где есть сущности с разной семантикой, но одинаковыми именами; + \item Отправной точкой при разработке стандартов идентификации ресурсов являлась необходимость описания ресурсов в глобальной сети, а не построение модели мира вообще. В связи с этим терминология, используемая при определении идентификаторов, их синтаксис и т.д. “заточены” под концепцию всемирной паутины, однако их пытаются применять как основу для описания любых предметных областей, что не всегда получается понятно и логично. Например, при описании геометрии придется оперировать понятиями путь, запрос, ресурс и т.д., что довольно странно; + \item Существуют другие недостатки, в частности, создатель \textit{URI}, Тим Бернерс-Ли, говорил, что система доменных имён, лежащая в основе \textit{URL}, — плохое решение, навязывающее ресурсам иерархическую архитектуру, мало подходящую для гипертекстового веба. + \end{scnitemize} +} +} diff --git a/Contents/chapter1/sd_sem_web/sem_web_2.3_section_conclusions.tex b/Contents/chapter1/sd_sem_web/sem_web_2.3_section_conclusions.tex new file mode 100644 index 00000000..88976228 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_2.3_section_conclusions.tex @@ -0,0 +1,22 @@ +\scntext{выводы к разделу}{ + \begin{scnitemize} + \item RDF сам по себе является моделью данных, но не затрагивает семантику описываемых данных и конкретный формат хранения текстов, представленных в такой модели. Для этого существуют довольно много отдельных стандартов; + \item Несмотря на то, что модель RDF является нелинейной графовой моделью, в ней присутствуют ограничения, связанные с самой структурой триплета (субъект-отношение-объект): + \scnaddlevel{1} + \begin{scnitemizeii} + \item Возникает неоднозначность между некоторым отношением (предикатом) вообще и парой (связкой), принадлежащей данному отношению и связывающей конкретный объект и конкретный субъект. Таким образом, нет возможности описать свойства не отношения вообще, а конкретной связи (об этой проблеме см. раздел реификация). В то же время синтаксис N3 позволяет оперировать триплетом или более сложным выражением как аргументом для других выражений; + \item Отсутствует возможность сформировать триплет, в котором компоненты равноправны, например при описании отношения “быть родственником” и других симметричных отношениях; + \end{scnitemizeii} + \scnaddlevel{-1} + \item Представленные проекты в буквальном смысле представляют собой словари терминов (vocabulary) и не являются формальными онтологиями (некоторые исследователи считают словарь терминов или тезаурус разновидностью онтологии, но неформальной), то есть не содержат формальных определений описываемых понятий, каких-либо строгих закономерностей, кроме простой транзитивности отношений класс-подкласс и явно задаваемых ограничений на значения свойств; + \item Составители большинства стандартов при их составлении руководствовались “здравым смыслом” и исходили из потребности описать ресурсы, которые уже есть или потенциально могут появиться в глобальной сети, не пытаясь положить в основу создаваемых стандартов какую-либо математическую модель. Исходя из этого, возникает большое число трудностей: + \scnaddlevel{1} + \begin{scnitemizeii} + \item Невозможность дать достаточно строгие определения для понятий, что в свою очередь, приводят к трудностям определения тех классов, к которым нужно отнести тот или иной экземпляр или подкласс; + \item Сама по себе иерархия классов строится на интуитивном уровне и не всегда понятно, почему на каждом уровне иерархии выбрано именно это множество классов, насколько оно полное, пересекаются ли выделенные классы; + \item Не всегда понятно, как разделить абсолютные и относительные понятия (хотя смешивать их нельзя, понятие свойства и ресурса четко разделены), и не совсем понятно, почему принципиально разделена иерархия класс-подкласс и свойство-подсвойство; + \end{scnitemizeii} + \scnaddlevel{-1} + \item При записи триплета явно не вводится знак связи (дуги). При необходимости этот знак может быть введен явно, но тогда конструкция изменится, появятся две других связи (между знаком дуги и ее началом и концом). Само собой, такое изменение придется учесть при обработке. + \end{scnitemize} +} \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_2_section_conclusions.tex b/Contents/chapter1/sd_sem_web/sem_web_2_section_conclusions.tex new file mode 100644 index 00000000..846b3a34 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_2_section_conclusions.tex @@ -0,0 +1,10 @@ +\scntext{выводы к разделу}{\begin{scnitemize} + \item В рассмотренных языках никак не рассматриваются проблемы представления не-факторов (нечеткости, нестационарности, недостоверности информации) + \item Возникают проблемы с формальной трактовкой некоторых языковых средств, например, не совсем понятно, как трактуется формула в N3. Как следствие, механизм формул и вообще средства структуризации баз знаний используются достаточно редко + \item Не существует простой и однозначной формы записи некоторых языковых средств, таких как формулы и коллекции в N3 на нижнем уровне (например, средствами чистого RDF), что также препятствует их широкому использованию. Например, по этой причине такие конструкции приходится явно учитывать при реализации хранилищ и средств доступа к ним + \item Несмотря на изначально простой абстрактный синтаксис RDF и языков на его основе, в реальной практике работа как правило ведется на уровне исходного текста, записанного в какой-то из форм представления, например RDF$\backslash$XML. Разработчики каждой конкретной системы сами определяют, каким образом эти тексты преобразуются во внутреннее представление в системе. Соответственно принципы обработки этой информации в общем случае не стандартизируются (см. раздел Обработка информации) + \item Отсутствует какая-либо строгая и одновременно простая формальная база для представления информации (ядро, инвариант представления), которая была бы универсальной и на основе которой строились бы все остальные средства. В данной роли фактически выступает RDF, но он в полной мере не отвечает ни требованию универсальности, ни требованию формальности + \item Не выделено каких-либо базовых отношений, которые бы записывались на уровне синтаксиса базового языка. Все отношения приходится указывать явно + \item Таким образом, рассмотренные стандарты позволяют структурировать информационное пространство, облегчить поиск нужной информации, обеспечить согласованность описания ресурсов различными авторами, т.е. успешно решают те задачи, для которых они создавались, но не могут рассматриваться как универсальные языки представления информации любого рода в базах знаний + \end{scnitemize} +} \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_Information_storage_facilities.tex b/Contents/chapter1/sd_sem_web/sem_web_Information_storage_facilities.tex new file mode 100644 index 00000000..29d1953c --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_Information_storage_facilities.tex @@ -0,0 +1,9 @@ +\scnheader{Средства хранения информации} +\scntext{особенность}{Проблема хранения информации в Semantic Web сейчас фактически сводится к проблеме хранения RDF-графов, поскольку все более сложные языки на синтаксическом уровне могут быть сведены к RDF} +\scnnote{Поскольку RDF-граф по сути представляет собой классический граф, где узлам при необходимости приписываются строковые идентификаторы (исключение составляют формулы в N3, которые используются достаточно редко), то для хранения RDF-графов фактически могут использоваться обычные графовые СУБД, такие как Neo4j, OrientDB, ArangoDB, GraphDB и другие} +\scntext{особенность}{В то же время разрабатываются и используются специализированные средства, называемые RDF-хранилищами или хранилищами триплетов (Triplestore), которые по сути представляют собой специализированные графовые СУБД, оптимизированные для работы с языками Semantic Web и построения компьютерных систем на их основе} +\scnrelfromset{популярные хранилища}{Virtuoso;Sesame;Jena} +\scnrelto{ключевой знак}{\scncite{TriplestoresComparison}} +\scnaddlevel{1} + \scnidtf{подробный сравнительный обзор RDF-хранилищ и графовых СУБД} +\scnaddlevel{-1} \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_data_processing.tex b/Contents/chapter1/sd_sem_web/sem_web_data_processing.tex new file mode 100644 index 00000000..be1573e4 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_data_processing.tex @@ -0,0 +1,132 @@ +\scseparatedfragment{Обработка информации} +\scnheader{Обработка информации} + +\scnstartsubstruct +\scnnote{Ключевыми \textit{задачами} \textit{обработки информации}, представленной при помощи \textit{средств} \textit{\textbf{Semantic Web}}, являются: + \begin{scnitemize} + \item Выполнение \textit{поисковых запросов} (\textit{Query}); + \item \textit{Логический вывод} на \textit{онтологиях} (порождения новой \textit{информации} на основе имеющейся). + \end{scnitemize}} + +\scnsegmentheader{Языки запросов} + +\scnstartsubstruct + +\scnexplanation{Для выполнения \textit{запросов} к \textit{хранилищу}, содержащему \textit{информацию}, записанную в \textit{RDF}, используются \textit{языки запросов}(\textit{Query languages})} + +\scnheader{SPARQL} +\scnidtf{SPARQL Protocol and RDF Query Language} +\scnidtfdef{\textit{язык запросов}, признанный в качестве \textit{стандарта} W3C в 2008 году} + +\scnrelfrom{поддерживаемые операции}{операции SQL} + \scnaddlevel{1} + \scnsubdividing{объединение (JOIN);сортировка (SORT)} + \scnaddlevel{-1} + +\scnnote{\textit{Запрос} \textit{SPARQL} по сути представляет собой \textit{шаблон} некоторого\textit{ RDF-графа}, в котором неизвестные \textit{сущности} задаются \textit{переменными}. +\textit{SPARQL} позволяет получить \textit{результат запроса} в нескольких формах: +\begin{scnitemize} + \item \textit{Оператор} \textit{SELECT} позволяет указать, значения каких \textit{переменных} мы хотели бы получить, \textit{результат} возвращается в виде \textit{таблицы}; + \item \textit{Оператор ASK} позволяет получить \textit{ответ} вида да/нет (существует ли вообще такая \textit{конструкция}); + \item \textit{Оператор CONSTRUCT} позволяет получить \textit{ответ} в виде \textit{RDF-графа}, \textit{содержание} которого может дополнительно уточняться при \textit{запросе}; +\end{scnitemize} + + +Например: + +\textit{PREFIX foaf: \newline +SELECT ?name\newline +?email\newline +WHERE\newline +{\newline + ?person a foaf:Person .\newline + ?person foaf:name ?name .\newline + ?person foaf:mbox ?email .\newline +}}\newline + +Данный запрос позволяет получить \textit{имена} и \textit{e-mail} всех \textit{персон}, известных \textit{системе}. + +\textit{PREFIX ex: \newline +SELECT ?capital\newline +?country\newline +WHERE\newline +\{\newline + ?x ex:cityname ?capital ;\newline + ex:isCapitalOf ?y .\newline + ?y ex:countryname ?country ;\newline + ex:isInContinent ex:Africa .\newline +\}}\newline + +Данный запрос позволяет получить названия всех столичных городов в Африке.\\ + +Ссылка: +\scncite{https://www.w3.org/TR/sparql11-query/}} + +\scnheader{GraphQL} +\scnidtfdef{открытый \textit{язык} для различного рода \textit{графовых хранилищ} и \textit{СУБД}} +\scnrelfrom{синтаксическая схожесть}{JSON} +\scnrelfromlist{оперирование понятиями}{поле; значение поля} +\scnrelto{разработчик}{\textit{\textbf{Facebook}}} +\scnnote{\textit{Язык} \textit{GraphQL} был предложен компанией Facebook в 2012 году. Существует большое число реализаций, поддерживающих \textit{GraphQL}. + +Ссылка: +\scncite{https://graphql.org/} } + +\scnheader{Gremlin} +\scnidtfdef{популярный \textit{язык обхода графа} (\textit{graph traversal language})} +\scnrelto{разработчик}{\textit{\textbf{Apache}}} +\scnnote{Gremlin позволяет описывать \textit{запросы} к \textit{хранилищу графов} как в виде \textit{шаблонов} с \textit{переменными}, так и более простым способом, указывая необходимые \textit{свойства} искомых \textit{компонентов графа}. Поддержка \textit{Gremlin} реализована в большинстве современных \textit{хранилищ}. + +Пример: +\textit{g.V().hasLabel('movie').values('year').min()} + +Данный \textit{запрос} позволяет найти все \textit{вершины графа}, имеющие \textit{метку} “фильм” и выбрать минимальный по году выпуска.} + +\scnheader{Cypher} +\scniselement{открытый язык} +\scnidtfdef{\textit{язык запросов} для \textit{графовой СУБД Neo4j}} +\scnrelfromlist{результат запроса}{граф; таблица} +\scnaddlevel{2} +\scnexplanation{В случае, когда граф построить нельзя, например запрашиваются только значения каких-либо атрибута для заданного множества сущностей} +\scnaddlevel{-2} +\scnnote{Cypher позволяет в достаточно удобной форме описывать шаблоны, на основе которых осуществляется в поиск в графе. Как и в модели СУБД Neo4j в Cypher различаются отношения между сущностями (аналог ObjectProperty в OWL) и свойства сущностей (атрибуты, аналог DataProperty в OWL). + +Пример:\newline +\textit{MATCH (nicole:Actor {name: 'Nicole Kidman'})-[:ACTED\_IN]->(movie:Movie)\newline +WHERE movie.year < 1990\newline +RETURN movie\newline} +Данный \textit{запрос} позволяет найти все фильмы старше 1990 года, в которых сыграла Николь Кидман.} + +\bigskip + +\scnendstruct \scnendsegmentcomment{Языки запросов} + +\scnsegmentheader{Ризонеры} + +\scnstartsubstruct + +\scnheader{Ризонеры} +\scnidtf{reasoners} +\scnrelfrom{область применения}{логический вывод} +\scnaddlevel{2} +\scnexplanation{\textit{Ризонеры}, как правило, реализуют \textit{прямой логический вывод} на основе \textit{отношений}, описанных в \textit{онтологии}. В простейшем случае это \textit{вывод} на основе \textit{свойства транзитивности отношений}, например \textit{SubClassOf}, в более сложных могут учитываться \textit{правила}, записанные, например в \textit{SWRL}.} +\scnaddlevel{-2} + +\scnnote{Часто для \textit{ризонера} оговаривается \textit{язык}, \textit{семантика} которого полностью поддерживается соответствующим \textit{ризонером}, например \textit{OWL Lite} или \textit{OWL DL}.\newline + +Полный список признанных сообществом \textit{ризонеров} с кратким описанием их возможностей приведен в статье: +\scncite{https://www.w3.org/2001/sw/wiki/OWL/Implementations/}} + +\bigskip + +\scnendstruct \scnendsegmentcomment{Ризонеры} + +\bigskip + +\scnrelfromlist{выводы к разделу}{ + \scnfileitem {Интересно отметить, что все рассмотренные \textit{языки запросов} (включая \textit{SPARQL}, который является \textit{стандартом W3C}), кроме \textit{GraphQL}, позволяют осуществлять только \textit{поиск} (собственно \textit{запросы}), и не дают возможности что-либо создавать, редактировать или удалять в \textit{графе}, в отличие, например, от \textit{языка} \textit{SQL}, обладающем соответсвующими \textit{классами операторов}. Это означает, что фактически эта часть никак не стандартизируется и отдается на откуп разработчикам конкретного \textit{хранилища}, которые формируют соответствующий \textit{программный интерфейс}.}; + \scnfileitem {\textit{Возможности} и \textit{принципы} \textit{логического вывода} на \textit{онтологиях} зависят на \textit{синтаксиса} и \textit{семантики} \textit{языков}, используемых для \textit{представления знаний}. В остальном \textit{обработка информации}, записанной \textit{средствами} \textit{\textbf{Semantic Web}} никак не стандартизируется - реализуются \textit{программные интерфейсы} для \textit{доступа} к \textit{хранилищам} для различных \textit{языков программирования}, после чего разработчик конкретной \textit{системы} сам определяет, как использовать полученную \textit{информацию}.}} + +\bigskip +\scnendstruct +\scnendcurrentsectioncomment \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_desc_logic_stats_langs.tex b/Contents/chapter1/sd_sem_web/sem_web_desc_logic_stats_langs.tex new file mode 100644 index 00000000..e0b1fe5b --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_desc_logic_stats_langs.tex @@ -0,0 +1,40 @@ +\scnheader{Языки описания логических высказываний} +\scntext{особенность}{Для записи логических высказываний в языках семейства Semantic Web используется соответствующий набор понятий, определяемых соответствующими онтологиями, например в рамках семейства SWAP} +\scnaddlevel{1} +\scnnote{имеются в виду те классы высказываний, которые не накрываются стандартизированными отношениями в рамках соответствующего языка, например OWL 2} +\scnaddlevel{-1} +\scntext{особенность}{Для записи логических переменных используется механизм именования переменных, рассмотренный в разделе Нотация N3. (?x либо \_:x). На переменные могут накладываться кванторы, рассмотренные в том же разделе. Для связи между собой атомарных высказываний может использоваться механизм формул, также рассмотренный в указанном разделе} +\scnnote{Иногда для записи логических высказываний используется менее громоздкий синтаксис языка KIF, особенно в случае, когда сформированный таким образом набор высказываний выкладывается где-либо в открытом источнике как многократно используемый компонент} +\scntext{пример}{ + (subclass RailVehicle LandVehicle) /*ЖД транспорт - подкласс наземного*/\\ + (documentation RailVehicle\\ + "A Vehicle designed to move on \&\%Railways.") /*ЕЯ-формулировка*/\\ + (=> (instance ?X RailVehicle) /*Если Х - ЖД транспорт, то */\\ + (hasPurpose ?X /* Х предназначен для случаев когда */\\ + (exists (?EV ?SURF)\\ + (and (instance ?RAIL Railway) /* существуют рельсы и */\\ + (instance ?EV Transportation) /* существует перемещение */\\ + (holdsDuring (WhenFn ?EV) /* которое происходит */\\ + (meetsSpatially ?X ?RAIL)))))) /* когда Х контактирует с рельсами */ +} +\scnaddlevel{1} +\scniselement{префиксная запись KIF} +\scnaddlevel{-1} +\scniselement{SWRL} +\scnaddlevel{1} +\scnidtf{язык SWRL основан на объединении языков OWL DL и OWL Lite с ограниченной версией (подъязыком) языка RuleML, который разрабатывался как язык описания логических правил для различных целей и, в свою очередь, является подъязыком языка логического программирования Datalog, который, в свою очередь, является подъязыком языка Prolog} + +\scnnote{SWRL изначально разрабатывался в рамках проекта по разработке языка DAML, который являлся предтечей языков описания онтологий в рамках Semantic Web} + +\scntext{особенность}{SWRL дополняет OWL DL возможностью записи логических правил в человеко-читабельном (Хорновском) стиле. При этом SWRL не добавляет каких-либо принципиальных отличий в плане выразительной мощности} +\scntext{пример}{hasParent(?x1,?x2) ∧ hasBrother(?x2,?x3) ⇒ hasUncle(?x1,?x3)} +\scnaddlevel{1} + \scnexplanation{Данная запись определяет отношение “быть дядей”} +\scnaddlevel{-1} +\scntext{пример}{Student(?x1) ⇒ Person(?x1)} +\scnaddlevel{1} + \scnexplanation{Данная запись гласит, что каждый студент является персоной. Очевидно, что та же информация может быть записана без явного использования логических правил при помощи отношения owl:subClassOf} +\scnaddlevel{-1} +\scnnote{Тексты на SWRL с точки зрения синтаксиса могут быть записаны в тех же форматах, что и тексты OWL, например OWL XML (на основе RDF$\backslash$XML) и других} +\scnaddlevel{-1} +\scnrelto{ключевой знак}{\scncite{SWRLDescription}} \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_descriptive_logic.tex b/Contents/chapter1/sd_sem_web/sem_web_descriptive_logic.tex new file mode 100644 index 00000000..c1da3546 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_descriptive_logic.tex @@ -0,0 +1,194 @@ +\scseparatedfragment{Представление знаний} +\scnheader{Представление знаний} + +\scnsegmentheader{Дескриптивная логика} + +\scnstartsubstruct + +\scnheader{дескриптивная логика} + +\scnidtf{дескрипционная логика} +\scnidtf{descriptive logic} +\scnidtf{DL} +\scnidtfdef{семейство\textit{ формальных языков представления знаний}.} + +\scnsubdividing{DL общего вида; темпоральные DL; пространственные DL; пространственно-темпоральные DL; нечеткие DL} + +\scnsuperset{концепт} +\scnaddlevel{1} +\scnidtf{одноместный предикат} +\scnidtf{множество} +\scnidtf{класс} +\scnaddlevel{-1} + +\scnsuperset{роль} +\scnaddlevel{1} +\scnidtf{двухместный предикат} +\scnidtf{бинарное отношение} +\scnaddlevel{-1} + + +\scnnote{Большинство \textit{DL} более выразительны, чем \textit{пропозициональные логики}, но менее выразительны, чем\textit{ логика предикатов первого порядка}. В отличие от последних, \textit{DL} обычно разрешимы, для них определены эффективные \textit{процедуры вывода}. В целом в \textit{DL} обычно соблюдается баланс между выразительной мощностью и сложностью организации вывода. Современное название семейство \textit{DL} получило в 1980-е годы, тогда они изучались как расширения \textit{теорий фреймовых структур} и \textit{семантических сетей} механизмами \textit{формальной логики}. В 2000-е годы \textit{дескрипционные логики} получили применение в рамках концепции \textit{Semantic Web паутины}, где их предлагалось использовать при построении \textit{онтологий}. На основе \textit{DL} построены подъязыки \textit{OWL} такие как \textit{OWL-DL} и \textit{OWL-Lite}.} + +\scnheader{ALC} +\scnidtf{attributive language with complement} +\scnidtfdef{одна из базовых систем, на основе которой строятся многие другие \textit{дескрипционные логики}} +\scnidtfdef{семейство \textit{логик}, где каждая \textit{логика} этого семейства задается выбором конкретных \textit{множеств} атомарных \textit{концептов} и \textit{ролей}} + +\scnsuperset{концепты логики} +\scnaddlevel{1} + +\scnrelfromset{индуктивное определение}{ + \scnfileitem{всякий атомарный \textit{концепт} является \textit{концептом}}; + \scnfileitem{выражения \(\top\) и \(\bot\) являются \textit{концептами}}; + \scnfileitem{если C есть \textit{концепт}, то его дополнение ¬C является \textit{концептом}}; + \scnfileitem{если C и D есть \textit{концепты}, то их \textit{пересечение} C \(\wedge\) D и \textit{объединение} C \(\lor\) D являются \textit{концептами}}; + \scnfileitem{если C есть \textit{концепт}, а R есть \textit{роль}, то выражения \(\forall\) R. C и \(\exists\)R. C R.C являются \textit{концептами}}} + + \scnaddlevel{1} + \scnexplanation{Пояснения к индуктивным определениям концептов логики ALC: + + \begin{scnitemize} + \item c точки зрения \textit{интерпретации} (\textit{семантики}) \(\top\) трактуется как множество всевозможных \textit{сущностей} (весь \textit{домен}), а \(\bot\) как пустое \textit{множество}; + + \item каждый \textit{концепт} A трактуется как \textit{подмножество} \textit{домена}, каждая \textit{роль} - как \textit{бинарное отношение} на \textit{домене}, то есть R \(\subseteq\) \(\top\) \(\times\) \(\top\); + + \item \textit{дополнение}, \textit{пересечение} и \textit{объединение} \textit{концептов} трактуются как аналогичные \textit{теоретико-множественные операции}; + + \item выражение \(\forall\)R.C интерпретируется как \textit{множество} всех \textit{индивидов}, которые связаны \textit{отношением} R только с \textit{индивидами} \textit{концепта} C; + + \item выражение \(\exists\)R.C интерпретируется как \textit{множество} тех \textit{индивидов}, которые связаны \textit{отношением} R с каким-либо \textit{индивидом} \textit{концепта} C. + \end{scnitemize} + } + + \scnnote{Для определения \textit{концептов логики ALC} допускаем, что заданы непустые конечные \textit{множества} атомарных \textit{концептов} и атомарных \textit{ролей}. В свою очередь, семантика \textit{дескрипционных логик} задается путём \textit{интерпретации} её атомарных \textit{концептов} как множеств объектов («\textit{индивидов}»), выбираемых из некоторого фиксированного множества («\textit{домена}»), а атомарных \textit{ролей} — как множеств пар индивидов, то есть \textit{бинарных отношений} на \textit{домене}. Из этого следует, что \textit{классические DL} не предполагают наличия произвольных отношений между \textit{концептами} (\textit{классами}). Формально интерпретация какой-либо \textit{DL} семейства \textit{ALC} задается \textit{доменом} (множеством всевозможных \textit{сущностей}) и \textit{интерпретирующей функцией}, задающей \textit{концепты} и \textit{роли} на основе данного домена.} + \scnaddlevel{-1} + +\scnaddlevel{-1} + + +\scnheader{База знаний в контексте DL} +\scnidtfdef{\textit{объединение} двух \textit{множеств}: + \begin{scnitemize} + \item набор \textit{терминологических аксиом} или \textit{TBox} + \item набор \textit{утверждений} об \textit{индивидах} или \textit{ABox} + \end{scnitemize} +} + +\scnheader{Терминологические аксиомы} +\scnsubdividing{аксиома вложенности; аксиома эквивалентности} + \scnaddlevel{1} + \scnexplanation{ + \begin{scnitemize} + \item \textit{аксиома вложенности} - C \(\subseteq\) D (как для \textit{концептов}, так и для \textit{ролей}) + + \item \textit{аксиома эквивалентности} - C \(\equiv\) D (как для \textit{концептов}, так и для \textit{ролей}) + \end{scnitemize} + } + \scnaddlevel{-1} + +\scnnote{ + Пример: + \textit{Например, следующая совокупность является терминологией (или TBox) для какой-либо DL семейства ACL:}\newline + + \textit{Woman \(\equiv\) Person \(\cap\) Female \newline + Mother \(\equiv\) Woman \(\cap\) \(\exists\) hasChild.\(\top\) \newline + \(\forall\) hasChild.Person \(\subseteq\) Person \newline + Doctor \(\subseteq\) Person\newline} + + +Данный \textit{фрагмент} может интерпретироваться следующим образом: +\begin{scnitemize} +\item быть женщиной означает в точности быть человеком и быть женского пола; +\item быть матерью означает в точности быть женщиной и иметь ребёнка; +\item у всякого человека всякий ребёнок есть тоже человек; +\item всякий доктор является человеком. +\end{scnitemize} + +Если \textit{терминологическая аксиома} выполняется в рамках какой-либо \textit{интерпретации}, то говорят, что данная \textit{интерпретация} является \textit{моделью} для данной \textit{аксиомы}. \textit{Моделью} заданного \textit{TBox} называется \textit{интерпретация}, которая является \textit{моделью} для всех \textit{аксиом} данного \textit{TBox}.} + + + +\scnheader{Утверждения об индивидах} +\scnsubdividing{утверждение о принадлежности индивида концепту; утверждение о связи двух индивидов ролью} + + \scnaddlevel{1} + \scnexplanation{ + \begin{scnitemize} + \item утверждение о принадлежности индивида a концепту C — записывается как C(a) или a:C; + + \item утверждение о связи двух индивидов a и b ролью R — записывается как R(a,b) или (a,b):R или aRb. + \end{scnitemize} + } + \scnaddlevel{-1} + +\scnnote{ +Пример: +\textit{Например, следующая совокупность является набором утверждений об индивидах (ABox) для какой-либо DL семейства ACL:}\newline +\textit{ +Mary : Woman \(\cap\) ¬Doctor\newline +Mary : \(\exists\) hasChild.Female \newline +Mary: hasChild Peter\newline +Peter : Doctor \(\cap\) \(\forall\) hasChild . \(\bot\)}\newline + +Здесь \textit{Mary} и \textit{Peter} есть имена \textit{индивидов}. Эти утверждения означают, что \textit{Mary} является женщиной, но не доктором, у неё есть ребёнок женского пола, \textit{Peter} также является ребёнком \textit{Mary}, причем \textit{Peter} является доктором и не имеет детей. +\textit{Моделью} заданного \textit{ABox} является \textit{интерпретация}, в которой выполняются все \textit{утверждения} данного \textit{ABox}. + +В рамках \textit{теории DL} существует большое количество \textit{расширений ACL}, основными из которых являются следующие (\textit{R-последователем} называется \textit{второй компонент пары}, принадлежащей \textit{отношению} R, для заданного \textit{первого компонента}): +\begin{scnitemize} +\item \textit{F} - \textit{Функциональность ролей}: \textit{концепты} вида ( \(\leq\) 1 R ), означающие: существует не более одного \textit{R-последователя}; +\item \textit{N} - \textit{Ограничения кардинальности ролей}: \textit{концепты} вида ( \(\leq\) n R ) , означающие: существует не более n \textit{R-последователей}; +\item \textit{Q} - \textit{Качественные ограничения кардинальности ролей}: концепты вида ( \(\leq\) n R.C ), означающие: существует не более n \textit{R-последователей} в \textit{C}; +\item \textit{I} - \textit{Обратные роли}: если R есть \textit{роль}, то R − тоже является \textit{ролью}, означающей \textit{обращение бинарного отношения}; +\item \textit{O} - \textit{Номиналы}: если a есть \textit{имя индивида}, то \{ a \} есть \textit{концепт}, означающий \textit{одноэлементное множество}; +\item \textit{H} - \textit{Иерархия ролей}: в \textit{TBox} допускаются \textit{аксиомы вложенности ролей} R \(\subseteq\) S +\item \textit{S} - \textit{Транзитивные роли}: в \textit{TBox} допускаются \textit{аксиомы транзитивности} вида Tr(R) +\item \textit{R} - \textit{Составные аксиомы вложенности ролей} в \textit{TBox} ( R \(\circ\) S \(\subseteq\) R, R \(\circ\) S \(\subseteq\) S) с условием \textit{ацикличности}, где R \(\circ\) S есть \textit{композиция ролей}; +\item \textit{(D)} - \textit{Расширение языка конкретными доменами} (\textit{типами данных}) +\end{scnitemize} + +Исследуются и используются различные \textit{совокупности} этих \textit{свойств}. Например, \textit{язык OWL-Lite} соответствует \textit{дескрипционной логике SHIF(D)}, а \textit{язык OWL-DL} соответствует \textit{дескрипционной логике SHOIN(D)}.} + +\scnheader{Логический вывод в DL} + +\scnrelfrom{реализация}{ризонер} +\scnaddlevel{1} +\scnexplanation{Каждый из \textit{ризонеров} поддерживает определенный \textit{набор расширений ACL}, что оговаривается в его \textit{спецификации}.} +\scnaddlevel{-1} + +\scnsuperset{логический анализ} +\scnaddlevel{1} +\scnidtfdef{\textit{концепт} C данной логики выполняется в \textit{интерпретации} I, если в этой \textit{интерпретации} у него есть хотя бы 1 \textit{индивид}} +\scnidtfdef{\textit{концепт} C называется \textit{выполнимым}, если существует \textit{интерпретация}, в которой он выполняется} +\scnidtfdef{\textit{концепт} C вложен в \textit{концепт} D (или содержится в нём; англ. is subsumed by), если в любой \textit{интерпретации} I выполняется C \(\subseteq\) D} +\scnaddlevel{-1} + +\scnnote{С учетом определений ключевые проблемы, решаемые при помощи \textit{логического вывода в DL}, обычно следующие: + \begin{scnitemize} + \item выполнимость \textit{концепта}: является ли заданный \textit{концепт} \textit{выполнимым} относительно заданного \textit{TBox}? + \item вложенность \textit{концептов}: верно ли, что один заданный \textit{концепт} вложен в другой относительно заданного \textit{TBox}? + \item совместимость \textit{TBox}: имеет ли заданный \textit{TBox} хотя бы одну \textit{модель}? + \item совместимость \textit{базы знаний}: имеет ли заданная \textit{пара} (\textit{TBox}, \textit{ABox}) хотя бы одну \textit{модель}? + \end{scnitemize} + +Кроме того, важное практическое значение имеют такие проблемы, как: +\begin{scnitemize} +\item \textit{классификация терминологии}: для данной \textit{терминологии} (то есть \textit{TBox}) построить \textit{таксономию} или \textit{иерархию концептов}, то есть упорядочить все \textit{атомарные концепты} по отношению вложения (отн. данного \textit{TBox}) и выдать соответствующее \textit{частично упорядоченное множество}; +\item извлечение \textit{экземпляров концепта}: найти все \textit{экземпляры} заданного \textit{концепта} относительно заданной \textit{базы знаний}; +\item наиболее узкий \textit{концепт} для \textit{индивида}: найти наименьший (по вложению) \textit{концепт}, \textit{экземпляром} которого является заданный \textit{индивид} относительно заданной \textit{базы знаний}; +\item ответ на \textit{запрос} к \textit{базе знаний}: выдать все наборы \textit{индивидов}, которые удовлетворяют заданному \textit{запросу} относительно заданной \textit{базы знаний}. +\end{scnitemize}} + +\scnrelfromlist{выводы к сегменту}{ + \scnfileitem {\textit{Дескриптивные логики} изначально создавались как способ \textit{представления знаний}, обладающий балансом между выразительной мощностью и вычислительной сложностью;}; + \scnfileitem {Сами по себе классические \textit{DL} достаточно ограничены и в основном ориентированы на \textit{представление таксономий} (\textit{иерархий}) \textit{классов}, а также описании \textit{свойств} между \textit{экземплярами} этих \textit{классов}. Фактически классические \textit{DL} не содержат \textit{средств описания свойств} самих \textit{классов} и \textit{отношений} между ними, \textit{средств структуризации баз знаний}, \textit{средств записи }нечетких, нестационарных и других \textit{знаний} с \textit{НЕ-факторами}.}} + + + + + +\bigskip + +\scnendstruct \scnendsegmentcomment{Дескриптивная логика} +\bigskip +\scnendcurrentsectioncomment \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_development_directions.tex b/Contents/chapter1/sd_sem_web/sem_web_development_directions.tex new file mode 100644 index 00000000..644b4c67 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_development_directions.tex @@ -0,0 +1,13 @@ +\scseparatedfragment{Направления развития Semantic Web} +\scnheader{Направления развития Semantic Web} + +\scneqfile{Несмотря на довольно очевидную выгоду от ее \textit{внедрения}, \textit{общая концепция Semantic Web} в настоящее время не реализована даже на базовом уровне. Уже в 2006 году Тим Бернерс-Ли опубликовал статью\textit{ “Semantic Web Revisited”}, в которой признал, что по ряду причин \textit{концепция} в большой степени не реализована.\newline + Причин такой ситуации несколько: + \begin{scnitemize} + \item человеческий фактор и накладные расходы - описание \textit{метаданных} для какого-либо \textit{ресурса} и вообще его \textit{формализация} требует дополнительных затрат, иногда довольно существенных, но в то же время не дает очевидной прямой выгоды в ближайшей перспективе. Кроме того, многие коммерческие компании не заинтересованы в \textit{стандартизации} подобных \textit{решений} в принципе, поскольку это снизит объем выполняемой работы и востребованность таких компаний на рынке; + \item сами по себе \textit{средства представления} и \textit{обработки знаний \textbf{Semantic Web}} достаточно сложны в использовании для неподготовленного человека; + \item остается открытым вопрос с выбором \textit{универсальной системы понятий верхнего уровня}, которые бы гарантированно позволили описать любую \textit{информацию}; кроме того, возникает вопрос о том, возможно ли вообще выбрать такую \textit{систему понятий}; + \item добавление \textit{метаинформации} автоматически приводит к частичному дублированию уже имеющейся \textit{информации} и соответствующим расходам. + \end{scnitemize} +} +\scnendcurrentsectioncomment \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_early_presentation_langs.tex b/Contents/chapter1/sd_sem_web/sem_web_early_presentation_langs.tex new file mode 100644 index 00000000..a270a5af --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_early_presentation_langs.tex @@ -0,0 +1,24 @@ +\scnheader{Ранние языки представления информации} +\scniselement{KL-ONE} +\scnaddlevel{1} + \scnidtf{система языков, разработанная в 1980ых и интегрирующая идеи семантических сетей и фреймов (понятие класса, подкласса, наследования и т.д.), на основе которых были построены одни из первых средств прямого вывода на онтологиях (на основе отношения класс-подкласс)} +\scnaddlevel{-1} + +\scniselement{LOOM} +\scnaddlevel{1} + \scnidtf{язык со строгой формальной семантикой, разработанный в 1990ых на основе \textit{KL-ONE}, конструкциям которого могут быть поставлены в соответствие либо теоретико-множественные выражения, либо выражения логики предикатов первого порядка} +\scnaddlevel{-1} + +\scniselement{KIF} +\scnaddlevel{1} + \scnidtf{Knowledge Interchange Format} + \scnidtf{язык, схожий с \textit{LOOM} и другими \textit{KL-ONE} языками, но предназначенный в первую очередь для обмена знаниями между компьютерными системами} + \scntext{особенность}{Тексты \textit{KIF} могут быть протранслированы в \textit{RDF} и наоборот} + \scnreltolist{ключевой знак}{\scncite{KIFa};\scncite{KIFb}} +\scnaddlevel{-1} + +\scniselement{KQML} +\scnaddlevel{1} + \scnidtf{Knowledge Query and Manipulation Language} + \scnidtf{язык, предназначенный для обмена сообщениями между агентами, в настоящее время вытеснен стандартом ACL (Agent Communication Language) от FIPA} +\scnaddlevel{-1} \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_entity_identification_principles.tex b/Contents/chapter1/sd_sem_web/sem_web_entity_identification_principles.tex new file mode 100644 index 00000000..8c69cbc1 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_entity_identification_principles.tex @@ -0,0 +1,73 @@ +\scnheader{Принципы идентификации сущностей (ресурсов)} + +\scniselement{URI} +\scnaddlevel{1} + \scnidtf{Universal Resource Identifier} + \scnidtf{Uniform Resource Identifier} + \scnidtf{символьная строка, позволяющая идентифицировать какой-либо ресурс: документ, изображение, файл, службу, ящик электронной почты и т. д.} + \scntext{структура}{URI = scheme:[//[пользователь@]хост[:порт]]путь[?запрос][#фрагмент]} + \scnaddlevel{1} + \scntext{пример}{https://example.com/path/resource.txt#fragment} + \scnaddlevel{-1} + \scnsuperset{URL} + \scnaddlevel{1} + \scnidtf{Universal Resource Locator} + \scnidtf{это \textit{URI}, который, помимо идентификации ресурса, предоставляет ещё и информацию о местонахождении этого ресурса} + \scnaddlevel{-1} + \scnsuperset{URN} + \scnaddlevel{1} + \scnidtf{Universal Resource Name} + \scnidtf{это \textit{URI}, который только идентифицирует ресурс в определённом пространстве имён (и, соответственно, в определённом контексте), но не указывает его местонахождение} + \scntext{структура}{ ::= "urn:" ":" <Имя ресурса>} + \scntext{пример}{urn:isbn:5170224575 (номер книги в пространстве ISBN)} + \scnaddlevel{-1} + \scntext{особенность}{\textit{URI} используются для обозначения субъектов, отношений и объектов в \textit{RDF}} + \scnaddlevel{1} + \scntext{пример}{http://localhost/Institute#Student (класс)\\ + http://localhost/Institute#hasAuthor (отношение)} + \scnaddlevel{-1} + \scntext{особенность}{\textit{URI} позволяют отличать сущности, имеющие одинаковое название, но возможно, разную трактовку в разных онтологиях} + \scnrelto{ключевой знак}{\scncite{URI}} +\scnaddlevel{-1} + +\scniselement{IRI} +\scnaddlevel{1} +\scnidtf{Internationalized Resource Identifier} + \scntext{особенность}{В \textit{URI} можно использовать только ограниченный набор латинских символов и знаков препинания (даже меньший, нежели в ASCII). Это входит в противоречие с принципом интернационализма, провозглашаемого W3C.\\ + Эту проблему призван решить стандарт \textit{IRI} (Internationalized Resource Identifier), разрешающий использовать любые символы Юникода + } + \scnrelto{ключевой знак}{\scncite{IRI}} +\scnaddlevel{-1} + +\scniselement{XRI} +\scnaddlevel{1} + \scnidtf{Extensible Resource Identifier} + \scnidtf{расширяемый идентификатор ресурса, разработанный организацией OASIS, прежде всего, как будущая замена \textit{URL} в Интернете} + \scntext{особенность}{\textit{XRI} — это новая, совместимая с \textit{IRI} и \textit{URI} схема (протокол) для создания абстрактных идентификаторов ресурсов. Такие идентификаторы не зависят от платформы, домена, путей и программ — они полностью абстрактны и поэтому могут быть едины для всех доменов и каталогов} + \scnrelfromset{слои идентификатора}{I-Numbers\\ + \scnaddlevel{1} + \scnidtf{постоянные сетевые адреса (похожие на IP-адреса)} + \scntext{особенность}{Такие адреса будут регистрироваться на какой-либо ресурс (человека, организацию, приложение, файл, цифровой объект и т. д.) и никогда больше не перерегистрироваться (в отличие от IP-адресов и доменов DNS). Это означает, что идентификатор \textit{I-Number} всегда можно будет использовать как адрес для какого-либо ресурса (по крайней мере, пока этот ресурс доступен в сети). Идентификаторы \textit{I-Numbers} очень эффективны, они специально разработаны и оптимизированы для обработки сетевыми маршрутизаторами} + \scnaddlevel{-1} + ;I-Names\\ + \scnaddlevel{1} + \scnidtf{удобные для человека названия (похожие на домены системы DNS)} + \scntext{особенность}{Как имена доменов DNS разрешаются DNS-серверами в IP-адреса, так и \textit{I-Names} будут разрешаться в \textit{I-Numbers}. Но, в отличие от \textit{I-Numbers}, идентификаторы \textit{I-Names} смогут быть переопределены их владельцами для идентификации других ресурсов. Например, если \textit{I-Name} ассоциирован с названием компании, а компания решила изменить своё название, то она может передать свой старый идентификатор \textit{I-Name} другой компании, хотя при этом обе компании останутся со своими старыми идентификаторами \textit{I-Numbers}} + \scnaddlevel{-1} + } + \scniselement{Глобальный контекст XRI} + \scnaddlevel{1} + \scnrelfromset{cпецсимволы глобального контекста}{ + \scnfileitem{символ = для частных лиц} + ;\scnfileitem{символ @ для организаций и бизнеса} + ;\scnfileitem{символ + для общих понятий (например: аэропорт, дом, шкаф и т. п.)} + } + \scntext{пример}{=Mary.Jones\\ + @Jones.and.Company\\ + +phone.number\\ + +phone.number/(+area.code)\\ + =Mary.Jones/(+phone.number)\\ + @Jones.and.Company/(+phone.number)\\ + @Jones.and.Company/((+phone.number)/(+area.code))} + \scnaddlevel{-1} +\scnaddlevel{-1} \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_intro.tex b/Contents/chapter1/sd_sem_web/sem_web_intro.tex new file mode 100644 index 00000000..7173ae1d --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_intro.tex @@ -0,0 +1,22 @@ +\scseparatedfragment{Введение в Semantic Web} +\scnheader{Введение в Semantic Web} + + \scneqfile{В марте 1989 года Тим Бернерс-Ли предложил концепцию распределенной информационной системы с целью "объединения знаний человечества"{}, которую он назвал \textit{"Всемирной паутиной"} (\textit{World Wide Web} - \textit{WWW}). Для её создания он объединил две существующие технологии - \textit{технологию применения IP-протоколов для передачи данных} и \textit{технологию гипертекста} (\textit{Hypertext Technology}). + Основными элементами технологии \textit{WWW} являются : + \begin{scnitemize} + \item \textit{язык гипертекстовой разметки документов} (\textit{Hyper Text Markup Language} - \textit{HTML}); + \item \textit{протокол обмена гипертекстовой информацией} (\textit{Hyper Text Transfer Protocol} - \textit{HTTP}); + \item \textit{универсальный способ адресации ресурсов в сети} (\textit{Universal Resource Identifier} - \textit{URI}, и \textit{Universal Resource Locator} - \textit{URL}); + \item \textit{система доменных имен} (\textit{Domain Name System} - \textit{DNS}); + \item \textit{универсальный интерфейс шлюзов} (\textit{Common Gateway Interface} - \textit{CGI}), добавленный позже сотрудниками \textit{Национального Центра Суперкомпьютерных Приложений} (\textit{National Center for Supercomputing Applications} - \textit{NCSA}); + \item \textit{расширяемый язык разметки} (\textit{eXtensible Markup Language} - \textit{XML}), рекомендованный \textit{Консорциумом Всемирной паутины}. + \end{scnitemize} + + Основная цель \textbf{\textit{Semantic Web}} - создать надстройку над существующей \textit{Всемирной паутиной}, позволяющую сделать размещаемую в \textit{Интернете} информацию пригодной для машинной обработки, а именно для автоматического анализа, синтеза выводов и преобразования как самих данных, так и сделанных на их основе заключений в различные представления, полезные на практике. + + В частности, такой подход позволит повысить релевантность предоставляемой пользователю информации, обеспечить предоставление только необходимой части информации, облегчить поиск информации и повысить эффективность ее использования. + + Важно отметить, что концепции \textit{Web 2.0} и \textit{Web 3.0}, описывающие эволюцию интернет-технологий, не связаны непосредственно с \textit{\textbf{Semantic Web}}, более того, автор концепции \textit{Web 2.0} Тим О’Рейли неоднократно выступал с критикой отождествления \textit{\textbf{Semantic Web}} и \textit{Web 3.0}.} +\bigskip +\scnendcurrentsectioncomment + diff --git a/Contents/chapter1/sd_sem_web/sem_web_rdf.tex b/Contents/chapter1/sd_sem_web/sem_web_rdf.tex new file mode 100644 index 00000000..8f648e57 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_rdf.tex @@ -0,0 +1,48 @@ +\scnheader{RDF} +\scnidtf{Resource Description Framework} +\scnidtf{разработанная консорциумом Всемирной паутины модель для представления данных, в особенности — метаданных. \textit{RDF} представляет утверждения о ресурсах в виде, пригодном для машинной обработки} +\scntext{особенность}{Ресурсом в \textit{RDF} может быть любая сущность — как информационная (например, веб-сайт или изображение), так и неинформационная (например, человек, город или некое абстрактное понятие). Утверждение, высказываемое о ресурсе, имеет вид «субъект — предикат — объект» и называется триплетом} +\scntext{особенность}{Для обозначения субъектов, отношений и объектов в \textit{RDF} используются \textit{URI}} +\scnnote{\textit{RDF} сам по себе является не форматом файла, а только лишь абстрактной моделью данных, то есть описывает предлагаемую структуру, способы обработки и интерпретации данных. Для хранения и передачи информации, уложенной в модель \textit{RDF}, существует целый ряд форматов записи} +\scnrelfromlist{формат записи}{RDF/XML\\ +\scnaddlevel{1} + \scnidtf{запись в виде XML-документа} +\scnaddlevel{-1} +;RDF/JSON +\scnaddlevel{1} + \scnidtf{запись в виде JSON-данных} +\scnaddlevel{-1} +;RDFa +\scnaddlevel{1} + \scnidtf{запись внутри атрибутов произвольного HTML- или XHTML-документа} +\scnaddlevel{-1} +;N-Triples +\scnaddlevel{1} + \scnidtf{компактная форма записи утверждений} +\scnaddlevel{-1} +;Turtle +\scnaddlevel{1} + \scnidtf{компактная форма записи утверждений} +\scnaddlevel{-1} +;N3 +\scnaddlevel{1} + \scnidtf{компактная форма записи утверждений} +\scnaddlevel{-1}} +\scnnote{\textit{RDF} предоставляет средства для построения информационных моделей, но не касается семантики описываемого. Взятый в отдельности граф \textit{RDF} можно понимать только как граф. Толкование значения основывается на способности пользователей \textit{RDF} интерпретировать отдельные \textit{URI}, строковые литералы и структуру графа, и по ним интерпретировать остальные \textit{URI} и семантику данных} +\scntext{особенность}{Для выражения семантики требуются \textit{словари} (англ. vocabularies), \textit{таксономии} (англ. taxonomies) и \textit{онтологии} (англ. ontologies) и наличие в рассматриваемом графе связей с ними} +\scniselement{Словарь} +\scnaddlevel{1} + \scnidtf{представляет собой собрание терминов, имеющих во всех контекстах использования этого словаря одинаковый смысл} +\scnaddlevel{-1} +\scniselement{Таксономия} +\scnaddlevel{1} + \scnidtf{словарь иерархически организованных терминов} +\scnaddlevel{-1} +\scniselement{Онтология} +\scnaddlevel{1} + \scnidtf{использует предопределённый зарезервированный словарь терминов для определения концепций и отношений между ними для конкретной предметной области} + \scnnote{Онтологии можно использовать для выражения семантики терминов словаря, их взаимоотношений и контекстов использования} +\scnaddlevel{-1} +\scntext{особенность}{Большинство словарей для описываемых субъектов не только содержит предикаты и объекты, но и подразумевает для них ту или иную семантическую нагрузку, не укладывающуюся как правило в собственно RDF-представление словаря. Это могут быть способы использования тех или иных конкретных субъектов, правила, ограничения, рекомендации, обоснования необходимости использования именно их, и т. п. Как правило, это описывается в сопроводительной документации к словарю} +\scnnote{Словари PDF также называются RDF-схемами (не путать с RDFS). В настоящее существует довольно большое количество открытых словарей, некоторые из которых используются сообществом на уровне де-факто и де-юре стандартов} +\scnrelto{ключевой знак}{\scncite{RDF}} \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_rdfs.tex b/Contents/chapter1/sd_sem_web/sem_web_rdfs.tex new file mode 100644 index 00000000..04161446 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_rdfs.tex @@ -0,0 +1,120 @@ +\scnheader{RDFS} +\scnidtf{RDF Schema} +\scnidtf{RDF/S} +\scnidtf{RDF-S} +\scnidtf{RDF(S)} +\scnidtf{RDF Schema} +\scnidtf{набор классов и свойств для модели представления знаний RDF, составляющий основу для описания онтологий с использованием расширенного RDF-словаря} + +\scnnote{RDFS использует кодирование в виде RDF, то есть позволяет описать сами RDF-триплеты подобно описаниям других RDF-ресурсов} + +\scntext{особенность}{RDFS является базовых словарем, на основе которого строится большинство других словарей, включая язык OWL} + +\scnrelfrom{классы}{Классы RDFS\\ + \scniselement{rdfs:Resource\\ + \scnaddlevel{1} + \scnidtf{класс, включающий все ресурсы, то есть, всё, что описывает RDF} + \scnaddlevel{-1} + } + \scniselement{rdfs:Class\\ + \scnaddlevel{1} + \scnidtf{описывает, что ресурс является классом (типом) ресурса. Для отнесения ресурса к типу используется свойство \textit{rdf:type} + } + \scnaddlevel{-1} + } + \scniselement{rdfs:Literal\\ + \scnaddlevel{1} + \scnidtf{обозначает литерал (строка, смысл которой уточняется отдельно при помощи IRI типа данных} + \scnnote{Литералы могут быть простыми (plain, например, число) или иметь некоторый тип} + \scnaddlevel{-1} + } + \scniselement{rdfs:Datatype\\ + \scnaddlevel{1} + \scnidtf{класс типов данных} + \scntext{особенность}{Является одновременно и подклассом \textit{rdfs:Class}, и экземпляром из \textit{rdfs:Class}. Каждый экземпляр класса \textit{rdfs:Datatype} является подклассом \textit{rdfs:Literal}} + \scnaddlevel{-1} + } + \scniselement{rdf:XMLLiteral\\ + \scnaddlevel{1} + \scnidtf{класс XML-литералов, является экземпляром \textit{rdfs:Datatype} + } + \scnaddlevel{-1} + } + \scniselement{rdf:Property\\ + \scnaddlevel{1} + \scnidtf{класс свойств (отношений)} + \scnaddlevel{-1} + } +} +\scnrelfrom{свойства}{Свойства RDFS\\ + \scnidtf{описывают отношения между ресурсами-субъектами и ресурсами-объектами и являются экземплярами класса \textit{rdf:Property}, и выступают в качестве предикатов в RDF-триплетах} + \scnrelfrom{включение}{метасвойства RDFS}\\ + \scnaddlevel{1} + \scntext{особенность}{могут описывать свойства самих предикатов} + \scniselement{rdfs:domain\\ + \scnaddlevel{1} + \scnidtf{объявляет класс субъекта (первый домен отношения)} + \scntext{пример}{ex:employer rdfs:domain foaf:Person\\ + ex:employer rdfs:range foaf:Organization\\ + ex:John ex:employer ex:CompanyX + } + \scnaddlevel{1} + \scnnote{В этом примере пространство имен ex: означает, что это пример} + \scnaddlevel{-1} + \scnaddlevel{-1} + } + \scniselement{rdfs:range\\ + \scnaddlevel{1} + \scnidtf{объявляет класс или тип данных объекта (второй домен отношения)} + \scntext{пример}{ex:employer rdfs:domain foaf:Person\\ + ex:employer rdfs:range foaf:Organization\\ + ex:John ex:employer ex:CompanyX + } + \scnaddlevel{1} + \scnnote{В этом примере пространство имен ex: означает, что это пример} + \scnaddlevel{-1} + \scnaddlevel{-1} + } + \scniselement{rdf:type\\ + \scnaddlevel{1} + \scnidtf{декларирует принадлежность ресурса некоторому классу, то есть, факт того, что ресурс является экземпляром класса} + \scntext{пример}{ex:John ex:type foaf:Person} + \scnaddlevel{-1} + } + \scniselement{rdfs:subClassOf\\ + \scnaddlevel{1} + \scnidtf{свойство, позволяющее описать иерархию классов} + \scntext{пример}{foaf:Person rdfs:subClassOf foaf:Agent} + \scnaddlevel{-1} + } + \scniselement{rdfs:subPropertyOf\\ + \scnaddlevel{1} + \scnidtf{свойство, которое утверждает, что все ресурсы, связанные некоторым подсвойством (subproperty), связаны также и свойством} + \scnaddlevel{-1} + } + \scniselement{rdfs:label + \scnaddlevel{1} + \scnidtf{задает удобные для человека имя и описание ресурса (на естественном языке)} + \scnaddlevel{-1} + } + \scniselement{rdfs:comment + \scnaddlevel{1} + \scnidtf{задает удобные для человека имя и описание ресурса (на естественном языке)} + \scnaddlevel{-1} + } + \scnaddlevel{-1} +} +\scnrelfrom{вспомогательные свойства}{Вспомогательные свойства RDFS\\ + \scnnote{К вспомогательным относятся свойства, не имеющие семантики вывода, т.е. семантика этих свойств зависит от конкретных приложений, интерпретирующих RDFS} + \scniselement{rdfs:seeAlso\\ + \scnaddlevel{1} + \scnidtf{указывает ресурс, который может служить источников дополнительной информации о ресурсе-субъекте} + \scnaddlevel{-1} + } + \scniselement{rdfs:isDefinedBy\\ + \scnaddlevel{1} + \scnidtf{указывает на ресурс (например, RDF-словарь), который описывает ресурс-субъект} + \scnaddlevel{-1} + } +} +\scnrelto{ключевой знак}{\scncite{RDFSDescription}} \ No newline at end of file diff --git a/Contents/chapter1/sd_sem_web/sem_web_widely_used_dicts_examples.tex b/Contents/chapter1/sd_sem_web/sem_web_widely_used_dicts_examples.tex new file mode 100644 index 00000000..ee4896a5 --- /dev/null +++ b/Contents/chapter1/sd_sem_web/sem_web_widely_used_dicts_examples.tex @@ -0,0 +1,215 @@ +\scnheader{Примеры широко используемых словарей$\backslash$онтологий} + +\scniselement{Дублинское ядро} +\scnaddlevel{1} + \scnidtf{Dublin Core} + \scnidtf{широко используемый словарь, предназначенный для унификации метаданных для описания широчайшего диапазона ресурсов} + \scnrelfrom{разбиение}{Разделение по уровням} + \scnaddlevel{1} + \scneqtoset{простой\\ + \scnaddlevel{1} + \scnidtf{неквалифицированный} + \scnidtf{simple} + \scniselement{Title} + \scnaddlevel{1} + \scnidtf{название} + \scnaddlevel{-1} + \scniselement{Creator} + \scnaddlevel{1} + \scnidtf{создатель} + \scnaddlevel{-1} + \scniselement{Subject} + \scnaddlevel{1} + \scnidtf{тема} + \scnaddlevel{-1} + \scniselement{Description} + \scnaddlevel{1} + \scnidtf{описание} + \scnaddlevel{-1} + \scniselement{Publisher} + \scnaddlevel{1} + \scnidtf{издатель} + \scnaddlevel{-1} + \scniselement{Contributor} + \scnaddlevel{1} + \scnidtf{внёсший вклад} + \scnaddlevel{-1} + \scniselement{Date} + \scnaddlevel{1} + \scnidtf{дата} + \scnaddlevel{-1} + \scniselement{Type} + \scnaddlevel{1} + \scnidtf{тип} + \scnaddlevel{-1} + \scniselement{Format} + \scnaddlevel{1} + \scnidtf{формат документа} + \scnaddlevel{-1} + \scniselement{Identifier} + \scnaddlevel{1} + \scnidtf{идентификатор} + \scnaddlevel{-1} + \scniselement{Source} + \scnaddlevel{1} + \scnidtf{источник} + \scnaddlevel{-1} + \scniselement{Language} + \scnaddlevel{1} + \scnidtf{язык} + \scnaddlevel{-1} + \scniselement{Relation} + \scnaddlevel{1} + \scnidtf{отношения} + \scnaddlevel{-1} + \scniselement{Coverage} + \scnaddlevel{1} + \scnidtf{покрытие} + \scnaddlevel{-1} + \scniselement{Rights} + \scnaddlevel{1} + \scnidtf{авторские права} + \scnaddlevel{-1} + \scnaddlevel{-1} + ;компетентный\\ + \scnaddlevel{1} + \scnidtf{квалифицированный} + \scnidtf{qualified} + \scniselement{Audience} + \scnaddlevel{1} + \scnidtf{аудитория (зрители)} + \scnaddlevel{-1} + \scniselement{Provenance} + \scnaddlevel{1} + \scnidtf{происхождение} + \scnaddlevel{-1} + \scniselement{RightsHolder} + \scnaddlevel{1} + \scnidtf{правообладатель} + \scnaddlevel{-1} + \scnaddlevel{-1} + } + \scnaddlevel{-1} + \scnnote{В России с 1 июля 2011 года действует ГОСТ «Национальный стандарт Российской Федерации. Система стандартов по информации, библиотечному и издательскому делу. Набор элементов метаданных „Дублинское ядро“»} + \scnrelto{ключевой знак}{\scncite{DublinCore}} +\scnaddlevel{-1} + +\scniselement{Schema.org} +\scnaddlevel{1} + \scnidtf{совместная инициатива по разработке единой схемы для семантической разметки в HTML5} + \scnnote{Инициатива была запущена второго июня 2011 года создателями крупнейших поисковых систем — компаниями Google, Yahoo! и Microsoft, а с осени 2011 года к ней присоединился Яндекс} + \scntext{особенность}{В рамках проекта разработан набор словарей, описанных на сайте schema.org и включающих термины из всевозможных предметных областей, которые могут быть полезны при описании каких-либо интернет-ресурсов} + \scnaddlevel{1} + \scnexplanation{По сути, данное описание представляет собой одну из онтологий верхнего уровня} + \scnaddlevel{-1} + \scniselement{Thing} + \scnaddlevel{1} + \scnidtf{базовое (верхнее) понятие, от которого наследуются все остальные} + \scnsubset{Action} + \scnsubset{CreativeWork} + \scnsubset{Event} + \scnsubset{Intangible} + \scnaddlevel{1} + \scnidtf{нематериальный объект} + \scnaddlevel{-1} + \scnsubset{MedicalEntity} + \scnsubset{Organization} + \scnsubset{Person} + \scnsubset{Place} + \scnsubset{Product} + \scnaddlevel{-1} + \scnrelfromset{состав понятия}{ + \scnfileitem{естественно-языковое пояснение}; + \scnfileitem{перечень свойств экземпляров в виде <имя свойства> - <тип значения свойства> - <пояснение свойства>}; + \scnfileitem{перечень свойств других понятий, значением которых может быть экземпляр данного класса, в том же виде}; + \scnfileitem{список более частных понятий} + } + \scnrelto{ключевой знак;~пример}{\scncite{Person}} + \scnrelto{ключевой знак}{\scncite{SchemaOrg}} +\scnaddlevel{-1} + +\scniselement{FOAF} +\scnaddlevel{1} + \scnidtf{Friend of a Friend} + \scnidtf{проект по созданию модели домашних страниц различных персон и социальных сетей} + \scntext{примеры терминов}{foaf:Person\\ + foaf:knows\\ + foaf:age\\ + foaf:homepage} + \scnrelto{ключевой знак}{\scncite{FOAF}} +\scnaddlevel{-1} + +\scniselement{DOAP} +\scnaddlevel{1} + \scnidtf{Description of a Project} + \scnidtf{RDF схема и набор инструментов для описания проектов разработки программного обеспечения} + \scntext{примеры терминов}{doap:programming-language\\ + doap:Project\\ + doap:license} + \scnrelto{ключевой знак}{\scncite{DOAP}} +\scnaddlevel{-1} + +\scniselement{SKOS} +\scnaddlevel{1} + \scnidtf{Simple Knowledge Organization System} + \scnidtf{разработанная консорциумом W3 модель организации знаний для семантической паутины, призванная облегчить взаимодействие различных информационных систем за счёт стандартизации тезаурусов, систем классификации, таксономий, фолксономий и других видов нормализации лексики} + \scntext{особенность}{С момента выхода второй версии в 2008 году SKOS получил достаточно широкое распространение. Многие большие тезаурусы были опубликованы в виде SKOS, в том числе предметный указатель Библиотеки Конгресса, а также такие тезаурусы как EUROVOC, AGROVOC} + \scntext{примеры терминов}{skos:broader (более общий термин)\\ + skos:narrower (более частный термин)\\ + skos:related (связанный термин)\\ + skos:exactMatch, skos:narrowMatch, skos:broadMatch, skos:closeMatch (отношения для описания близости терминов из разных словарей)} + \scnrelto{ключевой знак}{\scncite{SKOS}} +\scnaddlevel{-1} + +\scniselement{SIOC} +\scnaddlevel{1} + \scnidtf{Semantically-Interlinked Online Communities} + \scnidtf{технология, которая предоставляет методы для связи ресурсов, позволяющих проводить различные обсуждения, таких как блоги, форумы, списки рассылки и т.д., друг с другом} + \scntext{особенность}{Включает соответствующую онтологию, хранилища и семейство средств обработки такого рода информации} + \scnrelto{ключевой знак}{\scncite{SIOCa};\scncite{SIOCb}} +\scnaddlevel{-1} + +\scniselement{RSS} +\scnaddlevel{1} + \scnidtf{Rich Site Summary} + \scnidtf{семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п} + \scntext{особенность}{В версиях 0.9 и 1.0 расшифровывалось как RDF Site Summary и частично использовало RDF$\backslash$XML} +\scnaddlevel{-1} + +\scniselement{SWAP} +\scnaddlevel{1} + \scnidtf{Semantic Web Application Platform} + \scnexplanation{Отдельного внимания заслуживает платформа SWAP, которая официально не утверждена W3C, но широко используется сообществом} + \scnrelfromset{включение}{Набор базовых онтологий\\ + \scnaddlevel{1} + \scnidtf{Набор базовых словарей} + \scniselement{Logic} + \scnaddlevel{1} + \scnidtf{основные логические операции, понятия истина и ложь, кванторы} + \scnaddlevel{-1} + \scniselement{String} + \scnaddlevel{1} + \scnidtf{базовые понятия из области обработки строк - конкатенация, сравнение и т. д.} + \scnaddlevel{-1} + \scniselement{Math} + \scnaddlevel{1} + \scnidtf{базовые понятия из математики - арифметика, тригонометрия} + \scnaddlevel{-1} + \scniselement{Crypto} + \scnaddlevel{1} + \scnidtf{несколько базовых понятий из области защиты информации} + \scnaddlevel{-1} + \scniselement{OS} + \scnaddlevel{1} + \scnidtf{несколько понятий для связи с современными ОС} + \scnaddlevel{-1} + \scnaddlevel{-1} + ;Программное средство Cwm\\ + \scnaddlevel{1} + \scnidtf{Программное средство Closed Word Machine} + \scnidtf{представляет собой в первую очередь ризонер, способный осуществлять прямой логический вывод на основе логических утверждений, записанных в N3, а также содержит некоторые дополнительные утилиты, такие как конвертеры для разных форматов RDF, средства слияния файлов и другие} + \scnrelto{ключевой знак}{\scncite{CWM}} + \scnaddlevel{-1} + } + \scnrelto{ключевой знак}{\scncite{SWAP}} +\scnaddlevel{-1} \ No newline at end of file