RDFS constructs are the RDFS classes, associated properties and utility properties built on the vocabulary of RDF.456
A typical example of an rdfs:Class is foaf:Person in the Friend of a Friend (FOAF) vocabulary.7 An instance of foaf:Person is a resource that is linked to the class foaf:Person using the rdf:type property, such as in the following formal expression of the natural-language sentence: 'John is a Person'.
The definition of rdfs:Class is recursive: rdfs:Class is the class of classes, and so it is an instance of itself.
The other classes described by the RDF and RDFS specifications are:
Properties are instances of the class rdf:Property and describe a relation between subject resources and object resources. When used as such a property is a predicate (see also RDF: reification).
For example, the following declarations are used to express that the property ex:employer relates a subject, which is of type foaf:Person, to an object, which is of type foaf:Organization:
Given the previous two declarations, from the triple:
can be inferred (resp. follows) that ex:John is a foaf:Person, and ex:CompanyX is a foaf:Organization.
For example, the following declares that 'Every Person is an Agent':
Hierarchies of classes support inheritance of a property domain and range (see definitions in the next section) from a class to its subclasses.
An entailment regime defines whether the triples in a graph are logically contradictory or not. RDFS entailment 10 is not very restrictive, i.e. it does not contain a large amount of rules (compared, for example, to OWL) limiting what kind of statements are valid in the graph. On the other hand it is also not very expressive, meaning that the semantics that can be represented in a machine-interpretable way with the graph is quite limited.
Below in a simple example of the capabilities and limits of RDFS entailment, we start with a graph containing the following explicit triples:
Without enabling inferencing with RDFS entailment, the data we have does not tell us whether foo:SomeElephant is a bar:Animal. When we do RDFS-based inferencing, we will get the following extra triple:
The rdfs:domain statement dictates that any subject in triples where bar:livesInZoo is the predicate is of type bar:Animal. What RDFS entailment is not able to tell us is the relationship between bar:Animal and bar:Elephant. Due to inferencing we now know that foo:SomeElephant is both bar:Animal and bar:Elephant so these classes do intersect but there is no information to deduce whether they merely intersect, are equal or have a subclass relationship.
In RDFS 1.1, the domain and range statements do not carry any formal meaning and their interpretation is left up to the implementer. On the other hand in the 1.2 Working draft they are used as entailment rules for inferencing the types of individuals. Nevertheless in both versions, it is very clearly stated that the expected functionality of range is "the values of a property are instances of one or more classes" and domain "any resource that has a given property is an instance of one or more classes".
The example above demonstrated some of the limits and capabilities of RDFS entailment, but did not show an example of a logical inconsistency (which could in layman terms be interpreted as a "validation error"), meaning that the statements the triples make are in conflict and try to express contradictory states of affairs. An example of this in RDFS would be having conflicting datatypes for objects (e.g. declaring a resource to be of type xsd:integer and being also declared to be xsd:boolean when inferencing is enabled).
RDF vocabularies represented in RDFS include:11
Brickley, Dan; Guha, Ramanathan V.; Layman, Andrew, eds. (1998-04-09). "Resource Description Framework (RDF) Schemas". W3C. W3C Working Draft. RDF Schema Working Group. Retrieved 2021-04-23. /wiki/Ramanathan_V._Guha ↩
Bikakis N.; Tsinaraki C.; Gioldasis N.; Stavrakantonakis I.; Christodoulakis S., eds. (2012-03-21). "XML and Semantic Web W3C Standards Timeline-History" (PDF). Archived from the original (PDF) on 2013-04-24. Retrieved 2021-04-23. https://web.archive.org/web/20130424125723/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf ↩
Brickley, Dan; Guha, Ramanathan V., eds. (2014-02-25). "RDF Schema 1.1". W3C. 1.1. RDF Working Group. Retrieved 2021-04-23. /wiki/Ramanathan_V._Guha ↩
"Chapter 3: RDF Schema" (PDF). csee.umbc.edu. UMBC's Department of Computer Science and Electrical Engineering. 2017. Archived from the original (PDF) on 2021-04-24. Retrieved 2021-04-24. https://web.archive.org/web/20210424045012/https://www.csee.umbc.edu/courses/graduate/691/fall17/01/notes/05_rdfs/05rdfs.pdf ↩
Lapalme, Guy (2002). "XML: Looking at the Forest Instead of the Trees § 7.1. Triples in RDF/XML". Université de Montréal. Archived from the original on 2021-01-14. Retrieved 2021-04-24. https://web.archive.org/web/20210114233612/https://www.iro.umontreal.ca/~lapalme/ForestInsteadOfTheTrees/HTML/ch07s01.html ↩
Lagoze, Carl (2008-03-31). "RDF Meta Model and Schema" (PDF). Cornell University. Archived from the original (PDF) on 2019-07-12. Retrieved 2021-04-24. https://web.archive.org/web/20190712125926/http://www.cs.cornell.edu/courses/cs431/2008sp/Lectures/public/lecture_03_31_08.pdf ↩
Brickley, Dan; Miller, Libby, eds. (2014-01-14). "FOAF Vocabulary Specification 0.99". xmlns.com. The FOAF Project. Retrieved 2021-04-23. http://xmlns.com/foaf/spec/ ↩
DuCharme, Bob (2011). Learning SPARQL. Sebastopol, California, United States: O'Reilly Media. p. 36. ISBN 9781449306595. 9781449306595 ↩
Schreiber, Guus; Raimond, Yves; Manola, Frank; Miller, Eric; McBride, Brian, eds. (2014-06-24). "RDF 1.1 Primer". W3C. Working Group Note. RDF Working Group. Retrieved 2021-04-23. https://www.w3.org/TR/rdf11-primer/ ↩
https://www.w3.org/TR/rdf12-semantics/#rdfs_entailment. {{cite web}}: Missing or empty |title= (help) https://www.w3.org/TR/rdf12-semantics/#rdfs_entailment ↩
Dublin Core Metadata Initiative (20 January 2020). "DCMI: DCMI Metadata expressed in RDF Schema Language". dublincore.org (published 2000). Retrieved 2021-04-23. http://dublincore.org/schemas/rdfs/ ↩
Schema.org (n.d.). "Schema.org core schema". schema.org. Archived from the original on 2020-05-10. Retrieved 2021-04-24. /wiki/Schema.org ↩
Wallis, Richard (2020-07-17). "Informatively redirect accesses to retired file schema_org_rdfa.html · Issue #2656 · schemaorg/schemaorg". GitHub. Retrieved 2021-04-24. https://github.com/schemaorg/schemaorg/issues/2656 ↩
Miles, Alistair; Bechhofer, Sean (2009-08-18). "SKOS XL Vocabulary". Archived from the original on 2020-02-27. Retrieved 2021-04-24. https://web.archive.org/web/20200227152630/https://www.w3.org/2009/08/skos-reference/skos-xl.rdf ↩
Library of Congress; et al. (MADS/XML community, MODS Editorial Committee) (n.d.). "MADS/RDF Primer". Library of Congress. Retrieved 2021-04-24. /wiki/Library_of_Congress ↩
UniProt (n.d.). "UniProt RDF schema ontology". UniProt. Retrieved 2021-04-24. /wiki/UniProt ↩