Download presentation
Presentation is loading. Please wait.
Published byPaulina Long Modified over 9 years ago
1
Переход от XML документов к RDF документам
2
Цель языка RDF Целью языка RDF (Resource Description Framework) является предоставление стандартного способа описания данных «о чем-либо». Ниже показан пример XML документа, который описывает данные (specifies data) о китайской реке Янцзы (China's Yangtze river) : 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea «Это данные об реке Yangtze (Янцзы). Она имеет длину 6300 киллометров. Начинается startingLocation в западном China's Qinghai-Tibet Plateau. Заканчивается endingLocation в East China Sea."
3
Переход от XML к RDF <River id="Yangtze" xmlns="http://www.geodesy.org/river"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea XML Преобразование XML документа таким образом, чтобы он также стал правильным RDF документом : <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea RDF Yangtze.xml Yangtze.rdf “преобразуем"
4
RDF формат <River rdf:ID="Yangtze“ xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea RDF предоставляет ID атрибут для идентификации описываемого ресурса (resource). Атрибут ID определен в пространстве имен RDF. Добавляем к пространству имен символ «идентификации фрагмента». 1 2 3
5
RDF формат (2) <River rdf:ID="Yangtze“ xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Задается тип (класс) ресурса, который описывается. Идентификаторы описываемого ресурса. Данный ресурс являет экземпляром класса River. Это свойства и атрибуты, заданного типа (класса). Это значения свойств. 1 2 3 4
6
Договоренности о задании пространств имен xmlns="http://www.geodesy.org/river#" Вопрос: Зачем символ "#" помещается в конец пространства имен? Например: Ответ: RDF очень строго относится к уникальной идентификации объектов – уникальной идентификации типа (класса) и уникальной идентификации свойств. При объединении заданного пространства имен с типом, получается уникальный идентификатор типа, например, http://www.geodesy.org/river#River При объединении заданного пространства имен со свойством, получается e уникальный идентификатор свойства, например: http://www.geodesy.org/river#length http://www.geodesy.org/river#startingLocation http://www.geodesy.org/river#endingLocation Таким образом, добавление символа "#" является просто способом отделения пространства имен от имени типа и имени свойства. Хорошая практика
7
RDF формат <Class rdf:ID="Resource" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="uri"> value...
8
Преимущества использования RDF формата Можно задать вопрос: «Зачем разработчик должен беспокоиться о том, чтобы создаваемые XML документы соответствовали RDF формату?" Ответ: в результате Вы получаете несколько преимуществ: – Если RDF формат будет широко использоваться, то это поможет сделать язык XML более подходящим для взаимодействия (интероперабельным): Программные инструменты могут сразу описать структуру, «данный элемент имеет следующий тип (класс), а здесь описаны его свойства”. RDF способствует использованию стандартизированных словарей (онтологий)... стандартизированных типов (классов) и стандартизированных свойств. – RDF формат предоставляет более структурированный подход к проектированию XML документов. RDF формат является стандартным (regular), постоянно повторяющимся (recurring) шаблоном. – Он позволяет быстро выявить слабости и несогласованности в разработке XML документов, которые не соответствуют RDF формату (non-RDF-compliant XML designs). Он помогает лучше понимать описываемые данные! – Разработчик получает преимущества от обоих стандартов : Можно использовать стандартные XML редакторы и валидаторы для создания, редактирования и проверки XML документа. Можно использовать RDF инструменты для выполнения логического вывода (inferencing) на описываемых данных. – RDF формат подготавливает используемые данные для работы в Semantic Web! Суммарный эффект Интероперабильность
9
Недостатки использования RDF формата Большее количество ограниченный: RDF формат ограничивает разработчика в том, как он может проектировать свой XML (например, он не проектировать свой XML любым произвольным способом). RDF использует пространства имен для уникальной идентификации типов (классов), свойств и ресурсов. В связи с этим нужно хорошо понимать работу с пространствами имен (namespaces). Необходимость изучить другой XML словарь: для использования RDF формата необходимо изучить словарь языка RDF.
10
Уникально идентифицируй ресурс Раннее уже отмечалось, что RDF очень требователен к уникальной идентификации типов (классов) и свойств. Язык RDF также очень требователен и к уникальной идентификации ресурсов, например, <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Это описываемый ресурс. Требуется уникально идентифицировать этот ресурс.
11
Атрибут rdf:ID Значением атрибута rdf:ID является “относительный идентификатор URI". “Абсолютный URI" получается в результате конкатенации URL адреса XML документа с символом"#”, а затем со значением rdf:ID, например, <River rdf:ID="Yangtze“ xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Предположим, что RDF/XML документ располагается по URL адресу: http://www.china.org/geography/rivers. Тогда полным URI для данного ресурса будет: Yangtze.rdf http://www.china.org/geography/rivers#Yangtze
12
Атрибут xml:base На предыдущем слайде было показано, как URL адрес документа используется в качестве основы для URI идентификатора. Однако основываться на местоположении документа очень не надежно: URL адрес будет меняться при перемещении документа или его копировании в другое место. Более надежным решением является задание базового URI в документе, например: <River rdf:ID="Yangtze“ xmlns="http://www.geodesy.org/river#" xml:base="http://www.china.org/geography/rivers"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea URI ресурса = конкатенация (xml:base, '#', rdf:ID) = конкатенация (http://www.china.org/geography/rivers, '#', "Yangtze") = http://www.china.org/geography/rivers#Yangtze
13
Атрибут rdf:about Вместо идентификации ресурса с помощью относительного URI (который затем требует присоединения базового URI), можно задавать полный идентификатор. Однако, для этого нужно использовать вместо атрибута rdf:ID, атрибут rdf:about: <River rdf:about="http://www.china.org/geography/rivers#Yangtze" xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea
14
Триплет = (ресурс-свойство-значение) http://www.china.org/geography/rivers#Yangtze has a http://www.geodesy.org/river#length of 6300 kilometers resource property value http://www.china.org/geography/rivers#Yangtze has a http://www.geodesy.org/river#startingLocation of western China's... resource property value http://www.china.org/geography/rivers#Yangtze has a http://www.geodesy.org/river#endingLocation of East China Sea resource property value
15
RDF формат = триплеты! Фундаментальным шаблоном проектирования RDF является представление XML данных в виде набора триплетов (resource/property/value)! Значением свойства может быть литерал (например, length имеет значение 6300 км.). Но кроме этого, значением свойства может быть другой ресурс, как показано выше (например, свойство-A имеет значение Resource-B, свойство-B имеет значение Resource-C). Далее будет показан пример свойства, которое в качестве значения имеет другой ресурс. Value-C значение свойства-A значение свойства-B Notice that the RDF design pattern is an alternating sequence of resource-property. This pattern is known as "striping".
16
Соглашение об именовании Хорошим стилем именования является использование больших букв в начале имени типа (class) и использование маленьких букв в начале имени свойства (property). – Это помогает быстрее выделять шаблоны (striping pattern). <River rdf:about=“http://www.china.org/geography/rivers#Yangtze” xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea большие маленькие
17
Модель RDF (граф) Легенда: Эллипс обозначает «Ресурс» Прямоугольник обозначает «литеральное строковое значение»
18
rdf:Description + rdf:type Имеется также и другой способ представления XML. Этот способ делает очень понятным, что что-то описывается, и это делает очень явным то, какой тип (class) объекта описывается : <rdf:Description rdf:about="http://www.china.org/geography/rivers#Yangtze" xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Это читается следующим образом: «Это Описание (Description) ресурса http://www.china.org/geography/rivers#Yangtze. Данный ресурс является экземпляром типа (класса) River. Ресурс http://www.china.org/geography/rivers#Yangtze имеет длину (length) “6300 kilometers”, startingLocation - western China's Qinghai-Tibet Plateau, а endingLocation - East China Sea." Замечание: такая форма описания ресурса называется «полной формой». Та форма, которая использовалась ранее является сокращением такой полной формы. RDF анализаторы понимают сокращенную форму, как если бы использовалась полная форма.
19
Варианты описания Альтернативно можно использовать rdf:ID, вместо атрибута rdf:about, как показано ниже: <rdf:Description rdf:ID="Yangtze" xmlns="http://www.geodesy.org/river#" xml:base="http://www.china.org/geography/rivers"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea
20
Эквивалентные представления! <River rdf:ID="Yangtze" xmlns="http://www.geodesy.org/river#" xml:base="http://www.china.org/geography/rivers"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea <River rdf:about="http://www.china.org/geography/rivers#Yangtze" xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea <rdf:Description rdf:about=http://www.china.org/geography/rivers#Yangtzehttp://www.china.org/geography/rivers#Yangtze xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Замечание: в литературе по RDF данный пример обычно показывается в этой форме.
21
Пространство имен RDF http://www.w3.org/1999/02/22-rdf-syntax-ns# ID about type resource Description
22
Терминология В литературе по RDF используется следующая терминология: – Субъект (Subject) – этот термин ссылается на элемент, который играет роль ресурса. – Предикат (Predicate) – этот термин ссылается на элемент, который играет роль свойства (ресурса). – Объект (Object) – этот термин ссылается на элемент, который играет роль значения (свойства). Субъект Объект предикат Ресурс Значение свойство Эквивалентно!
23
RDF Анализатор (Parser) Имеется очень хороший RDF анализатор на web-сайте организации W3C: http://www.w3.org/RDF/Validator/ This RDF parser will tell you if your XML is in the proper RDF format. Do Lab1
24
Пример #2 <River id="Yangtze" xmlns="http://www.geodesy.org/river"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea <Dam id="ThreeGorges" xmlns="http://www.geodesy.org/dam"> The Three Gorges Dam 1.5 miles 610 feet $30 billion Yangtze2.xml Изменим XML документ, таким образом, чтобы он согласовывался с языком RDF:
25
Отметим два типа (класса) River Dam Экземпляр: Yangtze Свойства: length startingLocation endingLocation Экземпляр: ThreeGorges Свойства: name width height cost
26
Экземпляр Dam находится не на правильном месте <River id="Yangtze" xmlns="http://www.geodesy.org/river"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea <Dam id="ThreeGorges" xmlns="http://www.geodesy.org/dam"> The Three Gorges Dam 1.5 miles 610 feet $30 billion Dam Типы (классы) содержат свойства. Здесь мы видим тип River, который содержит свойства - length, startingLocation и endingLocation. Также показано, что тип River содержит другой тип - Dam. Таким образом имеется Ресурс который содержит другой Ресурс. Это не согласуется с RDF шаблоном проектирования. (как было сказано, преимуществом использования RDF – выявление несогласованностей в XML проектировании.)
27
Значением свойства должен быть литерал или ресурс 6300 kilometers свойство Value is a Literal <Dam id="ThreeGorges" xmlns="http://www.geodesy.org/dam"> The Three Gorges Dam 1.5 miles 610 feet $30 billion свойство Значением является ресурс
28
Измененный XML (для соответствия формату RDF) <River id="Yangtze" xmlns="http://www.geodesy.org/river"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea <Dam id="ThreeGorges" xmlns="http://www.geodesy.org/dam"> The Three Gorges Dam 1.5 miles 610 feet $30 billion Yangtze2,v2.xml «Река (river) Yangtze имеет препятствие (obstacle), которое является дамбой (Dam) ThreeGorges. Эта дамба (Dam) имеет имя (name) - The Three Gorges Dam. Она имеет длину 1.5 miles, высоту 610 feet и стоимость $30 billion."
29
RDF формат <River rdf:ID="Yangtze“ xmlns="http://www.geodesy.org/river#" xml:base="http://www.china.org/geography/rivers"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea <Dam rdf:ID="ThreeGorges" xmlns="http://www.geodesy.org/dam#"> The Three Gorges Dam 1.5 miles 610 feet $30 billion Изменим id на rdf:ID Добавим символ '#’ Как обычно, возможны и другие представления с использованием атрибута rdf:about и элемента rdf:Description. Добавим
30
RDF Модель (граф)
31
<Dam rdf:ID="ThreeGorges“ xmlns="http://www.geodesy.org/dam#" xml:base="http://www.china.org/geography/rivers"> The Three Gorges Dam 1.5 miles 610 feet $30 billion <River rdf:ID="Yangtze“ xmlns="http://www.geodesy.org/river#" xml:base="http://www.china.org/geography/rivers"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Three-Gorges-Dam.rdf Теперь предположим, что кто-то уже создал документ, содержащий информацию о дамбе «Three Gorges Dam»: Yangtze.rdf Тогда мы можем сослаться на ресурс «Three Gorges Dam» с помощью атрибута rdf:resource, как показано ниже:
32
Замечание: ссылка делается на ресурс, а не на файл Почему используется такая ссылка: а не такая: То есть, почему не используется ссылка на «файл»? Ответ: 1. Что будет, если файл переместится? Тогда данная ссылка будет не верна. 2. By using an identifier of the Three Gorges Dam, and keeping a particular file unspecified, then an "aggregator tool" will be able to collect information from all the files that talk about the Three Gorges Dam resource (see next slide). Do Lab2
33
Любой, в Любом месте, в Любое время может сказать что-нибудь о Ресурсе Во всех рассмотренных экземплярах были предоставлены уникальные идентификаторы ресурсов, например, http://www.china.org/geography/rivers#Yangtze Следовательно, если в другом RDF документе используется ресурс с таким же идентификатором, то данные которые описаны в этом документе являются дополнительными данными об описанном нами ресурсе. Средства интеграции (aggregator tool) будут способны собирать все данные о ресурсе и показывать объединенный набор данных для описанного нами ресурса. Это очень мощная возможность!
34
Что лучше rdf:ID или rdf:about ? Когда должен использоваться rdf:ID? А когда должен использоваться rdf:about? – When you want to introduce a resource, and provide an initial set of information about a resource use rdf:ID – When you want to extend the information about a resource use rdf:about The RDF philosophy is akin to the Web philosophy. That is, anyone, anywhere, anytime can provide information about a resource.
35
<River rdf:about="http://www.china.org/geography/rivers#Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea http://www.china.org/geography/rivers/yangtze.rdf <River rdf:about="http://www.china.org/geography/rivers#Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#"> Dri Chu - Female Yak River Tongtian He, Travelling-Through-the-Heavens River Jinsha Jiang, River of Golden Sand http://www.encyclopedia.org/yangtze-alternate-names.rdf <River rdf:about="http://www.china.org/geography/rivers#Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Dri Chu - Female Yak River Tongtian He, Travelling-Through-the-Heavens River Jinsha Jiang, River of Golden Sand Aggregated Data! Система интеграции собирает данные (aggregator tool) собирает данные о реке Yangtze A distributed network of data!
36
<Dam rdf:ID="ThreeGorges" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/dam#" xml:base="http://www.china.org/geography/rivers"> The Three Gorges Dam 1.5 miles 610 feet $30 billion <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#" xml:base="http://www.china.org/geography/rivers"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea http://www.china.org/geography/rivers/yangtze.rdf http://www.encyclopedia.org/three-gorges-dam.rdf <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#" xml:base="http://www.china.org/geography/rivers"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea <Dam rdf:ID="ThreeGorges" xmlns="http://www.geodesy.org/dam#"> The Three Gorges Dam 1.5 miles 610 feet $30 billion Aggregate! Отметим, что ссылка на ресурс ThreeGorges Dam была заменена на Ту информацию, которую интегратор смог найти об этом ресурсе! Другой пример агрегирования
37
Пример #3 Yangtze 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Отметим, что в этом XML документе не задан уникальный идентификатор: Yangtze3.xml XML Yangtze 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Yangtze3.rdf RDF Данный RDF является идентичным XML документу!
38
Интерпретация RDF Yangtze 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Yangtze3.rdf This is read as: "This is an instance of the River type (class). The River has a name of Yangtze, a length of 6300 kilometers, a startingLocation of western China's Qinghai-Tibet Plateau, and an endingLocation of the East China Sea." В данном документе ресурс является анонимным – он не имеет идентификатора.
39
Недостаток анонимных ресурсов Yangtze 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea http://www.china.org/geography/rivers/yangtze.rdf Yangtze Dri Chu - Female Yak River Tongtian He, Travelling-Through-the-Heavens River Jinsha Jiang, River of Golden Sand http://www.encyclopedia.org/yangtze-alternate-names.rdf An aggregator tool will not be able to determine if these documents are talking about the same resource. Aggregate
40
Пример #4 <River id="Yangtze" xmlns="http://www.geodesy.org/river" xmlns:uom="http://www.measurements.org/units-of-measure"> 6300 western China's Qinghai-Tibet Plateau East China Sea XML Yangtze4.xml Yangtze4.rdf <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#" xmlns:uom="http://www.measurements.org/units-of-measure#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea RDF
41
<River id="Yangtze" xmlns="http://www.geodesy.org/river" xmlns:uom="http://www.measurements.org/units-of-measure#"> 6300 western China's Qinghai-Tibet Plateau East China Sea Yangtze4.xml RDF does not allow attributes on the properties (except for special RDF attributes such as rdf:resource). So we need to make the uom:units attribute a child element. Your first instinct might be to modify length to have two child elements: <River id="Yangtze" xmlns="http://www.geodesy.org/river" xmlns:uom="http://www.measurements.org/units-of-measure#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea However, now the length property has as its value two values. RDF only binary relations i.e., a single value for a property.
42
Атрибут rdf:value length 6300 kilometers length has two values - 6300 and kilometers. RDF provides a special property, rdf:value, to be used for specifying the "primary" value. In this example, 6300 is the primary value, and kilometers is a value which provides additional information about the primary value.
43
RDF формат <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#" xmlns:uom="http://www.measurements.org/units-of-measure#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Yangtze4.rdf An anonymous resource Read this as: "The Yangtze River has a length whose value is a resource which has a value of 6300 and whose units is kilometers.
44
Преимущества анонимных ресурсов 6300 kilometers This is an anonymous resource. Its purpose is solely to provide a context for the two properties. Other RDF documents will have no need to amplify this resource. So, in this case, there is no reason for giving the resource an identifier. In this case it makes good sense to use an anonymous resource.
45
Графовая RDF модель An anonymous resource (also called a "blank node"). That is, a resource with no identifier. (Note: RDF Parsers will typically generate a unique identifier for anonymous resources, to distinguish one anonymous resource from another.) Legend:
46
rdf:parseType="Resource" <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#" xmlns:uom="http://www.measurements.org/units-of-measure#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Yangtze4,v2.rdf If the value of a property is comprised of several values then one option is to create an anonymous resource, as we saw. RDF provides a shorthand, so that you don't need to create an rdf:Description element, by using rdf:parseType="Resource", as shown here: The meaning of this is identical to that shown on the previous slide.
47
Эквивалентно! 6300 kilometers 6300 kilometers Do Lab3
48
Итоговый пример Требуется изменить следующий XML документ, чтобы он также стал правильным (valid) RDF документом: <River id="Yangtze" xmlns="http://www.geodesy.org/river" xmlns:uom="http://www.measurements.org/units-of-measure#"> 6300 western China's Qinghai-Tibet Plateau East China Sea <Dam id="ThreeGorges" xmlns="http://www.geodesy.org/dam"> The Three Gorges Dam 1.5 miles 610 feet $30 billion Yangtze.xml Смотри следующий слайд -->
49
RDF формат! <River rdf:ID="Yangtze“ xmlns="http://www.geodesy.org/river#" xmlns:uom="http://www.measurements.org/units-of-measure#" xml:base="http://www.china.org/geography/rivers"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea <Dam rdf:ID="ThreeGorges" xmlns="http://www.geodesy.org/dam#"> The Three Gorges Dam 1.5 miles 610 feet $30 billion Yangtze.rdf With relatively few changes the XML document is now usable by both XML tools and RDF tools!
50
Графовая RDF модель
51
Пример #5 <River id="Yangtze" xmlns="http://www.geodesy.org/river" xmlns:uom="http://www.measurements.org/units-of-measure#"> 6300 175 55 Yangtze5.xml Modify the following XML document so that it is also a valid RDF document: <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#" xmlns:uom="http://www.measurements.org/units-of-measure#"> 6300 kilometers 175 meters 55 kilometers Yangtze5.rdf This is one way of doing it. Now we will see a better way - using "typed literals". (See next slide)
52
Альтернативный RDF формат <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#"> 6300 175 55 Yangtze5.rdf With rdf:datatype you can give a property's value a datatype label. The rdf:datatype value acts as a semantic label for the datatype of the value. This is called a typed literal. For this example there must be a namespace, http://www.uom.org/distance#, which defines two datatypes - kilometer and meter. On the next slide is shown how to do this using XML Schemas.
53
Определение типов данных (datatypes) kilometer и meter с помощью XML Schemas <schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.uom.org/distance#"> uom.xsd
54
Другой пример использования rdf:datatype <Person rdf:ID="JohnSmith" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.person.org#"> 30 In this example we are specifying that the value (30) of age is a nonNegativeInteger (which is defined in the XML Schema namespace).
55
Пример #6 -2 degrees Celsius 30.4 (rising) USA Massachusetts Boston January 22, 2003, 11:15 EST WMUR_TV_WeatherReading.xml Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid) RDF документом:
56
Общие замечания 1. Данный XML документ использует три типа (класса): WeatherReading Weather Location 2. Все 3 экземпляра типов являются анонимными. Следовательно, мы не можем получить пользу от других и другие не могут получить пользу от нас. Когда имеет смысл задавать идентификаторы для экземпляров? - В общем случае, корневой элемент должен иметь идентификатор. - Имеется множество информации о городе Boston. Давайте зададим идентификатор для экземпляра Location.
57
Изменение 1: Добавление идентификаторов <WeatherReading id="BOS-012203-1115" xmlns="http://www.meteorology.org#"> -2 degrees Celsius 30.4 (rising) <Location id="BOS" xmlns="http://www.geodesy.org#"> USA Massachusetts Boston January 22, 2003, 11:15 EST WMUR_TV_WeatherReading,v2.xml
58
Изменение 2: Создание свойств для типов Weather и Location Types (classes) contain properties. We need to wrap the Weather and Location types within a property: <WeatherReading id="BOS-012203-1115" xmlns="http://www.meteorology.org#"> -2 degrees Celsius 30.4 (rising) <Location id="BOS" xmlns="http://www.geodesy.org#"> USA Massachusetts Boston January 22, 2003, 11:15 EST WMUR_TV_WeatherReading,v3.xml
59
Полученный RDF формат! <WeatherReading rdf:ID="BOS-012203-1115" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.meteorology.org#" xml:base="http://www.wmur-tv.com/weather"> -2 degrees Celsius 30.4 (rising) <Location rdf:ID="BOS" xmlns="http://www.geodesy.org#" xml:base="http://www.airports.org/icao"> USA Massachusetts Boston January 22, 2003, 11:15 EST WMUR_TV_WeatherReading.rdf
60
Тип (класс) rdf:Bag The rdf:Bag type is used to represent an unordered collection.
61
Пример #7 <Meeting id="XML-Design-Patterns" xmlns="http://www.business.org"> John Smith Sally Jones Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid) RDF документом: DesignMeeting.xml rdf:Bag makes it clear that this is an unordered collection of names. <Meeting rdf:ID="XML-Design-Pattern" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.business.org#"> John Smith Sally Jones DesignMeeting.rdf
62
Тип (класс) rdf:Alt Тип rdf:Alt используется для описания набора альтернативных свойств.
63
Пример #8 <Retailer id="BarnesAndNoble" xmlns="http://www.retailers.org"> http://www.bn.com http://www.barnesandnoble.com Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid) RDF документом: BarnesAndNoble.xml rdf:Alt makes it clear that the urls listed are alternates, i.e., choose one of them. <Retailer rdf:ID="BarnesAndNoble" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.retailers.org#"> http://www.bn.com http://www.barnesandnoble.com BarnesAndNoble.rdf
64
Тип (класс) rdf:Seq The rdf:Seq type is used to represent a sequence of properties.
65
Пример #9 <ToDoList id="MondayMeetings" xmlns="http://www.reminders.org"> Meet with CEO at 10am Luncheon at The Eatery Flight at 3pm Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid) RDF документом: MyDaysActivities.xml rdf:Seq makes it clear that the activities listed are to be done in the sequence listed. <ToDoList rdf:ID="MondayMeetings" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.reminders.org#"> Meet with CEO at 10am Luncheon at The Eatery Flight at 3pm MyDaysActivities.rdf
66
Свойство rdf:li Свойство rdf:li ("list item") предоставляется языком RDF для использования совместно с rdf:Bag, rdf:Alt или rdf:Seq. The rdf:li property is provided for you to specify an item in a Bag/Alt/Seq. An RDF Parser will replace each rdf:li with rdf:_1, rdf:_2, rdf:_3, etc. The following slide recasts the previous examples using the rdf:li property.
67
<ToDoList rdf:ID="MondayMeetings" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.reminders.org#"> Meet with CEO at 10am Luncheon at The Eatery Flight at 3pm MyDaysActivities.rdf <Retailer rdf:ID="BarnesAndNoble" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.retailers.org#"> http://www.bn.com http://www.barnesandnoble.com BarnesAndNoble.rdf <Meeting rdf:ID="XML-Design-Pattern" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.business.org#"> John Smith Sally Jones DesignMeeting.rdf
68
Пример #10 Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid) RDF документом: <Catalogue xmlns="http://www.publishing.org#" xmlns:dc="http://pur1.org/metadata/dublin-core#"> Lateral Thinking Edward de Bono 1973 0-06-099325-2 Harper & Row Illusions: The Adventures of a Reluctant Messiah Richard Bach 1977 0-440-34319-4 Dell Publishing Co. The First and Last Freedom J. Krishnamurti 1954 0-06-064831-7 Harper & Row Barnes_and_Noble _BookCatalogue.xml Note: regrettably, the Dublin Core does not conform to the RDF naming conventions. Hence, you see properties with the first letter capitalized.
69
Общие замечания 1. The XML document uses two types (classes): Catalogue Book 2. All type instances are anonymous. Consequently, we cannot benefit from others, and others cannot benefit from us. Where does it make sense to give the instance an identifier? - In general, the root element should have an identifier. - There is lots of information about each book instance. Let's give each book instance an identifier (the ISBN).
70
Изменение1: Добавление идентификаторов <Catalogue id="BookCatalogue" xmlns="http://www.publishing.org#" xmlns:dc="http://pur1.org/metadata/dublin-core#"> Lateral Thinking Edward de Bono 1973 Harper & Row Illusions: The Adventures of a Reluctant Messiah Richard Bach 1977 Dell Publishing Co. The First and Last Freedom J. Krishnamurti 1954 Harper & Row Barnes_and_Noble _BookCatalogue,v2.xml Notice that the ISBN elements were deleted and their values used as identifiers. Why was an underscore placed in front of the ISBN? Answer: The ID datatype does not allow an identifier to begin with a digit. So, we (arbitrarily) decided to use an underscore.
71
Изменение 2: Создание свойств для типа Book Barnes_and_Noble _BookCatalogue,v3.xml Types (classes) contain properties. We need to wrap the Book type within a property: <Catalogue id="BookCatalogue" xmlns="http://www.publishing.org#" xmlns:dc="http://pur1.org/metadata/dublin-core#"> Lateral Thinking Edward de Bono 1973 Harper & Row Illusions: The Adventures of a Reluctant Messiah Richard Bach 1977 Dell Publishing Co. The First and Last Freedom J. Krishnamurti 1954 Harper & Row
72
Полученный RDF формат! <Catalogue rdf:ID="BookCatalogue“ xmlns="http://www.publishing.org#" xmlns:dc="http://pur1.org/metadata/dublin-core#" xml:base="http://www.bn.com"> <Book rdf:ID="_0-06-099325-2" xml:base="http://www.publishing.org/book"> Lateral Thinking Edward de Bono 1973 Harper & Row <Book rdf:ID="_0-440-34319-4" xml:base="http://www.publishing.org/book"> Illusions: The Adventures of a Reluctant Messiah Richard Bach 1977 Dell Publishing Co. … Barnes_and_Noble_BookCatalogue.rdf
74
Dublin Core (dc:) Dublin Core это стандартный набор свойств: ContentIntellectual Property Instance Title Subject Description Language Relation Coverage Source Creator Publisher Contributor Rights Date Type Format Identifier Note: many people use these properties in their HTML today. For example:
75
rdf:parseType="Collection" This may be added as an attribute of a property to indicate that the contents of the property is a list of resources. The following slide recasts the BookCatalogue example to use this list type.
76
<Catalogue rdf:ID="BookCatalogue" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.publishing.org#" xmlns:dc="http://pur1.org/metadata/dublin-core#" xml:base="http://www.bn.com"> <Book rdf:ID="_0-06-099325-2" xml:base="http://www.publishing.org/book"> Lateral Thinking Edward de Bono 1973 Harper & Row <Book rdf:ID="_0-440-34319-4" xml:base="http://www.publishing.org/book"> Illusions: The Adventures of a Reluctant Messiah Richard Bach 1977 Dell Publishing Co.... Barnes_and_Noble_BookCatalogue.rdf Do Lab4
77
Пример#11 <Article rdf:ID="QuickBrownFox" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.publishing.org#"> The quick brown fox jumped over the lazy dog. An important person once said " Now is the time for all good men to come to the aid of their country " QuickBrownFox.rdf rdf:parseType="Literal" indicates that the content of paragraph is to be treated simply as literal XML, i.e., tools shouldn't try to parse the content into resource/property/value triples. <Article id="QuickBrownFox" xmlns="http://www.publishing.org"> The quick brown fox jumped over the lazy dog. An important person once said " Now is the time for all good men to come to the aid of their country " Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid) RDF документом: QuickBrownFox.xml The paragraph contains "mixed content".
78
rdf:parseType="Literal" In all of the previous examples the data was structured as resource/property/value triples. Sometimes it doesn't make sense to do such structuring – Example: with mixed content In those cases we can simply indicate "hey, the content of this property is okay. Treat it as a literal XML string."
79
Dangers of rdf:parseType="Literal" The advantage of structuring your XML as resource/property/value triples is enhanced interoperability. When you use rdf:parseType="Literal" you lose the ability for a tool to instantly take advantage of the resource/property/value structure (since you are, by definition, saying that the data doesn't have this structure). Lesson Learned: use rdf:parseType="Literal" sparingly !
80
Пример #12 <River id="Yangtze" xmlns="http://www.geodesy.org/river" length="6300 kilometers" startingLocation="western China's Qinghai-Tibet Plateau" endingLocation="East China Sea"/> <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#" xmlns:r="http://www.geodesy.org/river#" r:length="6300 kilometers" r:startingLocation="western China's Qinghai-Tibet Plateau" r:endingLocation="East China Sea"/> XML RDF Yangtze.xml Yangtze.rdf Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid) RDF документом: Note that attributes are being used, not child elements! The RDF format allows you to use attributes as well!
81
Атрибуты Recall that at the very beginning of this tutorial we said that a resource has properties (attributes). Thus, a property can be represented either as a child element, or as an attribute. (Of course, a property can only be represented as an attribute if it has a literal value, not a structured value.)
82
Equivalent! <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#" xmlns:r="http://www.geodesy.org/river#" r:length="6300 kilometers" r:startingLocation="western China's Qinghai-Tibet Plateau" r:endingLocation="East China Sea"/> <River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/river#"> 6300 kilometers western China's Qinghai-Tibet Plateau East China Sea Do Lab5
83
Пример #13 John Smith 555-1212 abc@def.com 1995-01-01 1999-01-01 researcher Some Corp http://www.company.org Cool stuff Требуется изменить следующий XML документ, так, чтобы он также был правильным (valid) RDF документом:
84
<Resume rdf:ID="JSmith-2003" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.resume.org#" xml:base="http://www.jsmith.com/resume"> John Smith 555-1212 abc@def.com 1995-01-01 1999-01-01 researcher Some Corp http://www.company.org Cool stuff Oracle 13 Java 3 BS RPI 1987
85
Заключение В данной презентации было показано, что часто путем небольшого изменения, «обычные XML" документы можно сделать согласуемыми с языком RDF. Рекомендуется использовать RDF формат во всех XML документах. Преимущества полученные в результате форматирования XML документа в виде RDF намного превышают возможные недостатки (необходимости структурировать XML в специфический формат и необходимости изучать новый словарь).
86
Дополнительный материал http://www.xml.com/pub/a/2002/10/30/rdf-friendly.html "Make Your XML RDF-Friendly" by Bob DuCharme, John Cowan
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.