I've been reading about Semantic Web technologies such as RDF/RDFS and "ontology", but was wondering how each of these are related? At the moment the terms all seem interchangeable, or I'm not understanding a fundamental concept here.
相关问题
- How can I optimize a SPARQL query that returns opt
- Calculate the depth of subclass in the OWL ontolog
- MVC2 - Consume RSS feed with RDF and namespace htt
- RDFlib 'on disk' store
- jena.query.ResultSet and jena.query.QuerySolution:
相关文章
- RDF libraries for Scala [closed]
- The difference between blank nodes and variables i
- Triple extraction from a sentance
- Meaning of owl:hasValue?
- boundary for arbitrary property path in SPARQL 1.1
- boundary for arbitrary property path in SPARQL 1.1
- sparql complete tree from subject
- Jena Fuseki assembler file + TDB + OWL reasoner
Basic definitions:
RDF is a concept.
RDF is also a NAME of a vocabulary.
RDFS is a NAME of another vocabulary.
"ontology" is just a SYNONYM of the term "vocabulary".
Explanations:
RDF is a concept
RDF is a concept or a way of describing things. The concept of RDF is that you are describing / defining anything using sets of THREE terms. Ex: "Ana has apples", "Apples are tasty", these two strings are perfectly valid RDF descriptions (conceptually speaking). In doesn't matter where and how you store described data, in files, or papers, or drawings on the sand, or paintings on a wall. The main important thing is that the data is described as triples (using the RDF concept). The semantic web is built using this concept (RDF).
RDF is a NAME of a vocabulary
Note: A vocabulary is just a set of term definitions stored in files or somewhere else. These terms have the purpose to be generally reused for describing data. So, you have your data, you have a vocabulary, now you can start adding descriptions to your data using the terms from the vocabulary.
RDF is a standard vocabulary that provides a set of terms. You can see the vocabulary here: https://www.w3.org/1999/02/22-rdf-syntax-ns
The terms provided by the RDF vocabulary help you make some basic standard descriptions like this:
Let's say you have the following data: "Ana" and "Person". So, to describe in a standard semantic web manner that your "Ana" is a "Person", you have to store the following triple somewhere:
The "rdf:type" term is defined in the RDF vocabulary and whenever you are using it you are describing the fact that the data that is in front of it (the subject) is an instance of the data (class) that is placed after it (the object).
In general the RDF vocabulary provides terms for creating basic descriptions of instances of classes.
RDFS is a NAME of another vocabulary
RDFS is a standard vocabulary just like RDF. If in the RDF vocabulary you have terms that help you give a basic definition/description of instances, in the RDFS vocabulary you have terms that help you define/describe classes. For example you have the definition of the term rdfs:subClassOf. With this term you can describe the fact that a class is a subclass of another.
So, RDF has terms for creating instances, RDFS has terms for creating classes. By using both you can start making more detailed descriptions of your data. If you want to make even more complex descriptions, than you can use OWL which is just another vocabulary that provides a set of terms able to do that. OWL terms are defined using RDF and RDFS terms.
Note: Some RDF terms are defined using RDFS terms, and some RDFS terms are defined using RDF terms. You can check the links to the vocabularies if you want.
"ontology" is just a SYNONYM of the term "vocabulary"
"Ontology" is just another name for "vocabulary". These two are the same thing. You could think of an ontology as a more complex vocabulary, but this is not a rule. This is from the official site (https://www.w3.org/standards/semanticweb/ontology):
RDF, RDFS, and ontology are not interchangeable terms. RDF (Resource Description Framework), is a conceptual data model which can be rendered physically (serialized) using various formats such N3, Turtle, RDF/XML, etc.
RDFS (RDF Schema) is "a general-purpose language for representing simple RDF vocabularies on the Web." [1].
The elements of RDFS can be used to construct an ontology. Of course, if you want more expressive power for ontology and you need to encode some properties that cannot be done using RDFS elements, you always have the OWL option.
RDF is a way of modelling your data. In RDF you model your data in triples to create a graph. In relational databases you model your data in tables that are inter-related. RDFS is for providing schema level information - an analogy to relational databases would be the column fields for your tables.
For more you can check out the answers in this, essentially the same, question: What is the difference between RDF and OWL?
RDF defines the abstract model of subject->predicate->object, and advocates that non-proprietary standards are used for their exchange and description.
The specifics of how this is done is up to the developer; there are many specifications for serialization formats and for writing predicates. Specifications in the latter camp, i.e. those that define a set of predicates, are called vocabularies.
RDFS is one such vocabulary. There are many others: FOAF, OWL, SSN, etc.
RDF and RDFS is not interchangeable.
RDF is based on making statements about resources (web in this case) in the form of subject, predicate and objects expressions (i.e. triples). The subject denotes the resource and the predicate expresses the relationship between the subject and the object. RDF in general is a method of conceptual data modelling.
RDFS provides a mechanism for describing groups of related resources (RDF), and the relation between them. Example of these properties are classes, sub-classes, range and domains.
So in essence, RDFS is a semantic extension of RDF. A person can have an RDF instance of an Animal and Dog, RDFS can specify that Animal is a class and Dog is a sub-class of Animal.