使用规范主题规则
要使用规范主题规则,您必须具有以下角色:
- 编目管理员
可以扩展首选/非首选记录(使用元数据编辑器中的F3)的规范主题显示结果,以提供更多详细信息。 在某些情况下,标准规范主题结果显示如下图所示的有限信息,使得当规范主题结果列表中出现多个具有相同信息的记录时难以确定要选择的记录。
标准规范主题结果显示
通过规范主题规则,可以扩展相同的结果以显示更多详细信息,使编目员更容易确定要选择的记录。
配置的扩展规范主题结果显示
有关使用首选和非首选规范主题的更多信息,见在元数据编辑器中管理规范记录。
规范主题规则使用drools-type逻辑来指定扩展的规范主题显示的内容和格式。 用于规范主题规则的语法在规范主题规则语法和示例中有描述.
更多信息见规范主题显示选项 视频(4:33 分钟)。
创建规范主题规则
规范主题规则在元数据编辑器中创建,并显示在规范主题规则文件夹的规则选项卡下。 在适用的情况下,可以重复或复制规范主题规则并修改以创建新规则。
对于网络区联盟成员,用户可以控制在本地或在网络机构中保存新规则。 要完成该选项,打开记录或模板区域,访问新建 > 提交选项。 请注意,该选项根据用户生效。
要创建规范主题规则:
- 打开元数据编辑器页面(资源 >编目> 打开元数据编辑器)。
- 选择新建 > 规范主题并然后规范化规则属性对话框中输入规范主题规则属性。
- 选择保存。 规则编辑器打开。
- 输入规则详细信息。 有关使用的语法的信息,见规范主题规则语法和示例。
- 选择保存。 规则选项卡的导航面板中显示保存的规范主题规则。
保存的规范主题规则可以被编辑、删除、重复(创建新规则)或提交(供共享区的其他人访问)。 您也可以修改规则属性。
规范主题规则语法和示例
规范主题规则遵循特定语法。 见下例:
规则 "Expand Headings"
when
not preferred
then
add to text displayValue
add to text " | "
add to text preferredDisplay
add to text " | "
add to text from "079.b" if (exists "079.b")
add to text " | "
add to text from "035.a" if (exists "035.a.*588*")
add to text " | "
add to text from headingSourceField "[9,w]"
end
when
not preferred
then
add to text displayValue
add to text " | "
add to text preferredDisplay
add to text " | "
add to text from "079.b" if (exists "079.b")
add to text " | "
add to text from "035.a" if (exists "035.a.*588*")
add to text " | "
add to text from headingSourceField "[9,w]"
end
有关规范主题规则语法的描述,见下表,并见规范主题规则所支持的条件一节了解支持条件列表。 条件和操作适用于记录元素,如MARC记录、字段(一个或多个)、指示符、子字段(一个或多个)和字段/子字段内容。
表达 | 意义 |
---|---|
when
not preferred
then
|
仅当主题为非首选主题时执行操作。 |
when
preferred
then
|
仅当主题为首选主题时执行操作。 |
when
(exists/not exists "<element>")
then
|
检查字段(存在/不存在)于规范记录中(类似常规规范化规则)。
例如:
when
(not exists "100.d")
then
|
add to text preferredDisplay | 将首选主题添加到显示中。 显示与MARC 21或UNIMARC等记录格式相匹配的首选主题。 |
add to text displayValue | 添加显示主题值。 |
add to text "<hard coded value>" | 将写死的值与文本(例如|)连接。
例如:
add to text "|"
|
add to text from "<element>" | 添加来自记录中的值。 这可以包括字段/子字段规范和条件。 有关支持条件列表的更多信息,见规范主题规则的支持条件。
对于重复字段,可以使用首次出现语法(onlyfirst)只显示重复字段的第一个实例。
对于连接的子字段,可以使用delimited by语法在子字段之间添加分隔符。
例如:
add to text from "005" if (not existsControl "005.{0,2}.19")
add to text from "005" if (existsControl "005.{0,2}.19")
add to text from "005.{0,4}" if (not existsControl "005.{0,2}.19")
add to text from "005.{0,4}" if (existsControl "005.{0,2}.19")
add to text from "005"
add to text from "005.a"
add to text from "005.{0,4}"
add to text from "400.a" if (not exists "400.d.1808*")
add to text from "400.a" if (exists "400.d.1808*")
add to text from onlyfirst "035.a" if (not exists "035.a")
add to text from onlyfirst "035.a" if (exists "035.a.(OCoLC)*")
add to text from "400.a" delimited by "; "
|
add to text from headingSourceField | 添加来自规范主题源字段的文本。
例如:
add to text from headingSourceField "[a-z]"
|
add to text from headingSourceField excluding "<field.subfield>" | 添加来自规范主题源字段的文本,并排除指定的字段。
例如:
add to text from headingSourceField excluding "[0-9]|e|E"
|
规范主题规则的支持条件
规范主题规则支持以下条件:
- preferred
- not preferred
- existsControl "{element}"
- not existsControl "{element}"
- exists "{element}"
- not exists "{element}"
- existsMoreThanOnce "{element}"