The Subject of Attributes in Unotal-R
Some parts of this article are obsolete. It needs to be rewritten partially.
In Unotal an attribut name is intended to be the name of a rôle of data within an assertion while a space type name gives the type of the space.
A rôle name is the name of a relation. For example, consider the following assertions.
- Assertions in English
The name of the book is "Exceptional C++". The ISBN of the book is "0-201-61562-2" The author of the book is "Herb Sutter".
In arrow notation the assertions are as follows. On can see that the rôle names are names of relations.
- Assertions in Arrow Notation
.------. name .-------------------.
| book |------------>| "Exceptional C++" |
| | '-------------------'
| | ISBN .-------------------.
| |------------>| "0-201-61562-2" |
| | '-------------------'
| | author .-------------------.
| |------------>| "Herb Sutter" |
'------' '-------------------'
In Unotal the attributes corresponding to these assertions are as follows.
- Assertions in Unotal
name=[Exceptional C++] isbn=[0-201-61562-2] author=[Herb Sutter]
However, attributes only have two entries: The left hand side of the equals "=" and the right hand side. These entries correspond to the name of the relation and the name of the target of an arrow. But where is the source of the arrow, i.e., the subject of the assertion?
The answer to this question is not so easy as it seems. It is not always the space of the attributes.
The subject of an attribute needs to be specified.
This text gives a (preliminary, draft) specification for the specification of attribute subjects in Unotal-R. Unotal-R is the name of Unotal when it is combined with this extension.
- There are the following modes in Unotal-R .
- Space Mode : The attributes are definitions for the space.
- Resource Mode : The attributes are assertions about a resource.
- Parent Mode : The attributes are assertions about the parent space.
Space Mode
In space mode an attribute is not an assertion but a definition.
For example, in "< &numeral base=octal 427 >" the attribute "system=octal" defines the base of the space "< &numeral base=octal 427 >".
- The Attribute "base=octal" in English
Let the base of this space be "octal".
- The Attribute "base=octal" in Arrow Notation
.------------. base .-------.
| this space |-----------!>| octal |
'------------' '-------'
How is this interpretation to be requested?
- There are two preliminary answers to this question:
- All attributes of a space are in space mode, when space mode is requested by the attribute "uno:subject=uno:space" within the space.
- All attributes of a space are in space mode, whenever the space has a body.
Entity Mode
In entity mode an attribute is an assertion about an entity, which is usually not the space itself, but anything. The specific subject is specified by the set of all assertions. (Usually it is overdetermined, so that a subset of the attributes specifies the subject and the other attributes make assertions about that subject. It does not have to be a uniquely determined, which subset is specifying the subject.)
- A space in Entity Mode
< name=[Exceptional C++]
isbn=[0-201-61562-2]
author=[Herb Sutter] >
In the example the attribute "isbn=[0-201-61562-2]" is specifying which entity the assertions are about. The other two attributes then make assertions about this entity.
- Assertions in Arrow Notation
.----------------------. name .-------------------.
| isbn="0-201-61562-2" |------------>| "Exceptional C++" |
| | '-------------------'
| | author .-------------------.
| |------------>| "Herb Sutter" |
'----------------------' '-------------------'
However, that the attribute "isbn="0-201-61562-2"" is specifying the entity and the other two attributes make assertions about it, is not a neccessary conclusion from the spaces. Other iterpretations are possible. For example, that the name and author determine the entity and the ISBN is given as an assertion.
How is this interpretation to be requested?
- There are three preliminary answers to this question:
- All attributes of a space are in entity mode, when space mode is requested by the attribute "uno:subject=uno:entity" within the space. When the space is in parent mode (described below), the subject of the space is its parent space. Otherwise, the attributes that are intended to specify the subject might be given as a set value of the attribute name "uno:specifier", e.g., as the attribute "uno:specifier=isbn" or the attribute "uno:specifier={name author}".
- All attributes of a space are in entity mode, whenever the space has no body.
- All attributes of a space are in entity mode, when this space is in parent mode (see below).
Parent Mode
In parent mode an attribute is an definition for the parent space of its space. This is used to make assertions about spaces in entity mode. To see, why this is neccessary, one might look at a space in entity mode.
- A Space in Entity Mode
< name=[Exceptional C++]
isbn=[0-201-61562-2]
author=[Herb Sutter] >
How should the author of this space be given? It can not be given as a value of the attribute "author", because in entity mode this attribute gives the author of an entity and not of this space. It would also be ugly to use other words for the names of attributes in this case, because the meaning of names might be given by an external vocabulary and the name "author" here is perfectly right to name the relation: The problem is not to write down another relation, but another subject. Therefore, it would not be an appropriate solution to modify the name of the attribute, which gives the name of the relation.
Therefore in Unotal-R the author of the space is given as an attribute within another space, which is given as a value of the attribute "uno:space".
- A Space in Parent Mode
< name=[Exceptional C++]
isbn=[0-201-61562-2]
author=[Herb Sutter]
uno:space=
< author=[Peter Miller]
created=[2004-03-24] >>
Here the attribute "author="Peter Miller"" says that Peter Miller is the author of the whole (outer) space given above, while the attribute "author="Herb Sutter"" specifies that Herb Sutter is the author of the entity described by the whole (outer) space.
How is this interpretation to be requested?
- There is the following preliminary answer to this question:
- A space is in parent mode, if it is the value of an attribute with the name "uno:space". Here "uno:space" is the name of the relation between a space and its description. This special case escapes the usual interpretation that an attribute in a space in entity mode makes an assertion about the entity being described. The assertions within a space in parent mode are definitions of properties of the parent space.
A uno:space-attribute is only required with spaces in entity mode, because the attributes of a space in space modes always describe the space itself.
- Assertions in Arrow Notation
.----------------------------------------------.
| .--------. name .-------------------. |
| | entity |------------>| "Exceptional C++" | |
| | | '-------------------' |
| | | ISBN .--------------------. |
| | |------------>| "0-201-61562-2" | |
| | | '-------------------' |
| | | author .-------------------. |
| | |------------>| "Herb Sutter" | |
| '--------' '-------------------' |
'----------------------------------------------'
|
| uno:space
V
.-------------------------------------------.
| .---------. |
| | parent | author .----------------. |
| | |----------!>| "Peter Miller" | |
| | | '----------------' |
| | | created .----------------. |
| | |----------!>| "2004-03-24" | |
| '---------' '----------------' |
'-------------------------------------------'- Assertions in English
The name of the book is "Exceptional C++". The ISBN of the book is "0-201-61562-2" The author of the book is "Herb Sutter". The author of the three first assertion is set to "Peter Miller". The creation date of the three first assertions is set to "2004-03-24".