Some good answers already. One point I would highlight is that OWL gives you a vocabulary for making logical assertions about the resources you want to describe. For example, in RDF you can say "this resource, :r is a car, because it is a member of the class of all cars which I've named :Car". You can also say "this resource :r is a bacterium, because it is a member of the class :Bacteria". What you can't do in RDF is say "hang on, that's not consistent: no one thing can be both a car and a bacterium" because RDF has no way of expressing that. Using OWL, you could also say "the classes :Car and :Bacteria are disjoint: by definition they have no members in common". Being disjoint is example of one of the logical assertions you can state in OWL that you can't state in RDF.
Whether that matters to you is entirely dependent on your application. The logical assertions defined by OWL come with a formal, mathematical semantics which allows them to be processed by a reasoning engine. This could, for example, be used to notice that a user has accidentally asserted :r to be an impossible car/bug, and notify them. Or it could be used to conclude new information that's implicit in your set of descriptions, but isn't explicitly stated. For some applications, this kind of formal reasoning is essential, for others it's irrelevant.
OWL (Web Ontology Language) is used for formally describing ontologies. It is not used to describe the actual resources (but you can create instances in your ontology, too. Yes, in a sense it is confusing at the beginning, I'm sorry) but rather provide meta-data about them (classes, sub-classes, properties, sub-properties, domains and ranges of properties, etc.). As a very crude approximation you can think of OWL and RDFS (RDF Schema) being in the same category and you can think of RDF as the underlying (somewhat abstract) language that is used to express everything in the world of semantic web (including actual resources as well as descriptions in OWL and RDFS).
For a detailed introduction I suggest the following online introductions:
If you're just generating, or consuming Semantic Web data (RDF) you don't need to worry bout OWL. It's a machine readable schema language for RDF data, but you can get by understanding the human readable text, or examples used for the type of data you're interested in.
The relationship is a bit complex as OWL files are written in RDF, and describe RDF data.
I've been working with SemWeb technologies in industry for 6 years, and never once in that time had to read or write an OWL file. Prior to that I was working in a research lab, and we sometimes used OWL there.
发布评论
评论(4)
已经有一些很好的答案了。我要强调的一点是,OWL 为您提供了一个词汇表,用于对您想要描述的资源做出逻辑断言。例如,在 RDF 中,您可以说“这个资源,
:r
是一辆汽车,因为它是我命名为:Car< 的所有汽车类的成员” /代码>“。您也可以说“此资源
:r
是细菌,因为它是:Bacteria
类的成员”。在 RDF 中你不能做的就是说“等等,这不一致:没有任何东西可以同时是汽车和细菌”,因为 RDF 无法表达这一点。使用 OWL,您还可以说“类:Car
和:Bacteria
是不相交的:根据定义,它们没有共同的成员”。不相交是您可以在 OWL 中声明而无法在 RDF 中声明的逻辑断言之一的示例。这对您是否重要完全取决于您的应用程序。 OWL 定义的逻辑断言具有形式化的数学语义,允许推理引擎对它们进行处理。例如,这可以用于注意到用户意外地将
:r
断言为不可能的汽车/错误,并通知他们。或者它可以用于总结隐含在您的描述集中但未明确说明的新信息。对于某些应用程序来说,这种形式推理是必不可少的,而对于其他应用程序来说,这是无关紧要的。Some good answers already. One point I would highlight is that OWL gives you a vocabulary for making logical assertions about the resources you want to describe. For example, in RDF you can say "this resource,
:r
is a car, because it is a member of the class of all cars which I've named:Car
". You can also say "this resource:r
is a bacterium, because it is a member of the class:Bacteria
". What you can't do in RDF is say "hang on, that's not consistent: no one thing can be both a car and a bacterium" because RDF has no way of expressing that. Using OWL, you could also say "the classes:Car
and:Bacteria
are disjoint: by definition they have no members in common". Being disjoint is example of one of the logical assertions you can state in OWL that you can't state in RDF.Whether that matters to you is entirely dependent on your application. The logical assertions defined by OWL come with a formal, mathematical semantics which allows them to be processed by a reasoning engine. This could, for example, be used to notice that a user has accidentally asserted
:r
to be an impossible car/bug, and notify them. Or it could be used to conclude new information that's implicit in your set of descriptions, but isn't explicitly stated. For some applications, this kind of formal reasoning is essential, for others it's irrelevant.OWL(Web Ontology Language)用于形式化描述本体。它不用于描述实际资源(但您也可以在本体中创建实例。是的,从某种意义上说,它一开始很令人困惑,我很抱歉),而是提供有关它们的元数据(类、子类) -类、属性、子属性、域和属性范围等)。作为一个非常粗略的近似,您可以将 OWL 和 RDFS(RDF 模式)视为同一类别,并且您可以将 RDF 视为底层(有点抽象)语言,用于表达语义网络世界中的一切(包括实际的)资源以及 OWL 和 RDFS 中的描述)。
对于详细的介绍我建议以下在线介绍:
对于(可能)作为一本非常易读的书,我建议进行温和的介绍:
OWL (Web Ontology Language) is used for formally describing ontologies. It is not used to describe the actual resources (but you can create instances in your ontology, too. Yes, in a sense it is confusing at the beginning, I'm sorry) but rather provide meta-data about them (classes, sub-classes, properties, sub-properties, domains and ranges of properties, etc.). As a very crude approximation you can think of OWL and RDFS (RDF Schema) being in the same category and you can think of RDF as the underlying (somewhat abstract) language that is used to express everything in the world of semantic web (including actual resources as well as descriptions in OWL and RDFS).
For a detailed introduction I suggest the following online introductions:
For a (possibly) gentle introduction as a very readable book I suggest:
如果您只是生成或使用语义 Web 数据 (RDF),则无需担心 OWL。它是 RDF 数据的机器可读模式语言,但您可以通过理解人类可读文本或用于您感兴趣的数据类型的示例来获得。
这种关系有点复杂,因为 OWL 文件是用 RDF 编写的,并且描述 RDF 数据。
我在业界使用 SemWeb 技术已经有 6 年了,期间从来没有需要读取或写入 OWL 文件。在此之前,我在一个研究实验室工作,我们有时在那里使用 OWL。
If you're just generating, or consuming Semantic Web data (RDF) you don't need to worry bout OWL. It's a machine readable schema language for RDF data, but you can get by understanding the human readable text, or examples used for the type of data you're interested in.
The relationship is a bit complex as OWL files are written in RDF, and describe RDF data.
I've been working with SemWeb technologies in industry for 6 years, and never once in that time had to read or write an OWL file. Prior to that I was working in a research lab, and we sometimes used OWL there.
OWL 是一种比 RDF 更高级的语言。它具有一些RDF 无法表达的能力,例如:
表达Web 上不同文档中定义的类之间的关系。
• 通过并集、交集和其他现有类的补充来构造新类;
• 添加对类属性的数量和类型的约束;
• 确定一个类的所有成员是否都具有特定的属性,或者是否只有其中的一些成员可以;
• 表达属性是否对称、不对称、传递等。
OWL is a more advanced language than RDF. It has some abilities that RDF can't express, such as :
• express relationships among classes defined in different documents across the Web;
• construct new classes by unions, intersections, and complements of other existing classes;
• add constraints on the number and type for properties of classes;
• determine if all members of a class will have a particular property, or if only some of them might;
• express if a property is symmetric, asymmetric, transitive, etc.