Resource Description Framework

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

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

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 substituïda el 2004 per un conjunt de sis especificacions que, alhora, foren substituïdes 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

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: <Casa_Batlló>

i llavors la terna completa seria:

<https://www.wikidata.org/wiki/Q25328> <https://www.wikidata.org/wiki/Property:P800> <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> <[enllaç sense format] https://www.wikidata.org/wiki/Property:P569> "1852-06-25"^^<{{format ref}} http://www.w3.org/2001/XMLSchema#date>

definiria que Gaudí va néixer el 25 de juny de 1852, on <{{format ref}} 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

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 correspon 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> <[enllaç sense format] http://schema.org/Person>

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

Serialització de dades RDF modifica

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

  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. Arxivat de l'original el 16 de juny 2011. [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