BWM's review of:
http://www.w3.org/2001/sw/RDFCore/Schema/200211/
Critical to fix for this draft are in strong orange and are listed here:
Critical 4
Errors and other issues that should be addressed by the editor, but necessarily for this publication, are in strong purple. Suggested replacement text is in normal purple.
Editorial comments in strong green. Suggested replace text in normal green. These comments are suggestions to the editor and may be adopted or not at the editoris discretion.
Occasionally, there will be something I particularly like noted in strong blue, in what case there isn't much need for suggested replacement text.
Copyright©2002 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
The Resource Description Framework (RDF) is a general-purpose language for representing information in the Web. This specification describes how to use RDF to describe RDF vocabularies. This specification also defines a basic vocabulary for this purpose, as well as conventions that can be used by Semantic Web applications to support more sophisticated RDF vocabulary description.
This section describes the status of this document at the time of its publication. Other documents may supersede this document.
This document is a Working Draft of the World Wide Web Consortium RDF Core Working group, and has been produced as part of the Semantic Web Activity.
The Resource Description Framework is part of the W3C Semantic Web Activity. The goal of this activity, and of RDF specifically, is to produce a language for the exchange of machine-understandable information using the Web.
The RDF Vocabulary Description Language presented here is an editorial
revision revision of the language described in the Working Draft of
April 30th 2002, incorporating editorial suggestions received in
review comments. The specification has been revised in the light of
feedback and extended to include the new rdfs:Datatype
class
used by RDF's datatyping mechanism, as well as the rdf:List
,
rdf:first
, rdf:rest
and rdf:nil
constructs now supported by the RDF/XML syntax. Additional differences
between this document and the March 27th 2000
Candidate Recommendation are described in the April 30th 2002
Working Draft.
@@ refs to other specs: RDF Model Theory [RDFMT] @@
In conformance with W3C policy requirements, known patent and IPR constraints associated with this Working Draft are detailed on the RDF Core Working Group Patent Disclosure page.
Comments on this document are invited and should be sent to the public mailing list www-rdf-comments@w3.org. An archive of comments is available at http://lists.w3.org/Archives/Public/www-rdf-comments/.
It is inappropriate to use a W3C Working Draft as reference material or to cite them as other than "work in progress". This is work in progress and does not imply endorsement by, or the consensus of W3C. A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR/.
The Resource Description Framework (RDF) defines a simple model for describing relationships among resources in terms of named properties and values. RDF properties may be thought of as attributes of resources and in this sense correspond to traditional attribute-value pairs. RDF properties also represent relationships between resources. As such, the RDF data model can therefore resemble an entity-relationship diagram. The RDF data model itself, however, provides no mechanisms for describing these properties, nor does it provide any mechanisms for describing the relationships between these properties and other resources. Data model is a dodgy term. Delete sentence about entity relationship diagrams and replace next with: The core RDF specification provides no means of describing these properties nor for describing relationships between them and other resources. That is the role of this specification. The RDF vocabulary description language defines classes and properties that can be used to describe other classes and properties.
Resource description communities require the ability to say certain things about certain kinds of resources. For describing bibliographic resources, for example, descriptive attributes including "author", "title", and "subject" are common. For digital certification, attributes such as "checksum" and "authorization" are often required. The declaration of these properties (attributes) and their corresponding semantics are defined in the context of RDF as an RDF schema. A schema does not define the semantics of properties, it describes properties to some extent. A schema defines ditto not only the properties of the resource (e.g., title, author, subject, size, color, etc.) Hmm thats not a very property centric way of saying it. but may also define the kinds of resources being described (books, Web pages, people, companies, etc.).
RDF schemas Name and describe properties (attributes). A schema describes not only properties, but also categories of resources (books, Web pages, people, companies etc.) and the properties that may be used to describe them.
This document does not specify a vocabulary of descriptive elements s/elements/properties/ such as "author". Instead, it specifies some delete some mechanisms needed d/needed/ to define s/define/describe/ such elements s/elements/properties/, to name the classes of resources they may be used with, to restrict possible combinations of classes and relationships, and to help detect violations of those restrictions. ... to restrict properties to apply to only certain classes of resource and to restrict also the the values of properties to specific classes. Thus, d/thus,/ this document defines a vocabulary description language.
RDF's vocabulary description language, RDF Schema, is specified in terms of the basic RDF information model s/the basic RDF information model/RDF/ and delete to end. Need ref to concepts here. [@@concepts] - a graph structure describing resources and properties. All RDF vocabularies share some basic s/some basic/a/ common structure: they describe classes of resource and types of relationships between resources. This commonality allows for a finer finer that what? s/finer/fine/ grained mixing of machine-processable vocabularies, and addresses the need [EXTWEB] to create metadata in which statements can draw upon multiple vocabularies that are managed in a decentralized fashion by independent communities.
The RDF Schema approach to vocabulary description allows vocabulary designers to represent descriptions of classes and properties in the World Wide Web, for example by describing ways in which combinations of classes, properties and values can be used together meaningfully.
The remainder of this specification introduces the details of this approach. A simple example is presented here in diagrammatic form, illustrating the use of the RDF Schema vocabulary for describing classes and properties, and the connection to application-level data.
(JPEG and PNG versions of this image are available)
This example illustrates the way in which RDF can be used to describe real
world things (people, documents), the classes they fall into (such as
eg:Document
, eg:Person
), and the properties that
are used to relate members of these classes -- in this example the property
eg:author
. Through the use of RDF Schema, we can describe the
relationship between RDF properties (such as eg:author
) and
these classes of resource. In this example, we use RDF Schema to say that the
eg:author
property relates documents to people. The example also
shows that all documents are considered to be works, and that all people are
agents. An extension of this example might show a subproperty relationship
between eg:author
and the better known and more general Dublin
Core ([DCMI]) property dc:creator
.
Editorial note: this example is new material, replacing the more varied collection of examples used previously. The current draft does not yet present a full account of this example, nor include an RDF/XML test case based on the schema and instance data shown here. I like this example, though it doesn't illustrate multiple domain/range contraints.
The language defined in this specification consists of a collection of RDF
resources that can be used to describe properties of other RDF resources
(including properties) which define application-specific RDF vocabularies.
The core vocabulary is defined in a namespace informally called
'rdfs
' here, and identified by the URI reference
http://www.w3.org/2000/01/rdf-schema#
. This specification also
uses the prefix 'rdf
' to refer to the core RDF namespace
http://www.w3.org/1999/02/22-rdf-syntax-ns#
.
Editorial Note: this Working Draft does not propose a
change to the namespace URIs use, nor to the prefix 'rdfs' traditionally used
to indicate the vocabulary description language's namespace URI . The Working
Group seek feedback from implementors on the costs and benefits of moving to
a new RDFS namespace URI. Implementors should note that the description of
rdfs:domain
and rdfs:range
in this specification
differs from that in earlier versions of the RDF Schema specification.
The RDF Schema class and property system is similar to the type systems of
object-oriented programming languages such as Java. However, RDF differs from
many such systems in that instead of defining a class in terms of the
properties its instances may have, an RDF schema will define properties in
terms of the classes of resource to which they apply. This is the role of the
rdfs:domain
and rdfs:range
mechanisms described in
this specification. For example, we could define the eg:author
property to have a domain of eg:Document
and a range of
eg:Person
, whereas a classical OO system might typically define
a class eg:Book
with an attribute called eg:author
of type eg:Person
. Using the RDF approach, it is easy for others
to subsequently define additional properties with a domain of
Document
or a range of eg:Person
. This can be done
without the need to re-define the original description of these classes. One
benefit of the RDF property-centric approach is that it is very easy for
anyone to say anything they want about existing resources, which is one of
the architectural principles of the Web [BERNERS-LEE98].
This specification introduces an RDF vocabulary for describing the meaningful use of properties and classes in RDF data. For example, an RDF schema might describe limitations on the types of values that are appropriate for some property, or on the classes to which it makes sense to ascribe such properties.
RDF Schema provides a mechanism for describing this information, but does
not say whether or how an application should use it. For example, while an
RDF schema can assert that an author
property is used to
indicate resources that are members of the class Person ... property has values that are members of the class
...
, it does not say whether or how an application should act
in processing that class information s/class
information/assertion/. Different applications will use this
information in different ways. For example, a d/a/ data checking tools might
use this to help discover errors in some dataset, an interactive editor might
suggest appropriate values, and a reasoning application might use it to infer
additional information from instance data.
RDF schemas can describe relationships between vocabulary items from
multiple independently developed schemas. Since URI references are used to
identify classes and properties in the Web, it is possible to create new
properties that have a domain
or range
whose value
is a class defined in another namespace.
This specification does not attempt to enumerate all the possible forms of vocabulary description that are useful for representing the meaning of RDF classes and properties. Instead, the RDF vocabulary description strategy is to acknowledge that there are many techniques through which the meaning of classes and properties can be indicated, and to establish some conventions for using RDF/XML to describe the characteristics of RDF classes and properties.
Richer schema or 'ontology' languages such as DAML+OIL, W3C WebOnt language, inference rule languages and other formalisms (for example temporal logics) will each contribute to our ability to capture meaningful generalizations about data in the Web. RDF vocabulary designers can create and deploy Semantic Web applications using the basic d/the basic/ RDF Schema 1.0 facilities, while exploring richer vocabulary description languages that share this general approach.
This table presents an overview of the basic vocabulary of RDF, drawing together vocabulary originally defined in the RDF Model and Syntax specification with classes and properties that originate with RDF Schema. I found this sentence hard to read for some reason. This table presents a summary of the classes and properties defined by RDF and RDF Schema. Each class and property is described in more detail below. The core classes and properties define the machinery of RDF's vocabulary description language. The utility and container vocabulary provide additional support for describing collections and RDF statements, and for deployment of RDF vocabulary descriptions on the World Wide Web.
Class name | comment |
---|---|
rdfs:Resource | The class Resource. |
rdfs:Class | The concept of Class |
rdf:Property | The concept of a property. |
rdfs:Literal | The class rdfs:Literal represents the set of literal
values, eg. textual strings. |
rdf:Statement | The class of RDF statements. |
rdfs:Container | This represents the set Containers. The class of RDF containers |
rdf:Bag | An unordered collection. The class of unordered containers |
rdf:Seq | An ordered collection. The class of ordered containers |
rdf:Alt | A collection of alternatives. The class of alternative containers |
rdfs:ContainerMembershipProperty | The container membership properties, rdf:_1, rdf:_2, ..., all of which are sub-properties of 'member'. The class of propertie used to assert membership of a container, rdf:_1, RDF:_2 ..., all of which are sub-properties of rdfs:member. |
rdf:List? I'm not quites ure what you are doing here. Picking out the vocabulary from the older specs beforing adding in the new? Is that valuable? rdfs:Datatype
Property name | comment | domain | range |
---|---|---|---|
rdfs:isDefinedBy | Indicates the namespace of a resource | rdfs:Resource | rdfs:Resource |
rdf:subject | The subject of an RDF statement. | rdf:Statement | rdfs:Resource |
rdf:predicate | the predicate of an RDF statement. | rdf:Statement | rdf:Property |
rdf:object | The object of an RDF statement. | rdf:Statement | not specified |
rdf:type | Indicates membership of a class | rdfs:Resource | rdfs:Class |
rdfs:member | a member of a container | rdfs:Container | not specified |
rdfs:subClassOf | Indicates membership of a class | rdfs:Class | rdfs:Class |
rdf:value | Identifies the principal value (usually a string) of a property when the property value is a structured resource | rdfs:Resource | not specified |
rdfs:subPropertyOf | Indicates specialization of properties | rdf:Property | rdf:Property |
rdfs:comment | Use this for descriptions | rdfs:Resource | rdfs:Literal |
rdfs:label | Provides a human-readable version of a resource name. | rdfs:Resource | rdfs:Literal |
rdfs:domain | A domain class for a property type | rdf:Property | rdfs:Class |
rdfs:range | A range class for a property type | rdf:Property | rdfs:Class |
rdfs:seeAlso | A resource that provides information about the subject resource | rdfs:Resource | rdfs:Resource |
All things described by RDF are called resources, and are members
of the class rdfs:Resource
.
The class rdfs:Literal
represents the self-denoting nodes
called the 'literals' in the RDF graph structure. They are not self denoting.
The class rdfs:Literal
respresents the class of literal values such as strings and
integers. Property values such as textual
strings are examples of RDF literals.
This corresponds to the generic concept of a type or category of resource.
RDF class membership is used to represent types or categories of resource. Two classes may happen to have the same members, while remaining distinct resources. A Resources may be a member of more than one class. Note that rdfs:Class is a member of itself.
rdf:Property
represents those resources that are RDF
properties.
rds:Datatype
represents those resources that are RDF
datatypes.
@@crossref to MT, Concepts (here?); also to Syntax spec for datatype syntax.@@
The rdf:type
property indicates that a resource is a member
of a class.
When a resource has an rdf:type
property whose value is some
specific class, we say that the resource is an instance of or a member of (to be consistent with language
under rdfs:Class) the specified class.
The value of an rdf:type
property will always be a resource
that is an instance of rdfs:Class
. The resource known as
rdfs:Class
is itself a resource of rdf:type
rdfs:Class
.
The rdfs:subClassOf
property represents a specialization
relationship between classes of resource. s/./, that is, if class A is a subclass of B,
then all instances of A are also instances of B./ The
rdfs:subClassOf
property is transitive.
The property rdfs:subPropertyOf
is an instance of
rdf:Property
that is used to specify that one property is a
specialization of another. s/./ that
is, if P is a subproproperty of Q, and resource R has property P with a value
V, then R also has property Q with value V./ We really need to be able to
talk about statements here, but we can't because they haven't been
introduced. Or can we.
Sub-property hierarchies can be used to express hierarchies of range and
domain constraints. All rdfs:range
and rdfs:domain
properties that apply to an RDF property also apply to each of its
sub-properties.
Editorial Note: The term 'super-property' is sometimes
used to indicate the relationship between some property and another more
general property that it is a rdfs:subPropertyOf
. The current
name for this property (and also rdfs:subClassOf
, which might
better be labelled 'super-class'), may be somewhat confusing. The Working
Group is not currently inclined to change these names, but seeks implementor
feedback on the costs and benefits of such a change.
An instance of rdf:Property
that is used to indicate the
class(es) that the values of a property will be members of. ... is used to assert that the values of a property
are members of one or more classes.
The value of an rdfs:range
property is always a
Class
. The rdfs:range
property can itself be used
to express this: the rdfs:range
of rdfs:range
is
the class rdfs:Class
. This indicates that any resource that is
the value of a range property will be s/will be/is/ a class.
rdfs:range
property is only applied to properties. This can
also be represented in RDF using the rdfs:domain
property. The
rdfs:domain
of rdfs:range
is the class
rdf:Property
. This indicates that the range
property applies to resources that are themselves properties. An instance of rdf:Property
that is used to indicate the
class(es) that will have as members any resource that has the indicated
property. That was real hard to parse.
And pretty hard to write. We don't have the machinery to express this
easily. rdfs:domain is an instance of rdf:Property. It may be
applied only to other properties. Only instances of rdfs:Class may be values
of rdfs:domain. A property P having an rdfs:domain property with value C,
indicates that any resource with property P is a member of class C.
I'm not sure that's any better. Needs
more work.
The rdfs:domain
of rdfs:domain
is the class
rdf:Property
. This indicates that the domain property is used on
resources that are properties.
The rdfs:range
of rdfs:domain
is the class
rdfs:Class
. This indicates that any resource that is the value
of a domain property will be a class.
Editorial Note: these definitions are consistent with the
RDF Model Theory [RDFMT] formalization of RDF
Schema, but do not yet provide a full account of rdfs:range
and
rdfs:domain
. In particular, the use of multiple domain and range
properties should be shown as an RDF/XML test case, and integrated with the
example introduced above.
Sub-property hierarchies can be used to express hierarchies of range and
domain constraints. All rdfs:range
and rdfs:domain
properties that apply to an RDF property also apply to each of its
sub-properties.
The rdfs:label
property is used to provide a human-readable
version of a resource's name.
The rdfs:comment
property is used to provide a human-readable
description of a resource.
A textual comment helps clarify the meaning of RDF classes and properties. Such inline documentation complements the use of both formal techniques (Ontology and rule languages) and informal (prose documentation, examples, test cases). A variety of documentation forms can be combined to indicate the intended meaning of the classes and properties described in an RDF Schema.
Multilingual documentation of schemas is supported at the syntactic level
through use of the xml:lang
language tagging facility. Since RDF
schemas are expressed as RDF graphs, d/Since ...graphs, /
vocabularies defined in other namespaces may be used to
provide richer documentation.
RDF defines a number of additional classes and properties, including constructs for representing containers and RDF statements, and for deploying RDF vocabulary descriptions in the World Wide Web.
The rdfs:Container
class is a super-class of the RDF
Container classes, ie. rdf:Bag
, rdf:Seq
,
rdf:Alt
.
The rdf:Bag
class represents RDF's 'Bag' container construct,
and is a subclass of rdfs:Container
.
The rdf:Seq
class represents RDF's 'Sequence' container
construct, and is a subclass of rdfs:Container
.
The rdf:Alt
class represents RDF's 'Alt' container construct,
and is a subclass of rdfs:Container
.
The rdfs:ContainerMembershipProperty
class has as members the
property rdfs:member
and the properties _1, _2, _3
...
that can be used to indicate membership of Bag, Seq and Alt
containers. rdfs:ContainerMembershipProperty
is a subclass of
rdf:Property
. Each container membership property is a
rdfs:subPropertyOf
the rdfs:member
property.
The formal semantics of RDF [@@ref] does not distinguish between rdf:Bag, rdf:Seq and rdf:Alt. Formally, they are all equivalent ordered containers. However, rdf:Bag will normally be used to indicate that the order of the members is not significant. rdf:Seq will normally be used to indicate that this order is significant. rdf:Alt will be used to indicate the container represents a choice of values.
The rdfs:member
property is a super-property of the container
membership properties, and a member of the class
rdfs:ContainerMembershipProperty
.
(ie. each numbered container membership property has a
rdfs:subPropertyOf
relationship to the property
rdfs:member
).
Editorial Note: It is not clear whether
rdfs:member
should be a member of
rdfs:ContainerMembershipProperty
. This needs to be clarified by
the Working Group.
Its not mentioned here, but in the RDF version of schema below it is stated that the domain of rdfs:member is a container. I seem to recal we said we weren't going to do that, but would allow the ordinal properties to be used on other things, e.g. street names. We need to be clear on this, and either mention the domain contraint here, or remove it from below.
The rdf:List
class represents the class of RDF Lists. It is
used with the 'first', 'rest' and 'nil' constructs, and has special case
support in the RDF/XML syntax. @@refs to syntax, MT@@
The rdf:first
property represents a relationship between an
rdf:List
and its first item.
The value of an rdf:first property is the first item of an rdf:List. rdf:first has an rdf:domain of rdf:List.
The rdf:rest
property represents a relationship between an
rdf:List
item and the rest of the list, or its end (ie.
rdf:nil
).
The value of an rdf:rest property is either a resource of type rdf:List representing the rest of the list other than its first element, or it is the special resource rdf:nil to indicate that there are no more items in the list. The rdfs:domain of rdf:rest is rdf:List. The rdfs:range of rdf:List is rdf:List.
@@ is rdf:nil of type rdf:List.
The rdf:nil
resource represents the last item in s/the last item/end of/ an
rdf:List
. Does it have a
type?
The following utility classes and properties are defined in the RDF core namespaces.
The property rdfs:seeAlso
is used to indicate a resource that
might provide additional RDF information about the subject resource. subject is a new term, not introduced yet. we
need something like this. Without it ... An rdfs:seeAlso property
of a resource R, is used to indicate a resource that might provide additional
information about R. Hmm, is there some contraint of the value, i.e.
that its RDF. I've dropped the RDF from "RDF information" in my
formulation.
The property rdfs:isDefinedBy
is a subproperty of
rdfs:seeAlso
, and indicates the resource defining the subject
resource.
The rdf:value
property identifies the principal value
(usually a string) not now we've got
datatyping? d/(usually a string)/ of a property when the
property value is a structured resource.
The rdf:Statement
class represents statements about the
properties of resources.
rdf:Statement
is the domain of the properties
rdf:predicate
, rdf:subject
and
rdf:object
.
Different individual rdf:Statement
instances may happen to
have the same values for their predicate, subject and object properties.
The subject of an RDF statement.
The rdf:subject
property indicates a resource that is the
subject of some RDF statement.
The rdfs:domain
of rdf:subject
is
rdf:Statement
and the rdfs:range
is
rdfs:Resource
. This property can be used to specify the resource
described by an RDF statement.
The predicate of an RDF statement.
The rdfs:domain
of rdf:predicate
is
rdf:Statement
and the rdfs:range
is
rdfs:Resource
. This property can be used to specify the
predicate used in an RDF statement.
The predicate s/predicate/object/ of an RDF statement.
The rdfs:domain
of rdf:object
is
rdf:Statement
. No range is defined for this property since
values of rdfs:object
can include both Literals and Resources.
If we are declaring Literal to be a
subclass of Resource ... This property can be s/can be/is/ used to specify
the object of an RDF statement.
The RDF Schema design was originally produced by the RDF Schema Working Group (1997-2000). The current specification is largely an editorial clarification of that design, and has benefited greatly from the hard work of the RDF Core Working Group members, and from implementation feedback from many members of the RDF Interest Group.
David Singer of IBM was the chair of the original RDF Schema group throughout most of the development of this specification; we thank David for his efforts and thank IBM for supporting him and us in this endeavor. Particular thanks are also due to Andrew Layman for his editorial work on early versions of this specification.
The original RDF Schema working group membership included:
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, previously of 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.)
Figure 1 shows the use of domain and range properties to
describe how the core RDF properties are used. This is shown here as a node
and arc representation of the RDF graph structure. Nodes with
bold outlines are instances of rdfs:Class
.
Editorial Note: the current Working Draft omits some figures previously included in this specification. Subsequent revisions may include more diagrammatic illustrations of the RDF Schema class and property hierarchies. Note also that the current diagram is incomplete, omitting rdf:value, rdf:member and other properties.
An RDF description of the RDF Core vocabulary is given here in RDF/XML serialization syntax. Please note that the namespace URI for the RDF Schema vocabulary could change in future versions of this specification. This RDF schema includes statements describing RDF resources originally introduced by the 1999 RDF Model and Syntax specification, as well as definitions for resources introduced in the RDF Core Schema vocabulary.
This RDF/XML is also available as a separate RDF/XML document (rdfs-namespace.xml). It is not currently published at the W3C RDF Schema namespace URI.
|
The following editorial issues with this specification are still outstanding. Technical issues relating to this and other RDF Core specifications are tracked in the RDF Issue Tracking document.