如何计算EPrints中的作者数量(像DSpace这样的存储库)?

时间:2016-01-25 15:03:11

标签: perl repository citations

EPrints是一个基于perl的存储库,请参阅EPrints in WP

我的图书管理员要求我按照以下方式设置EPrins(仅适用于“专题”类型的文档):

  1. 如果有3位或更少的作者,则在专着的标题之前打印“作者”;
  2. 如果有超过3位作者则打印'$ title / $ authors'。
  3. 例如,第一次出版物中有7位作者,第二次出版物中有2位作者:

    1. 俄语维基词典的引文语料库分析 / Smirnov A.,Levashova T.,Karpov A.,Kipyatkova I.,Ronzhin A.,Krizhanovsky A.,Krizhanovsky N. 计算科学研究。 2012
    2. Meyer C. M.,Gurevych I。 值得重视黄金或其他资源 - 维基词典,OpenThesaurus和GermaNet的比较研究。 2010。

2 个答案:

答案 0 :(得分:1)

经过几次尝试尝试失败的尝试......最大的问题是EPrints不是纯粹的Perl,而且没有太多的文档......

我们需要编辑引文文件/eprints/cfg/citations/eprint/default.xml)。有以下解决方案:

<!-- Monograph: if < 4 authors then print 'authors' before title -->
<when test="type = 'monograph'">

      <if test="is_set(creators_name)"> 

          <set name='authors' expr="creators_name">
              (Debug information) Number of authors: 
              <print expr="$authors.length()"/>.

              <set name='authors_len' expr="$authors.length()">

                  <if test="$authors_len lt 4">
                      <print expr="creators_name"/>
                  </if>
              </set>
          </set>
      </if> 
</when>

<!-- Title -->
<cite:linkhere><xhtml:em><print expr="title"/>:</xhtml:em></cite:linkhere>


<!-- "/ authors" after Title for monography if len(authors)>3 -->
<choose>
  <when test="type = 'monograph'">

      <if test="is_set(creators_name)"> 

          <set name='authors' expr="creators_name">
              <set name='authors_len' expr="$authors.length()">

                  <if test="$authors_len gt 3">
                     / <print expr="creators_name"/>
                  </if>

              </set>
          </set>
      </if>
  </when>

  <otherwise>
  </otherwise>
</choose>

它有效,但是...我计算了两次相同的变量&#34; authors_len&#34;。而且我不知道如何重复使用此变量并仅计算一次。

我尝试了EPrints功能&#34; is_set(authors_len)&#34;我尝试了#34; is_set($ authors_len)&#34;,但EPrints会抛出不同的错误消息o_O

答案 1 :(得分:1)

我会使用以下内容,检查正在设置的creators_name,以及有多少创建者:

<when test="type = 'monograph'">
  <choose>
    <when test="is_set(creators_name) and length(creators_name) lt 4">
      <print expr="creators_name" />
      / 
      <print expr="title" />
    </when>
    <when test="is_set(creators_name) and length(creators_name) gt 3">
      <print expr="title" />
      /
      <print expr="creators_name" />
    </when>
    <otherwise>
      <print expr="title" />
    </otherwise>
  </choose>
</when>

在EPrints引文文件中使用XML注释时,它们将出现在页面的HTML源代码中。要在引文文件中制作未出现在html源代码中的注释,您可以使用:

<comment>This will not appear in the html source</comment>

用于EPrints引用的语言记录在EPrints Wiki上:

某些XML配置文件使用不同的默认命名空间 - 因此您可能会看到以命名空间为前缀的元素,例如

<cite:citation xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns="http://eprints.org/ep3/control" xmlns:cite="http://eprints.org/ep3/citation" >
  ...
  <epc:comment>This is a comment</epc:comment>
  ...
</cite:citation>

帮助EPrints的最佳位置是他们的邮件列表 - 搜索维基(上面链接)了解详细信息(我没有足够的声誉发布另一个链接!)。