Resource Description Framework

De Viquipèdia
Dreceres ràpides: navegació, cerca

El Resource Description Framework (RDF) és un model conceptual de dades[1] estandarditzat pel World Wide Web Consortium (W3C), usat per definir dades en el web semàntic i, en general, en les aplicacions que requereixen un estàndard per intercanviar dades.

RDF fou adoptat pel W3C el 1999, La versió RDF 1.0 fou publicada el 2004, i la versió RDF 1.1 el 2014.[2]

Visió general[modifica | modifica el codi]

RDF és similar a altres models conceptuals com ara l'ER (entitat-relació) o els diagrames de classe UML. L'estructura bàsica de RDF és la declaració, que consisteix en l'afirmació que un subjecte té una relació amb un objecte. El subjecte i l'objecte s'anomenen genèricament recursos, i poden ser qualsevol cosa, com ara objectes físics, documents, pàgines web, conceptes abstractes, dates, números o cadenes.[3] Una declaració té l'estructura següent:

<subjecte> <predicat> <objecte>

El subjecte i l'objecte són els dos recursos que es relacionen, i el predicat representa la relació entre els dos recursos. En RDF la relació s'anomena predicat. El nom del predicat s'escriu de manera que si la declaració es llegeix d'esquerra a dreta el resultat sigui una oració declarativa. Com que les declaracions consten de tres elements s'anomenen ternes. Exemples:

<Gaudí> <és una> <persona>.

<Gaudí> <té el nom> <Antoni Gaudí i Cornet>

<Gaudí> <va dissenyar> <Casa Batlló>

Exemple de graf RDF

<Gaudí> <neix el> <25 de juny de 1852> 

<Gaudí> <mor a> <Barcelona>

La primera terna indica que el recurs referenciat per Gaudí és una persona; la segona, que el nom d'aquest recurs és Antoni Gaudí i Cornet; i així successivament.

Les declaracions de RDF es poden representar d'una manera similar a com indiquen els exemples anteriors, però també d'altres maneres, anomenades formats de serialització de RDF, que també estan estandarditzats pel W3C.[4]

Un conjunt de ternes constitueixen un graf RDF. Aquest graf és dirigit, d'arestes etiquetades i multigraf.

Història[modifica | modifica el codi]

El disseny inicial del RDF, que intentava "construir un sistema de metadades independent del fabricant i del sistema operatiu",[5] provenia la Platform for Internet Content Selection (PICS) del W3C, un sistema inicial d'etiquetatge del contingut de les pàgines web.[6] Varen influir-hi també idees del Dublin Core i del Meta Content Framework (MCF)[5] que foren desenvolupats durant 1995-1997 per Ramanathan V. Guha d'Apple i Tim Bray de Netscape.[7]

El primer esborrany públic del RDF aparegué l'octubre del 1997, fet per un grup de treball del W3C que incloia representants d'IBM, Microsoft, Netscape, Nokia, Reuters, SoftQuad, i la Universitat de Michigan.[6]

El W3C va publicar el febrer del 1999 com a recomanació l'especificació del model de dades del RDF i una serialització XML.[1]

La recomanació del 1999 fou substituida el 2004 per un conjunt de sis especificacions que, alhora, foren substituides el 2014 per les sis especificacions vigents actualment: "RDF 1.1 Primer","[4]RDF 1.1 Concepts and Abstract Syntax""[3]RDF 1.1 XML Syntax","[8]RDF 1.1 Semantics","[9]RDF Schema 1.1"[10] i "RDF 1.1 Test Cases".[11]

Identificació de recursos i predicats[modifica | modifica el codi]

En general, els recursos i el predicat d'una terna s'identifiquen mitjançant Identificadors internacionals de recursos (en anglès International Resource Identifier, IRI).[3] Per exemple, en la terna <Gaudí> <va dissenyar> <Casa Batlló>, els identificadors podrien ser:

Subjecte: <https://www.wikidata.org/wiki/Q25328>

Predicat: <https://www.wikidata.org/wiki/Property:P800>

Objecte: <https://ca.wikipedia.org/wiki/Casa_Batlló>

i llavors la terna completa seria:

<https://www.wikidata.org/wiki/Q25328> <https://www.wikidata.org/wiki/Property:P800> <https://ca.wikipedia.org/wiki/Casa_Batlló>

L'objecte d'una terna també pot ser un literal. Exemples de literals poden ser la cadena "Antoni Gaudí i Cornet", la data "25 de juny de 1852" o el número "3.141596". Els literals s'associen a un tipus de dades que permet interpretar-los correctament. Per exemple, la terna:

<https://www.wikidata.org/wiki/Q25328> <https://www.wikidata.org/wiki/Property:P569> "1852-06-25"^^<http://www.w3.org/2001/XMLSchema#date>

definiria que Gaudí va néixer el 25 de juny de 1852, on <http://www.w3.org/2001/XMLSchema#date>és l'dentificador del tipus de dades de "1852-06-25" (una data en aquest cas).

Finalment, els subjectes i els objectes poden ser recursos sense identificador (ni literal en el cas dels objectes). En aquest cas, s'anomenen nodes en blanc (blank nodes en anglès). Els nodes en blanc són útils quan es vol afirmar quelcom sobre un recurs sense IRI. Per exemple, es volen afirmar les tres ternes següents on el subjecte és un node en blanc: (1) hi ha una persona; (2) aquesta persona té 30 anys; i (3) aquesta persona viu a Manresa. Els predicats han de tenir sempre un IRI.[12]

Vocabularis RDF[modifica | modifica el codi]

Un vocabulari RDF és un conjunt d'IRIs per a ser usats en els grafs RDF. Els IRIs d'un mateix vocabulari sovint comencen amb una mateixa subcadena de caràcters, que s'anomena espai de noms IRI. Alguns d'aquests espais de noms tenen un nom curt que s'anomena prefix de l'espai de noms.[3][13]

RDF té un vocabulari propi anomenat el vocabulari RDF. El seu espai de noms és http://www.w3.org/1999/02/22-rdf-syntax-ns# i el seu prefix és rdf. El terme més important d'aquest vocabulari és rdf:type que correpon a l'IRI http://www.w3.org/1999/02/22-rdf-syntax-ns#type, Aquest terme s'usa com a predicat en les ternes, per indicar el tipus del subjecte. Per exemple, la terna:

<https://www.wikidata.org/wiki/Q25328> <rdf:type> <http://schema.org/Person>

definiria que el subjecte amb IRI https://www.wikidata.org/wiki/Q25328 (Gaudí) és del tipus amb IRI http://schema.org/Person (Persona).

Serialització de dades RDF[modifica | modifica el codi]

W3C ha especificat diversos estàndards de serialització de dades RDF.[4][12] Els més importants són:

  • RDF/XML,[8] que proporciona una sintaxis XML per a definir grafs RDF. Fou el primer estàndard de serialització proposat.
  • N-Triples,[14] que representa les ternes mitjançant línies simples de text.
  • Turtle,[15] una extensió de l'anterior que inclou construccions sintàctiques que permeten definicions més compactes i més legibles.
  • TriG,[16] una extensió de l'anterior que permet la definició de múltiples grafs en un sol fitxer.
  • N-Quads,[17] una extensió simple de N-Triples que permet un quart element a una terna, indicant el nom del graf.
  • JSON-LD,[18] que està basada en JSON.

Referències[modifica | modifica el codi]

  1. 1,0 1,1 «Resource Description Framework (RDF) Model and Syntax Specification» (en anglès). Ora Lassila, Ralph R. Swick, 22-02-1999. [Consulta: 31 març 2017].
  2. «RDF Current Status - W3C» (en anglès). [Consulta: 30 març 2017].
  3. 3,0 3,1 3,2 3,3 «RDF 1.1 Concepts and Abstract Syntax» (en anglès), 25-02-2014. [Consulta: 30 març 2017].
  4. 4,0 4,1 4,2 «RDF 1.1 Primer» (en anglès), 24-06-2014. [Consulta: 30 març 2017].
  5. 5,0 5,1 «World Wide Web Consortium Publishes Public Draft of Resource Description Framework (RDF)» (en anglès). W3C, 06-10-1997. [Consulta: 31 març 2017].
  6. 6,0 6,1 «W3C takes first step toward RDF spec» (en anglès). Alex Lash, CNET News, 03-10-1997. [Consulta: 31 març 2017].
  7. Hammersley, Ben. Developing Feeds with RSS and Atom (en anglès). O’Reilly, 2005, p. 2-3. ISBN 0-596-00881-3. 
  8. 8,0 8,1 «RDF 1.1 XML Syntax» (en anglès), 25-02-2014. [Consulta: 31 març 2017].
  9. «RDF 1.1 Semantics» (en anglès). W3C, 25-02-2014. [Consulta: 31 març 2017].
  10. «RDF Schema 1.1» (en anglès). W3C, 25-02-2014. [Consulta: 31 març 2017].
  11. «RDF 1.1 Test Cases» (en anglès). W3C, 25-02-2014. [Consulta: 31 març 2017].
  12. 12,0 12,1 Yu, Liyang. A developer's guide to the semantic web (en anglès). Second edition. Springer, 2015, p. 23-95. 
  13. Allemang, Dean; Hendler, Jim. Semantic web for the working ontologist. Effective modeling in RDFS and OWL (en anglès). Second edition. Morgan Kaufmann, 2011. 
  14. «RDF 1.1 N-Triples» (en anglès), 25-02-2014. [Consulta: 31 març 2017].
  15. «Terse RDF Triple Language» (en anglès), 25-02-2014. [Consulta: 31 març 2017].
  16. «RDF 1.1 TriG» (en anglès), 25-02-2014. [Consulta: 31 març 2017].
  17. «RDF 1.1 N-Quads. A line-based syntax for RDF datasets» (en anglès), 25-02-2014. [Consulta: 31 març 2017].
  18. «JSON-LD 1.0, A JSON-based Serialization for Linked Data» (en anglès), 16-01-2014. [Consulta: 31 març 2017].

Enllaços externs[modifica | modifica el codi]