Skip to main content
ExLibris
  • Subscribe by RSS
  •  

    Ex Libris Knowledge Center

    使用指示规则

    可译的
    要使用指示规则,您必须具有以下角色之一(和使用元数据编辑器需要的角色相同):
    • 编目员
    • 编目经理
    • 编目管理员

    指示规则用于过滤结果集。 指示规则不改变数据。 它们仅用于读取基于一定条件的结果集和过滤记录。 过滤进程的结果是创建的新结果集,它是原始/过滤结果集的子集。 有关更多信息,见管理检索查询和结果集页面的过滤结果集
      指示规则用于MARC书目记录,XML指示规则用于Dublin Core记录。
      以下部分介绍如何创建和测试指示规则,并提供可纳入工作流程的示例:
      指示规则只和资源管理内容类型有关。这是什么意思?
      此外,您可以对使用结果集的其他功能区域设定指示规则:
      有关指示规则的更多信息,见演示和文件 - 规则

      创建指示规则。

      您可以通过元数据编辑器来创建和维护指示规则。
      创建指示规则:
      1. 打开元数据编辑器。
      2. 选择文件 > 新建 > 指示规则规范化规则属性对话框打开。

        Rule_Properties_Dialog_Box_2.png
        模板属性对话框
      3. 指示创建规则为专用或共享。 这决定指示规则保存在哪个文件夹。 您可能想要将指示规则保存在专用文件夹并在移动到共享文件夹(通过更改属性)之前进行测试。 专用指示规则无法在由管理结果集页面触发的“过滤结果集”功能中使用。 请注意,共享区文件夹含有供您复制并创建自己的规则的指示规则。
      4. 在“类型”下拉列表中,选择是否创建规则为Drool(MACR书目记录)或XML(都柏林核心记录)。
      5. 选择“启用”这有什么用?
      6. 选择保存。 元数据编辑器编辑面板打开。
        指示规则编辑面板
        • 如果选择创建MARC记录的指示规则,输入规则的Drools逻辑。 对于创建指示规则时使用的句法见章节规范化规则 – 句法和示例。 下列指示规则在Alma中提供:
          MultiTitleIndication.dslr BriefIndication.dslr
          提供的指示规则(多个题名)
          对该规则,控制字段不存在条件。
          提供的指示规则(简要主题)

          欲知更多示例,见指示规则语法示例章节。
          尽管在规则中允许使用多个布尔运算符,但当选择大量布尔运算符时会降低运行速度。 因此每条规则应包含不超过200个布尔运算符。
        • 如果选择创建都柏林核心记录的XML指示规则,按照XML格式输入指示规则。
      7. 选择保存

      测试指示规则

      在运行作业以使用指示规则过滤结果集之前,您可能想要在元数据编辑器中测试规则。
      要测试已创建的指示规则:
      1. 在元数据编辑器中打开一个书目记录。
      2. 选择编辑 > split mode icon.png拆分编辑器
      3. 在左面板中选择规则选项卡并展开指示规则文件夹。
      4. 专用或者共享文件夹中查找要测试的规则(非社区)。 点击规则查看操作列表:
        • 编辑
        • 删除
        • 提交到共享区
        • 复制
        • 属性
      5. 选择编辑。 指示规则将在书目记录旁边的分屏中打开。

        Indication_Rule_Open_in_Split_Screen_2_NL.png
        指示规则在分屏中打开
      6. 选择尝试。 根据结果,显示弹出窗口,其中包含true或false响应,指示书目记录满足或不符合指示规则中的Drool逻辑。 

        Indication_Rule_Try_It_Response_2_NL.png
        指示规则 - 尝试响应

      MARC记录的指示规则 - 语法示例

      下文的Alma指示规则实例中提供了指示规则语法的实例。 有关更多信息,见条件。 

      在检索特定词汇的规则中,使用星号查找确切词汇。 如果子字段含有任何其他内容,则不会找到,除非有星号。 请注意,您只需在结尾插入星号,无需放在开头。

      rule "130|a|Bible."
      when
      exists "130.a.Bible*"
      then
      set indication."true"
      end

      exists "130.a.Bible"类似于“Equals”检索,因此如果子字段含有任何其他内容,则不会找到,除非有星号。

      示例1
      识别结果集中在949字段包含$a的记录。


      exists "949.a.*"
      ,管理 "Contains 949 with subfield a",然后
      设置只是."真"
      结束
      示例2
      识别结果集中在$0(子字段零)中包含1XX或6XX或7XX的记录。


      ((exists "1**.0.*") OR (not exists "042")0.*") OR (not exists "042")0.*"))
      ,管理 "Contains a 1XX or 6XX or 7XX subfield 0" 然后
      设置只是."真"
      结束
      示例3
      识别结果集中含有$0(子字段零)的以65例如650或659开头的字段的记录。


      exists "65*.0.*"
      ,管理"Contains a 65X subfield 0",然后
      设置只是."真"
      结束
      当创建指示规则使用通配符时,对字段标签中的每个数位使用一个星号。
      示例4
      识别结果集中含有$0(子字段零)的以6例如600、630、650或659开头的字段的记录。


      exists "6**.0.*"
      ,管理"Contains a 6XX subfield 0",然后
      设置只是."真"
      结束
      示例5
      检索含有多个300个字段且每个字段都有子字段a的所有记录。
      rule "Retrieve all records which contain two subfield a occurrences in 300"
      when
      existsMoreThanOnce "300.a"
      then
      set indication."true"
      end
      示例 6
      创建在字段630和650中有重复子字段x和z的记录的结果集。
      rule "Find duplicates 630 and 650"
      when
      recordHasDuplicateSubfields "630,650" "xz" ".,"
      then
      set indication."true"
      end
      有关指示规则的更多示例,见开发者网络的Alma指示规则示例页面。

      都柏林核心记录的XML指示规则 - 语法示例

      以下为XML指示规则语法的示例。
      示例1
      以下为如果记录有dc:subject字段则返回true的XML指示规则:
      <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/">
      <xsl:output method="text" encoding="UTF-8"/>
      <xsl:template match="/">
      <xsl:variable name="indication" select = "boolean(//dc:subject)" />
      <xsl:value-of select="$indication" />
      </xsl:template>
      </xsl:stylesheet>
      示例2
      以下为如果记录有等于Theology的dc:subject字段则返回false的XML指示规则:
      <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/">
      <xsl:output method="text" encoding="UTF-8"/>
      <xsl:template match="/">
      <xsl:variable name="indication" select = "not(boolean(//dc:subject='Theology'))" />
      <xsl:value-of select="$indication" />
      </xsl:template>
      </xsl:stylesheet>
      示例3
      以下为如果记录有dc:creator字段或dcterms:creator字段含有Tolstoy则返回true的XML指示规则:
      <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/">
      <xsl:output method="text" encoding="UTF-8"/>
      <xsl:template match="/">
      <xsl:variable name="indication" select = "boolean(//dc:creator[contains(.,'Tolstoy')] or //dcterms:creator[contains(.,'Tolstoy')])" />
      <xsl:value-of select="$indication" />
      </xsl:template>
      </xsl:stylesheet>
      • Was this article helpful?