跳转到主要内容

一个基于Zotero的Flask蓝图,为图书目录提供分面搜索界面。

项目描述

License Version Tests status

Kerko

Kerko 是一个Web应用程序组件,为使用Zotero参考文献管理器管理的图书目录提供用户友好的搜索和浏览界面。

Kerko和Zotero的结合给您带来了两者的最佳特点:一个丰富但易于使用的Web界面,用于图书目录的最终用户,以及一个成熟且强大的参考文献管理工具,用于个人或团队管理图书目录的内容。

演示网站

一个基于KerkoApp演示网站可供您试用。您还可以查看包含演示网站源数据的Zotero图书馆

由Kerko提供支持

以下网站由Kerko提供支持

功能

Kerko提供的主要功能包括

  • 分面搜索界面:允许在搜索模式和浏览模式下探索参考书目,可能满足不同用户的需求、行为和能力。例如,对主题或预期结果有先入为主的用户可以在搜索框中输入关键词或更复杂的查询,而希望熟悉参考书目内容或发现新主题的用户可以选择沿提出的分面进行导航,以缩小或扩大他们的搜索。由于这两种模式都集成在单个界面中,因此可以结合使用。
  • 关键词搜索功能
    • 布尔运算符
      • AND:匹配包含所有指定词项的项目。在没有指定运算符的情况下,词项之间的默认关系是AND,例如,a ba AND b相同。
      • OR:匹配包含任何指定词项的项目,例如,a OR b
      • NOT:排除匹配该词项的项目,例如,NOT a
      • 布尔运算符必须大写,并且可以翻译成其他语言。
    • 逻辑分组(带括号),例如,(a OR b) AND c
    • 单词序列(带双引号),例如,"a b c"。默认的单词位置差是1,这意味着如果项目包含相邻的单词,则匹配。可以选择不同的最大距离(使用波浪字符),例如,"web search"~2允许在websearch之间最多有1个单词,这意味着它可以匹配web site search以及web search
    • 词项提升(带 caret),例如,faceted^2 search browsing^0.5指定在计算结果的相关度得分时,facetedsearch重要两倍,而browsing重要一半。提升可以应用于逻辑分组,例如,(a b)^3 c
    • 关键词搜索不区分大小写,重音符号折叠,标点符号忽略。为了进一步提高召回率(尽管会牺牲精确度),对大多数文本字段(例如,标题、摘要、注释)中的词项也执行词干提取。词干提取使用户在搜索时不必指定单词的所有变体,例如,如searchsearchessearching等术语都返回相同的结果。为此目的使用了Snowball算法。
    • 全文搜索:可以搜索PDF附件的文本内容。
    • 搜索范围:用户可以选择在所有地方、作者/贡献者姓名、标题、出版年份、所有字段(即元数据和注释)或文档中(即在附件的文本内容中)进行搜索。应用程序可以提供额外的选项。
  • 分面浏览:允许按主题(Zotero标签)、按资源类型(Zotero项目类型)、按出版年份或按资源语言进行筛选。此外,您还可以定义基于集合和子集合的附加分面;在这种情况下,任何集合都可以表示为一个分面,每个子集合都可以在该分面中作为一个值。通过利用Zotero将任何给定项目分配给多个集合的能力,可以设计分面分类方案,包括分面内的分层细分。
  • 相关性评分:由Whoosh库提供,基于BM25F算法,该算法确定一个术语在整个文档集合的上下文中对文档的重要性,同时考虑它与文档结构的关系(在这方面,大多数字段是中性的,但当一个术语出现在特定字段中时,例如DOI、ISBN、ISSN、标题、作者/贡献者,分数会提高)。任何关键字搜索都会问“这个文档与这个查询子句匹配得有多好?”的问题,这需要为每个文档计算一个相关性评分。另一方面,使用分类进行过滤不会影响评分,因为它问“这个文档是否与这个查询子句匹配?”这导致是或否的答案。
  • 排序选项:按相关性评分(仅适用于关键字搜索)、按发表日期、按作者、按标题。
  • 引用样式:来自Zotero样式仓库的任何样式,或者定义在引用样式语言(样式表必须可通过URL访问)中的自定义样式表。
  • 语言支持:用户界面的默认语言是英语,但提供了一些翻译。可以使用gettext兼容的工具创建更多翻译。还需要考虑:由Zotero数据模式支持的地区(它提供了Kerko显示的字段名、项目类型和作者类型);由Whoosh支持的语言(它提供了搜索功能),即ar、da、nl、en、fi、fr、de、hu、it、no、pt、ro、ru、es、sv、tr。
  • 语义标记:Kerko生成的页面嵌入可被网络爬虫(帮助搜索引擎索引您的记录)或网络浏览器(允许参考管理工具的用户轻松地将元数据导入其图书馆)检测到的HTML标记。支持的方案包括
    • OpenURL COinS,在搜索结果页面和单个文献记录页面上。COinS被许多参考管理工具识别,包括Zotero连接器浏览器扩展。
    • Highwire Press标签,在书籍、会议论文、期刊文章、报告或论文项目的单个文献记录页面上。这些标签建议用于由[Google Scholar][HighwirePress_Google]索引,并被许多其他数据库和参考管理工具识别,包括Zotero连接器浏览器扩展。
  • Web feeds:新闻聚合器或feed阅读器的用户可以在添加新的文献记录时收到更新。他们可以订阅主feed,或者订阅一个或多个自定义feed。
    • 主feed列出最近添加的文献记录。
    • 任何搜索页面都有一个相关的自定义feed,列出符合搜索标准的最近添加的文献记录。因此,用户只需输入搜索关键字和/或选择过滤器,就可以为特定兴趣领域获取自定义feed。
    • feed以Atom聚合格式提供。
    • feed中直接提供了基本元数据,使用Atom和未命名的Dublin Core元素。
    • 可以配置年龄限制以排除feed中的较旧项目。这对经常更新且主要用于推广最新文献的文献综述可能很有用(所有资源在搜索界面中仍然可见,无论其年龄如何)。
  • 站点地图:自动生成XML站点地图,您可以使用它帮助搜索引擎发现您的文献记录。
  • 导出:用户可以导出单个记录以及与搜索结果相对应的完整书目。默认情况下,提供RIS和BibTeX格式的下载链接,但应用程序可以配置为导出由Zotero API支持的任何格式
  • 打印:提供了用于打印单个书目记录和搜索结果列表的样式表。打印搜索结果时,所有结果都会被打印出来(而不仅仅是当前页面的结果)。
  • 笔记和附件:笔记、附件文件以及附加到URI的链接从zotero.org同步并供书目用户使用。可以使用正则表达式根据它们的标签包含或排除此类子项。
  • DOI、ISBN和ISSN解析器:具有此类标识符的库项目可以通过将其标识符附加到Kerko站点的基URL来进行引用。
  • 关系:书目记录页面会显示相关项目的链接(如果有)。您可以使用Zotero的相关字段定义此类关系。此外,Kerko添加了引用被引用的关系类型,这些类型可以通过笔记在Zotero中进行管理。如果需要,自定义应用程序可以添加更多类型的关联。
  • 页面:可以使用来自Zotero独立笔记的内容定义基本信息页面。
  • 徽章:自定义应用程序可以在项目旁边有条件地显示图标。
  • 响应式设计:简单的默认实现适用于大屏幕和小屏幕。它基于Bootstrap
  • Google Analytics集成:只需提供一个Google Analytics流ID,Kerko就会自动将其跟踪代码包含在其页面上。
  • 集成:作为Flask 蓝图,Kerko可以集成到任何Flask应用程序中。对于独立应用程序,您只需安装KerkoApp
  • 自定义前端:应用程序可以部分或全部用它们自己的替换默认模板、脚本和样式表。
  • 命令行界面(CLI):Kerko提供用于同步或删除其数据的命令。

KerkoApp是围绕Kerko构建的独立应用程序。它继承了Kerko的所有功能,并提供了自己的一些附加功能

  • 配置文件:允许将配置与代码分离,并启用Twelve-factor App方法。支持环境变量和TOML配置文件。可以在单独的文件中配置秘密、特定于服务器的参数和一般参数。
  • 常见HTTP错误的页面模板。
  • Unix环境中的Syslog日志处理程序。

了解更多

请参阅文档获取更多详细信息。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

kerko-1.2.0.tar.gz (344.2 kB 查看哈希值)

上传时间:

构建分布

kerko-1.2.0-py3-none-any.whl (194.0 kB 查看哈希值)

上传时间: Python 3

支持者