Download (direct link):
rdfs:label. An attribute that defines a human-readable label for the class. This is important for applications to display the class name in applications even though the official unique identifier for the class is the URI in the rdf:about attribute.
rdfs:subclassOf. An element that specifies that a class is a specialization of an existing class. This follows the same model as biological inheritance, where a child class can inherit the properties of a parent class. The idea of specialization is that a subclass adds some unique characteristics to a general concept. Therefore, going down the class hierarchy is referred to as specialization, while going up the class hierarchy is referred to as generalization. In Listing 5.6, the class "Software-Engineer" is defined as a subclass of "Employee." Therefore, Software-Engineer is a specialization of Employee.
rdf:Property. An element that defines a property of a class and the range of values it can represent. This is used in conjunction with rdfs:domain and rdfs:range properties. It is important to understand a key difference between modeling classes in RDFS versus modeling classes in object-oriented programming, in that RDFS takes a bottom-up approach to class modeling, whereas OOP takes a top-down approach. In OOP, you define a class and everything it contains. In RDFS, you define properties and state what class they belong to. So, in OOP we are going down from the class to the properties. In RDFS, we are going up from the properties to the class.
Understanding the Resource Description Framework
rdfs:domain. This property defines which class a property belongs to (formally, its sphere of activity). The value of the property must be a previously defined class. In Listing 5.6, we see that the domain of the property "knows" is the "Employee" class.
rdfs:range. This property defines the legal set of values for a property. The value of this attribute must be a previously defined class. In Listing 5.6, the range of the "knows" property is the "Topic" class.
Some other important RDFS definitions not used in Listing 5.6 are as follows:
rdf:type. A standard property to define that an RDF subject is of a type defined in an RDF schema. For example, you could say that a person with Staff ID of 865 is a type of employee like this:
<rdf:Description rdf:about= "http://www.mybiz.com/staff/ID/865">
<rdf:type rdf:resource ="&example_chp5;Employee">
rdfs:subPropertyof. A property that declares that the property that is the subject of the statement is a subproperty of another existing property. This feature actually goes beyond common OOP languages like Java and C# that only offer class inheritance. An example of this would be to declare a property called "weekend," which would be a subPropertyof "week."
rdfs:seeAlso. A utility property that allows you to refer to a resource that can provide additional RDF information about the current resource.
rdfs:isDefinedBy. A property to define the namespace of a subject. This is a subPropertyOf rdfs:seeAlso. In practice, the namespace can point to the RDF Schema document.
rdfs:comment. A utility property to add additional descriptive information to explain the classes and properties to other users of the schema. As in programming, good comments are essential to fostering understanding and adoption.
rdfs:Literal. A property that represents a constant value represented as a character string. In Listing 5.7, the value of the example_chp5:name attribute is a literal (like "Jane Jones"). RDF/XML syntax revision has recently added typed literals to RDF so that you can specify any of the types in the XML Schema specification (like integer or float).
rdfs:XMLLiteral. A property that represents a constant value that is well-formed XML. This allows XML to be easily embedded in RDF.
In addition to the classes and properties described in the preceding lists, RDF
Schema describes classes and properties for the RDF concepts of containers
and reification. For containers, RDF Schema defines rdfs:Container, rdf:Bag,
rdf:Seq, rdf:Alt, rdfs:member, and rdfs:ContainerMembershipProperty. The
purpose for defining these is to allow you to subclass these classes or properties. For reification, RDF Schema defines rdf:Statement, rdf:subject, rdf:predi-cate, and rdf:object. These can be used to explicitly model a statement to assert additional statements about it. Additionally, as with the Container classes and properties, you can extend these via subclasses or subproperties.
Listing 5.7 displays an RDF instance document generated by Protégé conforming to the RDF schema in Listing 5.6.
<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE rdf:RDF [
<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<!ENTITY example_chp5 'http://protege.stanford.edu/example-chp5#'> <!ENTITY rdfs 'http://www.w3.org/TR/1999/PR-rdf-schema-19990303#'>