Lisez-moi S.V.P. 

W3C

Langage de description de vocabulaire RDF 1.0 : RDF Schema

Recommandation du W3C du 10 février 2004

Cette version :
http://www.w3.org/TR/2004/REC-rdf-schema-20040210/
Dernière version :
http://www.w3.org/TR/rdf-schema/
Version précédente :
http://www.w3.org/TR/2003/PR-rdf-schema-20031215/
Rédacteurs :
Dan Brickley, W3C <danbri@w3.org>
R.V. Guha, IBM <rguha@us.ibm.com>
Rédacteur de la série :
Brian McBride (Hewlett Packard Labs) <bwm@hplb.hpl.hp.com>

Veuillez consulter la page des errata→vf de ce document, laquelle peut contenir des corrections normatives.

Cf. également d'éventuelles traductions.


Résumé

Le cadre de description de ressource (RDF) est un langage d'utilisation générale pour représenter des informations dans le Web. Cette spécification décrit comment utiliser RDF pour décrire des vocabulaires RDF. Elle définit un vocabulaire dans ce but et définit d'autres vocabulaires RDF natifs (built-in) spécifiés à l'origine dans la spécification du modèle et de la syntaxe RDF.

Statut de ce document

Ce document a été examiné par les membres du W3C et des tiers intéressés et il a été approuvé par le Directeur comme recommandation du W3C. Le rôle du W3C en produisant la recommandation est d'attirer l'attention sur la spécification et d'en promouvoir le large déploiement. Cela participe à la fonctionnalité et à l'interopérabilité du Web.

Ce document fait partie d'un ensemble de six (Initiation, Concepts, Syntaxe, Sémantique, Vocabulaire et Jeux d'essais) destinés à remplacer conjointement les spécifications RDF originales, à savoir Modèle et syntaxe RDF (recommandation de 1999) et Schéma RDF (recommandation candidate de 2000). Il a été développé par le groupe de travail RDF Core sous l'égide de l'activité Semantic Web du W3C (déclaration d'activité, charte du groupe) pour une publicaiton le 10 février 2004.

Les changements effectués sur ce document depuis le projet de recommandation proposée sont détaillés dans le journal des changements.

Le public est invité à envoyer ses commentaires sur la liste de diffusion www-rdf-comments@w3.org (archives) et à discuter des questions générales de la technologie liée sur www-rdf-interest@w3.org (archives).

Une liste de mises en œuvre est disponible.

Le W3C tient une liste des divulgations de brevets en rapport à ce travail.

Cette section décrit le statut de ce document au moment de sa publication. D'autres documents peuvent venir le remplacer. On trouvera une liste des publications courantes du W3C et la dernière révision de ce rapport technique dans l'index des rapports techniques du W3C à http://www.w3.org/TR/.

Table des matières


1. Introduction

Le cadre de description de ressource (RDF) est un langage d'utilisation générale pour représenter des informations dans le Web.

Cette spécification est l'une parmi plusieurs liées à RDF, à savoir [RDF-PRIMER] [RDF-SYNTAX] [RDF-CONCEPTS] [RDF-SEMANTICS] [RDF-TESTS]. Le lecteur est invité à consulter le chapitre à propos de RDF Schema dans l'Initiation à RDF [RDF-PRIMER] pour une introduction informelle et des exemples d'utilisation des concepts spécifiés dans ce document.

Cette spécification introduit le langage de description de vocabulaire de RDF : RDF Schema. Plusieurs documents d'accompagnement la complète, lesquels décrivent le codage XML de RDF [RDF-SYNTAX], ses fondements mathématiques [RDF-SEMANTICS] et et ses concepts et syntaxe abstraite [RDF-CONCEPTS]. L'initiation à RDF [RDF-PRIMER] fournit une introduction informelle et des exemple d'utilisation des concepts spécifiés dans ce document.

Ce document ambitionne d'offrir une spécification claire du langage de description de vocabulaire RDF à ceux qui seraient intimidés par la spécification sémantique formelle dans Sémantique RDF [RDF-SEMANTICS]. Ainsi, ce document reproduit également du matériel spécifié dans la sémantique RDF. En cas de désaccord entre ce document et la spécification de la sémantique RDF, celle-ci sera réputée correcte.

On peut considérer les propriétés RDF comme des attributs des ressources et, en ce sens, elles peuvent correspondre aux couples attribut-valeur traditionnels. Les propriétés RDF représentent également des relations entre les ressources.

Toutefois, RDF ne fournit aucun mécanisme pour décrire ces propriétés ni pour décrire les relations entre ces propriétés et d'autres ressources. C'est le rôle du langage de description de vocabulaire RDF RDF Schema. RDF Schema définit des classes et des propriétés utilisables pour décrire des classes, des propriétés et d'autres ressources.

Ce document ne spécifie pas un vocabulaire de propriétés descriptives telles que « author ». Au lieu de cela, il spécifie des mécanismes qui peuvent servir à nommer et décrire des propriétés et les classes de ressource qu'ils décrivent.

Le langage de description de vocabulaire de RDF, RDF Schema, est une extension sémantique (comme défini dans [RDF-SEMANTICS]) de RDF. Il fournit les mécanismes pour décrire des groupes de ressources liées et les relations entre ces ressources. Les descriptions de vocabulaire RDF Schema sont écrites en RDF avec les termes décrits dans ce document. Ces ressources servent à déterminer les caractéristiques d'autres ressources, telles que les domaines (domains) et les images (ranges) des propriétés.

Le système de classes et propriétés du langage de description de vocabulaire RDF est similaire aux systèmes de types des langages de programmation orienté objet tels que Java. RDF diffère beaucoup de tels systèmes en cela que, au lieu de définir une classe en fonction des propriétés que ses instance possèderaient, le langage de description de vocabulaire RDF décrit les propriétés en fonction des classes de ressources auxquelles elles s'appliquent. C'est le rôle des mécanismes de domaine et d'image décrits dans cette spécification. Par exemple, nous pourrions définir la propriété eg:author comme ayant un domaine de eg:Document et une image de eg:Person, alors qu'un système orienté objet classique définirait typiquement une classe eg:Book avec un attribut eg:author de type eg:Person. Avec l'approche RDF, il est facile à d'autres de définir ensuite des propriétés supplémentaires avec un domaine de eg:Document ou une image de eg:Person. On peut le faire sans avoir à redéfinir la description originale de ces classes. Un avantage de l'approche centrée sur les propriétés de RDF est que tout le monde peut étendre la description des ressources existantes, l'un des principes architecturaux du Web [BERNERS-LEE98].

Cette spécification n'essaye pas d'énumérer toutes les formes possibles de description de vocabulaire qui sont utiles pour représenter la signification des classes et propriétés RDF. La stratégie de description de vocabulaire RDF est plutôt de reconnaître qu'il existe plusieurs techniques grâce auxquelles décrire la signification des classes et des propriétés. Un vocabulaire plus riche ou des langages d'« ontologie » tels que DAML+OIL, le langage [OWL] du W3C, ou des langages de règle d'inférence et d'autres formalismes (par exemple la logique temporelle) contribueront chacun à notre capacité à capturer des généralisations significatives à propos de données dans le Web. Les concepteurs de vocabulaires RDF peuvent créer et déployer des applications Web sémantique en utilisant les possibilités du langage de description de vocabulaire RDF 1.0, tout en explorant les langages de description de vocabulaire plus riches qui partagent cette approche générale.

Le langage défini dans cette spécification se compose d'une collection de ressources RDF que l'on peut utiliser pour décrire les propriétés d'autres ressources RDF (y compris des propriétés) dans des vocabulaires RDF spécifiques d'une application. Le vocabulaire central (core vocabulary) est défini dans un espace de noms appelé ici de manière informelle « rdfs ». Cet espace de noms est identifié par la référence URI http://www.w3.org/2000/01/rdf-schema# et associé au préfixe "rdfs". Cette spécificaiton emploie également le préfixe "rdf" pour désigner l'espace de noms RDF http://www.w3.org/1999/02/22-rdf-syntax-ns#.

Par commodité et pour la lisibilité, cette spécification utilise une forme abrégée pour représenter les références URI. Un nom de la forme « préfixe:suffixe » devrait s'interpréter comme une référence URI se composant de la référence URI associée au préfixe concaténée au suffixe.

2. Classes

Les ressources peuvent être divisées en groupes appelés des classes. Les membres d'une classe sont dits des instances (instances) de la classe. Les classes sont elles-mêmes des ressources. Elles sont souvent identifiées par des références URI RDF (RDF URI references) et peuvent être décrites en utilisant des propriétés RDF. La propriété rdf:type peut être utilisée pour déclarer qu'une ressource est une instance d'une classe.

RDF fait une distinction entre une classe et l'ensemble de ses instances. À chaque classe est associé un ensemble, appelé l'extension de classe (class extension) de la classe, qui est l'ensemble des instances de la classe. Deux classes peuvent avoir le même ensemble d'instances mais être différentes. Par exemple, le fisc peut définir la classe des personnes résidant à la même adresse que le rédacteur de ce document. La poste peut définir la classe des personnes dont l'adresse a le même code postal que celui de l'auteur. Il est possible que ces deux classes aient exactement les mêmes instances et pourtant des propriétés différentes. Seule l'une a la propriété définie par le fisc et seule l'autre a la propriété définie par la poste.

Une classe peut être un membre de sa propre extension de classe et être une instance d'elle-même.

Le groupe des ressources qui sont des classes RDF Schema est lui-même une classe appelée rdfs:Class.

Si une classe C est une sous-classe (subclass) d'une classe C', alors toutes les instances de C seront également des instances de C'. La propriété rdfs:subClassOf peut être utilisée pour déclarer qu'une classe est une sous-classe d'une autre. Le terme superclasse (superclass) est le réciproque de celui de sous-classe. Si une classe C' est une superclasse de C, alors toutes les instances de C sont également des instances de C'.

La spécification Concepts et syntaxe abstraite RDF [RDF-CONCEPTS] définit le concept RDF de type de données RDF (RDF datatype). Tous les types de données sont des classes. Les instances d'une classe de type de données sont les membres de l'espace de valeurs (value space) du type de données.

2.1 rdfs:Resource

Toutes les choses décrites par RDF sont appelées des ressources (resources) et sont des instances de la classe rdfs:Resource. C'est la classe de toutes les choses. Toutes les autres classes sont des sous-classes de cette classe. La classe rdfs:Resource est une instance de la classe rdfs:Class.

2.2 rdfs:Class

C'est la classe des ressources qui sont des classes RDF. La classe rdfs:Class est une instance de rdfs:Class.

2.3 rdfs:Literal

La classe rdfs:Literal est la classe des valeurs littérales (literal values) telles que les chaînes et les entiers. Les valeurs de propriété telles que les chaînes textuelles sont des exemples de littéraux RDF (RDF literals). Les littéraux peuvent être ordinaires (plain) ou typés (typed). Un littéral typé est une instance d'une classe de type de données. Cette spécification ne définit pas la classe des littéraux ordinaires.

La classe rdfs:Literal est une instance de la classe rdfs:Class. La classe rdfs:Literal est une sous-classe de rdfs:Resource.

2.4 rdfs:Datatype

La classe rdfs:Datatype est la classe des types de données. Toutes les instances de rdfs:Datatype correspondent au modèle RDF d'un type de données décrit dans la spécification des concepts RDF [RDF-CONCEPTS]. La classe rdfs:Datatype est à la fois une instance et une sous-classe de rdfs:Class. Chaque instance de rdfs:Datatype est une sous-classe de rdfs:Literal.

2.5 rdf:XMLLiteral

La classe rdf:XMLLiteral est la classe des valeurs littérales XML. La classe rdf:XMLLiteral est une instance de rdfs:Datatype et une sous-classe de rdfs:Literal.

2.6 rdf:Property

La classe rdf:Property est la classe des propriétés RDF. La classe rdf:Property est une instance de rdfs:Class.

3. Propriétés

La spécification Concepts et syntaxe abstraite RDF [RDF-CONCEPTS] décrit le concept de propriété RDF comme une relation entre des ressources sujets (subject resources) et des ressources objets (object resources).

Cette spécification définit le concept de sous-propriété. La propriété rdfs:subPropertyOf peut être utilisée pour déclarer qu'une propriété est une sous-propriété d'une autre. Si une propriété P est une sous-propriété de la propriété P', alors tous les couples de ressources reliés par P sont aussi reliés par P'. Le terme superpropriété est souvent employé comme réciproque de sous-propriété. Si une propriété P' est une superpropriété d'une propriété P, alors tous les couples de ressources reliés par P sont aussi reliés par P'. Cette spécification ne définit pas de propriété supérieure qui soit la superpropriété de toutes les propriétés.

Note : Les possibilités de base (basic facilities) offertes par rdfs:domain et rdfs:range ne permettent pas d'indiquer directement des restrictions de propriété qui soient locales à une classe. Bien qu'il soit possible de combiner l'emploi de rdfs:domain et rdfs:range à des hiérarchies de sous-propriétés, la gestion directe de telles déclarations est fournie par des langages d'ontologie Web plus riches tels que [OWL].

3.1 rdfs:range

La propriété rdfs:range est une instance de la classe rdf:Property, utilisée pour déclarer que les valeurs d'une propriété sont des instances d'une ou plusieurs classes.

Le triplet (triple) :

P rdfs:range C

stipule (state) que P est une instance de la classe rdf:Property, que C est une instance de la classe rdfs:Class et que les ressources dénotées par les objets des triplets dont le prédicat (predicate) est P sont des instances de la classe C.

Lorsque P a plus d'une propriété rdfs:range, les ressources dénotées par les objets des triplets de prédicat P sont des instances de toutes les classes déclarées par les propriétés rdfs:range.

La propriété rdfs:range peut s'appliquer à elle-même. L'image (rdfs:range) de rdfs:range est la classe rdfs:Class. Cela stipule que toute ressource qui est la valeur d'une propriété rdfs:range est une instance de la classe rdfs:Class.

La propriété rdfs:range s'applique aux propriétés. On peut le représenter en RDF avec la propriété rdfs:domain. Le domaine (rdfs:domain) de rdfs:range est la classe rdf:Property. Cela stipule que toute ressource avec une propriété rdfs:range est une instance de la classe rdf:Property.

3.2 rdfs:domain

La propriété rdfs:domain est une instance de la classe rdf:Property, utilisée pour déclarer qu'une ressource avec une propriété donnée est une instance d'une ou plusieurs classes.

Un triplet de la forme :

P rdfs:domain C

stipule que P est une instance de la classe rdf:Property, que C est une instance de la classe rdfs:Class et que les ressources dénotées par les sujets des triplets dont le prédicat est P sont des instances de la classe C.

Lorsqu'une propriété P a plus d'une propriété rdfs:domain, les ressources dénotées par les sujets des triplets de prédicat P sont des instances de toutes les classes déclarées par les propriétés rdfs:domain.

La propriété rdfs:domain peut s'appliquer à elle-même. Le domaine (rdfs:domain) de rdfs:domain est la classe rdf:Property. Cela stipule que toute ressource avec une propriété rdfs:domain est une instance de la classe rdf:Property.

L'image (rdfs:range) de rdfs:domain est la classe rdfs:Class. Cela stipule que toute ressource qui est la valeur d'une propriété rdfs:domain est une instance de la classe rdfs:Class.

3.3 rdf:type

La propriété rdf:type est une instance de la classe rdf:Property, utilisée pour déclarer qu'une ressource est une instance d'une classe.

Un triplet de la forme :

R rdf:type C

stipule que C est une instance de la classe rdfs:Class et que R est une instance de C.

Le domaine (rdfs:domain) de rdf:type est la classe rdfs:Resource. L'image (rdfs:range) de rdf:type est la classe rdfs:Class.

3.4 rdfs:subClassOf

La propriété rdfs:subClassOf est une instance de la classe rdf:Property, utilisée pour déclarer que toutes les instances d'une classe sont des instances d'une autre.

Un triplet de la forme :

C1 rdfs:subClassOf C2

stipule que C1 est une instance de la classe rdfs:Class, que C2 est une instance de rdfs:Class et que C1 est une sous-classe de C2. La propriété rdfs:subClassOf est transitive.

Le domaine (rdfs:domain) de rdfs:subClassOf est la classe rdfs:Class. L'image (rdfs:range) de rdfs:subClassOf est la classe rdfs:Class.

3.5 rdfs:subPropertyOf

La propriété rdfs:subPropertyOf est une instance de la classe rdf:Property, utilisée pour déclarer que toutes les ressources reliées par une propriété sont également reliées par une autre.

Un triplet de la forme :

P1 rdfs:subPropertyOf P2

stipule que P1 est une instance de la classe rdf:Property, que P2 est une instance de rdf:Property et que P1 est une sous-propriété de P2. La propriété rdfs:subPropertyOf est transitive.

Le domaine (rdfs:domain) de rdfs:subPropertyOf est la classe rdf:Property. L'image (rdfs:range) de rdfs:subPropertyOf est la classe rdf:Property.

3.6 rdfs:label

La propriété rdfs:label est une instance de la classe rdf:Property, utilisée pour fournir une version lisible par un humain du nom d'une ressource.

Un triplet de la forme :

R rdfs:label L

stipule que L est une étiquette lisible par un humain pour R.

Le domaine (rdfs:domain) de rdfs:label est la classe rdfs:Resource. L'image (rdfs:range) de rdfs:label est la classe rdfs:Literal.

Les étiquettes multilingues sont gérées en utilisant la possibilité d'étiquetage de langue des littéraux RDF.

3.7 rdfs:comment

La propriété rdfs:comment est une instance de la classe rdf:Property, utilisée pour fournir une description lisible par un humain d'une ressource.

Un triplet de la forme :

R rdfs:comment L

stipule que L est une description lisible par un humain de R.

Le domaine (rdfs:domain) de rdfs:comment est la classe rdfs:Resource. L'image (rdfs:range) de rdfs:comment est la classe rdfs:Literal.

Un commentaire textuel aide à clarifier la signification des classes et propriétés RDF. Une telle documentation incorporée (in-line documentation) complète l'utilisation de techniques formelles (langages d'ontologie et de règle) et informelles (documentation dans le texte, exemples, jeux d'essais). Plusieurs formes de documentation peuvent être combinées pour indiquer la signification attendue des classes et propriétés décrites dans un vocabulaire RDF. Puisque les vocabulaires RDF sont exprimés comme des graphes RDF, on peut utiliser les vocabulaires définis dans d'autres espaces de noms pour fournir une documentation plus riche.

La documentation multilingue est gérée au travers de la possibilité d'étiquetage de lange des littéraux RDF.

4. Utilisation du vocabulaire de domaine et d'image (informatif)

Cette spécification introduit un vocabulaire RDF pour décrire l'utilisation concrète des propriétés et classes dans les données RDF. Par exemple, un vocabulaire RDF pourrait décrire les limitations sur les types de valeurs appropriés pour une propriété, ou sur les classes auxquelles il est logique d'attribuer de telles propriétés.

Le langage de description de vocabulaire RDF fournit un mécanisme pour décrire cette information mais n'indique pas si une application devrait l'utiliser ou comment l'utiliser. Par exemple, alors qu'un vocabulaire RDF peut affirmer que l'on utilise une propriété author pour indiquer les ressources qui sont des instances de la classe Person, il n'indique pas si une application devrait traiter cette information d'image ni comment la traiter. Des applications différentes utiliseront cette information de diverses façons. Ainsi, des outils de vérification des données l'utiliseraient pour aider à la découverte d'erreurs dans un ensemble de données, un éditeur interactif suggérerait des valeurs appropriées et une application de raisonnement l'utiliserait pour inférer d'autres informations à partir des données d'instance (instance data).

Les vocabulaires RDF peuvent décrire des relations entre des éléments de vocabulaire provenant de plusieurs vocabulaires développés indépendamment. Puisque des références URI sont utilisées pour identifier les classes et les propriétés dans le Web, il est possible de créer de nouvelles propriétés qui ont un domaine ou une image dont la valeur est une classe définie dans un autre espace de noms (namespace).

5. Autre vocabulaire

Cette section définit d'autres classes et propriétés, y compris des structures pour la représentation des conteneurs et des déclarations RDF (RDF declarations), et pour le déploiement des descriptions de vocabulaires RDF dans le Web.

5.1 Classes et propriétés de conteneur

Les conteneurs RDF sont des ressources utilisées pour représenter des collections. On peut trouver une introduction aux conteneurs RDF avec des exemples dans l'Initiation à RDF [RDF-PRIMER]. La même ressource peut apparaître plusieurs fois dans un conteneur. À la différence du monde physique, un conteneur peut se contenir lui-même.

Trois types de conteneurs différents sont définis. Bien que la sémantique formelle [RDF-SEMANTICS] des trois classes de conteneur soient identique, différentes classes peuvent servir à indiquer d'autres informations de manière informelle. On utilise un conteneur rdf:Bag pour indiquer un conteneur non ordonné. On utilise un conteneur rdf:Seq pour indiquer que la succession (order) marquée par l'ordre numérique des propriétés d'appartenance de conteneur (container membership properties) du conteneur est significative. On utilise un conteneur rdf:Alt pour indiquer qu'un traitement typique du conteneur sera de sélectionner l'un de ses membres.

Tout comme la propriété d'un poulailler d'être fabriqué en bois ne veut pas dire que toutes les poules sont en bois, la propriété d'un conteneur n'est pas nécessairement une propriété de tous ses membres.

Les conteneurs RDF sont définis par les classes et propriétés suivantes.

5.1.1 rdfs:Container

La classe rdfs:Container est une superclasse des classes de conteneur RDF, à savoir rdf:Bag, rdf:Seq, rdf:Alt.

5.1.2 rdf:Bag

La classe rdf:Bag est la classe des conteneurs de type sac ('Bag' containers) RDF. C'est une sous-classe de rdfs:Container. Bien qu'elle ne diffère pas formellement de rdf:Seq ou de rdf:Alt, la classe rdf:Bag est utilisée conventionnellement pour indiquer à un lecteur humain que le conteneur n'est pas ordonné.

5.1.3 rdf:Seq

La classe rdf:Seq est la classe des conteneurs de type séquence ('Sequence' containers) RDF. C'est une sous-classe de rdfs:Container. Bien qu'elle ne diffère pas formellement de rdf:Bag ou de rdf:Alt, la classe rdf:Seq est utilisée conventionnellement pour indiquer à un lecteur humain que l'ordre numérique des propriétés d'appartenance de conteneur du conteneur a une importance.

5.1.4 rdf:Alt

La classe rdf:Alt est la classe des conteneurs de type choix ('Alternative' containers) RDF. C'est une sous-classe de rdfs:Container. Bien qu'elle ne diffère pas formellement de rdf:Seq ou de rdf:Bag, la classe rdf:Alt est utilisée conventionnellement pour indiquer à un lecteur humain que le traitement typique sera de sélectionner l'un des membres du conteneur. Le premier membre du conteneur, c'est-à-dire la valeur de la propriété rdf:_1, est le choix par défaut.

5.1.5 rdfs:ContainerMembershipProperty

La classe rdfs:ContainerMembershipProperty a pour instances les propriétésrdf:_1, rdf:_2, rdf:_3, etc., utilisées pour énoncer qu'une ressource est membre d'un conteneur. La classe rdfs:ContainerMembershipProperty est une sous-classe de rdf:Property. Chaque instance de rdfs:ContainerMembershipProperty est une sous-propriété (rdfs:subPropertyOf) de la propriété rdfs:member.

Soit un conteneur C, un triplet de la forme :

C rdf:_nnn O

nnn est la représentation décimale d'un entier supérieur à 0 sans zéro de tête, stipule que O est un membre du conteneur C.

Les propriétés d'appartenance de conteneur peuvent s'appliquer à d'autres ressources que des conteneurs.

5.1.6 rdfs:member

La propriété rdfs:member est une instance de la classe rdf:Property qui est une superpropriété de toutes les propriétés d'appartenance de conteneur, c'est-à-dire que chaque propriété d'appartenance de propriété a une relation rdfs:subPropertyOf à la propriété rdfs:member.

Le domaine (rdfs:domain) de rdfs:member est la classe rdfs:Resource. L'image (rdfs:range) de rdfs:member est la classe rdfs:Resource.

5.2 Collections RDF

Les conteneurs RDF sont ouverts au sens où les spécifications RDF centrales ne définissent aucun mécanisme pour déclarer qu'il n'y a pas d'autres membres. Le vocabulaire de collection RDF de classes et propriétés peut décrire une collection fermée, c'est-à-dire une collection qui n'admet pas d'autres membres. Le lecteur est invité à consulter la section traitant des collections dans l'initiation à RDF pour une introduction informelle aux collections avec des exemples.

Une collection se présente comme une liste d'éléments (items), une représentation familière à ceux ayant une expérience de Lisp et de langages de programmation similaires. Il existe une notation abrégée dans la spécification de la syntaxe RDF/XML [RDF-SYNTAX] pour la représentation des collections.

Note : RDFS n'impose pas qu'il n'y ait qu'un seul premier élément d'une structure de type liste (list-like structure), ou même qu'une structure de type liste ait un premier élément.

5.2.1 rdf:List

La classe rdf:List est une instance de la classe rdfs:Class, utilisable pour construire des descriptions de listes et d'autres structures de type liste.

5.2.2 rdf:first

La propriété rdf:first est une instance de la classe rdf:Property, utilisable pour construire des descriptions de listes et d'autres structures de type liste.

Un triplet de la forme :

L rdf:first O

stipule qu'il existe une relation de premier élément (first-element relation) entre L et O.

Le domaine (rdfs:domain) de rdf:first est la classe rdf:List. L'image (rdfs:range) de rdf:first est la classe rdfs:Resource.

5.2.3 rdf:rest

La propriété rdf:rest est une instance de la classe rdf:Property, utilisable pour construire des descriptions de listes et d'autres structures de type liste.

Un triplet de la forme :

L rdf:rest O

stipule qu'il existe une relation de reste de liste (rest-of-list relation) entre L et O.

Le domaine (rdfs:domain) de rdf:rest est la classe rdf:List. L'image (rdfs:range) de rdf:rest est la classe rdf:List.

5.2.4 rdf:nil

La ressource rdf:nil est une instance de la classe rdf:List, utilisable pour représenter une liste vide ou une autre structure de type liste.

Un triplet de la forme :

L rdf:rest rdf:nil

stipule que L est une instance de la classe rdf:List qui a un seul élément ; on peut indiquer cet élément en utilisant la propriété rdf:first.

5.3 Vocabulaire de réification

La première spécification du modèle et de la syntaxe RDF [RDFMS] définissait un vocabulaire pour décrire les déclarations RDF sans les énoncer. Cette spécification ne fournissait pas de sémantique formelle pour ce vocabulaire, et la définition informelle proposée était quelque peu incohérente. La spécification RDF actuelle n'attribue pas une sémantique formelle normative à ce vocabulaire. Toutefois, on décrit ici une signification attendue de ce vocabulaire (qui éclaire généralement l'intention de la définition [RDFMS]). On peut trouver une introduction informelle au vocabulaire de réification avec des exemples dans l'initiation à RDF [RDF-PRIMER].

5.3.1 rdf:Statement

La classe rdf:Statement est une instance de la classe rdfs:Class. Elle sert à représenter la classe des déclarations RDF. Une déclaration RDF est la déclaration effectuée par un atome (token) d'un triplet RDF. Le sujet d'une déclaration RDF est l'instance de rdfs:Resource identifiée par le sujet du triplet. Le prédicat d'une déclaration RDF est l'instance de rdf:Property identifiée par le prédicat du triplet. L'objet d'une déclaration RDF est l'instance de rdfs:Resource identifiée par l'objet du triplet. La classe rdf:Statement est dans le domaine des propriétés rdf:predicate, rdf:subject et rdf:object. Des instances rdf:Statement individuelles différentes peuvent avoir les mêmes valeurs pour leurs propriétés rdf:predicate, rdf:subject et rdf:object.

5.3.2 rdf:subject

La propriété rdf:subject est une instance de la classe rdf:Property, utilisée pour énoncer le sujet d'une déclaration.

Un triplet de la forme :

S rdf:subject R

stipule que S est une instance de la classe rdf:Statement et que le sujet de S est R.

Le domaine (rdfs:domain) de rdf:subject est la classe rdf:Statement. L'image (rdfs:range) de rdf:subject est la classe rdfs:Resource.

5.3.3 rdf:predicate

La propriété rdf:predicate est une instance de la classe rdf:Property, utilisée pour énoncer le prédicat d'une déclaration.

Un triplet de la forme :

S rdf:predicate P

stipule que S est une instance de la classe rdf:Statement, que P est une instance de la classe rdf:Property et que le prédicat de S est P.

Le domaine (rdfs:domain) de rdf:predicate est la classe rdf:Statement et l'image (rdfs:range) de rdf:predicate est la classe rdfs:Resource.

5.3.4 rdf:object

La propriété rdf:object est une instance de la classe rdf:Property, utilisée pour énoncer l'objet d'une déclaration.

Un triplet de la forme :

S rdf:object O

stipule que S est une instance de la classe rdf:Statement et que l'objet de S est O.

Le domaine (rdfs:domain) de rdf:object est la classe rdf:Statement. L'image (rdfs:range) de rdf:object est la classe rdfs:Resource.

5.4 Propriétés auxilliaires

Les propriétés auxilliaires suivantes sont définies dans les espaces de noms du cœur RDF (RDF core).

5.4.1 rdfs:seeAlso

La propriété rdfs:seeAlso est une instance de la classe rdf:Property, utilisée pour indiquer une ressource susceptible de fournir des informations supplémentaires à propos de la ressource sujet.

Un triplet de la forme :

S rdfs:seeAlso O

stipule que la ressource O peut fournir des informations supplémentaires à propos de S. Il est possible de récupérer des représentations de O du Web, mais ce n'est pas obligatoire. Lorsque de telles représentations sont récupérables, aucune contrainte ne s'applique à leur format.

Le domaine (rdfs:domain) de rdfs:seeAlso est la classe rdfs:Resource. L'image (rdfs:range) de rdfs:seeAlso est la classe rdfs:Resource.

5.4.2 rdfs:isDefinedBy

La propriété rdfs:isDefinedBy est une instance de la classe rdf:Property, utilisée pour indiquer une ressource définissant la ressource sujet. Cette propriété est utilisable pour indiquer un vocabulaire RDF dans lequel une ressource est décrite.

Un triplet de la forme :

S rdfs:isDefinedBy O

stipule que la ressource O définit S. Il est possible de récupérer des représentations de O du Web, mais ce n'est pas obligatoire. Lorsque de telles représentations sont récupérables, aucune contrainte ne s'applique à leur format. La propriété rdfs:isDefinedBy est une sous-propriété de rdfs:seeAlso.

Le domaine (rdfs:domain) de rdfs:isDefinedBy est la classe rdfs:Resource. L'image (rdfs:range) de rdfs:isDefinedBy est la classe rdfs:Resource.

5.4.3 rdf:value

La propriété rdf:value est une instance de la classe rdf:Property, utilisable pour décrire des valeurs structurées.

La propriété rdf:value n'a aucune signification en soi. Elle est fournie comme un élément de vocabulaire (piece of vocabulary) que l'on peut utiliser dans des idiomes (idioms) comme illustré dans l'exemple 16 de l'Initiation à RDF [RDF-PRIMER]. Malgré l'absence d'une spécification formelle de la signification de cette propriété, elle vaut d'être définie pour encourager l'utilisation d'un idiome commun dans les exemples de ce type.

Le domaine (rdfs:domain) de rdf:value est la classe rdfs:Resource. L'image (rdfs:range) de rdf:value est la classe rdfs:Resource.

6. Récapitulatif de RDF Schema (informatif)

Ce tableau présente une vue d'ensemble du vocabulaire de RDF associant le vocabulaire définit à l'origine dans la Spécification du modèle et de la syntaxe RDF aux classes et propriétés apparues avec RDF Schema.

6.1 Classes RDF

Nom de la classe commentaire
rdfs:Resource La classe des ressources, toute chose.
rdfs:Literal La classe des valeurs littérales, par exemple les chaînes textuelles et les entiers.
rdf:XMLLiteral La classe des valeurs littérales XML.
rdfs:Class La classe des classes.
rdf:Property La classe des propriétés RDF.
rdfs:Datatype La classe des types de données RDF.
rdf:Statement La classe des déclarations RDF.
rdf:Bag La classe des conteneurs non ordonnés.
rdf:Seq La classe des conteneurs ordonnés.
rdf:Alt La classe des conteneurs d'options (alternatives).
rdfs:Container La classe des conteneurs RDF.
rdfs:ContainerMembershipProperty La classe des propriétés d'appartenance de conteneur, à savoir rdf:_1, rdf:_2, etc., toutes des sous-propriétés de rdf:member.
rdf:List La classe des listes RDF.

6.2 Propriétés RDF

Nom de la propriété commentaire domaine image
rdf:type Le sujet est une instance d'une classe. rdfs:Resource rdfs:Class
rdfs:subClassOf Le sujet est une sous-classe d'une classe. rdfs:Class rdfs:Class
rdfs:subPropertyOf Le sujet est une sous-propriété d'une propriété. rdf:Property rdf:Property
rdfs:domain Un domaine de la propriété sujet. rdf:Property rdfs:Class
rdfs:range Une image de la propriété sujet. rdf:Property rdfs:Class
rdfs:label Un nom lisible par un humain pour le sujet. rdfs:Resource rdfs:Literal
rdfs:comment Une description de la ressource sujet. rdfs:Resource rdfs:Literal
rdfs:member Un membre de la ressource sujet. rdfs:Resource rdfs:Resource
rdf:first Le premier élément dans la liste RDF sujet. rdf:List rdfs:Resource
rdf:rest Le reste de la liste RDF sujet après le premier élément. rdf:List rdf:List
rdfs:seeAlso Autre information à propos de la ressource sujet. rdfs:Resource rdfs:Resource
rdfs:isDefinedBy La définition de la ressource sujet. rdfs:Resource rdfs:Resource
rdf:value Une propriété idiomatique utilisée pour des valeurs structurées (cf. l'initation à RDF pour un exemple d'utilisation). rdfs:Resource rdfs:Resource
rdf:subject Le sujet de la déclaration RDF sujet. rdf:Statement rdfs:Resource
rdf:predicate Le prédicat de la déclaration RDF sujet. rdf:Statement rdfs:Resource
rdf:object L'objet de la déclaration RDF sujet. rdf:Statement rdfs:Resource

Outre ces classes et propriétés, RDF utilise aussi des propriétés intitulées rdf:_1, rdf:_2, rdf:_3, etc., chacune étant à la fois une sous-propriété de rdfs:member et une instance de la classe rdfs:ContainerMembershipProperty. Il y a également une instance de la classe rdf:List intitulée rdf:nil qui est une liste (rdf:List) vide.


7. Références

7.1 Références normatives

[RDF-CONCEPTS]
Cadre de description de ressource (RDF) — Concepts et syntaxe abstraite, Graham Klyne et Jeremy J. Carroll, rédacteurs, recommandation du W3C, 10 février 2004, http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/. Dernière version disponible à http://www.w3.org/TR/rdf-concepts/.
[RDF-SEMANTICS]
Sémantique RDF, Patrick Hayes, rédacteur, recommandation du W3C, 10 février 2004, http://www.w3.org/TR/2004/REC-rdf-mt-20040210/. Dernière version disponible à http://www.w3.org/TR/rdf-mt/.
[RDF-SYNTAX]
Spécification de la syntaxe RDF/XML (révisée), Dave Beckett, rédacteur, recommandation du W3C, 10 février 2004, http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/. Dernière version disponible à http://www.w3.org/TR/rdf-syntax-grammar/.
[RDF-TESTS]
Jeux d'essais RDF, Jan Grant et Dave Beckett, rédacteurs, recommandation du W3C, 10 février 2004, http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/. Dernière version disponible à http://www.w3.org/TR/rdf-testcases/.
[RDFMS]
Modèle et syntaxe du cadre de description de ressource (RDF), recommandation du W3C, 22 février 1999, http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/
[XMLNS]
Espaces de noms dans XML, recommandation du W3C, 14 janvier 1999, http://www.w3.org/TR/1999/REC-xml-names-19990114/.

7.2 Références informatives

[RDF-PRIMER]
Initiation à RDF, Frank Manola et Eric Miller, rédacteurs, recommandation du W3C, 10 février 2004, http://www.w3.org/TR/2004/REC-rdf-primer-20040210/ . Dernière version disponible à http://www.w3.org/TR/rdf-primer/.
[BERNERS-LEE98]
What the Semantic Web can represent, Tim Berners-Lee, 1998, http://www.w3.org/DesignIssues/RDFnot.html.
[EXTWEB]
Web Architecture: Extensible Languages, Tim Berners-Lee et Dan Connolly, 1998, http://www.w3.org/TR/1998/NOTE-webarch-extlang-19980210.
[DCMI]
Dublin Core Metadata Initiative, http://www.dublincore.org/.
[OWL]
Référence du langage d'ontologie web OWL, Mike Dean et Guus Schreiber, rédacteurs, recommandation du W3C, 10 février 2004, http://www.w3.org/TR/2004/REC-owl-ref-20040210/. Dernière version disponible à http://www.w3.org/TR/owl-ref/.
[SCHEMA-ARCH]
The Cambridge Communiqué, note du W3C, 7 octobre 1999, Swick and Thompson, http://www.w3.org/TR/1999/NOTE-schema-arch-19991007.
[XML]
Langage de balisage extensible (XML) 1.0, recommandation du W3C, 10 février 1988, section 3.2 Déclarations du type d'élément, http://www.w3.org/TR/1998/REC-xml-19980210.html#elemdecls.

8. Remerciements

La conception de RDF Schema était à l'origine le fait du groupe de travail RDF Schema (1997-2000). La spécification courante consiste essentiellement en une clarification de cette conception et elle a grandement bénéficié du labeur des membres du groupe de travail RDF Core et des retours de mise en œuvre de nombreux membres du groupe d'intérêt RDF.

David Singer de chez IBM était le président du groupe RDF Schema d'origine pendant tout le développement de cette spécification ; nous remercions David de ses efforts et IBM de leur soutien à son égard et du nôtre dans cette entreprise. Des remerciements particuliers vont aussi à Andrew Layman pour son travail de rédaction sur les premières versions de cette spécification.

Les membres du groupe de travail RDF Schema d'origine comprenaient :

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, anciennement chez 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.)

Changements

Voici un aperçu des principaux changements apportés à cette spécification, les derniers d'abord, depuis la version préliminaire en dernier appel du 23 janvier 2003. Cf. le document de suivi des problèmes en dernier appel pour le détail des problèmes spécifiques soulevés à propos de cette spécification.

Annexe A — RDF Schema en RDF/XML

On donne ici une description RDFS du vocabulaire RDF et du vocabulaire RDFS dans la syntaxe RDF/XML. Elle comprend des déclarations décrivant les ressources RDF introduites à l'origine par la spécification du modèle et de la syntaxe RDF de 1999, ainsi que les définitions de ressources introduites dans le vocabulaire RDF Schema central.

Ce document est également disponible dans un document RDF/XML séparé. Il ne correspond pas forcément au contenu publié à l'adresse URI d'espace de noms RDF ou à l'adresse URI d'espace de noms RDFS, qui peut évoluer dans le temps.

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

<owl:Ontology rdf:about="http://www.w3.org/2000/01/rdf-schema#"/>

<rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Resource">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>Resource</rdfs:label>
  <rdfs:comment>The class resource, everything.</rdfs:comment>
</rdfs:Class>

<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>type</rdfs:label>
  <rdfs:comment>The subject est une instance de a class.</rdfs:comment>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Property>

<rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Class">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>Class</rdfs:label>
  <rdfs:comment>The class of classes.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdfs:Class>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#subClassOf">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>subClassOf</rdfs:label>
  <rdfs:comment>The subject is a subclass of a class.</rdfs:comment>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#subPropertyOf">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>subPropertyOf</rdfs:label>
  <rdfs:comment>The subject is a subproperty of a property.</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>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>Property</rdfs:label>
  <rdfs:comment>The class of RDF properties.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdfs:Class>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#comment">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>comment</rdfs:label>
  <rdfs:comment>A description of the subject resource.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#label">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>label</rdfs:label>
  <rdfs:comment>A human-readable name for the subject.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#domain">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>domain</rdfs:label>
  <rdfs:comment>A domain of the subject property.</rdfs:comment>
 <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#range">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>range</rdfs:label>
  <rdfs:comment>A range of the subject property.</rdfs:comment>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/2000/01/rdf-schema#seeAlso">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>seeAlso</rdfs:label>
  <rdfs:comment>Further 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 rdf:about="http://www.w3.org/2000/01/rdf-schema#isDefinedBy">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#seeAlso"/>
  <rdfs:label>isDefinedBy</rdfs:label>
  <rdfs:comment>The defininition of 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:about="http://www.w3.org/2000/01/rdf-schema#Literal">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>Literal</rdfs:label>
  <rdfs:comment>The class of literal values, eg. textual strings and integers.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>Statement</rdfs:label>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  <rdfs:comment>The class of RDF statements.</rdfs:comment>
</rdfs:Class>

<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#subject">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>subject</rdfs:label>
  <rdfs:comment>The subject of the subject RDF statement.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>predicate</rdfs:label>
  <rdfs:comment>The predicate of the subject RDF statement.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#object">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>object</rdfs:label>
  <rdfs:comment>The object of the subject RDF statement.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Property>

<rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Container">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>Container</rdfs:label>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  <rdfs:comment>The class of RDF containers.</rdfs:comment>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>Bag</rdfs:label>
  <rdfs:comment>The class of unordered containers.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>Seq</rdfs:label>
  <rdfs:comment>The class of ordered containers.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>Alt</rdfs:label>
  <rdfs:comment>The class of containers of alternatives.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/>
</rdfs:Class>

<rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#ContainerMembershipProperty">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>ContainerMembershipProperty</rdfs:label>
  <rdfs:comment>The class of container membership properties, rdf:_1, rdf:_2, ...,
                    all of which are sub-properties of 'member'.</rdfs:comment>
  <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/2000/01/rdf-schema#member">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>member</rdfs:label>
  <rdfs:comment>A member of the subject resource.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#value">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>value</rdfs:label>
  <rdfs:comment>Idiomatic property used for structured values.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Property>

<!-- the following are new additions, Nov 2002 -->

<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#List">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>List</rdfs:label>
  <rdfs:comment>The class of RDF Lists.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/></rdfs:Class>

<rdf:List rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>nil</rdfs:label>
  <rdfs:comment>
   The empty list, with no items in it.
   If the rest of a list is nil then the list has no more items in it.
  </rdfs:comment>
</rdf:List>

<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#first">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>first</rdfs:label>
  <rdfs:comment>The first item in the subject RDF list.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Property>

<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>rest</rdfs:label>
  <rdfs:comment>The rest of the subject RDF list after the first item.</rdfs:comment>
  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
  <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
</rdf:Property>

<rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Datatype">
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
  <rdfs:label>Datatype</rdfs:label>
  <rdfs:comment>The class of RDF datatypes.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdfs:Class>
	
<rdfs:Datatype rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> 
  <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  <rdfs:label>XMLLiteral</rdfs:label>
  <rdfs:comment>The class of XML literal values.</rdfs:comment>
</rdfs:Datatype>

<rdf:Description rdf:about="http://www.w3.org/2000/01/rdf-schema#">
  <rdfs:seeAlso rdf:resource="http://www.w3.org/2000/01/rdf-schema-more"/>
</rdf:Description>

</rdf:RDF>

RDF/XML Metadata