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
🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.

English | 简体中文 | 繁體中文 | 한국어 State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow 🤗 Transformers provides thousands of pretrained models

Hugging Face 77.1k Dec 31, 2022
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
Guide: Finetune GPT2-XL (1.5 Billion Parameters) and GPT-NEO (2.7 B) on a single 16 GB VRAM V100 Google Cloud instance with Huggingface Transformers using DeepSpeed

Guide: Finetune GPT2-XL (1.5 Billion Parameters) and GPT-NEO (2.7 Billion Parameters) on a single 16 GB VRAM V100 Google Cloud instance with Huggingfa

289 Jan 06, 2023
2021 2학기 데이터크롤링 기말프로젝트

공지 주제 웹 크롤링을 이용한 취업 공고 스케줄러 스케줄 주제 정하기 코딩하기 핵심 코드 설명 + 피피티 구조 구상 // 12/4 토 피피티 + 스크립트(대본) 제작 + 녹화 // ~ 12/10 ~ 12/11 금~토 영상 편집 // ~12/11 토 웹크롤러 사람인_평균

Choi Eun Jeong 2 Aug 16, 2022
DeLighT: Very Deep and Light-Weight Transformers

DeLighT: Very Deep and Light-weight Transformers This repository contains the source code of our work on building efficient sequence models: DeFINE (I

Sachin Mehta 440 Dec 18, 2022
PORORO: Platform Of neuRal mOdels for natuRal language prOcessing

PORORO: Platform Of neuRal mOdels for natuRal language prOcessing pororo performs Natural Language Processing and Speech-related tasks. It is easy to

Kakao Brain 1.2k Dec 21, 2022
PG-19 Language Modelling Benchmark

PG-19 Language Modelling Benchmark This repository contains the PG-19 language modeling benchmark. It includes a set of books extracted from the Proje

DeepMind 161 Oct 30, 2022
Text preprocessing, representation and visualization from zero to hero.

Text preprocessing, representation and visualization from zero to hero. From zero to hero • Installation • Getting Started • Examples • API • FAQ • Co

Jonathan Besomi 2.7k Jan 08, 2023
A CSRankings-like index for speech researchers

Speech Rankings This project mimics CSRankings to generate an ordered list of researchers in speech/spoken language processing along with their possib

Mutian He 19 Nov 26, 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
Line as a Visual Sentence: Context-aware Line Descriptor for Visual Localization

Line as a Visual Sentence with LineTR This repository contains the inference code, pretrained model, and demo scripts of the following paper. It suppo

SungHo Yoon 158 Dec 27, 2022
Yuqing Xie 2 Feb 17, 2022
PRAnCER is a web platform that enables the rapid annotation of medical terms within clinical notes.

PRAnCER (Platform enabling Rapid Annotation for Clinical Entity Recognition) is a web platform that enables the rapid annotation of medical terms within clinical notes. A user can highlight spans of

Sontag Lab 39 Nov 14, 2022
This converter will create the exact measure for your cappuccino recipe from the grandiose Rafaella Ballerini!

About CappuccinoJs This converter will create the exact measure for your cappuccino recipe from the grandiose Rafaella Ballerini! Este conversor criar

Arthur Ottoni Ribeiro 48 Nov 15, 2022
Chinese NewsTitle Generation Project by GPT2.带有超级详细注释的中文GPT2新闻标题生成项目。

GPT2-NewsTitle 带有超详细注释的GPT2新闻标题生成项目 UpDate 01.02.2021 从网上收集数据,将清华新闻数据、搜狗新闻数据等新闻数据集,以及开源的一些摘要数据进行整理清洗,构建一个较完善的中文摘要数据集。 数据集清洗时,仅进行了简单地规则清洗。

logCong 785 Dec 29, 2022
BERTAC (BERT-style transformer-based language model with Adversarially pretrained Convolutional neural network)

BERTAC (BERT-style transformer-based language model with Adversarially pretrained Convolutional neural network) BERTAC is a framework that combines a

6 Jan 24, 2022
Open-source offline translation library written in Python. Uses OpenNMT for translations

Open source neural machine translation in Python. Designed to be used either as a Python library or desktop application. Uses OpenNMT for translations and PyQt for GUI.

Argos Open Tech 1.6k Jan 01, 2023
A Domain Specific Language (DSL) for building language patterns. These can be later compiled into spaCy patterns, pure regex, or any other format

RITA DSL This is a language, loosely based on language Apache UIMA RUTA, focused on writing manual language rules, which compiles into either spaCy co

Šarūnas Navickas 60 Sep 26, 2022
Sequence-to-Sequence learning using PyTorch

Seq2Seq in PyTorch This is a complete suite for training sequence-to-sequence models in PyTorch. It consists of several models and code to both train

Elad Hoffer 514 Nov 17, 2022