分享
 
 
 

RFC242 - Data Descriptive Language for Shared Data

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

RFC242

NIC 7672

Categories: D.4, D.7

DATA DESCRIPTIVE LANGUAGE FOR SHARED DATA

L. HaiBT

A. Mullery

Thomas J. Watson Research Center

Yorktown Heights, N.Y.

July 19, 1971

IntrodUCtion

A primary consequence of the use of networks of computers is the

demand for more efficient shared use of data.

Many of the impedements to easy shared data follow from the many

diverse ways of representing and making reference to the same data.

Almost all of these problems have been known before data was shared

through computer networks, but the network facility has simply

emphasized the problems.

For convenience of discussion, representation differences will be

classified in three categories. The first category is one of very local

representation - the bit patterns for the character set, for fixed point

and floating point numbers. These differences are usually imposed by

differences in CPU's and storage devices. Translations from one

representation to another at another at this level can usually be made a

unit at a time (e.g. computer Word by computer word) with the most

serious problems occurring when there are some values in one

representation scheme which have no corresponding meaning in the other

representation scheme, as, for eXPamble, when trying to translate

eight-bit bytes to six-bit bytes.

A second category of differences has to do with the representation

of collections of data, e.g., their size, ordering and location.

[Page 1]

A third category of representation differences which is a little

difficult to characterize has to do with all the more complex structures

that data collections may have - for example, files with indexes, fields

with internal pointers and cross references, and collections of files

such as partitioned data sets and generation data sets in OS 360.

The approach to coping with these problems within our project of

Network/440 has been to work on the development of a descriptive

language which would permit the specification of those ASPects of data

representation which would be subject to transformation in moving data

about in a network. Then, the network data managment system would be

able to refer to the descriptions as needed in the data management

function. For example, to a large extent, one could supply two

descriptions to the data manager, one wich indicates how data is now

represented, and one which indicates how a copy of it should look, and

the data managment systems could invoke the necessary transformations to

make the proper copy.

This approach to specifying data transformation contrasts somewhat

with systems, such as the RAND Form Machine, which provide a formalism

for specifying the particular translation alogrithms for changing form

one form to another. the descriptor-to descriptor approach seems to

simplyfy the programming burden when creating new field formats. Neither

method of specifying translations precludes the use of a Network

Standard Reprsentation.

Structure

The descriptive language assumes that data may have an inherent

structure independent of other groupings, such as name groupings,

locking groupings, etc., imposed on it. A data structure description

consists of groupings of established data value type codes. The list of

established data value types should be sufficient, through appropriate

groupings, to describe any hierarchical structure of data.

The data type identifies how the data value is to be interpreted. A

list of data type codes is given below. This list must be able identify

each data type that may exist in a data set in any machine in the

network. However, for data sets that contain only data types of the

machine on which it is stored, it is not necessary that a different code

be defined for different forms of any single type that may exist among

different machines. The data type specified in the description along

with the identification of the machine at which the data is stored is

sufficient to completely describe all such forms of the data types. A

tentative list of machine dependent type codes, compiled by

F floating point

I fixed

D double precision floating point

C character string

X complex

P packed decimal

L logical

It is desirable to be able to construct data sets that contain

either data types not allowable at the machine at which the data set

is stored or, possibly, even types that say not exist at any machine

in the network. For example, one may wish to store eight bit data on a

six bit machine. This may, in principle at least, be done by defining

a logical data set containing eight bit bytes in terms of a real data

set containing six bit characters. For this, however, data value type

descriptors have to be defined that are machine independent. The basic

machine independent data type is as follows:

B bit.

It is not clear at this time that any others are necessary since others

can be built from this one. For convenience, other standard machine

independent data types may later be defined.

Two other machine independent types are useful in describing

structures. These are:

Z null

O omit.

the null type indicates that there is no data corresponding to this

item: however, the item should be counted as existing in the structure.

The omit type indicates just the opposite: there is data that should not

be counted as an item, it should be ignored.

[Page 3]

A grouping of data values is described by the list of elements of

the grouping enclosed in parentheses. An element of grouping may be

either a data value as described by one of the data value type codes, or

a grouping. The list consists of these elements, separated by commas and

indicates that the elements appear in the grouping in the order

indicated. For example, the description:

((C,C),(F,F,I))

describes a data collection consisting of two subgroupings, the first

subgrouping consisting of two data values of type 'C', and the second

subgrouping consisting of two data values of type 'F' followed by a data

value of type 'I'. the structure of this data collection is thus a three

level tree which may be shown in two dimensions as follows:

( )

( )---( )

C-C F-F-I

Properties

Other properties of data beyond that of the structures and

composition of the data set have also to be described. These may be

assigned to items of the data collection, where an item may be defined

as an individual data value, or a grouping of these, by modifying the

item description with the specification of the preperties that apply to

it. The notation that will be used will be an infix notation of the

form:

operand operator [extent]

where the operator indicates the property type, the operand the property

value and the optional extent the numer of items to which the property

applies. Normally the property is assumed to apply to just the following

item in the description. If the property is to apply to more than just

the following item description, this is indicated by specifying a number

as the extent, this number indicating how many of the following item

definitions at the same level the property is to apply to.

Type - The structure description of the data set is a constitutional

or syntactic description of the data set. In some cases it is necessary

to give a discription of the use or meaning of an element. For example,

in some complex data structures, the linkages of the structures may be

represented as data values in the data set. Thus, though the more

[Page 4]

complex data structure is represented in a hierarchical form and, as a

result, is in a form describable by the above notation, the data values

that represent the linkages, and their meaning, must somehow he

represented in the data description in order for the complex data

structure to be truly described. As another example, one may wish

ascribe to some level of the data structure the type 'record' so that

the data set can be used by some system which uses the concept 'record'

in Accessing the data.

What an initial set of such types should be has not been deicded.

Names - Items of a data structure can be given names by modifying

the items description with a notation of the form:

name n [extent].

Depending on the context of its use, the name can refer to the

description itself or to the data pertaining to the named part of the

description. The name is assumed to be unique only within the scope of

extent of the next higher encompassing name unless otherwise indicated

by giving another encompassing name as the scope. This may be the name

of the whole data set or description, for example. The scope of a name

is specified by preceding the inner name by the outer name or names,

separated by dots. The name:

A,BETA

indicates that the scope of the name BETA is A.

The name applies to just the following item in the description

unless otherwise indicated by including the extent parameter, For

exampel, the description:

(An(C,C), (Bn[ 2 ]F,Cn[ 2 ]F,I))

indicates that name A is given to the item that contains two data values

of type 'C', the name B to two data values, both of type 'F', and the

name C to the last two data values, one of type 'F', and the other of

type 'I'. Notice that with this notation, extents can overlap. For

example, in the above description, the extent of name B overlapped that

of name C.

In a description, the same name can be applied to more than one item

definition either by use of the extent parameter, or by actually

specifying the name at each item to be included in the extent of the

name. If a name is multiply-applied within the same scope, then the name

is assumed to apply to the aggregate of the items to which it has been

given. Thus is possible to apply names to aggregates of items that are

Lock - During the course of processing data, it may be necessary to

lock out use of some portion of data to other users. Seqmentation of a

data set into units for locking purposes may be indicated by the

notation:

k[extent].

Whether or not the data is locked and the type of lock applied (for

example, write protect or read/write protect) is specified at the time

the data is used.

Authorization - Authorization for a user to access data may be

governed by some access code assigned to the data. This access code can

be specified in the description by modifying the desired elements of the

description with an indication of the code. The notation is:

code a [extent ]

Control.

Two modifiers are provided which govern the existence of items in

the definition. The first is the repetition modifier:

factor r [extent ].

This causes the following item definition or item definitions (if the

extent indicates more than one) to be repeated. Thus the description

(3rC)

is equivalent to the description

(C,C,C).

The other control modifier is the condition modifier:

condition c [extent ].

If the condition specified is not true, then the following item

definition is ignored. The condition is specified by a Boolean

expression.

Since several modifiers may apply to an item definition, there is a

problem concerning the relationship among them. For example, if a

repetition modifier and a conditional modifier apply to an item, does

the condition apply to all the repeated items, or only to the first,

[Page 6]

assuming the extent of the condition modifier is one? The effect of

multiple modifiers is dependent on the order in which they are

evaluated. Two possible conventions come to mind. One says that

repetitions are expanded first, then properties applied, and finally

conditions applied to the resulting expanded item definitions,

independent of the order in which the modifiers were specified in the

description. Thus the description

(A=3c [ 4 ]4rF,I)

is equivalent to

(4rA=3c[ 4 ]F,T),

and if the condition is true, is equivalent to

(F,F,F,F,I),

or, if the condition is not true, is equivalent to

(T).

The other convention is that the modifiers are evaluated in the order in

which they appear in the description, perhaps. in reverse order - the

modifier immediately preceding an item definition is evaluated first,

then the one next preceding, etc. This gives more flexibility of meaning

to the mulitple modifiers. For example, the descriptions

(A=3c3rC)

and

(3rA=3cC)

are not equivalent. In the first, only the first of the three

repetitions is affected by the condition whereas in the second, ll three

repetitions are affected. Since this second convention is more flexible,

it shall be the one assumed. This convention allows, for example, the

repetition modifier to the applied to a named item as shown:

(3rAnC).

The name A applies to the three items (in effect, the name A is applied

three times). This facility allows a name to be applied to a vertical

column in a two dimensioned array by, for example, the description:

(3r[ 3 ]C,AnC,C)

Reference

Named descriptions, or parts of descriptions, that have already been

defined may be inserted into a description using the notation:

$ specification.

Is a description, the reference is used as an item definition of a

string fo item definitions. The item definitions used are those defined

by the name given. Names that apply to the named item or items as a

whole in the description in which it is defined are ignored by the

description at which is referred. However, names that apply to parts of

the named item are carried over to the description at which it is

referred. For example the description

(An(F,F),I,$A)

is equivalent to

(An(F,F),T,(F,F)).

Notice that the name "A" was not carried over to where the description

was referenced since it applied to the referred-to item or items as a

whole.

Parts of a data set or description must be able to be specified for

use in a reference. This specification is in terms of the structure of

the data set or description. The specification has the form of a data

set name, or description name, followed by modifiers which particularize

to specifications, to the part desired. The four types of modifiers are

for going down a level, going up a level, going frontwards along a

level, and going backwards.

Down - To go down a level from that previously specified, the

modifier has the following form:

. item

or

. (item ,extent ,=value).

Having gone down a level, the item indicates which particular item at

this level is the first (or only one) desired. This may be a number or a

[Page 8]

name. If more than one are desired, then the extent indicates how many

items. (* as extent means all remaining items at that level, ! means

the first item that meets the conditions that may he get on it or

subitems in following modifiers.) The items selected may he conditioned

by their contents. If a value is given, then only those items with the

value indicated are selected. For example,

A.1.1

specifies the first field of the first record of data set A,

A.(1*).1

specified the first field of all the records of A,

A.1.(1,2)

specifies the first two fields of the first record of data

set A,

A.(1,*).(1,="768174")

specified only the first fields of all the records of A that

have value "768174", and

A.(1,!)-(1,="768174")

finds the first field that has value "768174".

Up- To go up a level from that previously specified,

the modifier has the following form:

' item

or

' (item ,extent ,=value).

Going up a level specifies the item up one level that contains the item

previously specified. The item indicates which particular item at this

level is desired where the containing item is considered the first. For

example,

A.(1,!).(1,=768174")'1

Forward. - To go forward on the same level as that previously

specified, the modifier is as follows:

+ item

or

+ (item ,extent ,=value).

This modifier is useful when an item following the one which has a

certain value in a field is desired. It may also be used when the data

set name is really a pointer, into the data set, which has beet set

previously. Pointers may or may net be described in a section elsewhere.

Backward. - To go backward on the same level as that previously

specified, the modifier has the following form:

- item

or

- (item ,extent ,=value).

An example of the use of this modifier is when an item preceding the one

which has a certain value in a field is desired. This might be

specified:

A.(1,!).(2,="768174")'1-1

[ This RFCwas put into machine readable form for entry ]

[ into the online RFCarchives Gottfried Janik 9/97 ]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有