Resource Description Framework


Resource Description Framework

Infobox file format
name = Resource Description Framework
icon =
logo =
extension = .rdf
mime = application/rdf+xml
type code =
uniform type =
magic =
owner = [http://www.w3.org/ World Wide Web Consortium]
genre = semantic web
container for = FOAF, DOAP, SKOS, ...
extended from =
extended to =
standard = [http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ Recommendation]

The Resource Description Framework (RDF) is a family of World Wide Web Consortium (W3C) specifications, originally designed as a metadata data model, which has come to be used as a general method of modeling information through a variety of syntax formats.

Overview

The RDF data model is based upon the idea of making statements about Web resources in the form of subject-predicate-object expressions, called "triples" in RDF terminology. The subject denotes the resource, and the predicate denotes traits or aspects of the resource and expresses a relationship between the subject and the object. For example, one way to represent the notion "The sky has the color blue" in RDF is as the triple: a subject denoting "the sky", a predicate denoting "has the color", and an object denoting "blue". RDF is an abstract model with several serialization formats (i.e., file formats), and so the particular way in which a resource or triple is encoded varies from format to format.

This mechanism for describing resources is a major component in what is proposed by the W3C's Semantic Web activity: an evolutionary stage of the World Wide Web in which automated software can store, exchange, and use machine-readable information distributed throughout the Web, in turn enabling users to deal with the information with greater efficiency and certainty. RDF's simple data model and ability to model disparate, abstract concepts has also led to its increasing use in knowledge management applications unrelated to Semantic Web activity.

A collection of RDF statements intrinsically represents a labeled, directed multi-graph. As such, an RDF-based data model is more naturally suited to certain kinds of knowledge representation than the relational model and other ontological models traditionally used in computing today. However, in practice, RDF data is often persisted in relational database or native representations also called Triple stores, or Quad stores if context (i.e. the named graph) is also persisted for each RDF triple. [ [http://sw.deri.org/2005/02/dexa/yars.pdf Optimized Index Structures for Querying RDF from the Web] Andreas Harth, Stefan Decker, 3rd Latin American Web Congress, Buenos Aires, Argentina, October 31 to November 2, 2005, pp. 71-80] As RDFS and OWL demonstrate, additional ontology languages can be built upon RDF.

History

There were several ancestors to the W3C's RDF. Technically the closest was MCF, a project initiated by Ramanathan V. Guha while at Apple Computer and continued, with contributions from Tim Bray, during his tenure at Netscape Communications Corporation. Ideas from the Dublin Core community, and from PICS, the Platform for Internet Content Selection (the W3C's early Web content labelling system) were also key in shaping the direction of the RDF project.

The W3C published a specification of RDF's data model and XML syntax as a Recommendation in 1999. [ [http://www.w3.org/TR/rdf-syntax-grammar/ W3C 1999 specification] ] Work then began on a new version that was published as a set of related specifications in 2004. While there are a few implementations based on the 1999 Recommendation that have yet to be completely updated, adoption of the improved specifications has been rapid since they were developed in full public view, unlike some earlier technologies of the W3C. Most newcomers to RDF are unaware that the older specifications even exist.

RDF Topics

Serialization formats

Two common serialization formats are in use.

The first is an XML format. This format is often called simply RDF because it was introduced among the other W3C specifications defining RDF. However, it is important to distinguish the XML format from the abstract RDF model itself. Its MIME media type, application/rdf+xml, was registered by RFC 3870. It recommends RDF documents to follow the new 2004 specifications.

In addition to serializing RDF as XML, the W3C introduced Notation 3 (or N3) as a non-XML serialization of RDF models designed to be easier to write by hand, and in some cases easier to follow. Because it is based on a tabular notation, it makes the underlying triples encoded in the documents more easily recognizable compared to the XML serialization. N3 is closely related to the Turtle and N-Triples formats.

Triples may be stored in a triplestore.

Resource identification

The subject of an RDF statement is a resource, possibly as named by a Uniform Resource Identifier (URI). Some resources are unnamed and are called blank nodes or anonymous resources. They are not directly identifiable. The predicate is a resource as well, representing a relationship. The object is a resource or a Unicode string literal.

In Semantic Web applications, and in relatively popular applications of RDF like RSS and FOAF (Friend of a Friend), resources tend to be represented by URIs that intentionally denote actual, accessible data on the World Wide Web. But RDF, in general, is not limited to the description of Internet-based resources. In fact, the URI that names a resource does not have to be dereferenceable at all. For example, a URI that begins with "http:" and is used as the subject of an RDF statement does not necessarily have to represent a resource that is accessible via HTTP, nor does it need to represent a tangible, network-accessible resource — such a URI could represent absolutely anything (as a fanciful example, the URI could even represent the abstract notion of world peace).

Therefore, it is necessary for producers and consumers of RDF statements to be in agreement on the semantics of resource identifiers. Such agreement is not inherent to RDF itself, although there are some controlled vocabularies in common use, such as Dublin Core Metadata, which is partially mapped to a URI space for use in RDF.

Statement reification and context

The body of knowledge modeled by a collection of statements may be subjected to reification, in which each "statement" (that is each triple "subject-predicate-object" altogether) is assigned a URI and treated as a resource about which additional statements can be made, as in "Jane says that" John is the author of document X". Reification is sometimes important in order to deduce a level of confidence or degree of usefulness for each statement.

In a reified RDF database, each original statement, being a resource, itself, most likely has at least three additional statements made about it: one to assert that its subject is some resource, one to assert that its predicate is some resource, and one to assert that its object is some resource or literal. More statements about the original statement may also exist, depending on the application's needs.

Borrowing from concepts available in logic (and as illustrated in graphical notations such as conceptual graphs and topic maps), some RDF model implementations acknowledge that it is sometimes useful to group statements according to different criteria, called "situations", "contexts", or "scopes", as discussed in articles by RDF specification co-editor Graham Klyne [http://www.ninebynine.org/RDFNotes/RDFContexts.html] [http://www.ninebynine.org/RDFNotes/UsingContextsWithRDF.html] . For example, a statement can be associated with a context, named by a URI, in order to assert an "is true in" relationship. As another example, it is sometimes convenient to group statements by their source, which can be identified by a URI, such as the URI of a particular RDF/XML document. Then, when updates are made to the source, corresponding statements can be changed in the model, as well.

Implementation of scopes does not necessarily require fully reified statements. Some implementations allow a single scope identifier to be associated with a statement that has not been assigned a URI, itself [http://uche.ogbuji.net/tech/akara/nodes/2003-01-01/scopes] [http://librdf.org/notes/contexts.html] . Likewise "named graphs" in which a set of triples is named by a URI can represent context without the need to reify the triples [ [http://www.w3.org/2004/03/trix/ Named Graphs] ]

In first-order logic, as facilitated by RDF without scopes, the only metalevel relation is negation, but the ability to generally state propositions about nested contexts allows RDF to comprise a metalanguage that can be used to define modal and higher-order logic.

Query and inference languages

The predominant query language for RDF graphs is SPARQL. SPARQL is an SQL-like language, and a recommendation of the W3C as of January 15, 2008.

An example of a SPARQL query to show country capitals in Africa, using a fictional ontology.

PREFIX abc: .SELECT ?capital ?countryWHERE { ?x abc:cityname ?capital ; abc:isCapitalOf ?y. ?y abc:countryname ?country ; abc:isInContinent abc:Africa.}

Other ways to query RDF graphs include:
* RDQL, precursor to SPARQL, SQL-like
* Versa, compact syntax (non–SQL-like), solely implemented in 4Suite (Python)
* RQL, one the first declarative languages for uniformly querying RDF schemas and resource descriptions, implemented in RDFSuite.
* XUL has a [http://developer.mozilla.org/en/docs/XUL:Template_Guide:Introduction template] element in which to declare rules for matching data in RDF. XUL uses RDF extensively for databinding.

Examples

Example 1: The postal abbreviation for New York

Certain concepts in RDF are taken from logic and linguistics, where subject-predicate and subject-predicate-object structures have meanings similar to, yet distinct from, the uses of those terms in RDF. This example demonstrates:

In the English language statement " 'New York has the postal abbreviation NY' "," 'New York' " would be the subject, " 'has the postal abbreviation' " the predicate and " 'NY' " the object.

Encoded as an RDF triple, the subject and predicate would have to be resources named by URIs. The object could be a resource or literal element. For example, in the Notation 3 form of RDF, the statement might look like:

"NY" .

In this example, "urn:states:New%20York" is the URI for a resource that denotes the U.S. state New York, "http://purl.org/dc/terms/alternative" is the URI for a predicate (whose human-readable definition can be found at [http://dublincore.org/documents/library-application-profile/index.shtml#Alternative here] ), and "NY" is a literal string. Note that the URIs chosen here are not standard, and don't need to be, as long as their meaning is known to whatever is reading them.

N-Triples is just one of several standard serialization formats for RDF. The triple above can also be equivalently represented in the standard RDF/XML format as:

NY

However, because of the restrictions on the syntax of QNames (such as terms:alternative above), there are some RDF graphs that are not representable with RDF/XML.

Example 2: A Wikipedia article about Tony Benn

In a like manner, given that "http://en.wikipedia.org/wiki/Tony_Benn" identifies a particular resource (regardless of whether that URI could be traversed as a hyperlink, or whether the resource is "actually" the Wikipedia article about Tony Benn), to say that the title of this resource is "Tony Benn" and its publisher is "Wikipedia" would be two assertions that could be expressed as valid RDF statements. In the N-Triples form of RDF, these statements might look like the following:

"Tony Benn" . "Wikipedia" .

And these statements might be expressed in RDF/XML as:

Tony Benn Wikipedia

To an English-speaking person, the same information could be represented simply as:

The title of this resource, which is published by Wikipedia, is 'Tony Benn'
However, RDF puts the information in a formal way that a machine can understand. The purpose of RDF is to provide an encoding and interpretation mechanism so that resources can be described in a way that particular software can understand it; in other words, so that software can access and use information that it otherwise couldn't use.

Both versions of the statements above are wordy because one requirement for an RDF resource (as a subject or a predicate) is that it be unique. The subject resource must be unique in an attempt to pinpoint the exact resource being described. The predicate needs to be unique in order to reduce the chance that the idea of Title or Publisher will be ambiguous to software working with the description. If the software recognizes "http://purl.org/dc/elements/1.1/title" (a specific definition for the concept of a title established by the Dublin Core Metadata Initiative), it will also know that this title is different from a land title or an honorary title or just the letters t-i-t-l-e put together.

The following example shows how such simple claims can be elaborated on, by combining multiple RDF vocabularies. Here, we note that the primary topic of the Wikipedia page is a "Person" whose name is "Tony Benn":

Tony Benn Wikipedia Tony Benn

Applications

* Creative Commons - Uses RDF to embed license information in web pages and mp3 files.
* DOAC (Description of a Career) - supplements FOAF to allow the sharing of résumé information.
* FOAF (Friend of a Friend) - designed to describe people, their interests and interconnections.
* Haystack client - Semantic web browser from MIT CS & AI lab. See [http://groups.csail.mit.edu/haystack/home.html]
* IDEAS Group - developing a formal 4D Ontology for Enterprise Architecture using RDF as the encoding - [http://www.ideasgroup.org The IDEAS Group Website]
* Microsoft shipped a product, Connected Services Framework [ [http://www.microsoft.com/serviceproviders/solutions/connectedservicesframework.mspx Connected Services Framework] ] ,which provides an RDF based Profile Management capabilities.
* MusicBrainz - Publishes information about Music Albums. See [http://wiki.musicbrainz.org/RDF] .
* NEPOMUK, an open-source software specification for a Social Semantic desktop uses RDF as a storage format for collected metadata. NEPOMUK is mostly known because of its integration into the KDE4 desktop environment.
* RDF Site Summary - one of several "RSS" languages for publishing information about updates made to a web page; it is often used for disseminating news article summaries and sharing weblog content.
* SIOC (Semantically-Interlinked Online Communities) - designed to describe online communities and to create connections between Internet-based discussions from message boards, weblogs and mailing lists. [ [http://sioc-project.org/ SIOC (Semantically-Interlinked Online Communities)] ]
* Many other RDF schemas are available by searching SchemaWeb [ [http://www.schemaweb.info SchemaWeb] ]

Criticism of RDF

RDF has been criticised in 2001 on the following grounds: [ [http://bochica.udea.edu.co/~jfduitam/WebEngineering/RDF/paper/slides-rdfs-overview.pdf RDF and RDF Schema: An Overview] , p 27]
* The XML syntax for RDF is too verbose.
* The triple (subject, predicate, object) notation simplicity introduces reading and computation disadvantages.
* RDF's ability to reify statements allows for ambiguities.

See also

;Notations for RDF
* N3 - A non-XML serialization of RDF models
* RDFa
* Turtle - Terse RDF Triple Language; Ontology/vocabulary languages
* OWL
* RDF schema;Similar concepts
* Entity-attribute-value model
* Graph theory - An RDF model is a directed labeled graph
* Website Parse Template
* Tagging
* Topic maps - Topic Maps is in some ways, similar to RDF.; Other (unsorted):
*Associative model of data
*Business Intelligence 2.0 (BI 2.0)
*DataPortability
*Folksonomy
*GRDDL
*Life Science Identifiers
*Meta Content Framework
*Semantic Web
*Swoogle
*Universal Networking Language (UNL)

References

Further reading

* [http://www.w3.org/RDF/ W3C's RDF at W3C] : specifications, guides, and resources
* [http://www.w3.org/TR/2004/REC-rdf-mt-20040210/ RDF Semantics] : specification of semantics, and complete systems of inference rules for both RDF and RDFS

;Tutorials and documents
* [http://rdfabout.com/quickintro.xpd Quick Intro to RDF]
* [http://rdfabout.com/intro/ RDF in Depth]
* [http://www.xulplanet.com/tutorials/mozsdk/rdfstart.php Introduction to the RDF Model]
* [http://www.xml.com/pub/a/2001/01/24/rdf.html What is RDF?]
* [http://www-128.ibm.com/developerworks/library/w-rdf/ An introduction to RDF]
* [http://www.xul.fr/en-xml-rdf.html RDF and XUL] , with examples.

External links

;News and resources
* [http://planetrdf.com/guide/ Dave Beckett's RDF Resource Guide]
* [http://www.xul.fr/en-xml-rdf.html Resource Description Framework: According to W3C specifications and Mozilla's documentation]
* [http://xulplanet.com/tutorials/mozsdk/rdfsources.php RDF Datasources] : RDF datasources in Mozilla

;RDF software tools
* [http://esw.w3.org/topic/SemanticWebTools Listing of RDF and OWL tools at W3C wiki]
* [http://projects.semwebcentral.org/ SemWebCentral] Open Source semantic web tools
* [http://www.xml.com/pub/rg/RDF_Software Listing of RDF software at xml.com]
* [http://rhodonite.angelite.nl Rhodonite] : freeware RDF editor and RDF browser with a drag-and-drop interface
* [http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/ D2R Server] : tool to publish relational databases as an RDF-graph
* Virtuoso Universal Server: a SPARQL compliant platform for RDF data management, SQL-RDF integration, and RDF based Linked Data deployment
* [http://rowlex.nc3a.nato.int ROWLEX] : .NET library and toolkit built to create and browse RDF documents easily. It abstracts away the level of RDF triples and elevates the level of the programming work to (OWL) classes and properties.

;RDF datasources
* [http://labs.systemone.at/wikipedia3 Wikipedia3] : System One's RDF conversion of the English Wikipedia, updated monthly
* DBpedia: a [http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData Linking Open Data Community Project] that exposes an every increasing collection of RDF based Linked Data sources


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Resource Description Framework — (RDF) Desarrollador World Wide Web Consortium Información general Extensión de archivo .rdf Tipo …   Wikipedia Español

  • Resource Description Framework — (RDF, «среда описания ресурса»[1]) это разработанная консорциумом Всемирной паутины модель для представления данных, в особенности метаданных[2]. RDF представляет утверждения о ресурсах в виде, пригодном для машинной обработки. RDF является… …   Википедия

  • Resource Description Framework — Resource Description Framework,   RDF …   Universal-Lexikon

  • Resource Description Framework — Das Resource Description Framework (RDF, engl. (sinngemäß) „System zur Beschreibung von Ressourcen“) bezeichnet eine Familie von Standards des World Wide Web Consortiums (W3C) zur formalen Beschreibung von Informationen über Objekte, sogenannte… …   Deutsch Wikipedia

  • Resource Description Framework — Pour les articles homonymes, voir RDF. Resource Description Framework Extension .rdf Type MIME application/rdf+xml Développé par World Wide …   Wikipédia en Français

  • Resource Description Framework Schema — Das Resource Description Framework Schema (RDFS) ist wie RDF eine W3C Empfehlung. Ebenso wie XML im konkreten Anwendungsfall die Definition eines speziellen Dokumenttyps benötigt, z. B. als Dokumenttypdefinition (DTD), legt das RDF Modell nur… …   Deutsch Wikipedia

  • Ressource Description Framework — Das Resource Description Framework (RDF, engl. (sinngemäß) „System zur Beschreibung von Ressourcen“) bezeichnet eine Familie von Standards des World Wide Web Consortiums (W3C) zur formalen Beschreibung von Informationen über Objekte, sogenannte… …   Deutsch Wikipedia

  • Resource (Web) — The concept of Resource is primitive in the Web architecture, and is used in the definition of its fundamental elements. The term was first introduced to refer to targets of Uniform Resource Locators (URLs), but its definition has been further… …   Wikipedia

  • Description of a Project — (DOAP) is an RDF schema and XML vocabulary to describe software projects, and in particular open source. It was created and initially developed by Edd Dumbill to convey semantically information associated with open source software projects. It is …   Wikipedia

  • Resource-Record — Ein Resource Record (RR) ist die kleinste Informationseinheit im Domain Name System (DNS). Er tritt in ASCII Darstellung in Zonendateien oder in komprimierter Form in DNS Transport Paketen oder DNS Caches auf. Einige RR Typen – sogenannte Pseudo… …   Deutsch Wikipedia