Page 426 - 《软件学报》2025年第12期
P. 426

黄小龙 等: ReproLink: 面向可复现性的科研数据管理系统                                               5807



                                                    表 1 关系对象的类型

                             语义类型         起点对象类型         终点对象类型                  含义
                               use          paper           code             论文u使用代码v
                               use          paper           dataset         论文u使用数据集v
                               cite         paper           paper            论文u引用论文v
                             propose        paper           dataset         论文u提出数据集v
                               use        reproduction      code           复现u中使用了代码v
                              input         dataset       reproduction  数据集u为复现v的输入数据集
                              input       reproduction    reproduction  复现u的输出为复现v的输入数据集
                              output      reproduction      dataset     复现u的输出数据集为数据集v

                    图  1  中对象①–⑧之间的有向边为关系对象, 由于空间有限, 图中仅展示了关系的语义类型. 代码对象⑤是对
                                                        (use, paper,code) 的关系对象; 论文对象②和论文对象③使用了
                 论文对象③的一个实现, 因此他们之间存在类型为
                                                 (use, paper,dataset) 的关系对象; 论文对象③引用了论文对象②、论文对
                 数据集对象④, 因此他们之间存在类型为
                 象②引用了论文对象①, 因此他们之间存在类型为                (cite, paper, paper) 的关系; 数据集对象④在论文对象①中被提
                                        (propose, paper,dataset) 的关系. 复现单元⑥和复现单元⑦均使用了数据集对象④作
                 出, 因此他们之间存在类型为
                                               (input,dataset,reproduction) 的边. 复现单元⑥和复现单元⑦均使用了代码
                 为输入, 因此它们之间分别存在类型为
                 对象⑤作为输入, 因此它们之间存在类型为              (use,reproduction,code) 的边. 复现单元⑦的另一个输入为复现单元⑥
                 中训练得到的数据模型, 因此它们之间存在类型为                (input,reproduction,reproduction) 的边. 最后, 复现单元⑦的输
                 出为数据集⑧, 因此它们之间存在类型为             (output,reproduction,dataset) 的边.
                    将科研数据对象看作节点, 关系对象看作边, 可以得到科研关系图.
                    定义   7 (科研数据关系图). 对于一个科研数据对象的集合                N ⊂ O  和一个关系对象的集合       R ⊂ R, 若其满足
                         −1         −1
                 ∀r ∈ R  有  π (π u (r)) ∈ N, π (π v (r)) ∈ N , 则称二元组  G = (N,R)  为一个科研关系图.
                                    I
                         I
                    图  1  中所有的科研数据对象和关系对象构成了一个科研关系图                   G 1 . 对象④–⑧以及它们之间的关系也构成了
                                     G 2  表示了对论文对象③的一次完整的复现流程, 包含两个复现单元: 复现单元⑥表示论
                 一个科研关系图      G 2 . 其中
                 文复现中的训练过程, 其使用数据集④中的训练数据和验证数据, 调用代码对象⑤中的训练代码, 输出训练完成的
                 模型; 复现单元⑦表示论文复现中的测试过程, 其使用数据集④中的测试数据以及复现单元⑥输出的模型, 调用代
                 码对象⑤中的测试代码, 并最终输出测试结果数据集⑧.

                  3   ReproLink  系统设计

                    ReproLink  向用户提供科研数据对象访问、科研数据对象检索、科研成果复现执行这                        3  类服务. 本节首先对
                 ReproLink  的主要功能和总体架构进行了介绍, 接着详细介绍了其中的数据管理模块、对象检索引擎、复现执行
                 引擎、分散式对象存储、标识解析服务等模块.
                  3.1   总体架构
                    ReproLink  的总体架构如图    2  所示, 包括以下几个模块.
                    1) 控制器: 接收用户的请求, 根据请求的类型将其分发至对象检索引擎、数据管理模块、复现执行引擎, 并在
                 请求执行完毕后向用户返回结果.
                    2) 数据管理模块: 实现了对科研数据对象的创建、访问、修改和删除等功能, 向用户以及复现执行引擎提供
                 服务. 数据管理模块将科研数据对象的标识和他们的存储位置、状态信息存储在本地的标识索引中. 当用户请求
                 的标识不在标识索引中时, 数据管理模块通过标识解析器向全局标识解析服务发出标识解析请求, 并将返回结果
                 保存在标识索引中. 在解析了数据对象的存储位置后, 数据管理模块通过操作执行器操作分散式数据对象存储中
                 的数据.
   421   422   423   424   425   426   427   428   429   430   431