В чем разница между RDF и OWL? - PullRequest
182 голосов
/ 16 ноября 2009

Я пытаюсь понять концепцию семантической паутины. Мне трудно понять, в чем именно разница между RDF и OWL. Является ли OWL расширением RDF или эти две технологии совершенно разные?

Ответы [ 14 ]

258 голосов
/ 28 ноября 2009

Семантическая сеть состоит из нескольких слоев. Это краткое изложение тех, которые, я думаю, вас интересуют.

Обновление : обратите внимание, что RDFS используется для определения структуры данных, не OWL. OWL описывает семантические отношения, о которых не суетится нормальное программирование, такое как структура C, и ближе к исследованию ИИ и теории множеств.

Тройки и URI

Subject - Predicate - Object

Они описывают один факт. Обычно URI используются для субъекта и предиката. Объект является либо другим URI, либо литералом, таким как число или строка. Литералы могут иметь тип (который также является URI), и они также могут иметь язык. Да, это означает, что тройки могут содержать до 5 бит данных!

Например, тройка может описать тот факт, что Чарльз является отцом Гарри.

<http://example.com/person/harry> <http://familyontology.net/1.0#hasFather> <http://example.com/person/charles> .

Тройки - нормализация базы данных, доведенная до логического предела. Их преимущество заключается в том, что вы можете загружать тройки из многих источников в одну базу данных без переконфигурации.

RDF и RDFS

Следующий уровень - RDF - Структура описания ресурсов. RDF определяет некоторую дополнительную структуру для троек. Самая важная вещь, которую определяет RDF - это предикат с именем "rdf: type". Это используется, чтобы сказать, что вещи имеют определенные типы. Каждый использует rdf: type, что делает его очень полезным.

RDFS (RDF Schema) определяет некоторые классы, которые представляют концепцию субъектов, объектов, предикатов и т. Д. Это означает, что вы можете начать делать утверждения о классах вещей и типах отношений. На самом простом уровне вы можете утверждать, что http://familyontology.net/1.0#hasFather - это отношения между человеком и человеком. Это также позволяет вам описать в удобочитаемом тексте значение отношения или класса. Это схема. Он рассказывает вам законное использование различных классов и отношений. Он также используется для указания того, что класс или свойство является подтипом более общего типа. Например, «HumanParent» является подклассом «Person». «Любит» - это подкласс «Знает».

Сериализация RDF

RDF можно экспортировать в несколько форматов файлов. Наиболее распространенным является RDF + XML, но у него есть некоторые недостатки.

N3 - это не-XML формат, который легче читать, и есть некоторые подмножества (Turtle и N-Triples), которые являются более строгими.

Важно знать, что RDF - это способ работы с тройками, а НЕ форматами файлов.

XSD

XSD - это пространство имен, в основном используемое для описания типов свойств, таких как даты, целые числа и так далее. Это обычно видно в данных RDF, идентифицирующих конкретный тип литерала. Он также используется в XML-схемах, представляющих собой немного другой котелок с рыбой.

OWL

OWL добавляет семантику в схему. Это позволяет вам указать гораздо больше о свойствах и классах. Это также выражается в тройках. Например, это может указывать, что «Если A isMarriedTo B», то это подразумевает «B isMarriedTo A». Или если « C isAncestorOf D » и « D isAncestorOf E », то « C isAncestorOf E ». Еще одна полезная вещь, которую добавляет сова, - это возможность сказать, что две вещи одинаковы, это очень полезно для объединения данных, представленных в разных схемах. Вы можете сказать, что отношение "sired" в одной схеме является owl: sameAs "порождено" в какой-то другой схеме. Вы также можете использовать это, чтобы сказать, что две вещи одинаковы, например, «Элвис Пресли» в Википедии - это то же самое на BBC. Это очень интересно, так как это означает, что вы можете начать объединять данные с нескольких сайтов (это «Связанные данные»).

Вы также можете использовать OWL для вывода неявных фактов, таких как " C isAncestorOf E ".

75 голосов
/ 16 ноября 2009

Короче говоря:

  • RDF определяет как писать вещи
  • OWL определяет что писать

Как писал предыдущий автор, RDF - это спецификация, которая говорит вам, как определять тройки.

Проблема в том, что RDF позволяет вам определять все, поэтому вы можете составить объявление следующим образом:

| subject | predicate | object |
|---------|-----------|--------|
| Alex    | Eats      | Apples |
| Apples  | Eats      | Apples |
| Apples  | Apples    | Apples |

Эти тройки образуют действительные документы RDF.

Но семантически вы понимаете, что эти утверждения неверны, и RDF не может помочь вам подтвердить то, что вы написали.

Это недопустимая онтология.

Спецификация OWL точно определяет что вы можете написать с помощью RDF, чтобы иметь действительную онтологию.

Онтологии могут иметь несколько свойств.

Вот почему OWL (ver 1) определяет несколько версий, таких как OWL DL, OWL Lite, OWL Full.

29 голосов
/ 15 апреля 2013

RDF, RDFS и OWL являются средствами выражения все более сложной информации или знаний. Все они могут быть сериализованы в синтаксисе RDF / XML (или в любом другом синтаксисе сериализации RDF, например, в Turtle или N3).

Эти технологии связаны между собой и должны быть совместимы, но они имеют различное происхождение, поэтому, возможно, поэтому связь между ними сложна для понимания. Выбор того или другого зависит от того, насколько сложна ситуация, которую вы моделируете.

Краткое изложение выразительности

RDF : простое представление, сфокусированное на экземплярах и отображении их типов (rdf:type). Можно определить пользовательские свойства для связи данных и создания троек. Данные RDF запрашиваются с помощью SPARQL. Пример RDF, сериализованного в Turtle:

@prefix : <http://www.example.org/> .
:john    rdf:type           :Man .
:john    :livesIn  "New-York" .
:livesIn    rdf:type    rdf:Property .

RDFS: Некоторые ситуации нелегко моделируются одним RDF, иногда интересно представить более сложные отношения, например, такие как подклассы ( тип типа ). RDFS предоставляет специальные средства для представления таких случаев с такими конструкциями, как rdfs:subClassOf, rdfs:range или rdfs:domain. В идеале, рассуждатель может понять семантику RDFS и расширить число троек на основе отношений: например, если у вас есть тройки John a Man и Man rdfs:subClassOf Human, то вы должны сгенерировать тройной John a Human. Обратите внимание, что это невозможно сделать только с RDF. Данные RDFS запрашиваются с использованием SPARQL. Пример RDFS, сериализованного в Turtle:

@prefix : <http://www.example.org/> .
:john    rdf:type           :Man .
:Man    rdfs:subClassOf    :Human .
:john    :livesIn  "New-York" .
:livesIn    rdf:type    rdf:Property .
# After reasoning
:john    rdf:type    :Human .

OWL: Высочайший уровень выразительности. Связь между классами может быть формально смоделирована на основе логики описания (математическая теория). OWL в значительной степени опирается на рассуждение, можно выразить сложные конструкции, такие как, например, связанные свойства или ограничения между классами. OWL служит для построения онтологий или схем на основе наборов данных RDF. Поскольку OWL может быть сериализован как RDF / XML, теоретически можно запрашивать его через SPARQL, но гораздо интуитивнее запрашивать онтологию OWL с помощью запроса DL (который обычно является стандартным выражением класса OWL). Пример конструкций OWL, сериализованных в Turtle.

@prefix : <http://www.example.org/> .
:livesIn    rdf:type    owl:DatatypeProperty .
:Human    rdf:type    owl:Class .
:Man   rdf:type    owl:Class .
:Man    rdfs:subClassOf    :Human .
:John    rdf:type    :Man . 
:John    rdf:type    owl:NamedIndividual .
14 голосов
/ 31 марта 2010

Во-первых, как уже указывалось ранее, сова может быть сериализована в RDF.

Во-вторых, OWL добавляет онтологические возможности в RDF (который сам по себе обеспечивает исключительно ограниченные возможности для формального представления известных знаний), предоставляя аппарат для определения компонентов вашей тройки с использованием формальной вычислимой логики описания первого порядка. Вот что здесь подразумевается под плакатами, когда они говорят о «семантическом богатстве».

В-третьих, важно понимать, что в OWL-Full (для OWL 1) rdfs: class и owl: class эквивалентны, а в OWL-DL owl: class является подклассом rdfs: class. По сути, это означает, что вы можете использовать онтологию OWL в качестве схемы для RDF (которая формально не требует схем).

Надеюсь, это поможет прояснить ситуацию.

9 голосов
/ 14 ноября 2012

Мне лично показалось, что эта слайд-колода довольно полезна и понятна: http://www.slideshare.net/rlovinger/rdf-and-owl

8 голосов
/ 16 ноября 2009

RDF - это способ определения тройного 'субъекта', 'предиката', 'значения' . Например, если я хочу сказать,

"Меня зовут Пьер"

Я бы написал

<mail:me@where.com> <foaf:name> "Pierre"

Видите <foaf:name>? это часть онтологии FOAF . Онтология - это формальный способ описания свойств, классов данного предмета, а OWL - это (RDF) способ определения онтологии.

Вы используете C ++, Java и т. Д. ... для определения класса, подкласса, поля и т. Д. ...

class Person
{
    String email_as_id;
    String name;
}

RDF использует OWL для определения операторов такого типа.

Еще одно место, чтобы задать такой вопрос: http://www.semanticoverflow.com/

7 голосов
/ 07 ноября 2016

RDFS позволяет вам выражать отношения между вещами, стандартизируя гибкий, основанный на тройках формат, а затем предоставляя словарь («ключевые слова», такие как rdf:type или rdfs:subClassOf), который можно использовать для высказывания вещей.

OWL похож, но больше, лучше и хуже. OWL позволяет вам гораздо больше рассказать о вашей модели данных, показывает, как эффективно работать с запросами к базе данных и автоматическими рассуждениями, и предоставляет полезные аннотации для переноса ваших моделей данных в реальный мир.

1-е отличие: словарь

Из различий между RDFS и OWL наиболее важным является только то, что OWL обеспечивает гораздо более широкий словарный запас, который вы можете использовать, чтобы произносить слова .

Например, в OWL входят все ваши старые друзья из RDFS, такие как rdfs:type, rdfs:domain и rdfs:subPropertyOf. Тем не менее, OWL также дает вам новых и лучших друзей! Например, OWL позволяет вам описывать ваши данные в терминах операций над множествами:

Example:Mother    owl:unionOf     (Example:Parent, Example:Woman)

Позволяет определять эквивалентности в базах данных:

AcmeCompany:JohnSmith  owl:sameAs    PersonalDatabase:JohnQSmith

Позволяет ограничить значения свойств:

Example:MyState     owl:allValuesFrom     (State:NewYork, State:California, …)

на самом деле, OWL предоставляет так много нового, сложного словаря, который можно использовать для моделирования данных и рассуждений, который получает свой собственный урок!

2-я разница: жесткость

Другое существенное отличие состоит в том, что в отличие от RDFS, OWL не только говорит вам, как вы можете использовать определенный словарь, но и фактически говорит вам, как вы не можете использовать его. В отличие от этого, RDFS дает вам любой мир, в который вы можете добавить практически любую тройку, какую захотите.

Например, в RDFS все, что вы чувствуете, может быть экземпляром rdfs:Class. Вы можете решить, что Beagle - это rdfs:Class, а затем сказать, что Fido - это экземпляр Beagle :

Example: Beagle    rdf:Type    rdfs:Class

Example:Fido    rdf:Type    Example: Beagle

Далее, вы можете решить, что хотите сказать что-то о биглях, возможно, вы хотите сказать, что Бигль - это пример собак, разведенных в Англии :

Example:Beagle    rdf:Type    Example:BreedsBredInEngland

Example: BreedsBredInEngland    rdf:Type    rdfs:Class

Интересно, что в этом примере Example:Beagle используется как как класс и экземпляр . Beagle - это класс, членом которого является Fido , но Beagle сам является членом другого класса: Things Bred in England.

В RDFS все это совершенно законно, поскольку RDFS на самом деле не ограничивает, какие операторы вы можете и не можете вставлять. В OWL, напротив, или, по крайней мере, в некоторых разновидностях OWL, вышеприведенные утверждения на самом деле недопустимы: вам просто не разрешено говорить, что что-то может быть и классом, и экземпляром.

Это второе существенное различие между RDFS и OWL. RDFS обеспечивает бесплатную для всех , все, что угодно, представляет собой мир, полный Дикого Запада, Speak-Easies и Сальвадора Дали. Мир OWL навязывает гораздо более жесткую структуру.

3-е отличие: аннотации, мета-метаданные

Предположим, что вы потратили последний час на создание онтологии, которая описывает ваш бизнес по производству радио. Во время обеда ваша задача - создать онтологию для вашего бизнеса по производству часов. Сегодня днем, после хорошего кофе, ваш начальник говорит вам, что вам придется создать онтологию для вашего высокодоходного бизнеса, связанного с радиочасами. Есть ли способ легко повторно использовать утреннюю работу?

OWL очень легко делает такие вещи. Owl:Import - это то, что вы использовали бы в ситуации с радиочасами, но OWL также предоставляет вам широкий выбор аннотаций, таких как owl:versionInfo, owl:backwardsCompatibleWith и owl:deprecatedProperty, которые можно легко использовать для связи моделей данных вместе в взаимно связное целое.

В отличие от RDFS, OWL наверняка удовлетворит все ваши потребности в моделировании мета-метаданных.

Заключение

OWL дает вам гораздо больший словарный запас для игры, что позволяет легко сказать все, что вы, возможно, захотите сказать о своей модели данных. Он даже позволяет вам адаптировать то, что вы говорите, на основе вычислительных реалий современных компьютеров и оптимизировать для конкретных приложений (например, для поисковых запросов). Кроме того, OWL позволяет вам легко выражать отношения между различными онтологиями, используя стандартную структуру аннотаций .

Все эти преимущества по сравнению с RDFS и, как правило, стоят дополнительных усилий, необходимых для ознакомления с ними.

Источник: RDFS и OWL

7 голосов
/ 10 мая 2016

Когда вы используете термин RDF, вы должны различать две вещи:

  1. Вы можете называть RDF концепцией :

    Способ описания вещей / логики / чего-либо, используя коллекции троек.

    Пример:

    «У Анны есть яблоки». «Яблоки здоровы».

    Выше у вас есть две тройки, которые описывают два ресурса "Анна" и "яблоки". Концепция RDF (Resource Description Framework) заключается в том, что вы можете описывать ресурсы (что угодно) с помощью наборов всего из 3 слов (терминов). На этом уровне вас не волнует, как вы храните информацию: есть ли у вас строка из 3 слов, или картина на стене, или таблица с 3 столбцами и т. Д.

    На этом концептуальном уровне важно только то, что вы можете представлять все, что хотите, используя тройные операторы.

  2. Вы можете обращаться к RDF как словарь

    Словарь - это просто набор определений терминов, хранящихся в файле или где-то еще. Эти определенные термины имеют целью повторное использование в других описаниях, чтобы люди могли описывать данные (ресурсы) более легко и стандартным образом.

    В Интернете вы можете найти несколько стандартных словарей, таких как:

    RDF (https://www.w3.org/1999/02/22-rdf-syntax-ns)

    RDFS (https://www.w3.org/2000/01/rdf-schema#)

    OWL (https://www.w3.org/2002/07/owl)

    Словарь RDF определяет термины, которые помогут вам описать (на самом базовом уровне, насколько это возможно) отдельных лиц / экземпляры классов. Пример: rdf: тип, rdf: свойство.

    С помощью rdf: type вы можете описать, что некоторый ресурс является экземпляром класса:

     <http://foo.com/anna> rdf:type <http://foo.com/teacher> 
    

    Таким образом, в словаре RDF есть термины, предназначенные для базовых описаний экземпляров классов и некоторых других описаний (например, определение тройного оператора или определение предиката ... в общем, что относится к концепции RDF).

    В словаре RDFS есть определения терминов, которые помогут вам описать классы и отношения между ними. Словарь RDFS не заботится о случаях классов (отдельных лиц), таких как словарь RDF. Пример: свойство rdfs: subClassOf, которое можно использовать для описания того, что класс A является подклассом класса B.

    Словари RDF и RDFS зависят друг от друга. RDF определяет свои термины с помощью RDFS, а RDFS использует RDF для определения своих собственных терминов.

    Словари RDF / RDFS предоставляют термины, которые можно использовать для создания базовых описаний ресурсов. Если вы хотите иметь более сложные и точные описания, вы должны использовать словарь OWL.

Словарь OWL поставляется с набором новых терминов, предназначенных для более подробных описаний. Эти термины определены с использованием терминов из словарей RDF / RDFS.

owl:ObjectProperty a rdfs:Class ;
                   rdfs:label "ObjectProperty" ;
                   rdfs:comment "The class of object properties." ;
                   rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
                   rdfs:subClassOf rdf:Property .

owl:DatatypeProperty a rdfs:Class ;
                     rdfs:label "DatatypeProperty" ;
                     rdfs:comment "The class of data properties." ;
                     rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
                     rdfs:subClassOf rdf:Property .

 owl:TransitiveProperty a rdfs:Class ;
                        rdfs:label "TransitiveProperty" ;
                        rdfs:comment "The class of transitive properties." ;
                        rdfs:isDefinedBy <http://www.w3.org/2002/07/owl#> ;
                        rdfs:subClassOf owl:ObjectProperty .

Как вы можете видеть выше, словарь OWL расширяет концепцию rdf: Property, создавая новые типы свойств, которые являются менее абстрактными и могут обеспечить более точное описание ресурсов.

Выводы:

  1. RDF - это концепция или способ описания ресурсов с использованием наборов троек.
  2. Тройки RDF могут храниться в разных форматах (XML / RDF, Turtle и т. Д.)
  3. Концепция RDF является базовой моделью всех технологий и структур семантического веба (например, словарей).
  4. RDF также является словарем, который наряду со словарем RDFS предоставляет набор терминов, которые можно использовать для создания общих / абстрактных описаний ресурсов.
  5. OWL - это словарь, созданный из словарей RDF и RDFS, которые предоставляют новые термины для создания более подробных описаний ресурсов.
  6. Все словари семантической сети (RDF, RDFS, OWL и т. Д.) Создаются с учетом концепции RDF.
  7. И, конечно же, словарь OWL имеет за кадром все виды сложной логики и концепций, которые определяют язык веб-онтологий. Словарь OWL - это просто способ использовать всю эту логику на практике.
6 голосов
/ 26 мая 2014

Я пытаюсь понять концепцию семантической паутины. Мне трудно чтобы понять, в чем именно разница между RDF и OWL. Является OWL расширение RDF или эти два совершенно разные технологии?

Короче говоря, да, можно сказать, что OWL является расширением RDF.

Более подробно, с помощью RDF вы можете описать ориентированный граф, определив тройки субъект-предикат-объект. Субъект и объект - это узлы, предикат - это ребро, или, другими словами, предикат описывает отношение между субъектом и объектом. Например, :Tolkien :wrote :LordOfTheRings или :LordOfTheRings :author :Tolkien и т. Д. Системы связанных данных используют эти тройки для описания графов знаний и предоставляют способы их хранения, запроса к ним. Сейчас это огромные системы, но вы можете использовать RDF в небольших проектах. Каждое приложение имеет предметно-ориентированный язык (или, по выражению DDD, вездесущий язык). Вы можете описать этот язык в своей онтологии / словаре, чтобы вы могли описать модель домена вашего приложения с помощью графика, который вы можете визуализировать, показать его бизнес-людям, рассказать о бизнес-решениях на основе модели и построить приложение на вершине. того, что. Вы можете привязать словарь вашего приложения к данным, которые оно возвращает, и к словарю, известному поисковым системам, например, микроданные (например, вы можете использовать HTML с RDFA для этого), и поисковые системы найти ваши приложения легко, потому что знание о том, что оно делает, будет обрабатываться машиной. Вот как работает семантическая паутина. (По крайней мере, так я это себе представляю.)

Теперь, чтобы описать объектно-ориентированные приложения, вам нужны типы, классы, свойства, экземпляры и т. Д. С помощью RDF вы можете описывать только объекты. RDFS (RDF-схема) помогает вам описывать классы наследования (основанные на объектах of.), Но это слишком широко. Чтобы определить ограничения (например, по одному ребенку на китайскую семью), вам нужен еще один словарь. OWL (язык веб-онтологий) делает эту работу. OWL - это онтология, которую вы можете использовать для описания веб-приложений. Он интегрирует простые типы XSD.
Таким образом, RDF -> RDFS -> OWL -> MyWebApp - это порядок описания вашего веб-приложения более конкретным образом.

4 голосов
/ 22 сентября 2010

В объектной модели документа WC3 документ является абстрактным: элемент с вложенными в него текстом, комментариями, атрибутами и другими элементами.

В семантической паутине мы имеем дело с набором «троек». Каждая тройка:

  • субъект, вещь тройная о , идентификатор, первичный ключ базы данных - URI; и
  • предикат, "глагол", "свойство", "столбец базы данных" - другой URI; и
  • объект , атомарное значение или некоторый URI.

OWL относится к семантической сети, а схемы - к объектной модели документа W3C. Он документирует, что означают различные URI, и указывает, как они используются формально, что может быть проверено машиной. Семантическая сеть может быть или не быть действительной в отношении применяемой к ней OWL, так же, как документ может быть или не быть действительным в отношении схемы.

RDF относится к семантической сети, как XML к DOM - это сериализация набора троек.

Конечно, RDF обычно сериализуется как XML-документы ... но важно понимать, что RDF - это не то же самое, что "XML-сериализация из RDF".

Аналогично, OWL может быть сериализован с использованием OWL / XML, или (извините за это) он может быть выражен как RDF, который сам обычно сериализуется как XML.

...