Кафедра «ОСУ» ИК ТПУ Языки описания информации Лекция 9. RDF • С помощью рассмотренных языков разметки можно – – – – описывать синтаксис (схемы) новых языков разметки, составлять на их основе XML-документы, описывать связи между этими документами, а также выполнять их преобразования. • Языки разметки созданные на основе метаязыка XML являются понятными пользователям за счет – текстового формата и – использования имеющих для человека смысл названий тэгов. Типы моделей данных Проблема Web-сети Задачи часто требуют объединения данных, расположенных в Web-сети: информация о гостиницах и путешествиях может поступать с разных сайтов; поиск в разных цифровых библиотеках; и т.п. Люди объединяют такую информацию легко, даже если используется разная терминология; информация является не полной, размытые изображения, видео, … Пример: автоматический заказ билетов на самолет Ваша система автоматического заказа билета на самолет знает о ваших предпочтениях; строит базу знаний, используя ваш прошлый опыт; может объединять локальные знания с удаленными сервисами: календарь; предпочтения по полетам; требования диеты; И т.п. Она должна взаимодействовать с удаленной информацией. Пример: интеграция баз данных Базы Данных очень различаются по структуре и содержанию. Множеству приложений требуется работа с несколькими базами данных. после слияния компаний; объединение административных данных для электронного правительства (e-Government); биохимические, генетические и формацевтические исслеlования; dопросы безопасности; И т.п.. Большинство этих данных доступны в Web-сети (хотя и не обязательно открытые). Использование разных типов данных • Проблемы работы с данными – Описание семантики – Интеграция распределенных данных • С использованием иерархических данных сложно такие проблемы решить – Встроен один тип отношений (вложенность, иерархия). – Трудно объединять несколько XML-документов. • С сетевыми структурами это сделать проще – Можно задать словарь понятий и предикатов. – Можно достаточно просто объединить данные из разных источников. Пример отсутствия семантики в XML данных • Отсутствие семантики может быть показано с помощью простого примера <ex:Person ID="2312" name="Tom"> <ex:email > tom@example.org </ex: email> <ex:phone > +43 0123 4567890 </ex:phone > </ex:Person > <element1 attrib1="2312" attrib2="Tom"> <element2 > tom@example.org </element2 > <element3 > +43 0123 4567890 </element3 > </element1 > а) Как видит пользователь-читатель. б) Как видит компьютерная программа. • На данном рисунке показано, что для программы, имена ex:Person, ex:email и ex:phone никакого смысла не имеют, а просто являются узлами документа (такими, же, как и element1, element2, element3). • Такие имена, как Person, email и phone имеют смысл только пользователя-человека (немного знающего английский язык), который в имеет в своей голове некоторую модель, связывающую эти понятия в большую смысловую сеть. • Однако компьютер может использовать только синтаксис таких языков. • Он не может связать автоматически информацию таких документов между собой и выполнять на ее основе какие-либо логические выводы. • Т.е. языки XML-технологий не позволяют описывать формальную семантику информации. Символьные модели предметных областей • Смысл элементов и их взаимосвязей может быть определен с помощью создания некоторых символьных моделей предметных областей, содержащих описания понятий и взаимосвязей между ними (семантической модели, онтологии). • Так как такие модели обычно описывается с помощью сетевых моделей (например, семантических сетей, включающих понятия и взаимосвязи между ними), то для описания семантики информации были предложены: – язык, использующий единый синтаксис, для описания сетевых моделей организации данных RDF; данный язык позволяет описывать информацию в виде взаимосвязанных элементов данных; – языки для описания семантики элементов и взаимосвязей, используемых в RDF-описаниях (словарей, онтологий, онтологических моделей); к таким языкам относятся RDF Schema (RDFS) и Ontology Web Language (OWL). Пример: поиск подходящего эксперта в NASA Имеется около 70,000 сотрудников организации NASA, опыт их работы содержится в 6 или 7 географически разбросанных базах данных, источниках данных и web-сервисах … Как найти экспертов для выполнения нового проекта? Michael Grove, Clark & Parsia, LLC, and Andrew Schain, NASA, (SWEO Case Study) Что такое Semantic Web? • В соответствии с Tim Berners-Lee (1998): “... логически согласованная паутина данных ...” в которой “... информации задается строго определенный смысл …” Что такое Semantic Web? • В соответствии с Tim Berners-Lee (1998): “... логически согласованная паутина данных ...” в которой “... информации задается строго определенный смысл …” • Теперь это определение развилось в: “платформа для распределенных приложений и совместного использования (связывания) данных” Что такое Semantic Web? • В соответствии с Tim Berners-Lee (1998): “... логически согласованная паутина данных ...” в которой “... информации задается строго определенный смысл …” • Теперь это определение развилось в: “платформа для распределенных приложений и совместного использования (связывания) данных” – RDF предоставляет универсальную синтаксическую структуру для данных. – Онтологии предоставляют схемы, с которыми могут работать программы. Технологические уровни «Semantic Web» Язык Resource Description Framework (RDF) Язык Resource Description Framework (RDF) • Язык RDF первоначально был создан в качестве основанного на XML стандарта описания метаданных. • Дословно, метаданные это – "данные о данных". – Например, метаданными называют • сведения об авторе web-страницы, • дату очередной публикации в блоге, и т.п., • Метаданные можно считать вторичными по отношению к основному содержанию. • С момента своего появления RDF расширял рамки своего назначения. • Наибольшим обобщением является применение RDF не только для представления информации о ресурсах в сети, но также для описания объектов реального мира и их взаимосвязей: людей, мест, понятий и т.д. • В настоящее время язык RDF рассматривается, как универсальный метод разделения знания на мелкие части (утверждения), в соответствии с некоторыми правилами, учитывающими семантику (смысл) этих частей. • Такой метод должен быть – достаточно простым, чтобы с его помощью можно было описать любой факт, и – достаточно структурированным, чтобы представить факт в такой форме, в которой компьютерные приложения смогут осуществлять полезные действия со знаниями, выраженными в формате RDF. • Язык Resource Description Framework является базовой моделью данных (описанием информации) для всех приложений, основанных на технологиях Semantic Web. • Любая информация добавляемая компонентами более высокого уровня, например, такими, как RDF Schema и OWL также описывается с помощью языка RDF. • Сила языка RDF заключается в простой базовой модели данных, которая основывается на множестве RDF утверждений в форме (S, P, O) – S – субъект (subject), – P – предикат (predicate) и – O – объект (object), аналогично предложениям на естественном языке (существительное, глагол, дополнение). • Такие утверждения также называются триплетами. RDF модель данных • Утверждениями являются триплеты вида <subject, predicate, object>: <Ian,hasColleague,Uli> • Триплеты могут быть представлены в виде графа: Ian hasColleague Uli Утверждения описывают свойства (properties) ресурсов. Ресурсом является любой объект, на который можно сослаться с помощью URI: – документ, картинка, параграф текста в Web сети; – http://www.cs.man.ac.uk/index.html – книга в библиотеке, реальный человек (?) – isbn://5031-4444-3333 – … Сами свойства также являются ресурсом (имеют URI идентификаторы) RDF триплеты • Утверждение вида: Web-сайт http://mysite.ru/ was created by John Scott. (т.е. «Web-сайт http://scott.com/ был создан John Scott») • может быть показано в виде RDF графа: • Здесь: – субъект (subject) является ресурсом с URI идентификатором http://scott.com/, – предикатом (predicate) dc:creator (свойство описанное в словаре Dublin Core с URI идентификатором http://purl.org/dc/elements/1.1/creator), – объект - текстовая строка “John Scott”. • С использованием языка RDF/XML показанный ранее триплет может быть описан следующим образом: <rdf:Description rdf:about="http://scott.com/"> <dc:creator> John Scott </dc:creator> </rdf:Description> RDF-граф • В изображениях RDF-графов – ресурсы обычно показываются в виде эллипсов, – текстовые строки (литералы) в виде прямоугольников. • Ребра надписываются (размечаются) URI идентификаторами предикатов, которые используются с префиксами пространств имен. • Каждое ребро описывает высказывание, в котором – исходная вершина является субъектом (subject), – метка ребра является предикатом (predicate), а – конечная вершина является объектом (object) высказывания. Простой пример RDF (в формате RDF/XML) <rdf:Description rdf:about="http://.../membership.svg#FullSlide"> <axsvg:graphicsType>Chart</axsvg:graphicsType> <axsvg:labelledBy rdf:resource="http://...#BottomLegend"/> <axsvg:chartType>Line</axsvg:chartType> </rdf:Description> Простой пример RDF (в формате Turtle) <http://.../membership.svg#FullSlide> axsvg:graphicsType "Chart"; axsvg:labelledBy <http://...#BottomLegend>; axsvg:chartType "Line". Связывание утверждений • Субъект одного утверждения может быть объектом для другого утверждения. • Такие коллекции утверждений формируют направленный, размеченный граф. Ian hasColleague Uli hasColleague Carole hasHomePage http://www.cs.mam.ac.uk/~sa ttler • Отметим, что объектом триплета может также быть “литерал” (строка). Правила языка RDF • RDF идентифицирует объекты (things) с помощью Web идентификаторов (URI) и описывает ресурсы свойствами (properties) и значения свойств (property values) • RDF описывает ресурсы свойствами (properties) и значения свойств (property values). – Ресурс (resource) это любое понятие, которое может иметь URI, такое, как например: "http://www.w3schools.com/rdf". – Свойство (property) это отношение ресурса с другими ресурсами или различными данными, такие, как "author" или "homepage". – Значение свойства (property value) это объект, с которым связан ресурс (другой ресурс или какое-то данное стандартного типа). Например, "Jan Egil Refsnes“ или "http://www.w3schools.com" (note that a property value can be another resource) Пример • Следующий RDF документ может описывать ресурс "http://www.w3schools.com/rdf": <?xml version="1.0"?> <RDF> <Description about="http://www.w3schools.com/rdf"> <author>Jan Egil Refsnes</author> <homepage>http://www.w3schools.com</homepage> </Description> </RDF> • Это упрощенный пример, в котором не задано пространство имен. Использование URI • Одним из базовых принципов языка RDF является использование URI идентификаторов: – фактически любой объект (ресурс, понятие), который может быть описан кем-либо в Web сети должен получить URI идентификатор. • Данный идентификатор гарантированно является уникальным (единственным, не повторяемым для обозначения других ресурсов). • Чтобы была возможность получать информацию об этом ресурсе его URI также должен быть разрешимым, т.е. должна иметься возможность получить его адрес в Интернет сети для HTTPклиентов. URI идентификаторы • URI = Uniform Resource Identifier • «Обобщенное множество всех имен/адресов, являющиеся короткими строками, которые являются ссылками на ресурсы.» • URLs (Uniform Resource Locators) are a particular type of URI, used for resources that can be accessed on the WWW (e.g., web pages) • В RDF, URI обычно выглядят также, как и “обычные” URL, часто с идентификатором фрагмента, чтобы указывать конкретные части документа: http://www.somedomain.com/some/path/to/file#fragmentID Узлы ресурсов • В RDF/XML-документе существует два типа XML-узлов: узлы ресурсов и узлы свойств: • Узлы ресурсов являются субъектами и объектами RDF-утверждений. – Обычно в XML узлы ресурсов описываются с помощью элемента rdf:Description, имеющего атрибут rdf:about, который указывает на описываемый ресурс. – Узлы ресурсов содержат внутри себя узлы свойств (и ничего другого). • С использованием языка RDF/XML, ранее показанный триплет, может быть описан следующим образом: <rdf:Description rdf:about="http://scott.com/"> <dc:creator> John Scott </dc:creator> </rdf:Description> – описание отдельного триплета выполняется с помощью элемента Description языка RDF (для пространства имен данного языка обычно используется префикс rdf). – в атрибуте about данного элемента задается URI ресурса, который описывается. – в элемент Description вкладывается элемент (или несколько элементов) описывающий отношение ресурса определенного в атрибуте about с другими ресурсами (заданными URI) или с литеральными значениями (строками текста). Синтаксис языка RDF • • • • RDF имеет XML синтаксис, который имеет специальный смысл: Каждый элемент Description описывает ресурс. Каждый атрибут или вложенный подэлемент в элементе Description является свойством (property) данного Ресурса (Resource). На ресурсы можно ссылаться с помощью URI: <Description about="some.uri/person/ian_horrocks"> <hasColleague resource="some.uri/person/uli_sattler"/> </Description> <Description about="some.uri/person/uli_sattler"> <hasHomePage>http://www.cs.mam.ac.uk/~sattler</hasHomePage> </Description> <Description about="some.uri/person/carole_goble"> <hasColleague resource="some.uri/person/uli_sattler"/> </Description> • Рассмотрим более полный пример с описанием института кибернетики Томского политехнического университета: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www. w3.org/2003/01/geo/wgs84_pos#" xmlns:edu="http://www.example.org/"> <rdf:Description rdf:about="http://www.tpu.ru"> <geo:lat>40.35</geo:lat> <geo:long>-74.66</geo:long> <edu:hasDept rdf:resource="http://cctpu.edu.ru"/> </rdf:Description> <rdf:Description rdf:about="http://cctpu.edu.ru" > <dc:title>Cybernetic institute</dc:title> </rdf:Description> </rdf:RDF> Взаимосвязь между RDF n RDFS