刘君武 张作羽 吴允平
(福建师范大学光电与信息工程学院 福建省福州市 350007)
文件名,是计算机中区分不同文件而设定的名称,由文件主名和扩展名构成;通常,文件主名包括以下部分:第一部分为项目名称或编号,第二部分为文件的描述,第三部分为当前文件的日期,第四部分为文件阶段标识,而扩展名指示了文件的类型。好的文件主名,有助于让使用者在不打开文件的情况下就可直观了解文档信息,提高工作效率,降低文档分类错误;反之,一个不好的文件主名,往往意味着为未来挖坑,多个糟糕的文件主名,更是意味着请君入瓮;因此,规范的文件主名,有利于沟通、有利于索引、有利于回溯。2018年,国家气象局发布了《气象卫星数据文件名命名规范》,专门约定了文件名命名要求[1];2017年,黄成荣针对高校学籍管理中学生相片手工操作换名存在效率低、容易出错等问题,应用数据库技术设计并完成了一种将图像文件批量换名的软件,具有很强的针对性、应用性和可操作性,能有效减避免烦琐的手工操作所带来的低效率和多错误的缺点,大大提高管理工作的效率和质量[2];2018年,饶期捷等人为克服常用字处理软件无法自动命名的不足,研究并提出了利用COM技术、OLE 自动化对象等来实现文档名的自动生成技术,例如当本科毕业生发送写好的论文给指导教师时,尽管每份论文格式不统一,但通过该技术即可自动修改好文件名,给办公人员带来方便,优化了应用[3];姚梦辉等人为了提高地质灾害非结构化数据的存储、发现和挖掘效率,通过进行文本预处理技术和关键字检索技术,实现了有用信息的快速检索,其中应用到了文件名的智能提取为地质信息的数据挖掘提供技术支持[4]。2020年,王甡为了有效管理生态环境遥感解译野外核查中获取的大量照片数据集,开发了照片管理系统,实现了核查照片文件名称重编码、核查照片数据库管理、核查照片空间定位等功能[5];为满足中国气象局《新一代天气雷达观测规定》要求,对年度雷达资料的收集、整编、存储与汇交工作,花红霞等人通过开发雷达资料数据管理系统,自动建立整编资料所需要的各类文件夹和文件,自动完成雷达数据文件筛选、解压、重命名、压缩及自动刻录功能,实现了雷达资料整编的自动化和批量化,软件具有操作简便、显示直观、执行快捷、适用性强等特点,提高了雷达资料的规范化从而提高了工作的效率[6]。由此可见,规范的文件主名可以有效提高工作者的工作效率,也有助于发挥文件管理软件的效能,例如,2018年Bluebeam 公司为了无需用户干预自动生成可激活的文件超链接,提出了一种自动批量生成指向文件的链接的技术专利,其中链接生成依据就是文件名及其文件内容[7]。
经过多年建设,我国已形成了以知网(CNKI)为代表的数字图书馆,覆盖期刊、学位论文、会议、年鉴、工具书等类型资源,提供下载服务、在线阅读等;目前,文献下载技术逐渐成熟,通过设置镜像网站[8]、多线程下载[9]、网页技术[10]等提高下载和效率。但在CNKI 图书馆下载资料时,文献文件主名默认由文献题目和文献作者这两部分组合而成,因此,有经验的科技工作者往往还会借助专门文献管理软件(如EndNote 等)对这些文献进行集中维护与使用[11][12]。因此,通过OO技术开发一种文献下载个性化管理插件,供科技工作者在访问CNKI 下载资料时能够根据其个性化习惯而重新命名保存文献,如在文件名中包含了文献的时间、类型以及刊物等,无疑可以帮助提高文献资料的综合管理效率。
通过分析使用者对该插件的使用需求,分别建立了类图和顺序图来完成系统的分析。
以科技工作者常用的下载文献为例,其用况描述表如表1所示。
表1:下载文献用况描述表
根据表1 下载文献用况描述表,建立的系统用况图如图1所示。
图1:文献下载用况图
根据用户需求和插件系统用况图,通过类图和系统顺序图完成系统分析。系统类图如图2所示,类图说明如表2所示。
表2:系统类图规约
图2:系统类图
在其基础上,建立顺序图进一步说明该模型。如图3所示,记录了在一次文献下载过程当中用户与浏览器端和服务器端交互的过程,具体流程如下:
图3:文献下载顺序图
(1)用户发起文献下载的请求,并等待响应;
(2)浏览器接收到用户请求,并启动文献下载界面;
(3)浏览器向服务器端请求并记录该文献命名需要用到的各类信息;
(4)服务器端接收来自浏览器的请求并进行处理,返回各类处理结果;
(5)浏览器端收到服务器信息,向用户提供文件下载格式选择并显示给用户;
(6)用户看到浏览器响应后,选择所下载文献格式后,并发布下载请求;
(7)浏览器将用户选择的文献下载格式请求传输给服务器,并请求服务器处理;
(8)服务器处理完毕,将结果返回给浏览器;
(9)浏览器显示下载结果信息;
(10)用户确认;
(11)浏览器关闭下载界面。
基于系统分析,从问题域、人机交互、数据接口三方面来进行系统设计。
问题域:在确定文献下载个性化管理插件实现语言和运行环境后,在系统分析基础上对问题域进行进一步改进:
(2)确定编程语言为JavaScript,通过设计相关脚本获取到论文各类属性用于文献命名;
(3)通过对PDF 和CAJ 的文献下载格式先进行分类并实现后续命名进程。
人机交互:通过结合系统分析来对用户操作界面进行设计。如图4所示为人机交互部分类图。
图4:人机交互部分类图
数据接口:文献是插件系统的源点,其中文献中各类属性元素是插件系统的采集对象。因此,基于Chrome 平台通过配置的形式注入JS 和CSS 向网页注入脚本来采集文献的各类信息。
文献下载个性化管理插件,是使用JavaScript 语言所搭建的Chrome 浏览器插件。Chrome 插件通常的组成文件如图5所示,由js、html 以及css 文件组成,此外还包括manifest 文件(扩展说明文件),插件图标会显示在浏览器的右上角区域。文献下载个性化管理插件的整体架构如图6所示。
图5:Chrome 插件的组成文件
图6:文献下载个性化管理插件架构图
从结构上,插件主要分为服务器端和浏览器端。服务器端负责文献信息提取和文献下载并命名。浏览器端负责与用户进行交互,并通过页面提示进行文献下载。其中,服务器端和浏览器端可以建立双向的数据传输渠道。
从功能上,插件主要包括下列功能:
其中,J=∂(x)/∂(z)=1/τ1,将τ= E(τ)τ1和x=z/τ1代入式(10),并作变量代换m=1/τ,则上式可化为:
(1)对文献下载格式有PDF 和CAJ 两种不同类型的选择。在用户要对文献进行下载时,在文献下载链接的右键菜单中添加进入插件的入口,并在用户进入插件时,调用注入到当前界面的content-script.js 文件实现文献信息的采集并获取文献下载链接,如图7所示。
图7:右键菜单中的插件入口
(2)根据文献类型将文献归类,并规定不同类型的文献命名格式。
在插件实现过程中,主要实现以下功能:
(1)下载链接处右键菜单的实现;
(2)PDF 和CAJ 两种不同格式文献的下载;
(3)实现文献按类命名。
通过文献下载个性化管理插件功能设计,来描述如何通过面向对象的技术实现各功能。
根据系统框架所设计的程序流程图,如图8所示,运用面向对象的技术思想,创建文献信息的对象数组并判断文献类别后,对对象数组内的信息重组,按照特定规则进行文献重命名,实现文献资料下载的同时完成了文献命名。
图8:程序流程图
该文件主要定义了插件的名称,版本,所需权限等。关键代码如下:
文献个性化管理插件的对象数组程序关键代码如下:
此代码的主要功能为文献信息的采集:
(1)建立数组titleList 来存放文献元素;
(2)通过<font>关键字获取文献信息,例如:作者,来源,日期数据库类型。同时根据文献类型设置不同类型的下载标签,以上信息都存放在titleList 中。
文献重命名的关键代码(以期刊文献为例):
文献重命名主要功能为:判别对象数组中的文献类别元素,对采集的信息进行调用,并按类命名。具体命名方式为:期刊命名:年-期刊-文献名;博士命名:博士论文-年-学校-文献名;硕士命名:硕士论文-年-学校-文献名。保存文献下载链接,当用户通过右键菜单进入扩展程序后,通过点击下载获取content.js 的下载地址和处理后的文献名,实现文件下载和按类命名的功能。
主要实现创建右键菜单,向content-script.js 发送请求并进行文献下载。创建右键菜单(CAJ 格式为例)代码如下:
客户端插件测试环境:Windows 10操作系统,Chrome浏览器(版本 85.0.4183.102(正式版本)(64 位))
本插件的应用测试效果如图9、图10所示。图9(a)是无本插件支持下默认下载的期刊文献全名,(b)是本插件支持下下载获得的CAJ 格式文献及期刊文献全名,(c)是本插件支持下下载获得的PDF 格式文献及期刊文献全名;图10(a)是无本插件支持下默认下载的硕博文献全名,(b)是本插件支持下下载获得的硕博文献全名。
图9:期刊类文献下载效果对比图
图10:硕博类论文下载效果对比图
以科研工作者下载文献为例分析文献下载和文件管理的需求,通过对现有的文献管理技术进行调研,提出了一个完整的文献命名下载插件方案;使用OO技术设计并实现了一个文献下载个性化管理的Chrome 插件。运用该插件,用户可以直接通过Chorme 浏览界面直接下载并以个性化命名保存文献。实际操作验证了插件的实用性。如果读者对代码感兴趣,可以联系通讯作者获取相关代码。