Технологии Semantic Web Наталья Геннадьевна Кеберле старш. преп. каф. ИТ, kenga@zsu.zp.ua, kenga@email.zp.ua Содержание лекции “Слоёный пирог” Semantic Web стандартов II. RDF – Resource Description Framework III. RDF хранилища IV. SPARQL – язык запросов к RDF хранилищам I. Структура стандартов W3C для Semantic Web Источник: http://www.w3.org/2007/Talks/0130-sb-W3CTechSemWeb/#(24) Основы • Уникальные идентификаторы ресурсов: URI (Unified Resource Identificator) • Unicode – способ представления строк в национальных кодировках (= нет привязки к латинице) • URI + поддержка Unicode в идентификаторах ресурсов = IRI: (International Resource Identificator) URI is-a URL – Uniform resource Locator http://www.amazon.com/FoundationsSemantic-Technologies-TextbooksComputing/dp/142009050X Идентификатор конкретной книги по её адресу в он-лайн магазине Amazon is-a URN – Uniform Resource Name urn:isbn:978-1-4200-9050-5 Идентификатор конкретной книги по ISBN (где находится сама книга неизвестно) IRI is-a URI С поддержкой UNICODE URI: http://www.w3c.it/talks/2005/openCulture/slide7-0.html IRI: http://ru.wikipedia.org/wiki/%D0%9A%D0%BD%D0%B 8%D0%B3%D0%B0 Представление данных: литералы • URI позволяют именовать произвольные ресурсы, даже если эти ресурсы не «в Сети» • Как обрабатывать эти ресурсы – зависит от программы их обработки • Но: есть специальные ресурсы, которые одинаково обработает любая программа • Эти ресурсы называются литералами • Например, литералами являются: – “025”, “25”, “Запорожье”, “21.09.2010”, ... Литералы • Нетипизированные – “025”, “25”, “Наталья”, “Запорожье”, “21.09.2010” • Типизированные – – – – “025”^^xsd:integer, “25”^^xsd:decimal, “Запорожье” ^^xsd:string, “21.09.2010”^^xsd:date • Для типизированных литералов используют XML Schema (http://www.w3.org/TR/xmlschema-2/#built-inprimitive-datatypes ) Итак, RDF • RDF – Resource Description Framework – Среда описания ресурсов (в Сети) Сеть моделируется как гиперграф (точнее, Giant Global Graph, GGG), вершинами которого являются ресурсы произвольной природы (в том числе, литералы), а дугами – связи (или ссылки) между ресурсами Пример RDF графа RDF ресурсы http://www.amazon.com/FoundationsSemantic-Technologies-TextbooksComputing/dp/142009050X http://www.deri.ie/library/0.1/publ ishedBy http://crcpress.com/uri http://purl.org/dc/elements/1.1/title Foundations of Semantic Web Technologies http://purl.org/dc/elements/1.1 /publisher CRC Press RDF литералы В описании дуг используется набор ресурсов, созданных в рамках проекта Dublin Core( http://dublincore.org/documents/dces/ ) для описания ресурсов, публикуемых в сети Формы записи RDF • N-Triple • Turtle • Сериализация в XML Суть одна: каждое утверждение в RDF – это трипл (триплет, triple) вида: subject predicate object RDF на Turtle @prefix book <http://www.amazon.com/Foundations-SemanticTechnologies-Textbooks-Computing/dp/> . @prefix dc <http://purl.org/dc/elements/1.1/> . @prefix crc <http://crcpress.com/> . @prefix library <http://www.deri.ie/library/0.1/> . Субъекты Предикаты book:142009050X book:142009050X library:publishedBy dc:title crc:uri dc:publisher Символ « . » - конец трипла Объекты crc:uri . “Foundations of Semantic Web Technologies” . “CRC Press” . RDF на Turtle (2) @prefix book <http://www.amazon.com/Foundations-SemanticTechnologies-Textbooks-Computing/dp/> . @prefix dc <http://purl.org/dc/elements/1.1/> . @prefix crc <http://crcpress.com/> . @prefix library <http://www.deri.ie/library/0.1/> . Субъекты Предикаты book:142009050X library:publishedBy dc:title crc:uri dc:publisher Объекты crc:uri ; “Foundations of Semantic Web Technologies” . “CRC Press” . Символ « ; » - конец трипла, но возможно будут ещё триплы с заданным пространством имён RDF на Turtle (3) @prefix book <http://www.amazon.com/Foundations-SemanticTechnologies-Textbooks-Computing/dp/> . @prefix dc <http://purl.org/dc/elements/1.1/> . @prefix crc <http://crcpress.com/> . @prefix library <http://www.deri.ie/library/0.1/> . Субъекты book:142009050X Предикаты library:publishedBy dc:title dc:creator crc:uri dc:publisher Объекты crc:uri ; “Foundations of Semantic Web Technologies” ; book:Hitzler, book:Krötzsch, book:Rudolph . “CRC Press” , “CRC”. Символ « , » - конец трипла, но будут ешё другие значения объекта с тем же субъектом и предикатом RDF в XML • Наиболее популярен в машинной обработке • Наиболее сложен для восприятия человеком Используется стандартное пространство имён xmlns:rdf = “http://www.w3.org/1999/02/22-rdf-syntax-ns#” Примеры RDF в XML <?xml version=“1.0” encoding=“utf-8”> <rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:library=“http://www.deri.ie/library/0.1/” xmlns:dc=“http://purl.org/dc/elements/1.1/”> <rdf:Description rdf:about=“http://www.amazon.com/FoundationsSemantic-Technologies-Textbooks-Computing/dp/142009050X”> <dc:title>Foundations of Semantic Web Technologies</dc:title> <library:publishedBy> <rdf:Description rdf:about=“http://crcpress.com/uri”> <dc:publisher>CRC Press</dc:publisher> </rdf:Description> </library:publishedBy> </rdf:Description> </rdf:RDF> Типы в RDF Тип (type) — группа однотипных RDF-ресурсов (люди, фирмы, товары…) Типы описываются средствами RDF Schema и OWL (далее) Принадлежность ресурса типу задается встроенным предикатом rdf:type Например: “CRC Press является организацией” @prefix foaf <http://xmlns.com/foaf/0.1/> crc:uri rdf:type foaf:Organization . FOAF (Friend-Of-A-Friend) – пространство имён для описания друзей, знакомых, мест_работы, и т.д. RDF хранилища RDF triplestore (RDF хранилище, хранилище триплов) – база данных, (грубо) состоящая из двух таблиц: 1) таблица целочисленных идентификаторов для всех используемых URI URI (Code int not null, URI uri) 2) таблица квадов Quad (Graph int not null, Subject int not null, Predicate int not null, Object any not null) 3) индексы GSPO, PGOS, OGPS, SPGS 4) view, связывающий таблицу квадов с таблицей идентификаторов URI и возвращающий квады в читабельном виде. Т.е. хранятся не триплы, а квады (quads, “четвёрки”)! По структуре триплстора благодарность Ивану Михайлову, http://forum.semanticfuture.net/viewtopic.php?id=74 SPARQL • SPARQL – это SPARQL Query Language for RDF – язык запросов для RDF • Описан здесь • http://www.w3.org/TR/rdf-sparql-query/ • Похож на SQL