RDF

From Semantic Web Standards
sw-rdf-blue.png

Resource Description Framework (RDF)

Overview

RDF is a standard model for data interchange on the Web. RDF has features that facilitate data merging even if the underlying schemas differ, and it specifically supports the evolution of schemas over time without requiring all the data consumers to be changed.

RDF extends the linking structure of the Web to use URIs to name the relationship between things as well as the two ends of the link (this is usually referred to as a “triple”). Using this simple model, it allows structured and semi-structured data to be mixed, exposed, and shared across different applications.

This linking structure forms a directed, labeled graph, where the edges represent the named link between two resources, represented by the graph nodes. This graph view is the easiest possible mental model for RDF and is often used in easy-to-understand visual explanations.

Recommended Reading

The RDF 1.1 specification consists of a suite of W3C Recommendations and Working Group Notes, published in 2014. This suite also includes an RDF Primer. See also Tim Berners-Lee’s writings on Web Design Issues, including Metadata Architecture. Other technologies, like OWL or SKOS, build on RDF and provide language for defining structured, Web-based ontologies which enable richer integration and interoperability of data among descriptive communities.

A number of textbooks have been published on RDF and on Semantic Web in general. Please, refer to a separate page listing some of those, as maintained by the community. That list also includes references to conference proceedings and article collections that might be of general interest.

Discussions on a possible next version of RDF

W3C has recently set up a new RDF Working Group, whose charter is to make a minor revision of RDF.

Tools that are listed as relevant to RDF

(Note that you can browse tools per tool categories or programming languages, too.)

Last modified and/or added

The description of the following tools have been added and/or modified most recently.

All relevant tools

This is a list of all tools listed on this wiki, and that are marked as relevant to RDF.

  • 4store (triple store).
  • outdated-ARC RDF Store (triple store). Directly usable from PHP
  • AllegroGraph RDF Store (programming environment, reasoner, triple store, development environment, rdfs reasoner). Directly usable from Java, LISP, Python, Prolog, C, Ruby, Perl
  • Apache Jena (programming environment, reasoner, triple store, rdfs reasoner, rule reasoner, owl reasoner, parser). Directly usable from Java
  • Cowl (programming environment, parser). Directly usable from C, C++
  • Dojo.data (programming environment, triple store). Directly usable from Javascript
  • EasyRdf (programming environment). Directly usable from PHP
  • FOAF-o-matic (rdf generator).
  • FRED (rdf generator, tagging, knowledge graph extractor).
  • Mobi (programming environment, development environment). Directly usable from Java, Javascript
  • Mulgara Semantic Store (triple store). Directly usable from Java
  • OntoStudio (editor, development environment).
  • Ontop (reasoner, rdfs reasoner, owl reasoner, rdf generator, sparql endpoint, rdb2rdf, converter). Directly usable from Java
  • Ontopic Studio (reasoner, rdfs reasoner, owl reasoner, rdf generator, sparql endpoint, rdb2rdf, converter).
  • OpenLink Virtuoso (reasoner, triple store, rdfs reasoner, owl reasoner, rdf generator, sparql endpoint, rdb2rdf). Directly usable from Java, Python, C, Ruby, Perl, PHP, Javascript, C++, ActionScript, Tcl, Obj-C
  • Oracle Spatial and Graph 19c (reasoner, triple store, owl reasoner). Directly usable from Java
  • RDFLib (programming environment, triple store). Directly usable from Python
  • RDFox (reasoner, triple store, rdfs reasoner, rule reasoner, owl reasoner). Directly usable from Java, C++
  • Redland RDF Application Framework (programming environment). Directly usable from Java, Python, C, Ruby, Perl, PHP, Tcl, Obj-C, C-sharp
  • Altova's SemanticWorks (editor, development environment).
  • Sesame (programming environment, reasoner, triple store, rdfs reasoner, parser). Directly usable from Java, Python, PHP
  • Spyder (sparql endpoint, rdb2rdf).
  • Talis Platform (triple store, sparql endpoint).
  • Experiment Design Automation (XDA) (development environment).
  • XMP (ISO 16684) (editor, development environment).