Espial is an engine for automated organization and discovery of personal knowledge

Overview

logo

Live Demo (currently not running, on it)

Espial is an engine for automated organization and discovery in knowledge bases. It can be adapted to run with any knowledge base software, but currently works best with file-based knowledge bases.

Espial uses Natural Language Processing and AI to improve the way you find new links in your knowledge, enhancing the organization of your thoughts to help you discover new ones.

From the explanatory blog post:

Espial can cultivate a form of intended serendipity by suggesting a link between your thoughts instead of simply reminding you of a pathway you had already created. It aims to make discovery and the act of connection —fundamental to the way we think— more efficient.

It can help you surface domains, ideas, and directions to brainstorm and explore, related to your current note-taking activity

See Architecture for a more technical overview of Espial's algorithm.

demo gif

Espial's current features:

  • automated graph: Espial generates a graph of auto-detected concepts and maps how they link to your different documents. This maps both the meaning of your documents into a visual space and allows you to see how those documents relate to each other with a high-level view.
  • document similarity: you can query for a given document in your knowledge base and get most related and relevant notes that you could link / relate to it, and through which concepts. This similarity is on a semantic level (on meaning), not on the words used.
  • external search: Espial has a semantic search engine and I’ve built a web extension that uses it to find items related to the page you’re currently on. You can run submit search queries and webpages to compare them to your knowledge base.
  • transformation of exploration into concrete structure: when you view the tags and concepts that the program has surfaced, you can pick those you want to become part of your knowledge base’s structure. They can then become tags or even concept notes (a note that describes a concept and links to related notes).
  • extensive customizability: Espial can be easily plugged into many different knowledge base software, although it was first built for Archivy. Writing plugins and extensions for other tools is simple.

Future Goals / In Progress Features:

Espial is a nascent project and will be getting many improvements, including:

  • commands to compare and integrate two entire knowledge bases
  • an option to download all the articles referenced in the knowledge base as documents
  • enhance the algorithm so that it learns and detects existing hierarchies in your knowledge
  • coordinate launch of Espial plugins for major knowledge base software
  • improve load time for large KBs

If there are things you want added to Espial, create an issue!

Installation

  • have pip and Python installed
  • Run pip install espial
  • Run python -m spacy download en_core_web_md

Usage

Usage: espial run [OPTIONS] DATA_DIR

Options:
  --rerun         Regenerate existing concept graph
  --port INTEGER  Port to run server on.
  --host TEXT     Host to run server on.
  --help          Show this message and exit.
  • run espial run and then open http://localhost:5002 to access the interface. Warning: if you're running Espial on a low-ram device, lower batch_size in the config (see below).

Configuration

Espial's configuration language is Python. See espial/config.py to see what you can configure. Run espial config to set up your configuration.

If you like the software, consider sponsoring me. I'm a student and the support is really useful. If you use it in your own projects, please credit the original library.

If you have ideas for the project and how to make it better, please open an issue or contact me.

Comments
  • Numpy issue on MacOS 11.2

    Numpy issue on MacOS 11.2

    Running the second python command results in the following error. I was not able to resolve it by myself by downgrading numpy to 1.20.0:

    ~/w/g/espial ❯❯❯ python -m spacy download en_core_web_md                                                                   
    
    Traceback (most recent call last):
      File "/Users/dmitry/.pyenv/versions/3.9.4/lib/python3.9/runpy.py", line 188, in _run_module_as_main
        mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
      File "/Users/dmitry/.pyenv/versions/3.9.4/lib/python3.9/runpy.py", line 147, in _get_module_details
        return _get_module_details(pkg_main_name, error)
      File "/Users/dmitry/.pyenv/versions/3.9.4/lib/python3.9/runpy.py", line 111, in _get_module_details
        __import__(pkg_name)
      File "/Users/dmitry/.pyenv/versions/3.9.4/lib/python3.9/site-packages/spacy/__init__.py", line 11, in <module>
        from thinc.api import prefer_gpu, require_gpu, require_cpu  # noqa: F401
      File "/Users/dmitry/.pyenv/versions/3.9.4/lib/python3.9/site-packages/thinc/api.py", line 2, in <module>
        from .initializers import normal_init, uniform_init, glorot_uniform_init, zero_init
      File "/Users/dmitry/.pyenv/versions/3.9.4/lib/python3.9/site-packages/thinc/initializers.py", line 4, in <module>
        from .backends import Ops
      File "/Users/dmitry/.pyenv/versions/3.9.4/lib/python3.9/site-packages/thinc/backends/__init__.py", line 8, in <module>
        from .cupy_ops import CupyOps, has_cupy
      File "/Users/dmitry/.pyenv/versions/3.9.4/lib/python3.9/site-packages/thinc/backends/cupy_ops.py", line 19, in <module>
        from .numpy_ops import NumpyOps
      File "thinc/backends/numpy_ops.pyx", line 1, in init thinc.backends.numpy_ops
    ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject
    
    ~/w/g/espial ❯❯❯ python -V      
    Python 3.9.4
    
    opened by dmitrym0 5
  • [ImgBot] Optimize images

    [ImgBot] Optimize images

    Beep boop. Your images are optimized!

    Your image file size has been reduced by 12% 🎉

    Details

    | File | Before | After | Percent reduction | |:--|:--|:--|:--| | /espial/static/logo.png | 5.46kb | 2.74kb | 49.78% | | /espial/static/Group 2.png | 1.57kb | 1.06kb | 32.15% | | /img/espial.gif | 7,685.72kb | 6,797.04kb | 11.56% | | /espial/static/logo.svg | 0.86kb | 0.85kb | 1.58% | | | | | | | Total : | 7,693.61kb | 6,801.69kb | 11.59% |


    📝 docs | :octocat: repo | 🙋🏾 issues | 🏪 marketplace

    ~Imgbot - Part of Optimole family

    opened by imgbot[bot] 0
  • Need an Effective Document Display

    Need an Effective Document Display

    We should be able to click on a node and see the document in an in-browser render. We should also highlight specific words or content that links to other things. Like a document with a ton of clickable highlighted areas. It would also help to have a synopsis of the document, its links, and the key concepts and their links.

    opened by mmangione 0
  • Filtering of Nodes by Feature or Connection

    Filtering of Nodes by Feature or Connection

    We need to be able to filter out some of the nodes. This means we should have a search box or toolbar that can search, sort, and filter by word, concept, type of connection, type of word, etc...

    I think this might be similar to a faceted ElasticSearch filter.

    opened by mmangione 0
  • Can't download en_core_web_lg with latest version of spaCy (3.3.0.dev0)

    Can't download en_core_web_lg with latest version of spaCy (3.3.0.dev0)

    With the current version of spaCy (3.3.0.dev0), downloading en_core_web_md did not work:

    $ python3 -m spacy download en_core_web_md
    
    ✘ No compatible packages found for v3.3 of spaCy
    

    It worked after downgrading to 3.2.0

    opened by didmar 0
Releases(v0.2.1)
  • v0.2.1(Mar 9, 2022)

    Espial just got an update! This is mostly maintenance and crucial bug fixing, although more exciting stuff should be coming to Espial core soon. This release comes with the launch of archivy-espial, an Espial integration for Archivy, allowing you to automatically find related notes and documents for your current note, directly inside your knowledge base.

    Highlights

    • addition of a get_potential_concepts route to determine the tags that could suit a given query
    • addition of a ALLOWED_ORIGINS config parameter to set the websites that can fetch info from Espial
    • fixed bug when a query returns no results
    • fixed implementation bug when files are moved / renamed and
    Source code(tar.gz)
    Source code(zip)
Owner
Uzay-G
Active developer building stuff with Ruby, Crystal and Python | Google Code-in 2019 Grand Prize Winner | Creator @archivy
Uzay-G
CDLA: A Chinese document layout analysis (CDLA) dataset

CDLA: A Chinese document layout analysis (CDLA) dataset 介绍 CDLA是一个中文文档版面分析数据集,面向中文文献类(论文)场景。包含以下10个label: 正文 标题 图片 图片标题 表格 表格标题 页眉 页脚 注释 公式 Text Title

buptlihang 84 Dec 28, 2022
LeBenchmark: a reproducible framework for assessing SSL from speech

LeBenchmark: a reproducible framework for assessing SSL from speech

11 Nov 30, 2022
A Python/Pytorch app for easily synthesising human voices

Voice Cloning App A Python/Pytorch app for easily synthesising human voices Documentation Discord Server Video guide Voice Sharing Hub FAQ's System Re

Ben Andrew 840 Jan 04, 2023
Nested Named Entity Recognition for Chinese Biomedical Text

CBio-NAMER CBioNAMER (Nested nAMed Entity Recognition for Chinese Biomedical Text) is our method used in CBLUE (Chinese Biomedical Language Understand

8 Dec 25, 2022
Generate custom detailed survey paper with topic clustered sections and proper citations, from just a single query in just under 30 mins !!

Auto-Research A no-code utility to generate a detailed well-cited survey with topic clustered sections (draft paper format) and other interesting arti

Sidharth Pal 20 Dec 14, 2022
Twitter-Sentiment-Analysis - Analysis of twitter posts' positive and negative score.

Twitter-Sentiment-Analysis The hands-on project is in Python 3 Programming class offered by University of Michigan via Coursera. The task is to build

Eszter Pai 1 Jan 03, 2022
HiFi-GAN: Generative Adversarial Networks for Efficient and High Fidelity Speech Synthesis

HiFi-GAN: Generative Adversarial Networks for Efficient and High Fidelity Speech Synthesis Jungil Kong, Jaehyeon Kim, Jaekyoung Bae In our paper, we p

Jungil Kong 1.1k Jan 02, 2023
An easy-to-use framework for BERT models, with trainers, various NLP tasks and detailed annonations

FantasyBert English | 中文 Introduction An easy-to-use framework for BERT models, with trainers, various NLP tasks and detailed annonations. You can imp

Fan 137 Oct 26, 2022
Bot to connect a real Telegram user, simulating responses with OpenAI's davinci GPT-3 model.

AI-BOT Bot to connect a real Telegram user, simulating responses with OpenAI's davinci GPT-3 model.

Thempra 2 Dec 21, 2022
基于pytorch_rnn的古诗词生成

pytorch_peot_rnn 基于pytorch_rnn的古诗词生成 说明 config.py里面含有训练、测试、预测的参数,更改后运行: python main.py 预测结果 if config.do_predict: result = trainer.generate('丽日照残春')

西西嘛呦 3 May 26, 2022
The RWKV Language Model

RWKV-LM We propose the RWKV language model, with alternating time-mix and channel-mix layers: The R, K, V are generated by linear transforms of input,

PENG Bo 877 Jan 05, 2023
[EMNLP 2021] LM-Critic: Language Models for Unsupervised Grammatical Error Correction

LM-Critic: Language Models for Unsupervised Grammatical Error Correction This repo provides the source code & data of our paper: LM-Critic: Language M

Michihiro Yasunaga 98 Nov 24, 2022
Official PyTorch code for ClipBERT, an efficient framework for end-to-end learning on image-text and video-text tasks

Official PyTorch code for ClipBERT, an efficient framework for end-to-end learning on image-text and video-text tasks. It takes raw videos/images + text as inputs, and outputs task predictions. ClipB

Jie Lei 雷杰 612 Jan 04, 2023
Pipeline for chemical image-to-text competition

BMS-Molecular-Translation Introduction This is a pipeline for Bristol-Myers Squibb – Molecular Translation by Vadim Timakin and Maksim Zhdanov. We got

Maksim Zhdanov 7 Sep 20, 2022
The source code of HeCo

HeCo This repo is for source code of KDD 2021 paper "Self-supervised Heterogeneous Graph Neural Network with Co-contrastive Learning". Paper Link: htt

Nian Liu 106 Dec 27, 2022
An extension for asreview implements a version of the tf-idf feature extractor that saves the matrix and the vocabulary.

Extension - matrix and vocabulary extractor for TF-IDF and Doc2Vec An extension for ASReview that adds a tf-idf extractor that saves the matrix and th

ASReview 4 Jun 17, 2022
Rank-One Model Editing for Locating and Editing Factual Knowledge in GPT

Rank-One Model Editing (ROME) This repository provides an implementation of Rank-One Model Editing (ROME) on auto-regressive transformers (GPU-only).

Kevin Meng 130 Dec 21, 2022
An implementation of model parallel GPT-2 and GPT-3-style models using the mesh-tensorflow library.

GPT Neo 🎉 1T or bust my dudes 🎉 An implementation of model & data parallel GPT3-like models using the mesh-tensorflow library. If you're just here t

EleutherAI 6.7k Dec 28, 2022
Long text token classification using LongFormer

Long text token classification using LongFormer

abhishek thakur 161 Aug 07, 2022
Code for the paper "VisualBERT: A Simple and Performant Baseline for Vision and Language"

This repository contains code for the following two papers: VisualBERT: A Simple and Performant Baseline for Vision and Language (arxiv) with a short

Natural Language Processing @UCLA 464 Jan 04, 2023