结构概述
BERM的元数据模型是一个分层次的结构。最上层是一个根节点,根节点包含很多子元素。子元素还可以包含子元素。除根节点以外,包含子元素的元素称为分支节点或集合数据元素,不包含子元素的元素称为叶节点或简单数据元素。如此,整个数据模型被称为文档的“树状”结构。根节点、分支节点和叶节点的关系如下图所示。
![](https://img-blog.csdnimg.cn/img_convert/ab0b5d75e4f1c6e45d3e99cf4bbec5e6.png)
图 9‑1 基础教育教学资源元数据模型的树状结构
在元数据层次中的每一个元素都有一个相应的定义、数据类型以及值域。其相应具体内容见《基础教育教学资源元数据 信息模型》和《基础教育教学资源元数据 XML绑定》。
BERM模型的层状表示
《基础教育教学资源元数据信息模型》以文字描述及表格的形式给出了所有的数据元素及其定义。这种表示方法易于用户阅读,使用户能方便地了解数据元素的定义、解释和例子等。但如果能同时给出BERM模型的层状结构,将帮助用户建立起对BERM模型的总体印象。下图是以层次结构表示的BERM模型。该图展示了基础教育教学资源元数据中的九大类别:通用、生存期、元-元数据、技术、教育、权利、关联、评价以及分类系统。
![](https://img-blog.csdnimg.cn/img_convert/a289fa4e54471555aea075a4aba23b93.png)
基础教育教学资源元数据层状模型
数据元素
BERM模型中的数据元素分为两类:简单数据元素(叶节点)和集合数据元素(分支节点)。其中,“分支节点”元素不能规定数据类型和取值范围,其内容是其子元素的集合,而“叶节点”元素有相应的数据类型和取值范围。例如:通用.标识符(1.1号)是“分支节点”元素,有两个子元素:通用.标识符.类别(1.1.1号)和通用.标识符.表项(1.1.2号)。而通用.标识符.表项(1.1.2号)则是“叶节点”元素。在任何情况下为“分支节点”元素定义取值范围或数据类型都是不允许的。
可通过如下方法确定“分支节点”元素的强制属性和子元素的强制属性的关系:
a)如果“分支节点”元素是必需数据元素,某个子元素是可选数据元素,则在一致的元数据实例中:“分支节点”元素必须存在,可选子元素可以存在,也可以不存在。
b)如果“分支节点”元素是可选数据元素,某个子元素是必需数据元素,则在一致的元数据实例中:如果“分支节点”元素存在,则必须子元素必须存在。
“分支节点”元素的子元素作为其组成成分,应该按照定义进行使用。脱离了“分支节点”元素,子元素没有任何的意义。子元素的出现也就默认了“分支节点”元素的存在。
数据类型
语言字符串——对多种人类语言的支持
本标准支持基础教育教学资源元数据使用多种语言来描述。数据类型为“多语言字符串”的数据元素的值实际上是一个列表。列表的每一项都是一个二元组(语种,字符串)。
示例1:数据元素通用.标题(1.2号)的数据类型是多语言字符串,那么它的取值可以是:
![](https://img-blog.csdnimg.cn/img_convert/49d1c38a002e83349deb1c04c18a20c5.png)
示例2:
![](https://img-blog.csdnimg.cn/img_convert/e3e957a601c005e5e5d66e387b943cf2.png)
在第2个例子中第一项省略了对语言的描述,这是允许的。当多语言字符串中的某一项没有指明所使用的语言时,那么它所使用的语言和“通用.语种(1.3号)”一致,如果“通用.语种(1.3号)”没有指定某种语言,那么字符串所使用的语言也没有定义。
日期时间
数据类型为“日期时间”的数据元素的值是一个二元组(日期时间,描述)。其中,“日期时间”用于指定一个时间点。无法用“日期时间”来表示时间的情况下(时间不确定等),可以通过“描述”来指定时间。
日期时间的格式由GB/T 7408—2005确定。本标准采用了其中较为基本的一种表示方式:YYYY-MM-DDThh:mm:ss.sTZD(具体含义见“《基础教育教学资源元数据信息模型》”)。统一的格式能简化对时间的处理,减少解析错误,提高互操作性。
分类代码
对于某些数据元素,标准直接给出了可能的取值集合,称之为分类代码。如果大家都采用分类代码中的值,那么显然有更好的数据互换性。而且,对于学习对象的分类和查找都会有很大的帮助。但是,本标准中所推荐的分类代码没有强制性,用户可以不采用。
数据类型为“分类代码”的数据元素的值是一个二元组(来源,值)。其中,“来源”指分类代码的来源。分类代码的数据结构具体见下图。
![](https://img-blog.csdnimg.cn/img_convert/d92b30a2e62d7990f38a65f0ff332dfd.png)
分类代码的数据结构
数据元素教育.学习方式(5.1号)的数据类型为分类代码:{讲授,探究,自学,合作},
那么,教育.学习方式(5.1号)可能的取值为:
![](https://img-blog.csdnimg.cn/img_convert/c5565dd44e133634d120e9a0ff770d84.png)
如果用户认为BERM中给出的分类代码不能满足要求,那么用户可以引用其他的分类代码,包括官方的、被广泛认同的或用户自己定义的。引用的方法是在“来源”一项中给出所引用分类代码的来源。
列表和最低峰值
列表
在某些元数据实例中,一个数据元素的值可以有多个,称为列表。列表可以是有序的,也可以是无序的。如果该数据元素有子元素,那么列表的每一项都应该包含子元素。
最低峰值
对于不同类型的数据元素,其最低峰值如下:
——具有列表值的数据元素:所有的应用程序所能支持的列表的项数都必须大于或等于最低峰值。
数据元素通用.标题.其他标题(1.2.2号)的值是一个列表,列表的最低峰值是10。那么,一个和BERM一致的应用程序应该至少能处理10个其他标题。
——数据类型为字符串或多语言字符串的数据元素:对于数据元素中的字符串(不管是直接的还是包含在多语言字符串中),所有应用程序所能支持的最大字符串长度都必须大于或等于最低峰值。
通用.语种(1.3号)用字符串表示,最低峰值是100 个字符。那么,一个和BERM一致的应用程序至少应该能支持长度为100 的字符串。
BERM的核心集
核心集的作用
在BERM中,元数据模型的每个数据元素都被赋予一个属性:必须或可选。所谓必须,是指该数据元素对于元数据实例的合法性是必须的。所谓可选,是指该数据元素存在与否同元数据实例的合法性没有直接的关系。BERM模型中所有的必需数据元素组成了BERM模型的核心集。
BERM希望能够较全面地对基础教育教学资源进行描述,因此定义了较多的数据元素。如此庞大的数据项将带来如下问题:
a)如果要求用户全部支持,则实现较为困难,不利于标准的推广和采纳。即使用户采纳了BERM,也会自己减少元数据的数目。
b)如果让用户任意选取,那么很有可能不同的用户选择不同的数据元素,互操作性就没有了保证,失去了标准的意义。
通过确定核心集把数据元素减少到可以控制的范围内,有助于元数据工具和产品的开发者采纳BERM,同时通用的核心集也为互操作性提供了保证。
核心集的组成
核心集数据元素的组成如下图所示。从下图可以看到:核心集中都是一些十分通用的数据元素。换句话说,核心集中的元素比别的数据元素更基础。
![](https://img-blog.csdnimg.cn/img_convert/f1029ad8c223831b36d18ef1fac18c78.png)
核心集数据元素的组成
下图是核心集元素的层状表示,希望通过该图使用户对于核心集的组成有一个总体的印象和大致的了解。对于核心集中每一个数据元素的具体细节,请参考“《基础教育教学资源元数据信息模型》”。
![](https://img-blog.csdnimg.cn/img_convert/8491e8dfbed094930795f4ae4e84cf09.png)
核心集元素层状表示
核心集带有强制性:
a) 对于一个和BERM模型一致的元数据实例:必须包含核心集中的所有数据元素。
b) 对于一个和BERM模型一致的元数据应用:必须支持(识别、处理、存储等)核心集中的所有数据元素。
用户在确定自己的元数据模型时,需要把核心集纳入其中,同时要求按照BERM定义的语义来使用核心集中的各个数据元素。
BERM的一致性
概述
所谓一致性,是指用户对于自己的产品(包括元数据实例和元数据应用)应该如何进行一致性声明,也就是表明产品和BERM的关系。在BERM中,一致性分为两个层次:严格一致和一致。
严格一致
“和BERM严格一致”包括以下两个方面:
a) 如果一个元数据实例满足以下条件,则可以说“和BERM严格一致”:
1) 元数据实例包含BERM核心集的所有数据元素,可以包含BERM模型中的可选数据元素,不包含除此之外的任何数据元素。
2) 元数据实例中所有数据元素所描述的基础教育教学资源属性应该和BERM规定的该数据元素应该描述的属性一致。也就是说,用户不能滥用BERM模型中的数据元素,如不能把通用.正式标题(1.2.1 号)用于描述文档的字体等。
3) 元数据实例中数据元素的值的结构应该严格按照BERM规定进行组织,元数据实例要体现这种结构信息。也就是说,要保持数据元素的嵌套关系,而且不能对BERM中定义的数据元素做任何扩展。但这并不是说不能改变数据元素之间的顺序关系。类别之间以及类别和子类别中数据元素之间的次序可以改变。
4) BERM模型中的数据元素没有被重新定义取值范围和数据类型。
5) 元数据实例中列表的项数和字符串的长度不应该超过标准所规定的最低峰值。
b) 如果一个元数据应用满足以下条件,则可以说“和BERM严格一致”:
1) 元数据应用能处理核心集中的所有数据元素,可以处理可选数据元素,不能处理扩展数据元素。
2) 如果元数据应用收到一个和BERM严格一致的元数据实例,存储并转发,那么在此过程中不能丢失元数据实例中的任何信息(超过最低峰值的列表或字符串除外)。
一致
“和BERM一致”包括以下两个方面:
a) 如果一个元数据实例满足以下条件,则可以说“和BERM一致”:
1) 元数据实例包含BERM核心集的所有数据元素,可以包含BERM模型中的可选数据元素,还可以包含除此之外的扩展数据元素。
2) 元数据实例中BERM数据元素所描述的基础教育教学资源的属性应该和BERM规定的该数据元素应该描述的属性相一致。也就是说,用户不能滥用BERM模型中的数据元素,如不能把通用.正式标题(1.2.1 号)用于描述文档的字体等。
3) 元数据实例中BERM数据元素的值的结构应该按照BERM规定的那样进行组织,元数据实例要体现这种结构信息。也就是说,要保持数据元素的嵌套关系,但可以对BERM中的数据元素进行扩展。类别之间以及类别和子类别中数据元素之间的次序可以改变。
4) BERM模型中的数据元素没有被重新定义数据类型;
5) 如果元数据实例中有扩展数据元素,那么扩展的数据元素不能替代BERM 模型中的任何数据元素。
b) 如果一个元数据应用满足以下条件,则可以说“和BERM一致”:
1) 元数据应用能处理核心集中的所有数据元素,可以处理可选数据元素,还可以处理扩展数据元素。
2) 如果元数据应用收到一个和BERM一致的元数据实例,存储并转发,那么在此过程中元数据实例中的BERM数据元素不能丢失任何信息(超过最低峰值的列表或字符串除外)。
BERM模型的扩展
对BERM模型的扩展包括两个方面:
a) 为集合数据元素添加新的子元素;
b) 增加新的类别。
对于元数据的扩展问题,很难给出统一的方案。但在扩展的过程中应该注意以下问题:
(1)尽量使用BERM模型中的数据元素来描述基础教育教学资源的属性,不要随便进行扩展。
(2)如果有扩展的数据元素,扩展的数据元素不要取代或者重复BERM模型中的数据元素。例如,元数据实例中不应该有这样一个新的数据元素:“标题和版本”,因为它取代了BERM模型中已有的数据元素:通用.标题(1.2号) 和生存期.版本(2.1号)。