O-Telos-RDF: A Resource Description Format with Enhanced Meta-Modeling Functionalities based on O-Telos Wolfgang Nejdl, Hadhami Dhraief, Martin Wolpers Computer Engineering – Knowledge Based Systems University of Hannover Appelstr. 4, 30167 Hannover, Germany email: nejdl,dhraief,wolpers@kbs.uni-hannover.de ABSTRACT language, and can be used together with the other O-Telos-RDF In this paper we will describe the formalization of an RDF(S) vari- concepts to formalize descriptions on all abstraction levels. The ant we call O-Telos-RDF, which provides enhanced functionalities modeling language O-Telos has been defined and axiomatized in for meta-modeling and reified statements. This formalization is [8], based on its predecessor Telos [11, 10], and implemented in based very closely on the formalization of the modeling language the deductive object oriented database system ConceptBase [7]. It O-Telos, which is based on a semantic network model quite similar has been used in a variety of modeling contexts (see [9] for an to RDF(S), and has been used as a (meta) modeling language in overview) during the last 10 years. various application areas during the last 10 years. The extended functionalities of O-Telos-RDF are based on O- Telos’ use of a semantic network (i.e. binary predicates) for mod- eling in a uniform way all kinds of information (information about 1. INTRODUCTION objects and specific relationships between these objects, informa- RDF(S) [5, 3] is based on the simple, yet quite powerful model tion about classes and relations, information about metaclasses, of semantic networks, where every statement is expressed as a bi- etc.) This capability is also present in many aspects of RDF(S), nary predicate on ground arguments, with the nodes in the graph but unfortunately not in all, as we will see in this paper. Using denoting arbitrary resources and literals which are used as subjects semantic networks for modeling has a long tradition, starting with and objects of statements, and the arcs denoting specific relation- Tarskis use of binary relations [16], and continuing with Abrials ships between two of these nodes. semantic datamodel based on such binary relations [1]. RDF(S) falls short however in exploiting both the simplicity We will use the paper by Conen and Klapsing [4] as a starting and the expressivity of the underlying semantic network formal- point for the description of our RDF(S) variant, O-Telos-RDF, and ism. The RDF(S) description (see [5] and [3]) is quite difficult retain basically all original O-Telos axioms from [8], only modify- to read and lacks a formal description of semantics (though [4] ing them when necessary to make them suitable for a resource de- has later given quite a good formalization). Additionally, meta- scription format comparable to RDF(S). We will use RDF(S) termi- modeling and reification is cumbersome and restricted in RDF(S), nology whenever possible. Our order of presenting the different O- even though it has been envisioned as one of the important applica- Telos-RDF concepts reflects the order of RDF(S) concept presen- tion areas of RDF(S). tation in [4] which will make it easier for knowledgeable RDF(S) In an earlier paper [13], we have pointed out the dual use of users to compare RDF(S) and the O-Telos-RDF variant. We will properties like subclass and type both as primitive (metalevel) con- also use an XML serialization similar to the original RDF(S) se- cepts to define the RDF(S) concept hierarchy as well as concepts rialization in order to necessitate as few changes in current RDF defined in RDF(S) itself, and have proposed a metamodeling ap- parsers as possible.1 proach separating these uses, which is more in line with a layered metamodeling approach such as described in [6]. More recently, 2. O-TELOS-RDF CONCEPTS [14] proposed a layered version of RDF(S) called RDFS(FA) moti- O-Telos-RDF graphs are semantic networks, which consist of vated by the same observations. nodes and (directed) arcs. Nodes represent all kinds of concepts In this paper we will use the (meta-) modeling language O-Telos (such as classes, metaclasses etc.) and individuals (such as spe- as a basis for an alternative resource description format we call cific WWW pages and literals), arcs represent specific (property) O-Telos-RDF, which retains the basic principles of RDF(S), but relationships. extends its meta-modeling and reification functionalities. Primi- Both nodes and arcs are labeled with atomic values or URIs as tive concepts like subclass and type are strictly axiomatized in this names. They are both first class entities, and therefore are refer- enced by IDs (unique within the current namespace), usually in the form of URIs, which either contain the node or arc label (if it is an atomic value), or use the label directly as ID (when the labels Permission to make digital or hard copies of all or part of this work for Note, that in an earlier version of this report [12], we used a seri- personal or classroom use is granted without fee provided that copies are alization which did not assume any knowledge about an O-Telos- not made or distributed for profit or commercial advantage and that copies RDF specific semantics, so that a current RDF parser like SiRPac bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific [15] could produce the correct O-Telos-RDF tuples from this serial- permission and/or a fee. ization. Our current serialization necessitates some small changes Copyright 2000 ACM 0-89791-88-6/97/05 ..$5.00 in SiRPac, but is more compact than our previous serialization. are URLs or instances of primitive types like literals). By refer- s(sid1,sid1,LectureUnit1,sid1) encing these IDs, arcs can connect any two other entities (i.e. two s(sid2,sid1,title,"Lecture Unit 1") nodes, one node and one arc or two arcs), in contrast to RDF(S), s(sid3,sid1,type,otelos:individual) where arcs only connect resources (i.e. nodes). As in RDF(S) [4], s(sid4,sid2,type,otelos:property) all nodes have different labels, and represent different entities. Arc where labels are not unique, two arcs between two specific entities have different labels, however. sid1=ns:LectureUnit1 In the following we will discuss the basic O-Telos-RDF con- sid2=ns:LectureUnit1_title cepts building on this framework in more detail, give examples sid3=ns:LectureUnit_type_otelos:individual using both tuple and XML-syntax, and compare the O-Telos- sid4=bns:LectureUnit1_title_type_otelos:property RDF concepts with the original O-Telos axioms they are based on, as well as with the usual RDF(S) concepts. We will use and “ns:” stands for the current namespace specifying where the namespace concept of XML and use the namespace “otelos:” these metadata can be found (e.g. “http://www.kbs.uni-hannover.de throughout this paper, refering to the URI “http://www.kbs.uni- /ai1/metadata.html#”.2 The statement identifiers are generated au- hannover.de/otelos/2001/08/otelos-rdf-schema#” which contains tomatically from the other arguments (we’ll discuss how later), so the O-Telos-RDF definitions of this paper. they do not have to be included in the XML serialization. To allow easy comparison of O-Telos-RDF with RDF(S), we Tupels sid3 and sid4 specify membership of sid1 and sid2 in mainly follow the structure of [4] (distinguishing basic concepts the (predefined) O-Telos-RDF classes otelos:individual and ote- (corresponding to RDF concepts) and schema level concepts (cor- los:property respectively (similar to rdfs:class and rdf:property), responding to RDFS concepts)), even though O-Telos-RDF does and are themselves members of the O-Telos-RDF class otelos:type. not distinguish between schema level and object level statements. As we will see in the following sections, membership in these pre- defined classes is specified by the syntactic form of the statements, 2.1 Basic O-Telos-RDF Concepts and Predi- and we will not include these type-statements in our later examples, cates as they can always be reconstructed from the axiomatic member- ship definition (2.3, 2.5 and 2.10) for these predefined classes. 2.1.1 Statement Example 2: This example states that a web page with the URI All nodes and arcs in an O-Telos-RDF graph are represented by “http://.../Definitions.html” has a title called “Definitions”. statements of the general form s(sid,x,l,y) where sid represents the statement ID (a unique identifier of the statement), x and y rep- label of the statement. All statement identifiers sid are URIs or as Definitions URI-like as possible and are unique globally (except when exactly the same statements are made in two different places). We call x the subject, y the object and l the predicate of a state- The corresponding statements are ment. All statements in O-Telos-RDF are implicitly reified, and s(sid1,sid1,http://.../Definitions.html,sid1) can be identified by their statement ID. We therefore have the first s(sid2,sid1,title,"Definitions") axiom: A XIOM 2.1. Statement identifiers uniquely identify statements: where    sid1=http://.../Definitions.html   "!#$ $$ sid2=http://.../Definitions.html_title %  '&()!*'&()!*+&,- Additionally, as already mentioned in example 1, sid1 is instance of otelos:individual while sid2 is instance of otelos:property. Fur- We can define auxiliary predicates subject, predicate and object thermore these two type-statements are instances of otelos:type. as follows: 2.1.1.1 Comparison to RDF(S) and O-Telos. ) .-/ 0' ./ 0 Axiom 2.1 corresponds to the O-Telos axiom 1 (uniqueness 1 2 3456.7 ."!8/ 05$.:9$75$ ;/)!=<>345.7 0 of object identifiers). O-Telos-RDF statement identifiers are con- structed as URIs or URI-like identifiers in order to be able to refer- Example 1: This example gives a first impression of how the ence them easily in other statements. In contrast to O-Telos object resulting statements look like. The exact definitions of the used identifiers, they are not invisible. Their exact form will be discussed constructs will follow in later sections. We want to express that a in the following sections. In constrast to RDF(S), there is no dif- resource “LectureUnit1” has a property “title” with the value “Lec- ference between “named” and “unnamed” resources, all statements ture Unit 1”. have unique IDs. For Web-Pages, these are the usual URLs. The XML-serialization (which we keep as similar to RDF(S) as Axiom 1 of [4] states that an RDF(S) statement connects two possible - see appendix A for the basic XML serialisation) looks as nodes with a label. The label has to be RFC 2396 [2] conform, follows: statements do not have a unique ID. In O-Telos-RDF, labels can also be atomic values, while statement IDs are unique and usually conform to RFC 2396. Lecture Unit 1 ? In the following, we will abbreviate these URLs to save space, leaving out hostname and directories, and use forms like The statements for this serialization are “http://.../metadata.html#”. Analogously to RDF(S), we call x the subject, y the object and l with the corresponding statement the predicate of a statement, although we have not defined them as predefined properties (which we could, though). s(sid1,sid1,LectureUnit1,sid1) All statements in O-Telos-RDF are implicitly reified, and can be identified by their statement ID. Thus we don’t have to reify a where statement explicitly which contrasts with the axioms 7, 8 and 9 of [4]. Instead, when one statement talks about another statement, we sid1=ns:LectureUnit1 have to enforce the existence of the statement talked about. This is basically the same as a foreign key constraint in relational database theory. 2.1.2.1 Comparison to RDF(S) and O-Telos. In order to explicitly distinguish between statements and explicit In O-Telos-RDF all individuals are resources in the usual reifications thereof similar to RDF(S) (and the [4] axioms), we RDF(S) sense, and can be used as subjects and objects in state- could define a class otelos:reified statement, with three properties ments. O-Telos states the existence of statements in its axioms 18 otelos:subject, otelos:predicate and otelos:object. and 24 which correspond to axiom 2.2 of O-Telos-RDF. Axioms 1 and 2 of [4] state the existence of Resource which 2.1.2 Individual is equal to the O-Telos-RDF concept otelos:individual (see axiom Nodes in an O-Telos-RDF graph are represented by statements 2.3), which corresponds to the O-Telos axioms 19 and 25.3 of the form s(o,o,o,o) or s(ns:l,ns:l,l,ns:l), where o and ns:l are Axiom 4 of [4] states that a named Resource is identified by an URIs, ns is the current namespace and l is an atomic label. We URI. O-Telos-RDF broadens the scope of the identifiers with ax- call these statements individuals, they can be used as subjects and iom 2.4 so that all individuals are identified by an URI, and further objects in statements. statements can be made about each individual using this URI. La- bels of individuals are unique in O-Telos-RDF (corresponding to A XIOM 2.2. The set of all statements, abbreviated as ote- O-Telos axiom 2). los:statement is represented by the individual s(otelos:state- In contrast to RDF(S), O-Telos-RDF requires the declaration of ment,otelos:statement,statement,otelos:statement), where “ote- each individual/resource, so each individual is represented by its los:” is the namespace for the O-Telos-RDF definitions. corresponding tuple. Writing down these explicit individual dec- larations for all annotated and used URLs can be time consuming, Serialized as XML, this individual is simply declared as though, and a smart parser can generate the corresponding tuples for each URL automatically. In the following, we will therefore use an XML serialization which does not require explicit individ- or, more RDF(S)-like ual declarations for URLs, and leave it to the parser to generate the corresponding tuple for each URL it encounters. 2.1.3 Class We include a short discussion of class at this point, even though Again, the type-statement (which will be explained in sec- class is a schema definition concept, which RDF(S) defines in the tion 2.2.1) is not really necessary, as membership of statements in schema specification, not in the basic model and syntax specifica- the set of individuals is defined by the syntactic form of the state- tion. ment. The reason for this is that, in O-Telos-RDF, individuals represent both objects and classes. As all individuals can be instantiated, A XIOM 2.3. The set of all individuals is represented by ote- there is no need to introduce a separate class concept. All RDF(S) los:individual or (in longer form) s(otelos:individual,otelos:indivi- classes are represented as O-Telos-RDF individuals, as are their dual,individual,otelos:individual). members. Class membership is defined using type-statements (see 2.2.1). O-Telos-RDF individuals can represent both classes and instan- To enhance readability, we define an individual otelos:class, tiated objects (as well as metaclasses, metametaclasses, etc.), there which denotes the same set as otelos:individual, and use both ote- is no syntactic distinction between these different abstraction lev- los:class and otelos:individual in our XML serialization. Note, els. This makes unrestricted metamodelling hierarchies possible in however, that the distinction of otelos:class and otelos:individual is O-Telos-RDF. purely syntactic sugar and does not indicate any semantic distinc- tion. Both terms are translated into otelos:individual in the tuple A XIOM 2.4. If the label of an individual is an atom, it is unique representation. within its namespace. Together with its namespace, or if the label is already an URI, it is unique globally. Therefore the statement ID of an individual is unique globally in all cases. 2.1.3.1 Comparison to RDF(S) and O-Telos. Even though RDF(S) defines the concept rdfs:Class, no special In the following, we will use the statement ID of an individual axioms are defined in [4]. Rather, axioms are defined for the special as an abbreviated name for that individual, i.e. we will be talking properties related to rdfs:Class, namely rdf:type, rdfs:subClassOf, about otelos:statement, otelos:individual, etc. As the statement ID rdfs:range and rdfs:domain. This is similar to the formalization in is unique and human readable, we can use this ID also to reference O-Telos-RDF, which does not define the class concept at all, but all other statements, which are not individuals. has similar restrictions on the properties related to this concept. Example 3: The following example declares an individual with @ the name ”LectureUnit1”: If we view something as a resource which can be referenced by an identifier, “resource” would correspond to “statement” in O-Telos- RDF, though. 2.1.4 Property with & Arcs are represented by statements of the form s(sid,x,p,y) or& by sid1=ns:LectureUnit & the special & case s(ns:p,otelos:statement,p,y), with sid A x, sid A y, sid2=ns:LectureUnit_title ns:p A otelos:statement and ns:p A y, and p different from the three reserved labels type, subClassOf and subPropertyOf. We call these sid1 is a member of the set otelos:individual, sid2 is a member of statements properties: the set otelos:property. Both membership-statements are member of the set otelos:type. A XIOM 2.5. Definition of properties: )  /" 2.1.4.2 Globally Scoped Properties.  "/ )!* &B"!C &()!*D/ E & 2 3FG;966HJI In the second (special) case s(ns:p,otelos:statement,p,y), p is an !KD/ &L2 3:MG0</5067NHJA I!*D/ &O7A 6/5> A atomic value, and is a unique label within the current namespace ns. A A 1 76/5$  <6756;<GP/ 0>S*D/=&,2 3FG;96HJI within the current namespace in conjunction with the source object SKD/=&L2 3:MG0</5067NHJI x, which is the unique identifier of another statement. Then the sid is of the form x p, which is unique in the current namespace, and potentially unique globally (except if another namespace specifies a property with the same label for the same x). This naming of the statement identifiers does not guarantee globally unique statement 2.1.4.3 Comparison to RDF(S) and O-Telos. IDs, but is in line with the object scoped way of looking at proper- O-Telos-RDF axiom 2.7 corresponds to O-Telos axiom 3. Ax- ties. 4 If the property s(sid,x,p,y) is meant to represent the property ioms 2.5 and 2.6 correspond to O-Telos axioms 22 and 26. definition for p, then (using RDF(S) terminology), x is the domain RDF(S) regards properties as a projection of the second argu- of p and y is the range of p. ment of the RDF-statement. Therefore [4] state with their axioms 2 We then call p an object scoped property. This definition cor- and 3 that each label of a statement is a resource and that it is identi- responds to the class-centric way of defining properties used in fied by an URI. This holds for O-Telos (axiom 3) and O-Telos-RDF frame-based languages like O-Telos. (axiom 2.7) as well, with the exception of literals and some prop- erty statements (type etc.) which yield IDs that are not RFC 2396 A XIOM 2.7. Names of “object scoped” properties are unique conform. in conjunction with the source object: In contrast to O-Telos und to RDF, O-Telos-RDF allows both  N$ -/" globally or object scoped properties, though the globally scoped   -/ 6!RN ;/  properties are just a special case of the object scoped properties. So, %  +&,N)S*D/=&O76/5>S*D/=&,2 3FGT9U6HJI as can be seen in example 4, the definition of properties is object SKD/=&,2 3MG0> 2.1.5 Literals and Other Primitive Types Literals l are represented as individuals s(l,l,l,l). The set of all </otelos:Class> literals is denoted by the individual otelos:literal. Other primitive with the main statements types (like the ones defined in the recent XML schema specifica- tion, or Integer, Boolean, etc. from O-Telos) can be introduced in s(sid1,sid1,LectureUnit,sid1) the same way. V s(sid2,sid1,title,otelos:Literal) While the statement IDs for these primitive individuals are no URIs, this representation allows us to use these individuals consis- Note, that duplicate property statements are also possible in tently with current RDF(S)/XML statements, by simply including RDF(S) between different namespaces. In any case, even if we defined the statement identifiers in a globally unique way (which the value in a statement. would be possible by prefixing the ID with the current names- pace), integration of statements from different namespaces would 2.1.5.1 Comparison to RDF(S) and O-Telos. still need to be dealt with care, as globally unique statement IDs Axioms 5 and 6 of [4] declare a literal as an object that is not would only handle uniqueness of statements, but still allow incon- a resource. These literals are instances of rdfs:Literal. In contrast, sistency of properties (such as multiple values for single valued O-Telos (and O-Telos-RDF) declare predefined classes, such as Lit- properties, etc.) eral (String), Boolean, Integer, etc. 2.2 Schema Definition Concepts and Predi- Example 5: The following example shows the use of type- cates statements. Let us assume, that there is an individual called Lec- tureUnit that has a property of type String labeled title. Another 2.2.1 type individual called LectureUnit1 is an instance of LectureUnit and Statements of the form s(sid,x,type,y) denote class membership instantiates the property title with the value “Lecture Unit 1”. of x in y. We talk about x being an instance of y, where x and y Please note that the following examples use the namespaces rdf:, represent either two individuals or two properties. rdfs:, s:, t: and otelos: instead of the URIs with the statement- declarations. We abbreviated the URIs in order to enhance the A XIOM 2.9. Type statements can be written using the auxiliary readability of the examples. predicate type(x,y): )   <otelos:OTELOS $ "76/5U % 76/5$ U xmlns:t="http://www.kbs.uni-hannover.de/otelos /2001/08/example-5#" xmlns:otelos="http://www.kbs.uni-hannover.de /otelos/2001/08/otelos-rdf-schema#"> A XIOM 2.10. All statements, where subject and object are dif- ferent from the statement ID and which use the label “type”, <otelos:Class ID="LectureUnit"> are instances of the set otelos:type, represented by the statement <title s="otelos:Literal"> s(otelos:type,otelos:statement,type,otelos:statement): </otelos:Class> )  . $   76/5 ."!* &(!Z &(. <otelos:Individual ID="LectureUnit1"> A A 1 76/5$  <6756;<[P76/5> <type s="t:LectureUnit"/> <title>Lecture Unit 1 A XIOM 2.11. The label “type” of these statements is unique in conjunction with the source object x and the destination object y. The statement identifier sid has therefore the form x type y: ) N"/  $  /  U)!XN"/ )!*D/=&O76/5> %  +&LN We have the main statements s(sid1,sid1,LectureUnit,sid1) A XIOM 2.12. Property statements can be written with the name s(sid2,sid1,title,otelos:Literal) of the property (instead of a new label) by using the auxiliary pred- s(sid3,sid3,LectureUnit1,sid3) icate P(x,m,y): s(sid4,sid3,title,"Lecture Unit 1")  N .\* and the type statements for LectureUnit1 and Lecture1 title  ")!XN$.\ZN)!]7 >/ 5 N % M^ \* s(sid5,sid3,type,sid1) s(sid6,sid4,type,sid2) In the rest of the paper, we will not explicitly specify the type A XIOM 2.13. Properties P of a subject x are always expressed statement for properties like “LectureUnit1 title” in the XML se- as a property statement, which is an instantiation of a property rialization, whenever the label of the instantiated property is the definition for the class c of which x is a member of: same as the label used in the definition of that property and an ex-  .\*  N plicit type statement is included for the object the instantiated prop- 7 >/ 5" ."!=M^ \*)!X$ .\*N erty is associated to. In these cases the type definition tuple can be %`_ N$ "!a76/5$N 6 inferred by the O-Telos-RDF parser by using the label to look up the appropriate property definition within the class specified by the type statement for the object containing the instantiated property. A XIOM 2.14. In case x is an instance of two classes c and d, This allows an XML serialization very similar to the RDF(S) seri- which both define a property m, x has also to be an instance of a alization. class g, which is a subclass of both c and d, and which also defines If the label of the instantiated property statement is different property m: from the label used in the property definition5 , we will use an XML  \*.>  QN5I serialization for instantiated properties which includes the type of -76/5$ .)!=76/5$ N!R .\*5>"!#N$ \ZI the instantiated property as an additional XML-attribute “type=”. %b_c de^76/5$  c )!#d c \Ze Using this serialization, example 5 looks as follows: !f2 3FG;966HJI  c .)!R2 3FG;96HJI  c N stantiated property statement, plus an additional statement for the instantiation relationship. 2.2.2 Domain and Range </otelos:Class> Domain and range properties like those in RDF(S) are not needed, as domain and range restrictions are already included in <otelos:Individual ID="LectureUnit1"> <type s="t:LectureUnit"/> all property definitions. For compatibility reasons, we can define <title type="t:LectureUnit_title"> auxiliary predicates domain and range like Lecture Unit 1  .>/ 0  ./"0 1 $<\#9NWiD/  .)!#09W c 5$D/ 0 or alternatively, as the (globally scoped) properties ote- We do not need to specify type statements for membership in los:domain and otelos:range, defined by the statements otelos:individual, otelos:property and otelos:type because they re- sult from the respective axioms. s(otelos:domain,otelos:property,domain, otelos:statement) sid1=ns:LectureUnit s(otelos:range,otelos:property,range, sid2=ns:LectureUnit_title otelos:statement) sid3=ns:LectureUnit1 sid4=ns:LectureUnit1_title sid5=ns:LectureUnit1_type_ns:LectureUnit A XIOM 2.15. Subjects and objects in a statement representing sid6="ns:Lecture Unit 1_type_otelos:Literal" an instantiated property are typed by the corresponding property definition: ) N$  2.2.1.1 Comparison to RDF(S) and O-Telos.   )!a76/5$ N Instantiations of classes using “type” are done in the same way in %j_ ./"0[N.>/ 0"!a76/5$ .)!]7 >/ 50 RDF(S) as in O-Telos-RDF axioms 2.11 and 2.9 (corresponding to the O-Telos axioms 4 and 5). Furthermore, objects can instantiate the attributes defined in their classes in the same way in RDF(S) and O-Telos-RDF (axioms 2.12 and 2.13, corresponding to O-Telos If no domain or range restrictions are desired for a property p, it axioms 7, 8 and 9). Axiom 2.10 corresponds to the O-Telos axioms can be defined as a globally scoped property in the following way: 27 and 20. In contrast to RDF(S) [4], which only has three abstraction s(ns:p,otelos:statement,p,otelos:statement) hierarchies (rdfs:class, classes, which are instances of rdfs:class and instances of these classes) and represents property instan- tiation implicitly (i.e. not by explicit statements), O-Telos and 2.2.2.1 Comparison to RDF(S) and O-Telos. hence O-Telos-RDF allow arbitrarily many abstraction hierarchies, In contrast to O-Telos-RDF, RDF(S) has to state domain and because their representation does not distinguish between meta- range using separate properties. classes, classes and objects, and instantiation is represented explic- [4] define the domain property in rules 19 to 21. It has a car- itly for properties as well as for individuals. dinality of zero or more which complies with O-Telos-RDF. Fur- This instantiation of properties is defined in axioms 2.12 and thermore, [4] define the range property in rules 22 to 26. RDF(S) 2.13 (corresponding to O-Telos axioms 7, 8 and 9), and leads to in- restricts the range property to one range constraint per property. stantiated property statements, which have a (possibly) different la- In contrast, each O-Telos-RDF property definition has exactly one bel than the property definitions they instantiate, and which can be range constraint, but for different domains different property defi- instantiated again if needed. This is different from RDF(S), where nitions with range constraints are possible (axiom 2.15). This cor- instantiation is only explicit for individuals. 6 responds to O-Telos and its axiom 14. Axiom 2.14 (corresponding to O-Telos axiom 17) handles mul- tiple inheritance/instantiation. Such an axiom is not necessary in 2.2.3 subClassOf RDF(S) because properties are defined separately from classes any- Statements of the form s(sid,x,subClassOf,y) denote a subclass way, and a given property can have just one range restriction. relationship between x and y. We talk about x being a subclass Differently to RDF(S), otelos:type stands on its own and is dif- of y, where x represents a class and y its superclass. x and y are ferent from otelos:property (axiom 2.10, corresponding to O-Telos individuals. axiom 20). Axiom 2.12 (corresponding to O-Telos axioms 7 and 8) defines A XIOM 2.16. The label “subClassOf” in subClassOf- how to state properties in an RDF(S)-like way. We can there- statements is unique in conjunction with the source object x and fore translate RDF(S)-like property statements like P(x,m,y) into h the destination object y, thus sids are of the form x subClassOf y: The missing explicit instantiation of properties in RDF(S) is ac-  N$  tually the main reason for its restriction to there abstraction levels,   !RN$ "!C"&,2 3FG;9>HJI as instantiated property statements neither have a label nor state- %  '&LN ment ID, which makes it impossible to uniquely reference these statements as first class objects. A XIOM 2.17. We can also define an auxiliary predicate sub- 2.2.4 subPropertyOf ClassOf(x,y): For compatibility reasons to RDF(S), we define ote- ) . los:subPropertyOf separately from subClassOf, even though $ .>Q2 3FG;96HJIUN % 2 3FGT9U6HJI .N it has all axioms from subClassOf, plus additional ones which are relevant for subPropertyOf only. Statements of the form s(sid,x,subPropertyOf,y) denote a sub- A XIOM 2.18. The set of all subClassOf-statements is repre- property relationship between x and y. We talk about x being a sented by the statement s(otelos:subClassOf,otelos:individual, sub- subproperty of y, where x represents a property and y its super- ClassOf,otelos:individual).7 property. x and y are properties. A XIOM 2.19. All statements with a label “subClassOf” whose sid is not equal to subject and object are members of the set ote- A XIOM 2.24. As for “subClassOf”, the label “subProper- los:subClassOf: tyOf” in statements is unique in conjunction with the source object ) . x and the destination object y: $ .>Q2 3FG;96HJIUN"!C &(.)!Z &BN ) N" A A   U)!XN"!Z&,2 3MG0>75>T<[P:/ 0></50>7 U!a76/5$ <6756;<GP/ 0>756;<GP/U0</50>7 !]76/5$ <>756;<GP/U0</50>7  !f .>Q2U3MG0>HJI Nd The subPropertyOf relationship is a partial order on the state- % 2 3FG;9>HJI  d ment identifiers. This relationship is reflexive as well as transitive, and does not contain cycles, but uses reflexivity to state equality: A XIOM 2.22. No cycles, statement of equality: A XIOM 2.26. Reflexivity of subPropertyOf: ) N ) 2U3FG;96HJI  QN"!#2U3FG;96HJI N$Q  76/5$  <6756;<GP:79$75\X56W7 % 2 3:MG0</50>7 NHJI  N %  +&LN A XIOM 2.23. Class membership is inherited upwardly to the A XIOM 2.27. Transitivity of subPropertyOf: superclasses: ) NQd ". 2U3MG0>7 NHJI N$d 76/5$ N!R2 3FGT9U6HJI  . % 76/5$ . !l7 6/5$ <6756;<[P:/ 0</5067!]7 >/ 5N <>756;<GPQ/ 0</5067 % 2 3MG0>7 NHJI N$ 6 partial order, which is reflexive as well as transitive. However (as !l7 6/5$ <6756;<[P:/ 0</5067!]7 >/ 5N <>756;<GPQ/ 0</5067 in RDF(S)) subclassOf does not contain cycles, and uses reflexivity %  Y&LN just to state equality (2.20, 2.21 and 2.22, corresponding to O-Telos axioms 10, 11, 12). Class membership inherits upwardly to the superclasses in all A XIOM 2.29. Property membership is inherited upwardly to formalisms (RDF(S) [4] in rule 13, O-Telos-RDF in axiom 2.23, the superproperties: O-Telos in axiom 13). k  .> Actually, because O-Telos uses the same label “isA” (correspon- 76/5$ N"!#2U3MG0>756;<GP/U0</50>7  ding to our “subClassOf”) for subclassing both individuals and !l7 6/5$ <6756;<[P:/ 0</5067 % 7 6/5$  . properties, the direct translation from O-Telos would be the more general statement s(otelos:subClassOf,otelos:statement,subClass- Of,otelos:statement). However, in line with RDF(S) conventions, we will distinguish between the two concepts subClassOf and sub- A XIOM 2.30. All subPropertyOf-statements are members of PropertyOf. the set otelos:subPropertyOf, which is represented by the state- ment s(otelos:subPropertyOf,otelos:property,subPropertyOf, ote- 2.2.4.1 Comparison to RDF(S) and O-Telos. los:property)8 , thus sid are of the form x subPropertyOf y: O-Telos-RDF treats otelos:subPropertyOf in basically the same ) .> way as otelos:subclassOf (like O-Telos, which does not distinguish   .Q2 3:MG0</50>7 NHJI N)!* &B.)!* &(N these two concepts at all). This is also consistent with RDF(S), ! 76/5$. <>756;<GP/U0</50>7  !=76/5$ A<>756;<GP/U0<A /50>7  so [4] defines rdfs:subPropertyOf very similar to rdfs:subClassOf. 1 7 6/5$ <>756;<GP2 3:MG0</5067NHJI In RDF(S) a statement with properties for subject and object and a label with the value subPropertyOf declares the subject as subprop- erty of the object ([4], rule 15), as is done in O-Telos-RDF, axioms A XIOM 2.31. Subclasses, which define properties with the 2.24 and 2.25, and in O-Telos, axioms 4 and 6. O-Telos and O- same name as properties of their classes, refine these properties: Telos-RDF declare a special set for the subPropertyOf-statements ) N$. 5IU\ (O-Telos-RDF, axiom 2.30, O-Telos axioms 28 and 21). 2 3FGT9U6HJI  . !X .>\Z5)!XN \ZI In RDF(S) this relationship is transitive ([4], rule 16) and with- % 2 3FG;966HJI IU5>)!X2 3MG0></50>7 HJI N  out cycles ([4], rule 18). As with subClassOf, O-Telos-RDF (ax- ioms 2.26, 2.27 and 2.28) and O-Telos (axioms 10, 11 and 12) de- fine subPropertyOf as a partial order. Property membership in O-Telos-RDF is inherited upwardly to A XIOM 2.32. Furthermore, O-Telos-RDF requires subproper- the superclasses (axiom 2.29, corresponds to O-Telos axiom 13). ties of properties to refine subject and object of the properties as [4] has to define this by introducing new statements for superprop- well. ) N. 5IU\* erties (rule 17), as no instantiation statements for properties exist in 2 3MG0>"!#$N I RDF(S): % 2 3FG;9>HJI  ."!#2 3FG;96HJI IU5 )-/"/$< ;/ <)!R2 3MG0></50>7 HJI D/"T/ % -/$< Example 6: The following example will further clarify things. Axioms 2.31 and 2.32 (corresponding to O-Telos axioms 15 and Two resources are related by a property. Also, these resources are 16) do not exist in RDF(S). further subclassed, therefore the property has to be subclassed as well. 2.3 Utility Concepts really necessary, as multi-valued properties are expressed simply by more than one instantiated property statement. As for rdf:Seq, the disadvantage of this construct is, that (similar to the case of the Java Vector class) it introduces untyped relation ends, if it is used as an explicit class. Because O-Telos-RDF has the capability of defining properties with the domain otelos:property, we will use this alternative way in O-Telos-RDF to express se- quences. To express sequences in O-Telos-RDF, we include an additional type called otelos:ordinal. otelos:ordinal is a subclass of ote- los:literal. It specialises the literals by using only integer numbers prefixed by “ ” as labels, starting with 1, 2, etc. The respective statements use the label for sid, subject, predicate and object. For example the statement s( 1, 1, 1, 1) represents the ordinal “ 1”. Furthermore we declare the new property otelos:sequence with the statement s(otelos:sequence,otelos:statement,sequence,o- telos:ordinal) erty sid1, and that sid2, sid3 and sid4 are instantiations of that property. Furthermore, we want to represent a sequencing between these three property statements. We have the following property-statements: This example declares a lecture unit with a property parent- s(sid1,Person,name,otelos:Literal) Course of type lecture. The subclass of LectureUnit called Sem- s(sid2,JohnHarrySmith,name1,"John") inarUnit must refine the property parentCourse in order to use it. s(sid3,JohnHarrySmith,name2,"Harry") Thus its value has to be a subclass of Lecture, e.g. Seminar. s(sid4,JohnHarrySmith,name3,"Smith") m s(sid5,sid2,type,sid1) In principle, we could allow the application of subProper- s(sid6,sid3,type,sid1) tyOf for instances of otelos:type, otelos:subClassOf and ote- s(sid7,sid4,type,sid1) los:subPropertyOf. This is actually done in O-Telos, as it does not distinguish between subClassOf and subPropertyOf. Then, the following statements specify the sequencing: s(sid8,sid2,number,_1) or use an implicit sequencing of multivalued attributes based on s(sid9,sid3,number,_2) the textual order of the statements (which is actually the way se- s(sid10,sid4,number,_3) quencing is handled in O-Telos), depending on the O-Telos-RDF parser to generate the necessary sequencing triples for these multi- sid4, sid5 and sid6 are of type otelos:sequence, specified by the valued attributes: corresponding type-statements: s(sid11,sid8,type,otelos:sequence) xmlns:t="http://www.kbs.uni-hannover.de/otelos /2001/08/example-7#" xmlns:otelos="http://www.kbs.uni-hannover.de /otelos/2001/08/otelos-rdf-schema#"> John Harry Smith John Harry Smith 2.3.1.1 Comparison to RDF(S) and O-Telos. In order to state sequences, RDF(S) specifies the container rdf:Seq. Instances of rdf:Seq group together the resources of a se- _1 quence by using simple ordinal properties. O-Telos-RDF simpli- fies this approach by using the possibility to state properties about properties. Thus O-Telos-RDF avoids the introduction of untyped containers like rdf:Seq which is preferrable for precise semantical _2 modelling. 2.4 Modelling the lecture Artificial Intelli- gence _3 The following example is taken from a model of our lectures. For simplicity reasons it is a small part of the larger model only. On the class level it states that lecture units belong to a lecture. Lecture units have a title and a description. A lecture unit consists of theory pages, examples, etc. We also include simple subclasses Alternatively, we could use a predefined XML-attribute “num- respectivly instances like AI lecture units, etc. ber=”, to write this example in an even more abbreviated way: We will start with the appropriate XML-serialisation using /22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01 /rdf-schema#" xmlns:s="http://www.kbs.uni-hannover.de/otelos /2001/08/example-schema#"> John Harry Smith about="http://.../Structure.htm"> In O-Telos-RDF, this example looks as follows: xmlns:otelos="http://www.kbs.uni-hannover.de /otelos/2001/08/otelos-rdf-schema#" xmlns:t="http://www.kbs.uni-hannover.de/otelos/ /2001/08/example-otelos-schema#"> <rdf:Description ID="parentUnit"> <description s=otelos:Literal/> <rdf:type resource="rdf:Property"/> <parentCourse s=t:Lecture/> <rdfs:range resource="s:LectureUnit"/> <theoryPage s=t:TheoryUnit/> <rdfs:domain resource="s:TheoryUnit"/> </otelos:Description> </rdf:Description> <otelos:Class ID="TheoryUnit"> <rdf:Description ID="TheoryUnit"> <parentUnit s="t:LectureUnit"/> <rdf:type resource="rdfs:Class"/> </otelos:Class> </rdf:Description> <otelos:Class ID="AILecture"> <rdf:Description ID="AILecture"> <type s="t:Lecture"/> <rdf:type resource="s:Lecture"/> </otelos:Class> </rdf:Description> <otelos:Individual ID="LectureUnit1"> <rdf:Description ID="LectureUnit1"> <type s="t:LectureUnit"/> <rdf:type resource="s:LectureUnit"/> <title>Lecture Unit 1 Lecture Unit 1 Introduction to intelligent agents Introduction to intelligent agents resource="http://.../Definitions.htm"/> resource="http://.../Characterisation.htm"/> resource="http://.../Structure.htm"/> s="http://.../Types.htm"/> about="http://.../Definitions.htm"> about="http://.../Characterisation.htm"> Nr. Statement (subject,predicate,object) 33 s(online:genid34,resource,s:AILecture) 34 s(online:LectureUnit1,online:parentCourse, online:genid34) 36 s(online:LectureUnit1,online:theoryPage, online:genid37) 37 s(online:genid40,resource, http://.../Characterisation.htm) 38 s(online:LectureUnit1,online:theoryPage, online:genid40) 39 s(online:genid43,resource,http://.../Structure.htm) 40 s(online:LectureUnit1,online:theoryPage, Membership in otelos:individual, otelos:property, otelos:type online:genid43) etc. is automatically based on the syntactic form of the statements, 41 s(online:genid46,resource,http://.../Types.htm) so we do not declare any explicit type-statements for these classes. 42 s(online:LectureUnit1,online:theoryPage, Type-statements for properties, where the instantiated properties online:genid46) have the same label like the property definition, are introduced 43 s(http://.../Definitions.htm,type,s:TheoryUnit) automatically by the parser, as well as individual-statements of 44 s(online:genid50,resource,s:LectureUnit1) all URLs used in this example. Type-statements for the multi- 45 s(http://.../Definitions.htm,online:parentUnit, ple instantiations of LectureUnit theoryPage are handled using the online:genid50) “type=” XML-attribute. 46 s(http://.../Characterisation.htm,type,s:TheoryUnit) The statements of the RDF(S)-representation are generated by 47 s(online:genid54,resource,s:LectureUnit1) the SiRPac [15] parser. The prefix online: represents constructs without an URI, genid represents automatically generated IDs. 48 s(http://.../Characterisation.htm,online:parentUnit, (Note that we replaced the URIs in the example by the respective online:genid54) namespaces in order to improve the readability.): 49 s(http://.../Structure.htm,type,s:TheoryUnit) 50 s(online:genid58,resource,s:LectureUnit1) 51 s(http://.../Structure.htm,online:parentUnit, Nr. Statement (subject,predicate,object) online:genid58) 1 s(online:Lecture,rdf:type,rdfs:Class) 52 s(http://.../Types.htm,type,s:TheoryUnit) 2 s(online:LectureUnit,rdf:type,rdfs:Class)) 53 s(online:genid62,resource,s:LectureUnit1) 3 s(online:title,rdf:type,rdf:Property)) 54 s(http://.../Types.htm,online:parentUnit, 4 s(online:genid2,resource,rdfs:Literal) online:genid62) 5 s(online:title,rdfs:range,online:genid2) 6 s(online:genid5,resource,s:LectureUnit) The O-Telos-RDF statements generated from the XML- representation are appended below. For simplicity, statement IDs 7 s(online:title,domain,online:genid5) are only referenced symbolically, but they can be derived from the 8 s(online:description,type,rdf:Property) rules stated in the earlier sections. 9 s(online:genid8,resource,rdfs:Literal) 10 s(online:description,range,online:genid8) s(sid1,sid1,Lecture,sid1) 11 s(online:genid11,resource,s:LectureUnit) 12 s(online:description,domain,online:genid11) s(sid2,sid2,LectureUnit,sid2) 13 s(online:parentCourse,type,rdf:Property) s(sid3,sid2,title,otelos:Literal) 14 s(online:genid14,resource,s:Lecture) s(sid4,sid2,description,otelos:Literal) s(sid5,sid2,parentCourse,sid1) 15 s(online:parentCourse,range,online:genid14) s(sid6,sid2,theoryPage,sid7) 16 s(online:genid17,resource,s:LectureUnit) 17 s(online:parentCourse,domain,online:genid17) s(sid7,sid7,TheoryUnit,sid7) 18 s(online:parentUnit,type,rdf:Property) s(sid8,sid7,parentUnit,sid2) 19 s(online:genid20,resource,s:LectureUnit) 20 s(online:parentUnit,range,online:genid20) s(sid9,sid9,AILecture,sid9) 21 s(online:genid23,resource,s:TheoryUnit) s(sid10,sid9,type,sid1) 22 s(online:parentUnit,domain,online:genid23) 23 s(online:theoryPage,type,rdf:Property) s(sid11,sid11,LectureUnit1,sid11) 24 s(online:genid26,resource,s:TheoryUnit) s(sid12,sid11,type,sid2) 25 s(online:theoryPage,range,online:genid26) s(sid13,sid11,title,"Lecture Unit 1") s(sid14,sid13,type,sid3) 26 s(online:genid29,resource,s:LectureUnit) s(sid15,sid11,description, 27 s(online:theoryPage,domain,online:genid29) "Introduction to intelligent agents") 28 s(online:TheoryUnit,type,rdfs:Class) s(sid16,sid15,type,sid4) 29 s(online:AILecture,type,s:Lecture) s(sid17,sid11,parentCourse,sid9) 30 s(online:LectureUnit1,type,s:LectureUnit) s(sid18,sid17,type,sid5) 31 s(online:LectureUnit1,online:title,Lecture Unit 1) s(sid19,sid11,theoryPage1,sid27) 32 s(online:LectureUnit1,online:description, s(sid20,sid19,type,sid6) Introduction to intelligent agents) s(sid21,sid11,theoryPage2,sid31) s(sid22,sid21,type,sid6) Internet Society, rfc 2396 edition, 1998. s(sid23,sid11,theoryPage3,sid35) http://www.ietf.org/rfc2396.txt. s(sid24,sid23,type,sid6) [3] D. Brickley and R. V. Guha. Resource Description s(sid25,sid11,theoryPage4,sid39) Framework (RDF) Schema Specification 1.0. Technical s(sid26,sid25,type,sid6) report, World Wide Web Consortium (W3C), 2000. http://www.w3.org/TR/rdf-schema. s(sid27,sid27,"http://.../Definition.htm",sid27) [4] Wolfram Conen and Reinhold Klapsing. A logical s(sid28,sid27,type,sid7) interpretation of RDF. In Linköping Electronic Articles in s(sid29,sid21,parentUnit,sid11) s(sid30,sid29,type,sid8) Computer and Information Science, Semantic Web Area, volume 5. Linköping University Electronic Press, December s(sid31,sid31, 2000. http://www.ep.liu.se/ea/cis/2000/013/. "http://.../Characterisation.htm",sid31) [5] W3C Working Group. W3C Resource Description s(sid32,sid31,type,sid7) Framework (RDF) Model and Syntax Specification. s(sid33,sid31,parentUnit,sid11) http://www.w3.org/TR/REC-rdf-syntax/, February 1999. s(sid34,sid33,type,sid8) [6] ISO/IEC. Information technology - Information Resource Dictionary System (IRDS) framework, ISO/IEC 10027, 1990 s(sid35,sid35,"http://.../Structure.htm",sid35) (E). s(sid36,sid35,type,sid7) [7] M. Jarke, R. Gallersdörfer, M. Jeusfeld, M. Staudt, and s(sid37,sid35,parentUnit,sid11) S. Eherer. ConceptBase - a deductive object base for meta s(sid38,sid37,type,sid8) data management. Journal on Intelligent Information Systems, 4(2):167 – 192, 1995. s(sid39,sid39,"http://.../Types.htm",sid39) s(sid40,sid39,type,sid7) [8] M. Jeusfeld. Änderungskontrolle in deduktiven s(sid41,sid39,parentUnit,sid11) Objektbanken. Infix-Verlag, St. Augustin, Deutschland, s(sid42,sid41,type,sid8) 1992. [9] M. Jeusfeld and ConceptBase Team. Application papers. For simplicity reasons, we left out statements for declaring the Technical report, Chair of Computer Science V - Information literals used as instances of otelos:literal. Similarly, all type state- Systems, RWTH Aachen, 2000. http://www- ments are instances of otelos:type, all individuals are instances of i5.informatik.rwth-aachen.de/CBdoc/cblit.html#cb-app. otelos:individual and all properties are instances of otelos:property. [10] B.M. Kramer, V.K. Chandhri, M. Koubarakis, T. Topaloglon, These statements can be deduced from the respective axioms. H. Wang, and J. Mylopoulos. Implementing Telos. SIGART Bulletin, 2(3), June 1991. 3. DISCUSSION [11] J. Mylopoulos, A. Borgida, M. Jarke, and M. Koubarakis. In this paper we described the formalization of an RDF(S) vari- Telos: A language for representing knowledge about ant called O-Telos-RDF, which provides enhanced functionalities information systems. ACM Transactions on Information for meta-modeling and reified statements. The formalization is Systems, 8(4), 1990. based very closely on the formalization of the modeling language [12] Wolfgang Nejdl, Hadhami Dhraief, and Martin Wolpers. O-Telos, which is based on a semantic network model similar to O-telos-rdf: A resource description format with enhanced RDF(S). Axioms and constraints are clearly defined. In the longer meta-modeling functionalities based on o-telos. Technical report, we include all these axioms in an appendix, together with report, University of Hannover, July 2001. their counterparts in O-Telos and RDF(S). This exact formalization http://www.kbs.uni- will hopefully contribute to an understanding of both O-Telos-RDF hannover.de/Arbeiten/Publikationen/2001/kcap01- and (in this context) the current RDF(S) formalization. workshop.pdf. Compared with RDF, O-Telos-RDF shows its advantages in al- [13] Wolfgang Nejdl, Martin Wolpes, and Christian Capelle. The lowing easier reification of statements, and in metamodelling appli- RDF schema specification revisited. In Modellierung 2000, cations, where more than three abstraction hierarchies are needed. St. Goar, Germany, April 2000. http://www.kbs.uni- Furthermore, the class centric approach to property definition al- hannover.de/Arbeiten/Publikationen/2000/modeling2000/wolpers.pdf. lows the definition of properties with the same name for different [14] Jeff Z. Pan and Ian Horrocks. Metamodeling architecture of domains, which have different ranges (not possible in RDF(S)). web ontology languages. In Proceedings of the Semantic Web These properties seem to make O-Telos-RDF more similar to Working Symposium, pages 131–149, Stanford, July 2001. DAML+OIL than RDF(S) is (in the sense that DAML+OIL is more [15] Janne Saarela. SiRPAC - simple RDF parser & compiler. easily/naturally represented in O-Telos-RDF than in RDF(S)). A World Wide Web Consortium (W3C), 2001. detailed discussion of this relationship will be included in a forth- http://w3c.org/RDF/Implementations/SiRPAC. coming report. Similarily, we will discuss reasoning functionali- [16] A. Tarski. On the calculus of relations. Journal of Symbolic tities for O-Telos-RDF, based on the Datalog n reasoning facilities Logic, 6(3), September 1941. already present in O-Telos and ConceptBase. 4. REFERENCES [1] J. R. Abrial. Data semantics. In Klimbie and Koffeman, editors, Data Base Management. North-Holland Publ., 1974. [2] T. Berners-Lee, R. Fielding, U.C. Irvine, and L. Masinter. Uniform Resource Identifiers (URI): Generic Syntax. In Internet Official Protocol Standards (STD 1), RFC. The APPENDIX A. BASIC XML-SERIALISATION The basic XML-serialisation stated here resembles very closely the basic XML-serialisation of RDF, given in the RDF Syntax and Model Specification [5], in order to necessitate only minor changes in current RDF parsers. It is used to express the O-Telos-RDF state- ments in XML, and in its current form takes care of the primitive types “Literal” and “Statement” (and their subclasses). Its main purpose is the grouping of multiple statements for the same re- source into a description element using XML syntax. As in the RDF Syntax and Model Specification the OTELOS element is a simple wrapper that marks the beginning and end of O-Telos-RDF statements in an XML document. The EBNF of the basic O-Telos-RDF XML serialisation looks as follows: 1) OTELOS ::= [’ o otelos:OTELOS p ’] description* [’ o /otelos:OTELOS p ’] 2) desLabel ::= otelos:Description q otelos:Class q otelos:Individual q otelos:Property 2a) description ::= ’ o ’ desLabel idAboutAttr? ’ p ’ propertyElt* ’ oOr ’ desLabel ’ p ’ q ’ o ’ desLabel idAboutAttr? ’ rsp ’ 3) idAboutAttr ::= idAttr q aboutAttr 4) aboutAttr ::= ’about=”’ statement-reference ’”’ 5) idAttr ::= ’ID=”’ IDsymbol ’”’ 6) propertyElt ::= ’ o ’ label propertyEltExt? ’ p ’ value ’ oOr ’ label ’ p ’ q label propertyEltExt? ’ rsp ’ 6a) propertyEltExt ::= statementAttr q typeAttr q statementAttr typeAttr q typeAttr numberAttr q statementAttr typeAttr numberAttr 7) label ::= name 8) value ::= description q string 9) statement- ::= ’s=”’ statement Attr -reference ’”’ 9a) typeAttr ::= ’type=”’ statement -reference ’”’ 9b) numberAttr ::= ’number=”’ ordinal ’”’ 9c) ordinal ::= ’ ’number 9d) number ::= (any positive integer value) 10) statement ::= string, interpreted as -reference statement-ID, includes NSprefix 11) IDsymbol ::= (any legal XML name symbol) 12) name ::= (any legal XML name symbol) 13) NSprefix ::= (any legal XML namespace prefix) 14) string ::= (any XML text, with ” o ”, ” p ”, and ”&” escaped)