我试图掌握语义网的概念。我发现很难理解RDF和OWL之间的确切区别。OWL是RDF的扩展还是这两种完全不同的技术?


当前回答

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/

其他回答

RDFS允许您通过在一个灵活的、基于三元的格式上进行标准化,然后提供一个词汇表(“关键字”,如rdf:type或RDFS:subClassOf)来表达事物之间的关系,这些词汇表可以用来表示事物。

OWL类似,但更大、更好、更糟。OWL让您更多地了解您的数据模型,它向您展示了如何有效地使用数据库查询和自动推理器,它还提供了有用的注释,以便将数据模型带入现实世界。

第一个区别:词汇

在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提供了如此多新的、复杂的词汇来用于数据建模和推理,这是它自己的教训!

第二个区别:刚性

与RDFS不同的另一个主要区别是,OWL不仅告诉您如何使用某些词汇表,而且还告诉您如何不能使用这些词汇表。相比之下,RDFS为您提供了一个任意的世界,您可以添加几乎任何您想要的三重组合。

例如,在RDFS中,任何你想要的东西都可以是RDFS:Class的实例。你可能决定说Beagle是一个rdfs:类,然后说Fido是Beagle的一个实例:

Example: Beagle    rdf:Type    rdfs:Class

Example:Fido    rdf:Type    Example: Beagle

接下来,你可能想说关于Beagle的事情,也许你想说Beagle是在英国饲养的狗的一个例子:

Example:Beagle    rdf:Type    Example:BreedsBredInEngland

Example: BreedsBredInEngland    rdf:Type    rdfs:Class

本例中有趣的地方是,示例:Beagle同时用作类和实例。比格犬是菲多的一个阶级,但比格犬本身是另一个阶级的一员:在英国繁殖的东西。

在RDFS中,所有这些都是完全合法的,因为RDFS并没有真正限制哪些语句可以插入,哪些语句不能插入。相比之下,在OWL中,或者至少在某些类型的OWL中,上面的语句实际上是不合法的:您根本不允许说某个东西可以既是类又是实例。

这是RDFS和OWL之间的第二个主要区别。RDFS使所有人都可以自由使用,任何东西都可以使用,就像一个充满了狂野西部、speak - easy和萨尔瓦多·达利的世界。OWL的世界强加了一个更加严格的结构。

第三个区别:注释,元数据

假设您已经花了一个小时来构建描述您的无线电制造业务的本体。在午餐期间,您的任务是为您的时钟制造业务构建一个本体。今天下午,在喝完一杯美味的咖啡后,您的老板现在告诉您,您必须为您的高利润时钟收音机业务构建一个本体。有没有一种方法可以很容易地重复利用上午的工作?

OWL让这类事情变得非常非常简单。Owl:Import是您将在时钟无线电情况下使用的,但是Owl还提供了丰富的注释,例如Owl: versionInfo、Owl: backwardsCompatibleWith和Owl: deprecedproperty,可以轻松地将数据模型链接到一个相互一致的整体中。

与RDFS不同,OWL一定能满足您所有的元数据建模需求。

结论

OWL为您提供了更大的词汇表,这使得您可以轻松地谈论有关数据模型的任何内容。它甚至允许你根据当今计算机的计算现实来调整你说的话,并为特定的应用程序(例如搜索查询)进行优化。此外,OWL允许您使用标准注释框架轻松地表示不同本体之间的关系。

与RDFS相比,所有这些都是优势,通常值得您花费额外的努力来熟悉它们。

来源:RDFS vs. OWL

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/

首先,正如前面所指出的,owl可以在RDF中序列化。

其次,OWL通过提供使用正式的可计算一阶描述逻辑定义三元组组件的设备,为RDF添加了本体功能(RDF本身仅为正式的知识表示提供了极其有限的功能)。这就是所谓的“语义丰富性”。

第三,重要的是要意识到在OWL- full(对于OWL 1)中rdfs:class和OWL:class是等价的,在OWL- dl中,OWL:class是rdfs:class的子类。实际上,这意味着您可以使用OWL本体作为RDF的模式(它不正式地需要模式)。

我希望这有助于进一步澄清。

简而言之:

RDF定义了如何写东西 OWL定义了要写什么

正如前面的帖子所写的,RDF是一种规范,它告诉您如何定义三元组。

问题是RDF允许你定义任何东西,所以你可以像这样组成一个声明:

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

这些三元组形成有效的RDF文档。

但是,从语义上讲,您知道这些语句是不正确的,RDF不能帮助您验证所编写的内容。

这不是一个有效的本体。

OWL规范准确地定义了您可以用RDF编写什么以获得有效的本体。

本体可以有几个属性。

这就是为什么OWL(版本1)定义了几个版本,如OWL DL, OWL Lite, OWL Full。

The Resource Description Framework (RDF) is a powerful formal knowledge representation language and a fundamental standard of the Semantic Web. It has its own vocabulary that defines core concepts and relations (e.g., rdf:type corresponds to the isA relationship), and a data model that enables machine-interpretable statements in the form of subject-predicate-object (resource-property-value) triples, called RDF triples, such as picture-depicts-book. The extension of the RDF vocabulary with concepts required to create controlled vocabularies and basic ontologies is called RDF Schema or RDF Vocabulary Description Language (RDFS). RDFS makes it possible to write statements about classes and resources, and express taxonomical structures, such as via superclass-subclass relationships.

Complex knowledge domains require more capabilities than what is available in RDFS, which led to the introduction of OWL. OWL supports relationships between classes (union, intersection, disjointness, equivalence), property cardinality constraints (minimum, maximum, exact number, e.g., every person has exactly one father), rich typing of properties, characteristics of properties and special properties (transitive, symmetric, functional, inverse functional, e.g., A ex:hasAncestor B and B ex:hasAncestor C implies that A ex:hasAncestor C), specifying that a given property is a unique key for instances of a particular class, and domain and range restrictions for properties.