RDF Schema

From HandWiki
Short description: Schema for knowledge representation
RDF Schema
Resource Description Framework Schema
StatusW3C Recommendation
First publishedApril 30, 2002; 22 years ago (2002-04-30)[1]
Latest version1.1 (Recommendation)
February 25, 2014; 10 years ago (2014-02-25)[2]
Organization
Editors
  • Dan Brickley
  • Ramanathan V. Guha
  • Andrew Layman (former editor)[3]
Base standardsRDF
Related standards
Domain
AbbreviationRDFS
Websitewww.w3.org/TR/rdf-schema/

RDF Schema (Resource Description Framework Schema, variously abbreviated as RDFS, RDF(S), RDF-S, or RDF/S) is a set of classes with certain properties using the RDF extensible knowledge representation data model, providing basic elements for the description of ontologies. It uses various forms of RDF vocabularies, intended to structure RDF resources. RDF and RDFS can be saved in a triplestore, then one can extract some knowledge from them using a query language, like SPARQL.

The first version[3][4] was published by the World-Wide Web Consortium (W3C) in April 1998, and the final W3C recommendation was released in February 2014.[2] Many RDFS components are included in the more expressive Web Ontology Language (OWL).

Terminology

RDFS constructs are the RDFS classes, associated properties and utility properties built on the vocabulary of RDF.[5][6][7]

Classes

rdfs:Resource
Represents the class of everything. All things described by RDF are resources.
rdfs:Class
An rdfs:Class declares a resource as a class for other resources.

A typical example of an rdfs:Class is foaf:Person in the Friend of a Friend (FOAF) vocabulary.[8] 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'.

ex:John       rdf:type        foaf:Person

The definition of rdfs:Class is recursive: rdfs:Class is the class of classes, and so it is an instance of itself.

rdfs:Class    rdf:type        rdfs:Class

The other classes described by the RDF and RDFS specifications are:

rdfs:Literal
literal values such as strings and integers. Property values such as textual strings are examples of RDF literals. Literals may be plain or typed.
rdfs:Datatype
the class of datatypes. rdfs:Datatype is both an instance of and a subclass of rdfs:Class. Each instance of rdfs:Datatype is a subclass of rdfs:Literal.
rdf:XMLLiteral
the class of XML literal values. rdf:XMLLiteral is an instance of rdfs:Datatype (and thus a subclass of rdfs:Literal).
rdf:Property
the class of properties.

Properties

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).

rdfs:domain
the rdfs:domain of an rdf:Property declares the class of the subject in a triple whose predicate is that property.
rdfs:range
the rdfs:range of an rdf:Property declares the class or datatype of the object in a triple whose predicate is that property.

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:

ex:employer	  rdfs:domain  	  foaf:Person
ex:employer	  rdfs:range	  foaf:Organization

Given the previous two declarations, from the triple:

ex:John		  ex:employer	  ex:CompanyX

can be inferred (resp. follows) that ex:John is a foaf:Person, and ex:CompanyX is a foaf:Organization.

rdf:type
a property used to state that a resource is an instance of a class. A commonly accepted QName for this property is "a".[9]
rdfs:subClassOf
allows declaration of hierarchies of classes.[10]

For example, the following declares that 'Every Person is an Agent':

foaf:Person	  rdfs:subClassOf	  foaf:Agent

Hierarchies of classes support inheritance of a property domain and range (see definitions in the next section) from a class to its subclasses.

rdfs:subPropertyOf
an instance of rdf:Property that is used to state that all resources related by one property are also related by another.
rdfs:label
an instance of rdf:Property that may be used to provide a human-readable version of a resource's name.
rdfs:comment
an instance of rdf:Property that may be used to provide a human-readable description of a resource.

Utility properties

rdfs:seeAlso
an instance of rdf:Property that is used to indicate a resource that might provide additional information about the subject resource.
rdfs:isDefinedBy
an instance of rdf:Property that is used to indicate a resource defining the subject resource. This property may be used to indicate an RDF vocabulary in which a resource is described.

RDFS entailment

An entailment regime defines, by using RDFS (or OWL, etc.), not only which entailment relation is used, but also which queries and graphs are well-formed for the regime. The RDFS entailment is a standard entailment relation in the semantic web.[11]

For example, the following declares that 'Dog1 is an animal', 'Cat1 is a cat', 'zoos host animals' and 'Zoo1 hosts the Cat2':

ex:dog1		rdf:type		ex:animal
ex:cat1		rdf:type		ex:cat
zoo:host	rdfs:range		ex:animal
ex:zoo1		zoo:host		ex:cat2

The graph is not well-formed because the system can not guess that a cat is an animal. To make a well-formed graph, the statement 'Cats are animals' can be added:

ex:cat		rdfs:subClassOf		ex:animal

Here is a correct example:

In English The graph
  • Dog1 is an animal
  • Cat1 is a cat
  • Cats are animals
  • Zoos host animals
  • Zoo1 hosts the Cat2
Regime entailment basic
RDF/turtle
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex:   <http://example.org/> .
@prefix zoo:   <http://example.org/zoo/> .
ex:dog1	   rdf:type	    ex:animal .
ex:cat1	   rdf:type	    ex:cat .
ex:cat	   rdfs:subClassOf  ex:animal .
zoo:host   rdfs:range	    ex:animal .
ex:zoo1	   zoo:host	    ex:cat2 .

If the triplestore (or RDF database) implements the regime entailment of RDF and RDFS, the SPARQL query as follows (the keyword "a" is equivalent to rdf:type in SPARQL):

PREFIX  ex: <http://example.org/>
SELECT ?animal
WHERE
  { ?animal a ex:animal . }

The following gives the result with cat1 in it, because the Cat's type inherits of Animal's type. Also cat2 is in results, because it could be inferred that cat2 is an animal from the sentence 'Zoos host animals'.

animal
<http://example.org/dog1>
<http://example.org/cat1>
<http://example.org/cat2>

Examples of RDF vocabularies

RDF vocabularies represented in RDFS include:[10]

  • FOAF: the source of the FOAF Vocabulary Specification is RDFS written in the RDFa syntax.[8]
  • Dublin Core: RDFS source is available in several syntaxes[12]
  • Schema.org: the source of their schema was originally RDFS written in the RDFa syntax until July 2020.[13][14]
  • Simple Knowledge Organization System (SKOS) developed the RDF schema titled as SKOS XL Vocabulary, which is an OWL ontology for the SKOS vocabulary that uses the OWL RDF/XML syntax, and hence makes use of a number of classes and properties from RDFS.[15]
  • The Library of Congress defines an RDF schema titled Metadata Authority Description Schema in RDF, or MADS/RDF for short. From the abstract, it is intended for use within their library and "information science (LIS) community". It allows for annotating special relational data, such as if an individual within a family is well-known via madsrdf:prominentFamilyMember.[16]
  • The UniProt database has an RDF schema for describing biochemical data, and is specialized towards describing proteins.[17]

See also

References

  1. Cite error: Invalid <ref> tag; no text was provided for refs named rdf-spec-history
  2. 2.0 2.1 "RDF Schema 1.1". RDF Working Group. 2014-02-25. https://www.w3.org/TR/rdf-schema/. 
  3. 3.0 3.1 Cite error: Invalid <ref> tag; no text was provided for refs named rdf-spec-19980409
  4. Bikakis N.; Tsinaraki C.; Gioldasis N. et al., eds (2012-03-21). "XML and Semantic Web W3C Standards Timeline-History". http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf. 
  5. "Chapter 3: RDF Schema". UMBC's Department of Computer Science and Electrical Engineering. 2017. https://www.csee.umbc.edu/courses/graduate/691/fall17/01/notes/05_rdfs/05rdfs.pdf. 
  6. "XML: Looking at the Forest Instead of the Trees § 7.1. Triples in RDF/XML". 2002. https://www.iro.umontreal.ca/~lapalme/ForestInsteadOfTheTrees/HTML/ch07s01.html. 
  7. "RDF Meta Model and Schema". 2008-03-31. http://www.cs.cornell.edu/courses/cs431/2008sp/Lectures/public/lecture_03_31_08.pdf. 
  8. 8.0 8.1 "FOAF Vocabulary Specification 0.99". The FOAF Project. 2014-01-14. http://xmlns.com/foaf/spec/. 
  9. DuCharme, Bob (2011). Learning SPARQL. Sebastopol, California, United States: O'Reilly Media. p. 36. ISBN 9781449306595. 
  10. 10.0 10.1 "RDF 1.1 Primer". RDF Working Group. 2014-06-24. https://www.w3.org/TR/rdf11-primer/. 
  11. "RDF Semantics § 4.4 RDFS Entailment". RDF Core Working Group. 2004-02-10. https://www.w3.org/TR/rdf-mt/#rdfs_entailment. 
  12. Dublin Core Metadata Initiative (20 January 2020). "DCMI: DCMI Metadata expressed in RDF Schema Language". http://dublincore.org/schemas/rdfs/. 
  13. Schema.org (n.d.). "Schema.org core schema". https://schema.org/docs/schema_org_rdfa.html. 
  14. "Informatively redirect accesses to retired file schema_org_rdfa.html · Issue #2656 · schemaorg/schemaorg". 2020-07-17. https://github.com/schemaorg/schemaorg/issues/2656. 
  15. "SKOS XL Vocabulary". 2009-08-18. https://www.w3.org/2009/08/skos-reference/skos-xl.rdf. 
  16. Library of Congress (n.d.). "MADS/RDF Primer". https://www.loc.gov/standards/mads/rdf/. 
  17. UniProt (n.d.). "UniProt RDF schema ontology". https://www.uniprot.org/core/. 

External links