0

我在服务器 A 中有一个集合,它混合了不同的项目类型。现在,我想在为每种可用项目类型设置的不同集合中从服务器 B 收集这个集合。

场景将是这样的:

Server A -> CommunityA -> CollectionA
Server B -> CommunityB -> CollectionB1 (Article)
Server B -> CommunityB -> CollectionB2 (Book chapter)
Server B -> CommunityB -> CollectionB3 (Conference paper)

所以在上面的场景中,集合 B1、B2 和 B3 都将具有相同的 OAI 提供程序,其记录来自服务器 A 中相同集合的记录,即 CollectionA,除了 CollectionB1 将只收集项目类型为 Article、CollectionB2 的项目类型为 Book chapter 和CollectionB3 与项目类型会议论文。

我在一些示例中看到了如何基于元数据或项目类型创建虚拟集,但据我所知,这些虚拟集应用于存储库中的所有内容。

我的问题是如何仅通过集合 A 中的项目类型在服务器 A 中创建虚拟集?

4

1 回答 1

1

如果您控制服务器 A,则可以定义按项目类型过滤的自定义 OAI 人行横道。

DSpace 代码库包含一个 OAI 人行横道,用于过滤“论文”类型的项目。

    <!-- This condition determines if an Item has a "dc.type" field
         which contains "Thesis". -->
    <CustomCondition id="thesisDocumentTypeCondition">
        <Class>org.dspace.xoai.filter.DSpaceAtLeastOneMetadataFilter</Class>
        <Configuration>
            <string name="field">dc.type</string>
            <string name="operator">contains</string>
            <string name="value">Thesis</string>
        </Configuration>
    </CustomCondition>

https://github.com/DSpace/DSpace/blob/master/dspace/config/crosswalks/oai/xoai.xml#L310-L319

于 2018-09-17T15:07:08.710 回答