跳转到主要内容

Jupyter小部件集合,用于设置模块化注释环境

项目描述

Binder


Metanno是一个JupyterLab扩展,允许你构建自己的注释器。目前,它专注于具有丰富结构实体的文本文档。其主要目标是

  • 模块化:你决定需要多少个数据视图
  • 定制化:你可以轻松地在Python中定制软件行为并立即看到更改
  • 交互性:你所有的注释在你编辑任何内容后立即作为Python对象可用

功能

  • 多行和嵌套的span注释
  • 🖇️ 嵌套、关联、复杂的注释与表格视图
  • 🔗 多种数据类型:超链接、文本、列表
  • 🪟 文本视图或表格视图
  • ✨ 丰富的定制能力
  • 🐍 在Python中编写你的应用程序,在浏览器(或内核,由你决定)中执行
  • 🚀 快速:客户端是用React编写的,默认情况下,所有操作都在浏览器中直接处理
  • 🌐 WebSocket通信:你不需要打开任何端口
  • ⏮️ 不可变状态管理,任何状态更改都会被记录并可撤销

安装

此项目仍在开发中,可能发生变化。如果你使用Jupyterlab 3,简单的pip install应该足够了。你不需要打开任何端口。

# To setup the environment
conda create --name annotation python=3.9
conda activate annotation
pip install ipykernel && python -m ipykernel install --user --name annotation

# To install the package
pip install metanno

如果你是共享Jupyter环境中的用户(你没有运行jupyter lab命令),你应该在用户级别安装扩展

pip install metanno --user

原因

在注释方案设计时必须考虑注释软件的选择。例如,在Brat中注释隐含/文档级实体比较困难,注释多行关系也不可行,同时一次性处理多个文档也不可能。现在有许多注释工具可用(参见Neves等人),但其中大部分是专有的,对文档或多文档注释的适应性差,需要复杂安装,不兼容现有的远程工作环境,或者难以定制。最后,注释级别(提及/关系/事件)的标准化是新任务发展的障碍。鉴于现有软件的限制和难以用单个静态注释器满足所有需求,本项目启动了提供模块化和完全可定制的注释框架Metanno,以解决这些困难。

演示

您可以通过Binder尝试它。但请耐心,在没有缓存构建的情况下,可能需要几分钟才能启动。

https://github.com/percevalw/metanno/raw/master/doc/screenshot.png

它如何工作

整个应用由一个单一的状态控制,该状态在前端(Jupyter客户端)和后端(Python内核)上进行了复制。Jupyter中渲染的每个视图都使用该状态的派生版本(想想view_data = fn(app_data)),并在事件发生时调用应用类中的函数。这个应用类是用Python(由您编写)编写的,自动转换为javascript并发送到前端,以便用户的每个动作都能立即得到响应。如果给定的函数修改了状态(通过@produce装饰器包装),则更改将发送到后端或前端以保持状态副本同步。如果函数需要在前端或后端(例如,在后台触发数据库查询)独占执行,则可以将其包装在@frontend_only@kernel_only中,并且调用将通过Jupyter websocket传输。

待办事项

  • 添加基本应用示例
  • 添加文档
  • 添加更多表格列类型和渲染器(数值、日期等)
  • 添加可定制的列过滤器
  • 添加带有可编辑箭头的关联可视化和编辑
  • 添加图像注释视图
  • 完成javascript到typescript的转换
  • 可定制的撤销/重做逻辑
  • 添加多单元格编辑(参见react-data-grid PR)
  • 添加测试套件(Cypress?)
  • 制作独立版本(不带Jupyter)

贡献

任何贡献都受欢迎,请随意提交PR。

项目详情


下载文件

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

源代码分布

此版本没有可用的源代码分布文件。请参阅生成分布存档的教程。

构建分布

metanno-0.0.9-py3-none-any.whl (1.4 MB 查看哈希)

上传时间 Python 3

由以下机构支持