Veuillez consulter la page des errata →vf de ce document, laquelle peut contenir des corrections normatives.
Cf. également d'éventuelles traductions.
Copyright © 2004 W3C™ (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
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.
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/.
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.
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.
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.
C'est la classe des ressources qui sont des classes RDF. La classe rdfs:Class est une instance de rdfs:Class.
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.
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.
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.
La classe rdf:Property est la classe des propriétés RDF. La classe rdf:Property est une instance
de rdfs:Class.
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].
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:rangeC
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.
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:domainC
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.
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:typeC
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.
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:subClassOfC2
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.
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:subPropertyOfP2
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.
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:labelL
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.
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:commentL
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.
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).
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.
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.
La classe rdfs:Container est une superclasse des classes de conteneur RDF,
à savoir rdf:Bag, rdf:Seq, rdf:Alt.
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é.
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.
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.
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
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.
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.
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.
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.
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:firstO
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.
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:restO
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.
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:restrdf: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.
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].
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.
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:subjectR
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.
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:predicateP
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.
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:objectO
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.
Les propriétés auxilliaires suivantes sont définies dans les espaces de noms du cœur RDF (RDF core).
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:seeAlsoO
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.
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:isDefinedByO
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.
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.
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.
| 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. |
| 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.
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.)
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.
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>
|