6. Vocabularios y Ontologías

En los capítulos anteriores nos informamos sobre las tecnologías de la Web Semántica, que están relacionadas a la forma en la cual, sintácticamente, los metadatos pueden agregarse a las informaciones. Una parte fundamental para alcanzar el objetivo de conseguir que el significado pretendido por el publicador de los datos sea el mismo que el significado entendido por el consumidor de los mismos, es el uso de vocabularios que posean una semántica bien definida. Un factor que facilita enormemente la consecución de este objetivo es el de utilizar vocabularios de referencia, o vocabularios de uso común. En el presente documento, los términos "vocabulario" y "ontología" son utilizados indistintamente. No existe en la literatura una división clara entre ambos conceptos, apenas podría afirmarse que "vocabulario" es utilizado para ontologías más simples.

Haciendo una analogía con la comunicación cotidiana informal, podemos darnos cuenta de que cada grupo particular de personas utiliza vocabularios específicos en sus conversaciones, en su intercambio de mensajes. Las personas se agrupan por diversas razones: localización geográfica, relación familiar, social, y un sinnúmero de diferentes situaciones y circunstancias. Dos médicos conversando sobre un determinado procedimiento quirúrgico utilizarán términos de un vocabulario específico. De la misma manera, la descripción de los valores nutricionales de un paquete de patatas fritas utiliza su propio vocabulario. Diversos vocabularios han sido creados en las conversaciones de las redes sociales, incluyendo vocabularios gráficos, como los emoticones.

Para que el escenario de la Web Semántica esté completo, es necesario establecer un conjunto de vocabularios de referencia, como modo de facilitar la comunicación de los metadatos. El lector debe entender que, para cada comunicación específica, debe realizarse una búsqueda de vocabularios existentes que puedan ser aplicados. Existen algunos catálogos que pueden ser de ayuda para el usuario en la búsqueda de ontologías, entre ellos el LOV [75], el BioPortal [72] y el JoinUp [76]. En los casos en que ningún vocabulario satisfaga las necesidades de expresión de los metadatos, puede crearse una nueva ontología, observando la posibilidad de reutilizar el mayor número posible de elementos de ontologías ya existentes, evitando de ese modo la duplicación de referencias distintas para los mismos conceptos.

Cada vocabulario está descripto por un documento señalado por una URI. Por ejemplo, puede consultarse el vocabulario FOAF a través de la URI “http://xmlns.com/foaf/0.1/”. La URI que hace referencia a las clases y propiedades de cada uno de los vocabularios está construida a partir de la concatenación de la URI del vocabulario con el nombre de la respectiva clase o propiedad. Por ejemplo, se accede a la propiedad "name" de FOAF a través de la URI “http://xmlns.com/foaf/0.1/name”. En las siguientes secciones presentaremos algunos de los vocabularios de referencia más populares y reconocidos.

6.1 Dublin Core

La Dublin Core Metadata Initiative [77] (DCMI), tuvo su evento de inicio en 1995, y se trata de una de las primeras iniciativas de considerar la definición de un vocabulario para la descripción de metadatos, teniendo como premisas que las descripciones posean independencia en relación a la sintaxis y tenga una semántica bien definida. Es un vocabulario adecuado para la descripción de recursos (documentos), habiendo comenzado como un conjunto básico de 15 propiedades basados en una idea análoga a la de los elementos de catalogación de bibliotecas:

• title – nombre del recurso.

• creator – nombre del creador del recurso.

• subject – tópico del recurso.

• description – descripción del recurso, pudiendo ser un resumen, un sumario, etc.

• publisher – entidad responsable por hacer disponible el recurso.

• contributor – nombre de los colaboradores para la construcción del recurso.

• date – fecha asociada al recurso.

• type – tipo del recurso.

• format – formato de archivo, medio físico de almacenamiento o dimensiones del recurso.

• identifier – una referencia única al recurso dentro de un determinado contexto.

• source – fuente de origen del recurso, como, por ejemplo, el resultado de un trabajo.

• language – lenguaje del recurso.

• relation – relación entre dos recursos.

• coverage – cobertura temporal o espacial del recurso, por ejemplo, una jurisdicción.

• rights – derechos asociados al recurso.

Este vocabulario es utilizado, entre otros fines, para la documentación de páginas de la Web. La figura 6.1 nos muestra un ejemplo de uso del vocabulario, con la utilización del tag de HTML. Las propiedades de Dublin Core están reutilizadas en muchas otras ontologías.

<head>
<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/">
<meta name="DC.title" content="Guia de Web Semântica">
<meta name="DC.creator" content="Carlos Laufer">
<meta name="DC.subject" content="Web Semântica">
<meta name="DC.subject" content="Dados Conectados">
<meta name="DC.description" content="Introdução ao Ecossistema e às Tecnologias de Web Semântica e Dados Conectados">
<meta name="DC.publisher" content="W3C Brasil">
<meta name="DC.date" content="21/01/2015">
</head>
Figura 6.1 – Ejemplo de Uso del Vocabulario Dublin Core

La evolución del proyecto determinó la extensión del vocabulario, creándose así un conjunto mayor de propiedades y de clases [78]. Entre las propiedades que se agregaron, vale mencionar las siguientes: “abstract”, “audience”, “conformsTo”, “hasVersion”, “replaces”, “requires”, etc. Entre las clases creadas, se encuentran éstas: “FileFormat”, “Jurisdiction”, “Location”, “ProvenanceStatem”, “MediaType”, etc.

6.2 FOAF

El vocabulario Friend of a Friend [79] (FOAF) surgió a comienzos del año 2000. Es un vocabulario adecuado para la definición de metadatos sobre personas, sus intereses, sus relaciones y sus actividades. El vocabulario [13] cuenta con un conjunto central de clases (primera letra en mayúscula) y propiedades (primera letra en minúscula):

• Agent – cosas que realizan algo, puede tratarse de personas, organizaciones, robots, etc. Cuenta con las subclases “Person”, “Organization” y “Group”.

• Person – entidad central del vocabulario: representa a las personas.

• name – cadena de caracteres con un nombre.

• title – forma de tratamiento, como, por ejemplo, “Sr.”, “Sra.”, etc.

• img – una imagen que representa a una persona.

• depiction (depicts) – relaciona alguna cosa a una imagen.

• familyName – describe parte del nombre de una persona (apellido).

• givenName – describe parte del nombre de una persona (primer no

• knows – relaciona a dos personas.

• based_near – relación espacial entre dos cosas.

• age – la edad de la persona.

• made (maker) – alguna cosa hecha por alguien.

• primaryTopic (primaryTopicOf) – principal tópico de un documento.

• Project – un proyecto.

• Organization – una organización.

• Group – un grupo.

• Member – un miembro de un grupo.

• Document – un documento.

• Image – una imagen.

Además de ese núcleo central, existe una extensión de clases y propiedades relacionadas con las características sociales de la Web, tales como “nick”, “mbox” (e-mail), “homepage”, “publications”, “account”, etc.

Una de las ideas consideradas a partir del vocabulario FOAF fue el de que cada persona podría definir un archivo, llamado archivo FOAF, con sus informaciones personales. Por ejemplo, el archivo FOAF de Tim Berners-Lee [80]. La figura 6.2 reproduce parte de las informaciones incluidas en ese archivo, en formato Turtle.

@prefix dc11: <http://purl.org/dc/elements/1.1/> .
@prefix cc: <http://creativecommons.org/ns#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<http://dig.csail.mit.edu/2008/webdav/timbl/foaf.rdf>
  cc:license <http://creativecommons.org/licenses/by-nc/3.0/> ;
  dc11:title "Tim Berners-Lee’s FOAF file" ;
  a foaf:PersonalProfileDocument ;
  foaf:maker <http://www.w3.org/People/Berners-Lee/card#i> ;
  foaf:primaryTopic <http://www.w3.org/People/Berners-Lee/card#i> .
<http://www.w3.org/People/Berners-Lee/card#i>
  foaf:img <http://www.w3.org/Press/Stock/Berners-Lee/2001-europaeum-eighth.jpg>;
  foaf:knows
   <http://bblfish.net/people/henry/card#me> ,
   <http://danbri.org/foaf#danbri> ,
   <http://dbpedia.org/resource/John_Gage> ,
   <http://dbpedia.org/resource/John_Klensin> ,
   <http://dbpedia.org/resource/John_Markoff> ,
   <http://dbpedia.org/resource/John_Seely_Brown> ,
   <http://dbpedia.org/resource/Tim_Bray> ,
   <http://dig.csail.mit.edu/2007/wiki/people/JoeLambda#JL> ,
   <http://dig.csail.mit.edu/2007/wiki/people/RobertHoffmann#RMH> ,
   <http://norman.walsh.name/knows/who#norman-walsh> ,
   <http://www.cs.umd.edu/~hendler/2003/foaf.rdf#jhendler> ,
   <http://www.mindswap.org/2004/owl/mindswappers#Jennifer.Golbeck> ,
   <http://www.w3.org/People/Jacobs/contact.rdf#IanJacobs> .
Figura 6.2 –Informaciones del archivo FOAF de Tim Berners-Lee (Turtle)

6.3 SKOS

Es una recomendación del W3C que ofrece una manera de representar esquemas de clasificación, tales como vocabularios controlados, taxonomías y tesauros. Muchos de estos sistemas comparten una estructura semejante, y son utilizados en aplicaciones parecidas. SKOS toma gran parte de esas semejanzas y las hace explícitas, haciendo que sea posible compartir datos entre esas diversas aplicaciones. En SKOS, los conceptos puede ser identificados mediante URIs, con rótulos en una o más lenguas, y ser documentados con diferentes tipos de notas. Los diversos conceptos pueden relacionarse semánticamente entre sí, en jerarquías y redes de asociación informales, así como también se los puede agrupar en esquemas conceptuales. A continuación, se presentan los principales elementos de SKOS [82].

• Concept
Constituye el elemento fundamental de SKOS. Es una clase que define que un determinado recurso es un concepto.

@prefix ex: .
ex:animals rdf:type skos:Concept.

• prefLabel, altLabel
Son rótulos que permiten hacer referencia a los conceptos en lenguaje natural: “prefLabel” es el rótulo preferido a ser exhibido y “altLabel” es un rótulo alternativo utilizado, por ejemplo, para sinónimos.

ex:animals rdf:type skos:Concept ;
  skos:prefLabel "animals" ;
  skos:altLabel "creatures" .

• broader, narrower
El significado de un concepto está definido no solamente por las palabras en lenguaje natural de sus rótulos, sino que también por sus vinculaciones con otros conceptos del vocabulario. "broader" indica que un concepto es más abarcador que otro (un concepto que engloba o incluye a otro concepto). "narrower" es, justamente, lo contrario de "broader".

ex:animals rdf:type skos:Concept ;
  skos:prefLabel "animals" ;
  skos:narrower ex:mammals .
ex:mammals rdf:type skos:Concept ;
  skos:prefLabel "mammals" ;
  skos:broader ex:animals .

• related
Indica una relación asociativa entre dos conceptos.

ex:ornithology rdf:type skos:Concept ;
  skos:prefLabel "ornithology" .
ex:birds rdf:type skos:Concept ;
  skos:prefLabel "birds" ;
  skos:related ex:ornithology

• note
Indica una observación respecto del concepto. "note" hace referencia a una nota genérica, pero existe la posibilidad de calificar diferentes tipos de observaciones utilizando "scopeNote", "editorialNote" y "changeNote", relativas al alcance, historia, cuestiones editoriales y cambios realizados, respectivamente.

ex:microwaveFrequencies
  skos:scopeNote "Used for frequencies between 1GHz to 300Ghz"@en .
ex:tomato
  skos:changeNote "Moved from 'fruits' to 'vegetables'" .

• definition
Brinda una definición del concepto.

ex:documentation rdf:type skos:Concept ;
  skos:definition "the process of storing and retrieving information in all fields of knowledge" .

• ConceptScheme
Los conceptos pueden ser creados y utilizados como entidades independientes; aunque normalmente, los conceptos forman parte de vocabularios cuidadosamente organizados, como tesauros o esquemas de clasificación. Esos esquemas pueden representarse en SKOS a través de la clase "ConceptScheme".

ex:animalThesaurus rdf:type skos:ConceptScheme ;
  dct:title "Simple animal thesaurus" ;
  dct:creator ex:antoineIsaac .
ex:mammals rdf:type skos:Concept ;
  skos:inScheme ex:animalThesaurus .
ex:cows rdf:type skos:Concept;
  skos:broader ex:mammals ;
  skos:inScheme ex:animalThesaurus .
ex:fish rdf:type skos:Concept ;
  skos:inScheme ex:animalThesaurus .

SKOS inclusive brinda medios para realizar el mapeo entre diferentes esquemas conceptuales, a partir de la relación entre los diversos conceptos de dichos esquemas. Ese mapeo califica el grado de proximidad de tales relaciones.

6.4 Schema.org

Schema.org ofrece una colección de vocabularios que pueden ser utilizados para embutir metadatos en páginas Web, siendo comprensibles por parte de los principales motores de búsqueda: Google, Microsoft, Yandex y Yahoo!. Los metadatos pueden embutirse utilizando microdatos, RDF o JSON-LD.

En este momento, existen más de cien vocabularios definidos en Schema.org, de acuerdo a una estructura jerárquica. Cada uno de los vocabularios define un tipo. "Thing" es el tipo raíz, y es relativo a cualquier ítem genérico. Un ítem del tipo "Thing" acepta propiedades tales como "nombre", "descripción", "imagen" y "URL". En el segundo nivel de la jerarquía, existen diez tipos especializados, cada uno con su propio vocabulario:

• Action

• BroadcastService

• CreativeWork

• Event

• Intangible

• MedicalEntity

• Organization

• Person

• Place

• Product

Cada uno de estos tipos posee sus propias especializaciones, tales como:

• Organization

• Airline

• Corporation

• EducationalOrganization

• GovernmentOrganization

• LocalBusiness

• NGO

• PerformingGroup

• SportsOrganization

El portal Schema.org [83] define con alto grado de detalle a cada uno de los vocabularios, con presentación de ejemplos y de codificaciones en microdatos, RDF y JSON-LD. Las figuras 6.3 y 6.4 muestran un ejemplo utilizando los vocabularios para personas y direcciones.

Jane Doe
<img src="janedoe.jpg" alt="Photo of Jane Joe"/>
Professor
20341 Whitworth Institute
405 Whitworth
Seattle WA 98052
(425) 123-4567
<a href="mailto:jane-doe@xyz.edu">jane-doe@illinois.edu</a>
Jane’s home page:
<a href="http://www.janedoe.com">janedoe.com</a>
Graduate students:
<a href="http://www.xyz.edu/students/alicejones.html">Alice Jones</a>
<a href="http://www.xyz.edu/students/bobsmith.html">Bob Smith</a>
Figura 6.3 – Ejemplo de utilización de vocabularios de Schema.org (sin metadatos)
<div itemscope itemtype="http://schema.org/Person">
  <span itemprop="name">Jane Doe</span>
  <img src="janedoe.jpg" itemprop="image" alt="Photo of Jane Joe"/>
  <span itemprop="jobTitle">Professor</span>
  <div itemprop="address" itemscope
     itemtype="http://schema.org/PostalAddress">
   <span itemprop="streetAddress">
     20341 Whitworth Institute
     405 Whitworth
   </span>
   <span itemprop="addressLocality">Seattle</span>,
   <span itemprop="addressRegion">WA</span>
   <span itemprop="postalCode">98052</span>
  </div>
  <span itemprop="telephone">(425) 123-4567</span>
  <a href="mailto:jane-doe@xyz.edu"
     itemprop="email">jane-doe@xyz.edu</a>
  Jane’s home page:
  <a href="http://www.janedoe.com"
     itemprop="url">janedoe.com</a>Graduate students:
  <a href="http://www.xyz.edu/students/alicejones.html"
     itemprop="colleague">Alice Jones</a>
  <a href="http://www.xyz.edu/students/bobsmith.html"
     itemprop="colleague">Bob Smith</a>
</div>
Figura 6.4 –Ejemplo de utilización de vocabularios de Schema.org (microdatos)

6.5 PROV

Cuando los datos se publican, existen conjuntos de metadatos relativos a aspectos indirectos respecto de los datos en sí mismos, como por ejemplo, cuál es la licencia de uso de los datos, cuáles son los derechos del uso y demás. No se trata de metadatos que tienen por objeto aclarar la estructura o la semántica de la información propiamente dicha. Un tipo importante de información sobre datos publicados es el que se refiere a su proveniencia, a quién los generó, a de qué manera fueron generados, a cuáles fueron las fuentes de origen, etc.

Considerar la proveniencia es obtener la información sobre entidades, actividades y personas involucradas en la producción de alguna cosa. Este conocimiento puede utilizarse para evaluar la confiabilidad, la calidad, la veracidad, etc. La ontología PROV de documentos define un modelo, serializaciones correspondientes y otras definiciones que permitan el intercambio de informaciones de proveniencia en la Web.

El modelo de proveniencia definido por PROV considera tres elementos básicos: entidades, actividades y agentes. Esos tres elementos están interconectados por un conjunto de relaciones. Por ejemplo, "una entidad (una página Web, un archivo, etc.) fue generada por una actividad asociada a un determinado agente". La figura 6.5 exhibe un diagrama con una relación básica entre los tres elementos. El diagrama utiliza un esquema gráfico definido por PROV para la representación de la ontología.

fig6_5_entidade_atividade_e_agente_PROV.png
Figura 6.5 – Entidad, Actividad y Agente (PROV)

Como forma de ilustrar los principios básicos de la ontología vamos a suponer la siguiente generación de datos [85]:

Derek, who works in the company “Chart Generators Inc”, made a composition of information from a set of data and a list of geographical regions, and based on the results of this composition he generated an illustration in the form of a graph.

Dicha descripción podría representarse a través del diagrama de la figura 6.6 y por la representación en Turtle de la figura 6.7.

fig6_6_exemplo_de_prov_diagrama.png
Figura 6.6 - Exemplo de PROV (diagrama)
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix exc: <http://examplec.com/> .
@prefix exg: <http://exampleg.com/> .
exg:dataset1       a prov:Entity .
exc:regionList     a prov:Entity .
exc:composition1   a prov:Entity .
exc:chart1         a prov:Entity .
exc:compose1       a prov:Activity .
exc:illustrate1    a prov:Activity .
exc:compose1         prov:used exg:dataset1 ;
    prov:used exc:regionList1 .
exc:composition1    prov:wasGeneratedBy exc:compose1 .
exc:illustrate1    prov:used exc:composition1 .
exc:chart1    prov:wasGeneratedBy exc:illustrate1 .
exc:compose1    prov:wasAssociatedWith exc:derek .
exc:illustrate1    prov:wasAssociatedWith exc:derek .
exc:chart1    prov:wasAttributedTo exc:derek .
exc:derek   a prov:Agent ,
    prov:Person ;
    foaf:givenName "Derek"^^xsd:string ;
    foaf:mbox <mailto:derek@example.org> .
exc:chartgen   a prov:Agent ,
    a prov:Organization ;
    foaf:name "Chart Generators Inc" .
exc:derek   prov:actedOnBehalfOf exc:chartgen .
Figura 6.7 – Ejemplo de PROV (Turtle)

6.6 DCAT

Los motores de búsqueda constituyen un tipo de aplicación que surgió casi junto con la Web. Es natural que en un ámbito en el cual se publican muchas informaciones, exista una forma de catalogación que permita que pueda realizarse una búsqueda. La creciente difusión de la idea de apertura y publicación de datos torna imprescindible el hecho de contar con un modo de catalogar los conjuntos de datos y sus formas de distribución.

DCAT [86], es una recomendación del W3C que permite crear catálogos con descripciones de conjuntos de datos. La utilización de una forma estándar de descripción de catálogos aumenta la capacidad de descubrimiento y permite que las aplicaciones sean capaces de encontrar metadatos distribuidos por diferentes catálogos. También permite la publicación descentralizada de catálogos y facilita la búsqueda federada de conjuntos de datos publicados en diferentes páginas o portales.

DCAT posee tres clases principales:

• dcat:Catalog – representa el catálogo.

• dcat:Dataset – representa un conjunto de datos en un catálogo.

• dcat:Distribution – representa una forma de acceso al conjunto de datos, como, por ejemplo, una página Web, un archivo para descarga, un Web Service, una Web API, un SPARQL endpoint, etc.

La figura 6.8 expresa el diagrama de Clases de DCAT. Es importante observar el modo en el cual la ontología reutiliza propiedades de los vocabularios Dublin Core, FOAF y SKOS.

fig6_8_diagrama_de_classes_de_dcat.png
Figura 6.8 – Diagrama de clases de DCAT

La figura 6.9 representa un ejemplo de catálogo con dos conjuntos de datos representados en DCAT (Turtle).

@base <http://example.org/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
:catalog a dcat:Catalog ;
  dct:title "Imaginary Catalog" ;
  rdfs:label "Imaginary Catalog" ;
  foaf:homepage <http://example.org/catalog> ;
  dct:publisher :transparency-office ;
  dct:language <http://id.loc.gov/vocabulary/iso639-1/en> ;
  dcat:dataset :dataset-001 , :dataset-002 .
:transparency-office a foaf:Organization ;
  rdfs:label "Transparency Office" .
:dataset-001 a dcat:Dataset ;
  dct:title "Imaginary dataset" ;
  dcat:keyword "accountability" , “transparency" , "payments" ;
  dct:issued "2011-12-05"^^xsd:date ;
  dct:modified "2011-12-05"^^xsd:date ;
  dcat:contactPoint <http://example.org/transparency-office/contact> ;
  dct:temporal <http://reference.data.gov.uk/id/quarter/2006-Q1> ;
  dct:spatial <http://www.geonames.org/6695072> ;
  dct:publisher :finance-ministry ;
  dct:language <http://id.loc.gov/vocabulary/iso639-1/en> ;   dct:accrualPeriodicity <http://purl.org/linked-data/sdmx/2009/code#freq-W> ;
  dcat:distribution :dataset-001-csv .
:dataset-001-csv a dcat:Distribution ;
  dcat:downloadURL <http://www.example.org/files/001.csv> ;
  dct:title "CSV distribution of imaginary dataset 001" ;
  dcat:mediaType "text/csv" ;
  dcat:byteSize "5120"^^xsd:decimal .
:dataset-002 a dcat:Dataset ;
  dcat:landingPage <http://example.org/dataset-002.html> ;
  dcat:distribution :dataset-002-csv , :dataset-002-xml ;
:dataset-002-csv a dcat:Distribution
  dcat:downloadURL <http://example.org/files/dataset-002.csv> ;
  dcat:mediaType "text/csv" .
:dataset-002-xml a dcat:Distribution ;
  dcat: downloadURL <http://example.org/files/dataset-002.xml> ;
  dcat:mediaType "text/xml" .
:catalog dcat:themeTaxonomy :themes .
:themes a skos:ConceptScheme ;
  skos:prefLabel "A set of domains to classify documents" .
:dataset-001 dcat:theme :accountability .
:accountability a skos:Concept ;
  skos:inScheme :themes ;
  skos:prefLabel "Accountability" .
Figura 6.9 – Ejemplo de Catálogo

El portal del Open Data Institute [87] muestra un ejemplo [88] e cómo generar un catálogo de manera simple, a través de la creación de una página Web, con links para la descarga de archivos. En este caso, los metadatos con las informaciones del catálogo están embutidos en el código HTML, utilizando RDFa.

El proyecto show me the money [89] brinda información sobre el mercado de préstamos en el Reino Unido. . Las figuras 6.10 y 6.11 muestran, respectivamente, la página del proyecto, desde la cual es posible hacer el download de los datos [90], y parte del código HTML de la página, con las informaciones del catálogo en DCAT embutidas en RDFa.

Fig6_10_Projeto_show_me_the_money_pagina_de_download_de_arquivos.png
Figura 6.10 – Proyecto “show me the money” (página de download de archivos)
<!DOCTYPE html>
<html prefix="dct: http://purl.org/dc/terms/
     rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
     dcat: http://www.w3.org/ns/dcat#
     odrs: http://schema.theodi.org/odrs#">
...
<div resource='http://p2p.labs.theodi.org/download'
     typeof='dcat:Catalog'>
  <p>Want to get at the data for this project? As well as the full data,
     we've also got data files for specific regions:</p>
  <span content='http://id.loc.gov/vocabulary/iso639-1/en'
     property='dct:language'></span>
   <div property='dcat:dataset'
     resource='http://p2p.labs.theodi.org/download/#full'
     typeof='dcat:Dataset'>
    <h3 property='dct:title'>Full data</h3>
    <div property='dcat:distribution' typeof='dcat:Distribution'><ul>
     <li><strong>Format</strong><span
         content='text/csv'
         property='dcat:mediaType'>CSV</span></li>
     <li><strong>Size</strong><span
         content='240585277' datatype='xsd:decimal'
         property='dcat:byteSize'>229MB</span></li>
     <li><strong>Coverage</strong><span
         content='http://dbpedia.org/resource/United_Kingdom'
         property='dct:spatial'>UK</span></li></ul>
    <p><a class='btn btn-primary'
     href='http://4feb814f800c80231150-8876dec7442c825b72049e4e2a169344.
r56.cf3.rackcdn.com/complete.no.postcodes.csv.zip'
     property='dcat:accessURL'>Download the full dataset</a></p>
   </div>
  </div>
  ...
Figura 6.11 – Ejemplo de Catálogo embutido en página Web (RDFa)