Página principal del Sidar | Otras traducciones

Logotipo del SIDAR. LLeva a la página principal. Traducciones:

Esta traducción se concluyó, el 8 de enero de 2001.
Los posibles errores presentes en este documento, debidos a la traducción, son de la responsabilidad del traductor y no son achacables en modo alguno al W3C. Para cualquier comentario sobre la traducción dirigirse a Eva Méndez, Miembro del G2 del SIDAR. La única versión normativa oficial de este documento es la versión original (en inglés): http://www.w3.org/TR/2000/CR-rdf-schema-20000327



 
W3C Candidate Recomendation.
W3C

Resource Description Framework
(RDF) Especificación del Esquema 1.0

Recomendación Candidata del W3C 27 de marzo de 2000

Esta versión:
http://www.w3.org/TR/2000/CR-rdf-schema-20000327
Última Versión:
http://www.w3.org/TR/rdf-schema
Versión Previa:
http://www.w3.org/TR/1999/PR-rdf-schema-19990303
Editores:
Dan Brickley, University of Bristol
R.V. Guha, Epinions
Agradecimientos 
 
Copyright © de la traducción: 2001, Eva Méndez 
Se ha tratado de respetar al máximo el contenido de la especificación original en inglés, adaptando la expresión al español e introduciendo entre [corchetes] algunas palabras (bien en español o en inglés) que ayuden a una mejor comprensión de esta especificación a investigadores e interesados en XML/RDF del dominio lingüístico español. No obstante, puden haberse cometido errores fruto de la traducción; por ello, ha de tenerse en cuenta que la única especificación válida es la que está en inglés en la dirección original del W3C: http://www.w3.org/TR/2000/CR-rdf-schema-20000327/
 

Resumen

Esta especificación describe cómo usar RDF para describir vocabularios RDF. La especificación define también un vocabulario básico para este propósito, así como un mecanismo de extensibilidad para anticipar futuras extensiones a RDF. 

Estado de este documento

Este documento es Recomendación Candidata del  Consorcio World Wide Web. Los comentarios de revisión de esta especificación deben enviarse hacia el 15 de junio de 2000 a <www-rdf-comments@w3.org>. El archivo de comentarios públicos está accesible en http://lists.w3.org/Archives/Public/www-rdf-comments. Los comentarios privados que quieran remitir sólo a los editores, al responsable del grupo de trabajo, y al personal del W3C pueden enviarse a <w3c-rdf-review@w3.org>. 

Esta especificación es una revisión de la Propuesta de Recomendación del 3 de marzo de 1999, que incorpora sugerencias de edición recibidas en comentarios de revisión. Un documento aparte proporciona una visión general de los cambios principales desde la la última publicación de este trabajo. Con la publicación de este documento, la especificación del Esquema RDF entra en la fase de Recomendación Candidata. El W3C impulsa la implementación activa para probar esta especificación durante el periodo de revisión de Recomendación Candidata; se valoran especialmente informes de experiencias de implementación enviados a la dirección de revisión

El Resource Description Framework [Marco para la Descripción de Recursos] es parte de la Actividad del W3C en materia de metadatos. La finalidad de esta actividad, y específicamente de RDF, es producir un lenguaje para el intercambio legible por maquina, de descripciones de recursos en la Web. Otra especificación aparte describe el modelo y la sintaxis [versión española de la especificación del modelo y la sintaxis] para el intercambio de metadatos utilizando RDF. 

Esta sección describe el estado de este documento en el momento de su publicación. Otros documentos pueden remplazar a éste. El W3C mantiene los errores identificados en este documento así como el último status [versión] de esta serie de documentos. Dirigirse al Apéndice B, Sobre los documentos del W3C, para una descripción del Informe Técnico del W3C sobre la política de publicación. 

No es adecuado utilizar la Recomendación Candidata del W3C como material de referencia o citarlo de otra forma que no sea "trabajo en curso". Este es un trabajo en progreso y ello no implica el refrendo o el consenso del W3C. La evolución de un documento a Recomendación Candidata es una llamada explícita para la implementación y el feedback técnico; es apropiado construir implementaciones basadas en esta especificación con el propósito de probar la especificación y de llegar a familiarizarse con ella. Se puede encontrar una lista con las Recomendaciones del W3C y otros documentos técnicos en: http://www.w3.org/TR



Tabla de contenido [índice]:


Esquemas RDF

1. Introducción

El Resource Description Framework (RDF) es un fundamento para el procesamiento de metadatos; proporciona interoperabilidad entre aplicaciones que intercambian información legible por máquina en la Web. RDF utiliza XML para intercambiar descripciones de recursos Web, pero los recursos descritos pueden ser de cualquier tipo, incluyendo recursos XML y no-XML. RDF resalta las facilidades para hacer posible el procesamiento automático de los recursos Web. RDF puede utilizarse en diferentes áreas de aplicación, por ejemplo: en la recuperación de recursos para proporcionar mejores capacidades a los motores de búsqueda, en catalogación para la descripción de contenido y relaciones de contenido accesibles en un sitio Web particular, en una página, o biblioteca digital, a través de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie, en la valoración de contenido, en la descripción de colecciones de páginas que representan un documento lógico individual, para la descripción de los derechos de propiedad intelectual de las páginas Web, y para expresar las preferencias de privacidad de un usuario así como las políticas de privacidad de un sitio Web. RDF junto con las firmas digitales será la clave para construir el "Web de confianza" para el comercio electrónico, la colaboración y otras aplicaciones. 

Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web. El modelo de datos de RDF, tal y como se especifica en [RDFMS] [versión española del modelo y la sintaxis], define un modelo simple para describir las relaciones entre recursos en términos de propiedades y valores designadas. Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor. Las propiedades RDF también representa relaciones entre recursos. De esta forma, el modelo de datos RDF puede parecer un diagrama entidad-relación. El modelo de datos RDF, sin embargo, no proporciona mecanismos para declarar estas propiedades, ni proporcionan ningún mecanismo para definir las relaciones entre estas propiedades y otros recursos. Este es el papel [la función] del Esquema RDF. 

Las comunidades de descripción de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos. Para describir recursos bibliográficos, por ejemplo, son habituales atributos descriptivos tales como autor ["author"], título ["title"], y materia ["subject"]. Para la certificación digital se necesitan muchas veces atributos tales como esquema simple de detección de errores ["checksum"] y autorización ["authorization"]. La declaración de estas propiedades (atributos) y su semántica correspondiente se definen, en el contexto de RDF, como un Esquema RDF. Un esquema define no sólo las propiedades de un recurso (ej. título, autor, materia, tamaño, color, etc.) sino que puede también definir los tipos de recursos que se describirán (libros, páginas Web, personas, empresas, etc.).

Este documento no especifica un vocabulario de elementos descriptivos tales como autor ["author"]. Especifica, más bien, el mecanismo necesario para definir tales elementos, para definir las clases de recursos con los que pueden utilizarse, para limitar las combinaciones de clases y relaciones posibles, y para detectar cuando no se respetan estas restricciones. Así, este documento define un lenguaje de especificación del esquema. En resumen, el mecanismo del esquema RDF  proporciona un sistema tipo [type system] para utilizar en los modelos RDF. Define recursos y propiedades tales como rdfs:Class y rdfs:subClassOf que se utilizan en la precisión [o definición] de esquemas de aplicación específicos. 

El sistema de escritura [typing system] se especifica en términos del modelo de datos RDF básico como recurso y propiedades. Así, los recursos que constituyen este sistema se convierten en parte del modelo RDF de cada descripción que los utiliza. El lenguaje de especificación del esquema es un lenguaje de representación enunciativa influido por las ideas de la representación del conocimiento (redes semánticas, marcos, lógica de predicados) así  como también, lenguajes de especificación de esquema de bases de datos (ej. NIAM) y modelos de datos gráficos. El lenguaje de especificación del esquema RDF es menos expresivo, pero mucho más sencillo de implementar, que lenguajes de cálculo de predicado completo tales como CycL [CycL] y KIF [KIF]. 

RDF y el lenguaje de Esquema RDF se han basado en la investigación sobre metadatos del colectivo de Bibliotecas digitales. En particular, RDF adopta una aproximación modular a los metadatos que puede considerarse una implementación del Warwick Framework [WF]. RDF representa una evolución del modelo del Warwick Framework permitiendo que cada vocabulario de metadatos se represente en una sintaxis diferente. En RDF, todos los vocabularios se expresan dentro de un modelo individual bien definido. Esto da lugar a una mezcla específica más refinada de los vocabularios que se pueden procesar por máquina, y dirige la necesidad [EXTWEB] para crear metadatos en los que las sentencias pueden trazarse en múltiples vocabularios que se gestionan de forma descentralizada por comunidades independientes de expertos. 

Los Esquemas RDF podrían contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML [XML] y los Esquemas XML [XMLSCHEMA]. A diferencia de una DTD o Esquema XML, que dan restricciones específicas en la estructura de un documento XML, un Esquema RDF proporciona información sobre la interpretación de una sentencia dada en un modelo de datos RDF. Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresión RDF/XML, un esquema sintáctico sólo no es suficiente para los objetivos de RDF. Los Esquemas RDF pueden también especificar restricciones que deben seguirse por estos modelos de datos. El trabajo futuro en torno al Esquema RDF y al Esquema XML podría facilitar la sencilla combinación de reglas sintácticas y semánticas para ambos [SCHEMA-ARCH]. 

Esta especificación del Esquema RDF ha dejado sin especificar a propósito, un conjunto de tipos de datos [datatypes] primitivos. Como RDF utiliza XML para su codificación de intercambio, el propio trabajo en sobre escritura de datos [data typing] en XML [XMLDATATYPES] debe ser la base para tal capacidad. 

1.1. Alcance

La especificación del Esquema RDF no tiene como objeto aspectos teóricos, sino que se centra en  resolver un pequeño número de problemas inmediatos. Sus creadores prevén que otros problemas (algunos de los cuales se ilustran en los ejemplos abajo) compartirán características similares y que pueden también ser capaces de utilizar las clases básicas descritas en esta especificación. 

La especificación del Esquema RDF está influida directamente por las consideraciones de los problemas siguientes:

1.1.1. Platform for Internet Content Selection (PICS)

El modelo y la sintaxis RDF son adecuados para representar las etiquetas PICS [PICS], sin embargo no se proporciona un mapeo de propósito general desde el sistema de valoración de los PICS en una representación RDF. Un mapeo tal se describe en un documento aparte


1.1.2. Metadatos Web simples

Una aplicación obvia para RDF es la descripción de páginas Web. Este es uno de los objetivos básicos de la iniciativa de metadatos Dublin Core [DC]. El conjunto de elementos del Dublin Core es un grupo de 15 elementos para ser aplicados en general en la descripción de recursos web para facilitar su recuperación [discovery]. El Dublin Core ha sido la mayor influencia en el desarrollo de RDF. Una consideración importante en el desarrollo del Dublin Core fue no permitir solo descripciones simple, sino también proporcionar la posibilidad de cualificar descripciones para proporcionar tanto la elaboración específica de un dominio y la precisión descriptiva. 

La especificación del Esquema RDF proporciona un sistema entendible por máquina para definir esquemas para vocabularios específicos como el Dublin Core. Esto permite a los diseñadores especificar clases de tipos de recursos y propiedades para dar a conocer descripciones de esas clases, relaciones entre esas propiedades y clases, y las restricciones en las combinaciones permitidas de clases, propiedades y valores. 


1.1.3. Mapas de sitios [Sitemaps] y navegación conceptual

Un mapa de un sitio [sitemap] es una descripción jerárquica de un sitio Web. Una taxonomía de materia es un sistema de clasificación que podrían usar los creadores de contenidos o terceros autorizados para organizar o clasificar los recursos Web. La especificación del Esquema RDF proporciona un mecanismo para definir los vocabularios necesarios en dichas aplicaciones. 

Los Tesauros y los esquemas de clasificación bibliotecaria son ejemplos bien conocidos de sistemas jerárquicos para representar taxonomías de materia en términos de relaciones entre conceptos. La especificación del Esquema RDF proporciona los recursos suficientes para la creación de modelos RDF que representen la estructura lógica de un tesauro (y otros sistemas de clasificación bibliotecaria). 


1.1.4. P3P

El Proyecto del W3C de Plataforma para las Preferencias de Privacidad (P3P)  ha especificado una gramática para la construcción de sentencias sobre las prácticas de recopilación de datos de un sitio y las preferencias personales, así como una sintaxis para el intercambio de datos estructurados. 

A pesar de que las prácticas de recopilación de datos personases se han descrito en P3P utilizando conjunto de etiquetas XML de aplicación específica, es beneficiosa la utilización de un modelo de metadatos general para estos datos. La estructura de las políticas P3P puede interpretarse como un modelo RDF. La utilización de un esquema de metadatos para describir la semántica de las descripciones de privacidad permitirá que se utilicen datos del ejercicio de la privacidad junto con otros metadatos en una pregunta durante la recuperación de recursos, y permitirá que un agente de software genérico actúe en los metadatos de privacidad utilizando las mismas técnicas que se utilizan para otros metadatos descriptivos. Las extensiones al P3P que describen los elementos de datos específicos recopilados por un sitio podrían utilizar el Esquema RDF para especificar posteriormente cómo deben usarse esos elementos de datos. 

2. Clases y Propiedades

Un Esquema RDF se expresa a través de un modelo de datos descrito en la especificación del Modelo y la Sintaxis RDF  [RDFMS] [RDFMS-español]. El lenguaje de descripción del esquema es un simple conjunto de recursos y propiedades definidos por la Especificación del Esquema RDF y la parte implícita de cada modelo RDF que utiliza la mecánica del esquema RDF. 

Este documento especifica el mecanismo del Esquema RDF como un conjunto de recursos RDF (incluyendo clases y propiedades), y las restricciones en sus relaciones. El vocabulario principal del Esquema RDF abstracto puede utilizarse para hacer sentencias RDF que definan y describan vocabularios de aplicación específicos tales como el conjunto de elementos del Dublin Core. 

2.1. El sistema de escritura de datos [type system]

El Esquema RDF definido en esta especificación es una colección de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicación específica. El núcleo del vocabulario del esquema se define en un namespace, denominado aquí  informalmente 'rdfs', e identificado por el URI de referencia http://www.w3.org/2000/01/rdf-schema#. Esta especificación utiliza también el prefijo 'rdf' para referirse al namespace principal RDF http://www.w3.org/1999/02/22-rdf-syntax-ns#

Como se describe en la especificación del modelo y la sintáxis [RDFMS] [RDFMS en español], los recursos pueden ser
objetos específicos de una categoría [instances] de una o más clases; esto se indica con la propiedad rdf:type. Las clases se organizan muchas veces de una forma jerárquica, por ejemplo la clase Dog [perro] podría considerarse subclase de Mammal [mamífero] que a su vez es una subclase de Animal, dando a entender que cualquier recurso que esté en rdf:type Dog se considera también que está en rdf:type Animal.Esta especificación describe una propiedad, rdfs:subClassOf, para indicar dichas relaciones entre clases. 

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programación orientados a objetos tales como Java. Sin embargo, RDF se diferencia de muchos de esos sitemas en que en lugar de definir una clase en términos de propiedades sus objetos específicos de una categoría [instances] pueden tener, un esquema RDF que definirá las propiedades en términos de clases de recurso a los que se aplican. Este es el papel de las restricciones rdfs:domain y de rdfs:range descritas en la Sección 3. Por ejemplo, podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal, mientras que un sistema OO clásico podría definir típicamente una clase Book  con un atributo denominado author de tipo Literal. Una ventaja del enfoque de propiedad céntrica RDF es que es muy fácil decir cualquier cosa que se quiera sobre un recurso existente, que es uno de los principios de la arquitectura del Web [BERNERS-LEE98]. 

Esta especificación anticipa el desarrollo de un conjunto de clases que corresponden con un conjunto de tipos de datos [datatypes].  Esta especificación no define ningún tipo de datos [datatypes] específico, pero sí se debe observar que los tipos de datos pueden usarse como el valor de la propiedad rdfs:range


2.1.1. Figura 1: Clases y Recursos como Conjuntos y Elementos

La Figura 1 ilustra el concepto de clase, subclase, y recurso. Una clase se describe por un rectángulo redondeado; un recusro se describe por un punto grande. En la figura abajo, se han dibujado flechas desde un recurso a una clase que define. Una subclase se presenta en un rectánculo redondeado (la subclase) completamente incluido en otro (la superclase). Si un recurso está dentro de una clase, entonces existe una propiedad rdf:type o explícita o implícita de aquel recruso cuyo valor es un recurso que define la clase que contiene. (Estas propiedades se muestran como arcos en la representación gráfica directamente etiquetada en la figura 2). El recurso RDF representado  en la figura 1 se describe tanto en el resto de esta especificación, como en la especificación del Modelo y Sintaxis RDF. 

Figura 1: Clases y Recursos como Conjuntos y Elementos.
Figura 1: Clases y recursos como conjuntos y elementos

2.1.2. Figura 2: Jerarquía de Clase para el Esquema RDF

La Figura 2 muestra la misma información sobre la jerarquía de clase que en la figura 1, pero lo hace utilizando la representación gráfica de "nodos y arcos" del modelo de datos RDF. Si una clase es un subconjunto de otra, hay un arco
rdfs:subClassOf desde el nodo que representa la primera clase hasta el nodo que representa la segunda. De forma similar, si una recurso es un objeto específico de la categoría [instance] de una clase, entonces hay un arco rdf:type desde el recurso hasta el nodo que representa la clase. No todos estos arcos se muestran. Sólo mostramos el arco a la clase que comprende más ajustadamente, y depende de la transitoriedad de la relación rdfs:subClassOf para proporcionar el resto. 

Figura 2: Jerarquía de clase para el Esquema RDF.
Figura 2: Jerarquía de clase para el Esquema RDF

2.2. Clases Principales

Los recursos siguientes son las clases principales [core classes] que se definen como parte del vocabulario del Esquema RDF. Cada modelo RDF que se traza sobre el namespace del Esquema RDF (implícitamente) los incluye. 

2.2.1. rdfs:Resource

Todas las cosas que se describan por expresiones RDF se denominan recursos [resources], y se consideran como instances [objetos específicos de la categoría] de la clase rdfs:Resource. La clase RDF rdfs:Resource representa el conjunto denominado 'Resources' en el modelo formal para RDF presentado en la sección 5 de las especificación del modelo y la sintaxis [RDFMS] [RDFMS en español]. 


2.2.2. rdf:Property

rdf:Property representa el subconjunto de recursos RDF que son propiedades, es decir, todos los elementos del conjunto presentados como 'Propiedades' en la sección 5 de la especificación del modelo y la sintaxis [RDFMS] [RDFMS en español]. 


2.2.3. rdfs:Class

Este corresponde con el concepto genérico de un tipo [Type] o categoría [Category], semejante a la noción de Clase en los lenguajes de programación orientados a objetos tales como Java. Cuando un esquema define una nueva clase, el recurso que representa esa clase debe tener una propiedad rdf:type cuyo valor es el recurso rdfs:Class. Las clases RDF pueden definirse para representar cualquier cosa, como páginas Web, personas, tipos de documentos, bases de datos o conceptos abstractos. 

2.3. Propiedades Principales

Cada modelo RDF que utiliza la mécanica del esquema también incluye (implícitamente) las propiedades principales siguientes. Son objetos específicos de una categoría [instances] de la clase rdf:Property y proporcionan un mecanismo para expresar las relaciones entre las clases y sus objetos específicos de categoría [instances] o superclases. 

2.3.1. rdf:type

Esta [propiedad] indica que un recurso es miembro de una clase, de tal forma que tiene todas las características que se preven de un miembro de esa clase. Cuando un recurso tiene una propiedad rdf:type cuyo valor es alguna clase específica, decimos que el recurso es un objeto específico de la categoría [instance] de la clase especificada. El valor de una propiedad rdf:type para algunos recursos es otro recurso que tiene que ser un objeto específico de la categoría [instance] de rdfs:Class. El recruso conocido como rdfs:Class es en sí mismo un recurso de rdf:type rdfs:Class. Las clases individuales (por ejemplo 'Dog' [perro]) tendrán siempre una propiedad rdf:type cuyo valor es rdfs:Class (o alguna subclase de rdfs:Class, como se describe en la sección 2.3.2). Un recurso puede ser un objeto específico de una categoría [instance] de más de una clase. 


2.3.2. rdfs:subClassOf

Esta propiedad especifica una relación subconjunto/superconjunto entre clases. La propiedad rdfs:subClassOf es transitiva. Si la claes A es una subclase de otra clase B más amplia, y B es una subclase de C, entonces A es también implícitamente una subclase de C. Por lo tanto, los recursos que son objetos específicos de una categoría [instances] de la clase A serán también instances de C, puesto que A es un subconjunto de ambas, tanto de B como de C. Sólo los objetos específicos de una categoría [instances] de rdfs:Class pueden tener la propiedad rdfs:subClassOf y el valor de la propiedad es siempre de rdf:type rdfs:Class. Una clase puede ser suclase de más de una clase. 

Una clase nunca puede declararse como subclase de sí misma, ni de ninguna de sus propias subclases. Nótese que esta restricción no se puede expresar utilizando las facilidades de restricción del Esquema RDF explicadas a continuación , y por ello no aparecen en la versión RDF de esta especificación que se determina en el Apéndice A. 

2.3.2.1. Ejemplo

Este es un ejemplo muy sencillo que expresa la siguiente jerarquía de clase. En primer lugar definimos la clase MotorVehicle. Después definimos tres subclases de MotorVehicle [vehículo de motor], a saber PassengerVehicle [vehículo de pasajeros], Truck [camión] y Van [furgoneta]. Después defimos la clase Minivan [minifurgoneta]  que es una subclase de ambas Van [furgoneta]y PassengerVehicle [vehículo de pasajeros]

Ejemplo de jerarquía de clases de vehículos.

El RDF/XML mostrado aquí utiliza la sintaxis RDF básica definida en la sección 2.2.1 de la especificación del Modelo y Sintaxis RDF [RDFMS] [RDFMS en español]. Mecanismo de abreviación proporcionado pro la sintaxis serializada RDF. 

<rdf:RDF xml:lang="en"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<!-- Note: this RDF schema would typically be used in RDF instance data 
     by referencing it with an XML namespace declaration, for example
     xmlns:xyz="http://www.w3.org/2000/03/example/vehicles#".  This allows
     us to use abbreviations such as xyz:MotorVehicle to refer
     unambiguously to the RDF class 'MotorVehicle'. -->

<rdf:Description ID="MotorVehicle">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf
  rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Description>

<rdf:Description ID="PassengerVehicle">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>

<rdf:Description ID="Truck">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>

<rdf:Description ID="Van">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>

<rdf:Description ID="MiniVan">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="#Van"/>
 <rdfs:subClassOf rdf:resource="#PassengerVehicle"/>
</rdf:Description>

</rdf:RDF>

2.3.3. rdfs:subPropertyOf

La propiedad rdfs:subPropertyOf es un objeto específico de una categoría [instance] de rdf:Property que se utiliza para especificar que una propiedad es una especialización de otra. Una propiedad puede ser una especialización de cero, una o más propiedades. Si alguna propiedad P2 es una subPropertyOf de otra propiedad más general P1, y si un recurso A tiene una propiedad P2 con un valor B, esto implica que el recurso A tiene también una propiedad P1 con valor B. 

Una propiedad no se puede nunca declarar como una subpropiedad de sí misma, ni de ninguna de sus propias subpropiedades. Nótese que esta restricción no se puede expresar utilizando las facilidades de restricción del Esquema RDF explicadas a continuación, y por ello no aparecen en la versión RDF de esta especificación que se determina en el apéndice A. 

2.3.3.1. Ejemplo

Si la propiedad biologicalFather [padre biológico] es una subpropiedad de la propiedad más amplia biologicalParent [progenitor biológico], y si  Fred es el biologicalFather [padre biológico] de John, entonces implica que Fred es también el biologicalParent [progenitor biológico] de  John. 

<rdf:RDF xml:lang="en"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<rdf:Description ID="biologicalParent">
 <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Description>

<rdf:Description ID="biologicalFather">
 <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
 <rdfs:subPropertyOf rdf:resource="#biologicalParent"/>
</rdf:Description>
</rdf:RDF>

2.3.4. rdfs:seeAlso

La propiedad rdfs:seeAlso especifica un recurso que podría proporcionar información adicional sobre el recurso sujeto. Esta propiedad puede especializarse utilizando rdfs:subPropertyOf para indicar más precisamente la naturaleza de la información que el recurso objeto tiene sobre el recurso sujeto. Los recursos objeto y el sujeto están restringidos sólo para ser objetos específicos de la categoría [instances] de la clase rdfs:Resource


2.3.5. rdfs:isDefinedBy

La propiedad rdfs:isDefinedBy es una subpropiedad de rdfs:seeAlso, e indica el recurso que define el recurso sujeto. Al igual que rdf:seeAlso, esta propiedad puede aplicarse a cualquier objeto específico de una categoría [instance] de rdfs:Resource y puede tener como valor cualquier rdfs:Resource

El uso previsto más común es identificar un esquema RDF, dando un nombre para una de las propiedades o clases definidas por ese esquema. A pesar de que la declaración de namespace XML proporcionará normalmente el URI donde están definidos los recursos del vocabulario RDF, hay caso donde se requiere información adicional. 

Por ejemplo, construcciones tales como
<rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.0/Creator"/>
no indican el URI del esquema que incluye el ítem del vocabulario Creator (http://purl.org/dc/elements/1.0/). 

En tales casos, la propiedad rdfs:isDefinedBy puede utilizarse para representar explícitamente dicha información. Esta estrategia funcionará también cuando el URI del namespace y sus componentes no tengan una relación obvia, como podría ser el caso si se identifican esquemas tales como hashes GUIDs o MD-5. 


3. Restricciones

Esta especificación presenta un vocabulario RDF para hacer sentencias sobre restricciones en el uso de las propiedades y clases en datos RDF. Por ejemplo, un esquema RDF podría describir las limitaciones de los tipos de valores que son válidos para una propiedad, o las clases para las que tiene sentido asignar tales propiedades. 

El Esquema RDF proporciona un mecanismo para describir tales restricciones, pero no dice si, ni cómo, una aplicación puede procesar la información restringida. Por ejemplo, a pesar de que un esquema RDF puede mantener que una propiedad author se utilice para indicar los recursos que son miembros de la clase Person, no dice si, ni cómo, una aplicación debe actuar en el procesamiento de esa información de clase. Prevemos que las diferentes aplicaciones utilizarán estas restricciones de distintas formas -- ej. un validador buscará errores, un editor interactivo podría sugerir valores legales, y una aplicación de razonamiento podría inferir las clases y así anticipar cualquier inconsistencia. 

Los esquemas RDF expresan las restricciones que asocian ítems de vocabulario de múltiples esquemas desarrollados de forma independiente. Dado que las referencias URI se utilizan para identificar clases y propiedades, es posible crear nuevas propiedades cuyas restricciones domain [dominio] o range [rango] hacen referencia a clases definidas en otro namespace. 

Las siguientes restricciones se especifican en el Esquema RDF 1.0: las restricciones rdfs:domain y rdfs:range en el uso de la propiedad, la regla que las propiedades rdfs:subPropertyOf y rdfs:subClassOf no deben formar lazos, más alguna otra restricción definida utilizando el mecanismo de extensibilidad rdfs:ConstraintResource. Diferentes aplicaciones pueden mostrar comportamientos diferentes en relación a las restricciones RDF. 

Algunos ejemplos de restricciones incluyen:

Esta especificación no intenta enumerar cada una de las formas posibles de restricciones aplicables a una descripción de vocabulario RDF. En cambio, se definen aquí algunos mecanismos de restricción básicos, acompañados por una facilidad de extensión para aceptar a las adiciones subsiguientes de nuevos tipos de restricciones. 

A pesar de que el modelo de datos RDF no acepta propiedades explícitas (tales como una propiedad rdf:type) que se adscriban a literales (valores atómicos), sin embargo consideramos estas entidades como miembros de clases (ej. el string
"John Smith" se considera como miembro de la clase rdfs:Literal.) 

Nota: Prevemos un trabajo futuro en la tipificación [escritura] de datos [data-typing] RDF/XML para aclarar estos aspectos.

3.1. Restricciones principales

3.1.1. rdfs:ConstraintResource

Este recurso define una subclase de rdfs:Resource cuyos objetos específicos de la categoría [instances] son construcciones del esquema RDF implicadas en la expresión de las restricciones. El propósito de esta clase es proporcionar un mecanismo que permita a los procesadores RDF evaluar su habilidad para usar la información restringida asociada con un modelo RDF. Puesto que esta especificación no proporciona un mecanismo para la recuperación dinámica de nuevas formas de restricción, un procesador del Esquema RDF 1.0 que encuentre objetos específicos de la categoría [instances] desconocidos previamente de rdfs:ConstraintResource puede estar seguro de que no es apropiado para determinar el significado de esas restricciones. 


3.1.2. rdfs:ConstraintProperty

Este recurso define una subclase de rdf:Property, donde todos los objetos específicos de la categoría [instances] son propiedades utilizadas para especificar restricciones. Esta clase es una subclase de rdfs:ConstraintResource y corresponde al subconjunto de aquella clase que representa propiedades. Tanto
rdfs:domain como rdfs:range son objetos específicos de la categoría [instances] de rdfs:ConstraintProperty


3.1.3. rdfs:range

Un objeto específico de una categoría [instance] de ConstraintProperty que se utilice para indicar la clase(s) que el valor de una propiedad debe ser como miembros de ella. El valor de una propiedad range es siempre una clase [Class]. Las restricciones de rango sólo se aplican a las propiedades. 

Una propiedad puede tener a lo sumo una propiedad de rango. Es posible no tener rango, en cuyo caso la clase del valor de la propiedad no es obligatoria. 

Restricciones en rdfs:range

El rdfs:domain de rdfs:range el la clase rdf:Property. Esto indica que la propiedad range se aplica a recursos que son propiedades de ellos mismos. 

El rdfs:range de rdfs:range es la clase rdfs:Class. Esto indica que cualquier recurso que es el valor de una propiedad rango será una clase. 

Nota: especificación de clases de rango múltiple

A pesar de que no está permitido expresar dos o más restricciones range en una propiedad, se puede conseguir un resultado similar definiendo una superclase común para cualquier clase que represente valores apropiados para algunas propiedades. Por ejemplo, para expresar la restricción que una propiedad xyz:drivesMotorVehicle puede tener valores como furgonetas [Vans], camiones [Trucks] o vehículos de pasajeros [PassengerVehicles], afirmamos que xyz:drivesMotorVehicle tiene un rdfs:range de MotorVehicle. Si furgoneta [Van], camión [Truck] y vehículo de pasajeros [PassengerVehicle]se entienden como subclases de vehículos de motor [MotorVehicle], entonces todos estos tipos de recursos son valores aceptados para xyz:drivesMotorVehicle. En los casos donde no existe una superclase común, se puede definir en un esquema de forma normal.

3.1.4. rdfs:domain

Un objeto específico de la categoría [instance] de ConstraintProperty que se utilice para indicar la clase(s) en cuyos miembros  pueden usar una propiedad. 

Una propiedad puede tener, cero, uno o más de una clase como dominio. Si no hay propiedad de dominio, puede utilizarse con cualquier recurso. Si hay exactamente una propiedad de dominio, puede utilizarse sólo en objetos específicos de la categoría [instances] de esa clase (que es el valor de la propiedad dominio). Si hay más de una propiedad dominio, la propiedad restringida puede utilizarse con instances de cualquiera de las clases (que son valores de esas propiedades de dominio). 

Restricciones en rdfs:domain

El rdfs:domain de rdfs:domain es la clase rdf:Property. Esto indica que la propiedad dominio se utiliza en recursos que son propiedades. 

El rdfs:range de rdfs:domain es la clase rdfs:Class. Esto indica que cualquier recurso que es el valor de una propiedad dominio será una clase. 

Nota: Esta especificación no restringe el número de propiedades rdfs:domain que puede tener una propiedad. Si no hay propiedad domain, no sabemos nada sobre las clases con las que se utiliza la propiedad. Si hay más de una propiedad rdfs:domain, la propiedad restringida puede utilizarse con recursos que son miembros de cualquiera de las clases indicadas. Nótese que a diferencia de range esta es una restricción muy débil.

Figura 4: Restricciones en el Esquema RDF

El Esquema RDF utiliza las propiedades restringidas para limitar se deben utilizar sus propias propiedades. Estas restricciones se muestran en la figura 4. Los nodos destacados en negrita son objetos específicos de la categoría [instances] de rdfs:Class

Figura 3:  Restricciones en el Esquema RDF.
Figura 3: Restricciones en el Esquema RDF

3.2. Ejemplo

Continuando con nuestro ejemplo anterior de los vehículos a motor MotorVehicle, en este ejemplo, definimos dos propiedades registeredTo [registrado en] y rearSeatLegRoom [espacio para las piernas en el asiento trasero]. La propiedad registeredTo es aplicable a cualquier MotorVehicle y su valor es una [persona] Person (definida en el ejemplo siguiente). Para este ejemplo rearSeatLegRoom sólo se aplica a Minivans y PassengerVehicles. El valor es un [número] Number (anticipamos que algunos conceptos como este se darán en un trabajo posterior sobre tipos de datos), que es el número de centímetros del espacio para las piernas del asiento trasero. 


 
<rdf:RDF xml:lang="en"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<rdf:Description ID="registeredTo">
 <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
 <rdfs:domain rdf:resource="#MotorVehicle"/>
 <rdfs:range rdf:resource="#Person"/>
</rdf:Description>

<rdf:Description ID="rearSeatLegRoom">
 <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
 <rdfs:domain rdf:resource="#PassengerVehicle"/>
 <rdfs:domain rdf:resource="#Minivan"/>
 <rdfs:range rdf:resource="http://www.w3.org/2000/03/example/classes#Number"/>
</rdf:Description>
</rdf:RDF>

4. Mecanismos de Extensibilidad

La especificación del Esquema RDF se construye sobre la bese proporcionada por XML y el Modelo y Sintaxis RDF. Proporciona algunas facilidades adicionales para soportar la evolución tanto de los vocabularios RDF individuales, como de la especificación del vocabulario del Esquema principal RDF presentado en este documento. 


 

4.1. Posibilidad de evolución [Evolvability] de los vocabularios RDF

El Marco para la Descripción de Recursos [Resource Description Framework] tiene la intención de ser flexible y fácilmente extensible; esto implica que se podrán crear una gran variedad de esquemas y que las versiones nuevas y revisadas de este esquema serán un acontecimiento frecuente en la Web. 


4.1.1. Terminología

La frase 'Vocabulario RDF' ['RDF vocabulary'] se utiliza aquí para referirse a aquellos recursos que evolucionan a través del tiempo; 'Esquema RDF' ['RDF schema'] se utiliza para designar aquellos recursos que constituyen las versiones particulares (invariables) de un vocabulario RDF en cualquier momento puntual. Así podríamoa hablar sobre la evolución del vocabulario Dublin Core. Cada versión del vocabulario Dublin Core podría ser un esquema RDF diferente, y podría tener su modelo y representación sintáctica concreta correspondientes. 


4.1.2. Versiones y referencias URI

RDF utiliza la facilidad de los Namespece XML [XMLNS] para identificar el esquema en que están definidas las propiedades y las clases. Teniendo en cuenta que cambiar la estructura lógica de un esquema conlleva el resto de que se rompan otros modelos RDF que dependen de ese esquema, esta especificación recomienda que se debe declarar un URI de namespace nuevo en cuanto se cambie un esquema RDF. 

En efecto, cambiando las sentencias [statements] RDF que constituyen un esquema crea  uno nuevo; los namespaces del nuevo esquema deben tener su propio URI para evitar la ambigüedad. Teniendo en cuenta que un URI del Esquema RDF identifica sin ambigüedades una versión particular de un esquema, el software que utilice o gestione RDF (ej. cachés) deberían poder almacenar con seguridad copias de modelos de esquema RDF por un periodo indefinido. El problema de la evolución del esquema RDF comparte muchas características con la gestión de la versión de DTD XML y el problema general de las versiones de los recursos Web. Una aproximación general a este tema excede el alcance de esta especificación. 

Dado que cada esquema RDF tiene su propio URI invariable, estos pueden utilizarse para construir referencias URI únicas para el recurso definido en un esquema. Esto se consigue a través de la combinación del identificador local para un recurso con el URI asociado con ese namespace del esquema. La representación XML de RDF utiliza el mecanismo de los namespaces en XML para asociar elementos y atributos con referencias URI para cada ítem de vocabulario utilizado. 


4.1.3. Relaciones entre Vocabularios

Los recursos definidos en esquemas RDF son recursos Web, y pueden describirse en otros esquemas RDF. Este principio proporciona el mecanismo básico para la evolución del vocabulario RDF. Esta especificación no intenta proporcionar un marco completo para expresar el mapeo entre esquemas; sin embargo sí proporciona las propiedades rdfs:subClassOf y rdfs:subPropertyOf. La capacidad para expresar relaciones de especialización ente clases (subClassOf) y entre propiedades (subPropertyOf) proporciona un mecanismo sencillo para hacer sentencias sobre cómo tales recursos se mapean hacia sus predecesores. 

Hay muchos escenarios para que estos mecanismos simples no sean adecuados; futuras actividades del W3C pueden desarrollar un mecanismo de mapeo de esquemas más global. 


4.1.3.1. Ejemplos

Un esquema que representa la versión 1.0 de algún vocabulario podría definir clases que correspondan con un número de tipos de vehículos. El esquema para la versión 2.0 de este vocabulario constituye un recurso Web diferente. Si el nuevo esquema define pro ejemplo una clase 'furgoneta' (Van) cuyos miembros son subconjuntos de los miembros de la clase 'furgonetas en la versión 1.0, la propiedad rdfs:subClassOf puede utilizarse para declarar todos los objetos específicos de la categoría  V2:Van son también objetos específicos de la categoría V1:Van

Donde el vocabulario define las propiedades, puede tomarse la misma estrategia, utilizando rdfs:subPropertyOf para hacer sentencias sobre las relaciones entre las propiedades definidas en versiones sucesivas de un vocabulario RDF. 

4.2. Posibilidad de evolución [Evolvability] del mecanismo de restricción del Esquema  RDF

Esta especificación define una subclase de recursos conocida como 'recursos restringidos' (sección 3.1). Esto se hace para dar ocasión a la adición de nuevas formas de expresar las restricciones RDF. Extensiones futuras al Resource Description Framework pueden presentar nuevos recursos que son objetos específicos de la categoría de la clase  rdfs:ConstraintResource. Es preciso anticipar el contenido de RDF que se define sobre propiedades o clases definidas utilizando las restricciones aparte de las accesibles en esta versión de RDF. Restricciones desconocidas hasta ahora pueden contribuir a un marco más expresivo para especificar las restricciones RDF. 

Los agentes RDF no familiarizados con la semántica de los objetos específicos de la categoría [instances] rdfs:ConstraintResource pueden adolecer, por lo tanto, del conocimiento para evaluar la satisfacción de la restricción cuando los ítems del vocabulario se definen utilizando esas restricciones desconocidas. En tanto que el propio RDF puede no representar de forma manifiesta, el significado completo de estos recursos restringidos, la adquisición de sentencias RDF sobre un nuevo ConstraintResource puede que no proporcionen información suficiente para hacer posible su uso. Por ejemplo, cuando encontramos una tipo de propiedad restringida desconocida previamente, llamada RDF3:mysteryConstraint podemos aprende partiendo de un esquema que tiene un rango de rdfs:Class y un dominio de rdf:Property. Las restricciones de rango y dominio si se dan solas podrían ser suficientes para decirnos cómo utilizar de forma correcta RDF3:mysteryConstraint, pero no nos dirían nada sobre la naturaleza de la restricción expresada cuando se utiliza de esa forma. 

La construcción rdfs:ConstraintResource se define aquí como un simple mecanismo que se probará en el futuro, y dirige algunos de los temas discutidos ampliamente en la nota del W3C del Lenguaje Web Extensible[ EXTWEB]. A través de la proclamación de nuevas formas de restricción como miembros de esta clases, indicamos que tienen la intención de expresar las restricciones del lenguaje del Esquema RDF, cuya semántica debe entenderse para que sea posible comprobar las restricciones. 

La agrupación en la clase rdfs:ConstraintResource, alude, pero no implica, que esa semántica puede que no se pueda expresar de forma declarativa. Teniendo en cuenta que las facilidades expresivas accesibles en RDF para hacer esto también evolucionarán probablemente, esta distinción presenta un objetivo en movimiento. Todos loa agentes RDF tendrán conocimiento implícito de ciertas restricciones (por ejemplo, esta especificación afirma que las propiedades subClassOf no pueden forma un lazo en un gráfico RDF) que pueden o no, ser capaces de representación dentro de (algunas versiones) RDF. Puede darse el caso que alguna especificación futura de RDF proporciona las facilidades que permitan a los agentes RDF entender especificaciones declarativas por propiedades restringidas no inventadas todavía. En ese caso, estos agentes entenderán con seguridad (algunas) formas de restricción no encontradas previamente. A través de la clase básica  rdfs:ConstraintResource, anticipamos tal desarrollo. Todos los agentes RDF escritos exclusivamente para esta especificación apreciarán su ignorancia del significado de objetos específicos de la categoría [instances] de esa clase desconocidos, en tanto que esta especificación no proporciona mecanismos para aprender sobre tales restricciones a través de la interpretación de sentencias RDF. Especificaciones futuras, deberían ofrecer tales facilidades, podrían también definir subclases de ConstraintProperty para clasificar nuevas construcciones de acuerdo con si tienen o no semántica que no se puede expresar. 


5. Documentación

Las propiedades siguientes se proporcionan para apoyar comentarios relacionados con la documentación simple y con el interfaz de usuario dentro de los esquemas RDF. La documentación multilingüe de los esquemas se apoya en el nivel sintáctico a través del uso de la facilidad del etiquetado xml:lang. Dado que los esquemas RDF se expresan dentro del modelo de datos RDF, los vocabularios definidos en otros namespaces pueden utilizarse para proporcionar una documentación más rica. 


5.1. rdfs:comment

Este se utiliza para proporcionar una descripción legible por el hombre de un recurso .

5.2. rdfs:label

Este se utiliza para proporcionar una versión legible por el hombre, del nombre de un recurso.

6. Conceptos de Modelo y Sintaxis

La especificación del  Modelo y la Sintaxis RDF [RDFMS] [RDFMS en español] los conceptos fundamentales de RDF. Una parte de ellos se definen formalmente en el Esquema RDF cuyo URI del namespace es http://www.w3.org/1999/02/22-rdf-syntax-ns#. En resumen, se definen algunos conceptos más en la especificación del Modelo y la Sintaxis pero no aparecen en el esquema del Modelo y la Sintaxis RDF. Estos tienen formalmente su lugar en el namespace del Esquema (por ejemplo, rdfs:Literal y rdfs:Resource). En los casos donde un recurso RDF pertenece a el namespace http://www.w3.org/1999/02/22-rdf-syntax-ns#, este documento puede proporcionar sólo una copia oportuna de esa definición del recurso. 

El Apéndice A presenta un esquema RDF/XML para los recursos RDF definidos en este documento, incluyendo conceptos del Modelo RDF como Literal y Resource. El Esquema RDF/XML en el apéndice A también hace sentencias RDF sobre recursos definidos en el namespace del Modelo y la Sintaxis RDF. Estos tienen la condición de comentarios [annotations] más que de definiciones [definitions]


6.1. rdfs:Literal

Corresponde con el conjunto denominado 'Literales' ['Literals'] en el modelo formal para RDF presentado en la sección 5 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. Valores atómicos tales como conjuntos de caracteres [strings] textuales, son ejemplos de literales RDF. 


6.2. rdf:Statement

Corresponde con el conjunto denominado sentencia ['Statement'] en el modelo formal para RDF presentado en la sección 5 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. 


6.3. rdf:subject

Corresponde con la propiedad denominada sujeto ['subject'] en el modelo formal para RDF presentado en la sección 5 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. Su rdfs:domain es rdf:Statement y rdfs:range es rdfs:Resource. Se utiliza para especificar el recurso descrito por una sentencia donde se transforma algo abstracto en concreto [reified statement] 


6.4. rdf:predicate

Corresponde con la propiedad denominada predicado ['predicate'] en el modelo formal para RDF presentado en la sección 5 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. Su rdfs:domain es rdf:Statement y rdfs:range es rdf:Property. Se utiliza para identificar la propiedad utilizada en una sentencia modelada [modeled statement]. 


6.5. rdf:object

Corresponde con la propiedad denominada objeto ['object'] en el modelo formal para RDF presentado en la sección 5 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. Su rdfs:domain es rdf:Statement. Se usa para identificar el valor de la propiedad en una sentencia modelada [modeled statement]. 

6.6. rdfs:Container

Esta clase se utiliza para representar las clases contenedoras [Container classes] descritas en la sección 3 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. Es un objeto específico de la categoría [instance] rdfs:Class y rdfs:subClassOf de rdfs:Resource


6.7. rdf:Bag

Corresponde con la clase denominada 'Bag' en el modelo formal en la sección 5 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. Es un objeto específico de la categoría [instance] rdfs:Class y rdfs:subClassOf rdfs:Container


6.8. rdf:Seq

Corresponde a la clase denominada 'Sequence' en el modelo formal para RDF en la sección 5 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. Es un objeto específico de la categoría [instance] rdfs:Class y rdfs:subClassOf rdfs:Container


6.9. rdf:Alt

Corresponde a la clase denominada 'Alternative' en el modelo formal para RDF en la sección 5 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. Es un objeto específico de la categoría [instance] rdfs:Class y rdfs:subClassOf rdfs:Container


6.10. rdfs:ContainerMembershipProperty

Esta clase tiene como miembros las propiedades _1, _2, _3 ... utilizadas para indicar la agrupación contenedor, como se describe en la sección 3 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. es una rdfs:subClassOf rdf:Property


6.11. rdf:value

Corresponde con la propiedad 'value' descrita en la sección 2.3 de la especificación del Modelo y la Sintaxis [RDFMS] [RDFMS en español]. 


7. Ejemplos

Esta sección da algunos ejemplos breves del uso de la mecánica del Esquema RDF para definir clases y propiedades para algunas aplicaciones posibles. Nótese que algunos de estos ejemplos utilizan la sintaxis RDF abreviada (citada anteriormente en 2.3.2.1.) para expresar la pertenencia a una clase. 


7.1. Ejemplo 1

En este ejemplo, Person es una clase con su correspondiente descripción legible por el hombre de "La clase de personas". Animal es una clase presuntamente definida en otro esquema. Todas las personas son animales, por ello declaramos que Person es subclase de Animal. Una persona puede tener una propiedad edad. El valor de edad es un número entero. Una persona puede también tener una propiedad ssn (Número de la Seguridad Social ["Social Security Number"]). El valor de ssn es un número entero. El estado civil de una persona es uno de estos {Soltero [Single], Casado [Married], Divorciado [Divorced], Viudo [Widowed]}. Esto se consigue a través del uso de la restricción rdfs:range: definimos tanto una propiedad maritalStatus como una clase MaritalStatus (adoptando la convención de usar letras minúsculas para la letra inicial de los nombres de propiedades, y mayúsculas para las clases). Utilizamos entonces rdfs:range para establecer que la propiedad maritalStatus sólo 'da sentido' cuando tiene un valor que es un objeto específico [instance] de la clase MaritalStatus. Así el esquema define un número de objetos específicos de esta clase. Si los recursos declarados para ser del tipo MaritalStatus en otro gráfico se confían, es una decisión de nivel de aplicación. 

<rdf:RDF xml:lang="en"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<rdfs:Class rdf:ID="Person">
  <rdfs:comment>The class of people.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/03/example/classes#Animal"/>
</rdfs:Class>

<rdf:Property ID="maritalStatus">
  <rdfs:range rdf:resource="#MaritalStatus"/>
  <rdfs:domain rdf:resource="#Person"/>
</rdf:Property>

<rdf:Property ID="ssn">
  <rdfs:comment>Social Security Number</rdfs:comment>
  <rdfs:range rdf:resource="http://www.w3.org/2000/03/example/classes#Integer"/>
  <rdfs:domain rdf:resource="#Person"/>
</rdf:Property>

<rdf:Property ID="age">
  <rdfs:range rdf:resource="http://www.w3.org/2000/03/example/classes#Integer"/>
  <rdfs:domain rdf:resource="#Person"/>
</rdf:Property>

<rdfs:Class rdf:ID="MaritalStatus"/>

<MaritalStatus rdf:ID="Married"/>
<MaritalStatus rdf:ID="Divorced"/>
<MaritalStatus rdf:ID="Single"/>
<MaritalStatus rdf:ID="Widowed"/>

</rdf:RDF>

7.2. Ejemplo 2

En este ejemplo esbozamos un diseño preliminar de un vocabulario RDF para utilizar con servicios que se pueden buscar en Internet. SearchQuery se declara como clase. Cada SearchQuery puede tener tanto un queryString cuyo valor es un rdfs:Literal y un queryService cuyo valor es un SearchService. Un SearchService es una subclase de InternetService (que se define en otra parte). Un SearchQuery tiene cierto número de propiedades result (cuyo valor es SearchResult). Cada SearchResult tiene un title (el valor es un rdfs:Literal), un rating y por supuesto, la página en sí misma. 

La modularidad de RDF permite que otros vocabularios se combinen con esquemas simples tales como este para caracterizar más plenamente las propiedades de recursos en red. Por ejemplo, el Dublin Core o un vocabulario de clasificación basado en bibliotecas podrían utilizarse para describir la cobertura de materia o las propiedades de nivel de colecciones para cada SearchService, mientras un vocabulario de "protocolos de búsqueda" gestionado independientemente podría utilizarse para describir detalles de la conexión para (supongamos) interfaces de búsqueda  LDAP, WHOIS++ o Z39.50  ofrecidos por el servicio. A través de la creación de sentencias que se trazan sobre esquemas especializados de varios dominios, RDF lo hace posible para diversas comunidades de expertos para contribuir a un web centralizado de vocabularios legibles por máquina. 

<rdf:RDF xml:lang="en"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<rdfs:Class rdf:ID="SearchQuery">
  <rdfs:subClassOf
   rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdfs:Class>

<rdfs:Class rdf:ID="SearchResult">
  <rdfs:subClassOf
   rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdfs:Class>

<rdfs:Class rdf:ID="SearchService">
  <rdfs:subClassOf
   rdf:resource="http://www.w3.org/2000/03/example/classes#InternetService"/>
</rdfs:Class>

<rdf:Property ID="queryString">
  <rdfs:domain rdf:resource="#SearchQuery"/>
  <rdfs:range
   rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<rdf:Property ID="queryService">
  <rdfs:domain rdf:resource="#SearchQuery"/>
  <rdfs:range rdf:resource="#SearchService"/>
</rdf:Property>

<rdf:Property ID="result">
  <rdfs:domain rdf:resource="#SearchQuery"/>
  <rdfs:range rdf:resource="#SearchResult"/>
</rdf:Property>

<rdf:Property ID="queryResultPage">
  <rdfs:domain rdf:resource="#SearchResult"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/03/example/classes#WebPage"/>
</rdf:Property>

<rdf:Property ID="queryResultTitle">
  <rdfs:domain rdf:resource="#SearchResult"/>
  <rdfs:range
   rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<rdf:Property ID="queryResultRating">
  <rdfs:domain rdf:resource="#SearchResult"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/03/example/classes#FloatZeroToOne"/>
</rdf:Property>
</rdf:RDF>

8. Referencias

8.1. Referencias Normativas

[RDFMS] [RDFMS en español]
Resource Description Framework (RDF) Model and Syntax, W3C Recommendation, 22 February 1999
http://www.w3.org/TR/1999/REC-rdf-syntax-19990222
[XMLNS]
Namespaces in XML; W3C Recommendation, 14 January 1999
http://www.w3.org/TR/1999/REC-xml-names-19990114

8.2. Referencias Informativas

[NIAM]
G. M. Nijssen and Terry Halpin, Conceptual Schema and Relational Database Design, (Prentice Hall, Sydney:1989)
[BERNERS-LEE98]
What the Semantic Web can represent, Tim Berners-Lee, 1998
http://www.w3.org/DesignIssues/RDFnot.html
[CycL]
CycL: The CYC Representation Language
[KIF]
Knowledge Interchange Format (KIF)
[WF]
The Warwick Framework: A Container Architecture for Aggregating Sets of Metadata; Carl Lagoze, Clifford A. Lynch and Ron Daniel Jr., 1996
http://cs-tr.cs.cornell.edu/Dienst/UI/2.0/Describe/ncstrl.cornell/TR96-1593
[EXTWEB]
Web Architecture: Extensible Languages, Tim Berners-Lee and Dan Connolly, 1998
http://www.w3.org/TR/1998/NOTE-webarch-extlang-19980210
[PICS]
Platform for Internet Content Selection;
http://www.w3.org/PICS/
[PICS in XML/RDF]
PICS Rating Vocabularies in XML/RDF, Brickley and Swick, 2000
http://www.w3.org/TR/2000/NOTE-rdf-pics-20000327
[DC]
Dublin Core Metadata Initiative
http://purl.org/dc/
[SCHEMA-ARCH]
The Cambridge Communiqué, W3C NOTE, 7 October 1999, Swick and Thompson
http://www.w3.org/TR/1999/NOTE-schema-arch-19991007
[UML]
Unified Modeling Language (UML)
http://www.rational.com/uml/resources
[XML]
Extensible Markup Language (XML) 1.0, W3C Recommendation, 10-February-1988, Section 3.2 Element Type Declarations
http://www.w3.org/TR/1998/REC-xml-19980210.html#elemdecls
[XML-Data]
XML Data, Layman, et. al., W3C Note, 1998
http://www.w3.org/Submission/1998/01/
[XMLSCHEMA]
XML Schema Part 1: Structures, W3C Working Draft 25 February 2000
http://www.w3.org/TR/2000/WD-xmlschema-1-20000225/
[XMLDATATYPES]
XML Schema Part 2: Datatypes, W3C Working Draft 25 February 2000
http://www.w3.org/TR/2000/WD-xmlschema-2-20000225/
[XML-Link]
XML Linking Language (XLink), W3C Working Draft, 21 February 2000
http://www.w3.org/TR/WD-xml-link

8. Agradecimientos

Nota: Este documento fue preparado y aprobado para su publicación por el Grupo de Trabajo (WG) sobre el Esquema RDF del W3C. La aprobación del WG de este documento no implica necesariamente que todos los miembros de dicho grupo de trabajo apoyaran su aprobación. 

David Singer de IBM fue el coordinador [la cabeza visible] del grupo a lo largo de la mayor parte del desarrollo de esta especificación; agradecemos a David por su esfuerzo y agradecemos a IBM por soportarle a él y a nosotros en este empeño. Agradecemos particularmente también a Andrew Layman por su trabajo editorial en versiones anteriores de esta especificación. 

La filiación del grupo de trabajo ha incluido:

Nick Arnett (Verity), Dan Brickley (ILRT / University of Bristol), Walter Chang (Adobe), Sailesh Chutani (Oracle), Ron Daniel (DATAFUSION), Charles Frankston (Microsoft), Joe Lapp (webMethods Inc.), Patrick Gannon (CommerceNet), RV Guha (Epinions, antes de Netscape Communications), Tom Hill (Apple Computer), Renato Iannella (DSTC), Sandeep Jain (Oracle), Kevin Jones, (InterMind), Emiko Kezuka (Digital Vision Laboratories), Ora Lassila (Nokia Research Center), Andrew Layman (Microsoft), John McCarthy (Lawrence Berkeley National Laboratory), Michael Mealling (Network Solutions), Norbert Mikula (DataChannel), Eric Miller (OCLC), Frank Olken (Lawrence Berkeley National Laboratory), Sri Raghavan (Digital/Compaq), Lisa Rein (webMethods Inc.), Tsuyoshi Sakata (Digital Vision Laboratories), Leon Shklar (Pencom Web Works), David Singer (IBM), Wei (William) Song (SISU), Neel Sundaresan (IBM), Ralph Swick (W3C), Naohiko Uramoto (IBM), Charles Wicksteed (Reuters Ltd.), Misha Wolf (Reuters Ltd.) 

No todas las personas enumeradas arriba han sido miembros a lo largo de toda la duración del grupo de trabajo, pero todos han contribuido a la evolución de este documento. 



Apéndice A: Serialización XML

Se da aquí una especificación del modelo del Esquema RDF principal en sintaxis serializada RDF/XML. Nótese por favor que el URI del namespace para la especificación del Esquema RDF cambiará en versiones futuras de esta especificación si cambia el esquema. Este esquema RDF incluye comentarios que describen recursos RDF definidos formalmente en la especificación del Modelo y la Sintaxis, así como definiciones para nuevos recursos que pertenecen al namespace del Esquema RDF. 

Nótese que hay algunas restricciones (como las citadas arriba en el 2.3.2) en ciertos recursos del Esquema RDF que no son totalmente expresables en sí mismos utilizando la especificación del Esquema RDF. Por ejemplo, el RDF abajo no nos dice qué arcos subClassOf no deberían  (para usar terminología de la representación de arcos y nodos) formar lazos en ningún modelo RDF. 

<rdf:RDF
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<rdfs:Class rdf:ID="Resource">
  <rdfs:label xml:lang="en">Resource</rdfs:label>
  <rdfs:label xml:lang="fr">Ressource</rdfs:label>
  <rdfs:comment>The most general class</rdfs:comment>
</rdfs:Class>

<rdf:Property about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
  <rdfs:label xml:lang="en">type</rdfs:label>
  <rdfs:label xml:lang="fr">type</rdfs:label>
  <rdfs:comment>Indicates membership of a class</rdfs:comment>
  <rdfs:range rdf:resource="#Class"/>
</rdf:Property>

<rdf:Property ID="comment">
  <rdfs:label xml:lang="en">comment</rdfs:label>
  <rdfs:label xml:lang="fr">commentaire</rdfs:label>
  <rdfs:domain rdf:resource="#Resource"/>
  <rdfs:comment>Use this for descriptions</rdfs:comment>
  <rdfs:range rdf:resource="#Literal"/>
</rdf:Property>

<rdf:Property ID="label">
 <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
 <rdfs:label xml:lang="en">label</rdfs:label>
 <rdfs:label xml:lang="fr">label</rdfs:label>
 <rdfs:domain rdf:resource="#Resource"/>
 <rdfs:comment>Provides a human-readable version of a resource name.</rdfs:comment>
 <rdfs:range rdf:resource="#Literal"/>
</rdf:Property>

<rdfs:Class rdf:ID="Class">
  <rdfs:label xml:lang="en">Class</rdfs:label>
  <rdfs:label xml:lang="fr">Classe</rdfs:label>
  <rdfs:comment>The concept of Class</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#Resource"/>
</rdfs:Class>

<rdf:Property ID="subClassOf">
  <rdfs:label xml:lang="en">subClassOf</rdfs:label>
  <rdfs:label xml:lang="fr">sousClasseDe</rdfs:label>
  <rdfs:comment>Indicates membership of a class</rdfs:comment>
  <rdfs:range rdf:resource="#Class"/>
  <rdfs:domain rdf:resource="#Class"/>
</rdf:Property>

<rdf:Property ID="subPropertyOf">
  <rdfs:label xml:lang="en">subPropertyOf</rdfs:label>
  <rdfs:label xml:lang="fr">sousPropriétéDe</rdfs:label>
  <rdfs:comment>Indicates specialization of properties</rdfs:comment>
  <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Property>

<rdf:Property ID="seeAlso">
  <rdfs:label xml:lang="en">seeAlso</rdfs:label>
  <rdfs:label xml:lang="fr">voirAussi</rdfs:label>
  <rdfs:comment>Indicates a resource that provides information about the subject resource.</rdfs:comment>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Property>

<rdf:Property ID="isDefinedBy">
  <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
  <rdfs:subPropertyOf rdf:resource="#seeAlso"/>
  <rdfs:label xml:lang="en">isDefinedBy</rdfs:label>
  <rdfs:label xml:lang="fr">esDéfiniPar</rdfs:label>
  <rdfs:comment>Indicates a resource containing and defining the subject resource.</rdfs:comment>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Property>

<rdfs:Class rdf:ID="ConstraintResource">
  <rdfs:label xml:lang="en">ConstraintResource</rdfs:label>
  <rdfs:label xml:lang="fr">RessourceContrainte</rdfs:label>
  <rdf:type resource="#Class"/>
  <rdfs:subClassOf rdf:resource="#Resource"/>
  <rdfs:comment>Resources used to express RDF Schema constraints.</rdfs:comment>
</rdfs:Class>

<rdfs:Class rdf:ID="ConstraintProperty">
  <rdfs:label xml:lang="en">ConstraintProperty</rdfs:label>
  <rdfs:label xml:lang="fr">PropriétéContrainte</rdfs:label>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
  <rdfs:subClassOf rdf:resource="#ConstraintResource"/>
  <rdfs:comment>Properties used to express RDF Schema constraints.</rdfs:comment>
</rdfs:Class>

<rdfs:ConstraintProperty rdf:ID="domain">
  <rdfs:label xml:lang="en">domain</rdfs:label>
  <rdfs:label xml:lang="fr">domaine</rdfs:label>
  <rdfs:comment>This is how we associate a class with
  properties that its instances can have</rdfs:comment>
</rdfs:ConstraintProperty>

<rdfs:ConstraintProperty rdf:ID="range">
  <rdfs:label xml:lang="en">range</rdfs:label>
  <rdfs:label xml:lang="fr">étendue</rdfs:label>
  <rdfs:comment>Properties that can be used in a
  schema to provide constraints</rdfs:comment>
  <rdfs:range rdf:resource="#Class"/>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdfs:ConstraintProperty>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property">
  <rdfs:label xml:lang="en">Property</rdfs:label>
  <rdfs:label xml:lang="fr">Propriété</rdfs:label>
  <rdfs:comment>The concept of a property.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#Resource"/>
</rdfs:Class>

<rdfs:Class rdf:ID="Literal">
  <rdfs:label xml:lang="en">Literal</rdfs:label>
  <rdfs:label xml:lang="fr">Littéral</rdfs:label>
  <rdf:type resource="#Class"/>
  <rdfs:comment>This represents the set of atomic values, eg. textual strings.</rdfs:comment>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement">
  <rdfs:label xml:lang="en">Statement</rdfs:label>
  <rdfs:label xml:lang="fr">Déclaration</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Resource"/>
  <rdfs:comment>This represents the set of reified statements.</rdfs:comment>
</rdfs:Class>

<rdf:Property about="http://www.w3.org/1999/02/22-rdf-syntax-ns#subject">
  <rdfs:label xml:lang="en">subject</rdfs:label>
  <rdfs:label xml:lang="fr">sujet</rdfs:label>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
  <rdfs:range rdf:resource="#Resource"/>
</rdf:Property>

<rdf:Property about="http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate">
  <rdfs:label xml:lang="en">predicate</rdfs:label>
  <rdfs:label xml:lang="fr">prédicat</rdfs:label>
  <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
  <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Property>

<rdf:Property about="http://www.w3.org/1999/02/22-rdf-syntax-ns#object">
  <rdfs:label xml:lang="en">object</rdfs:label>
  <rdfs:label xml:lang="fr">objet</rdfs:label>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
</rdf:Property>

<rdfs:Class rdf:ID="Container">
  <rdfs:label xml:lang="en">Container</rdfs:label>
  <rdfs:label xml:lang="fr">Enveloppe</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Resource"/>
  <rdfs:comment>This represents the set Containers.</rdfs:comment>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag">
  <rdfs:label xml:lang="en">Bag</rdfs:label>
  <rdfs:label xml:lang="fr">Ensemble</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Container"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq">
  <rdfs:label xml:lang="en">Sequence</rdfs:label>
  <rdfs:label xml:lang="fr">Séquence</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Container"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt">
  <rdfs:label xml:lang="en">Alt</rdfs:label>
  <rdfs:label xml:lang="fr">Choix</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Container"/>
</rdfs:Class>

<rdfs:Class rdf:ID="ContainerMembershipProperty">
  <rdfs:label xml:lang="en">ContainerMembershipProperty</rdfs:label>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdfs:Class>

<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#value">
  <rdfs:label xml:lang="en">object</rdfs:label>
  <rdfs:label xml:lang="fr">value</rdfs:label>
</rdf:Property>

</rdf:RDF>

Apéndice B. Sobre Documentos W3C

Para promover la confianza y estabilidad, el W3C ha establecido la siguiente política de publicación:
  1. Cada informe técnico es un documento publicado estable que tiene un único identificador (URI).

  2. Cada documento publicado estable estará siempre accesible, no alterado, en ese URI. Recuperando (p. ej. a través de los marcadores [bookmarking]) el recurso en que el URI devolverá siempre el mismo contenido.

  3. Una revisión específica de un documento es generalmente uno de una serie de documentos relacionados (p. ej. de un Borrador de trabajo [Working Draft] a una Recomendación [Recommendation]). Cada serie tiene un identificador único (URI) que cuando se sigue, devolverá el último documento estable publicado accesible en la serie.

  4. Cada documento incluye una sección de "Status" que describe el contexto de publicación del documento en la fecha de publicación. Nótese que dado que el W3C no cambia documentos estables publicados, la sección de status de un documento publicado no puede cambiarse, incluso si el documento se torna obsoleto posteriormente.

  5. Cada documento en la serie incluye enlaces a información actualizada del status para la serie.


Comentarios
$Fecha: 2000/03/27 19:14:02 $
Comentarios sobre la traducción
$Fecha de la traducción 2001/01/08 12:33$
Página principal del Sidar | Otras traducciones