Manage Your Knowledge

栏目: IT技术 · 发布时间: 4年前

内容简介:Contextualise is a simple and flexible tool particularly suited for organising information-heavy projects and activities consisting of unstructured and widely diverse data and information resources -- think of investigative journalism, personal and profess

Contextualise by Brett Kromkamp

Contextualise is a simple and flexible tool particularly suited for organising information-heavy projects and activities consisting of unstructured and widely diverse data and information resources -- think of investigative journalism, personal and professional research projects, world building (for books, movies or computer games) and many kinds of hobbies.

Manage Your Knowledge

Contextualise's topic view

Manage Your Knowledge

Contextualise's interactive network graph view (allowing for navigation between topics)

Manage Your Knowledge

Contextualise's interactive 3D viewer

Contextualise's main dependency is TopicDB , an open source topic maps -based graph library. Topic maps provide a way to describe complex relationships between abstract concepts and real-world (information) resources.

Why?

I built and published my first knowledge documentation tool in 2007 which I was still using until very recently, almost unmodified, twelve years later. If I remember correctly, it was built with PHP version 5.2.5 ! Twelve years is an eternity in software terms. Nowadays, my preferred choice for web development is Python together with the Flask web development framework. What's more, after twelve years of using my own and other knowledge management tools, I have several improvements in mind for the next version (many of which are simplifications, for that matter). And perhaps one of the most important reasons for building a new tool like this is that I want it to be open source: both Contextualise (the web application) and TopicDB (the actual topic maps engine on top of which Contextualise is built -- also written by me) are licensed with the permissive open source MIT license .

Feature Support

The following provides an overview of Contextualise's existing (and planned) feature set:

Existing Features

  • Support for multiple (self-contained) topic maps
  • Support for both private and public topic maps
  • Extensive support for notes including the ability to attach a note to an existing topic and convert a note into a topic
  • Markdown -based text editor for topic text and notes
  • The ability to attach files (including images, PDFs, and so forth) to topics
  • The ability to attach ( glTF -based) 3D models to topics with an accompanying interactive 3D model viewer
  • Powerful (semantic) associations with the ability to create typed associations with role-based members
  • Flexible filtering of topic occurrences and associations by scope (that is, context)
  • Interactive visual network graph of related topics (allowing navigation between topics)
  • Auto-complete on all form fields that expect a topic reference

Missing Version 1.0 Features

  • Augmented Reality (AR) support for 3D occurrences
  • Full-text search
  • Google Maps support
  • Timeline support allowing to navigate between topics using a visual timeline component
  • WikiMedia API integration to automatically enhance existing topics with relevant information from Wikipedia
  • Semantic tagging

For a more exhaustive list of missing features take a look at Contextualise's list of issues .

Install the Development Version

Contextualise officially supports Python 3.6–3.8.

If you have Git installed on your system, it is possible to install the development version of Contextualise.

Certain build prerequisites need to be met including the presence of a C compiler, the Python header files, the libpq header files and the pg_config program as outlined, here: Build prerequisites .

Then do:

$ git clone https://github.com/brettkromkamp/contextualise
$ cd contextualise
$ pip install -e .

The pip install -e . command allows you to follow the development branch as it changes by creating links in the right places and installing the command line scripts to the appropriate locations.

Then, if you want to update Contextualise at any time, in the same directory do:

$ git pull

After having installed Contextualise, you would have to separately install and configure the PostgreSQL database. Brief instructions on how to do so are provided, here: Setting up the TopicDB database . You need to ensure that the database username, password and database name match with the settings.ini file in the project's root folder.

Finally, to run the application in development mode you need to change to the project's top-level directory and set two environment variables followed by running the flask command with the run parameter:

$ export FLASK_APP=contextualise
$ export FLASK_ENV=development
$ flask run

You should see something similar to the following in the terminal:

* Serving Flask app "contextualise" (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 521-258-444

Opening the browser and navigating to http://127.0.0.1:5000/ should result in showing the application's Welcome page.

Manage Your Knowledge

The Contextualise Welcome page

Flask's built-in server is not suitable for production purposes. However, it is quite straightforward to run Contextualise using Gunicorn , a Python WSGI HTTP server:

$ gunicorn -w 4 -b 0.0.0.0:5000 contextualise.wsgi:app

For further information for properly running a flask application in production, take a look at Flask's own documentation .

Docker

Support for running Contextualise within Docker is still in development. To run it from the root of a local clone of the source:

  1. Create a settings.ini file in the root, for example:

    [DATABASE]
    Username = docker
    Password = docker
    Database = docker
    Host = localhost
    Port = 5432
    
    [EMAIL]
    Username = changeme
    Password = changeme
    Server = mail.changeme.com
    Sender = Change Me
  2. Run docker image build -t brettkromkamp/contextualise .

  3. Run docker container run -it --rm -p 5000:5000 brettkromkamp/contextualise

First-Time Use

Several users (with the roles of admin and user , respectively) are created by the application for testing purposes. To log in as the admin user, provide the following credentials: admin@contextualise.io (user name) and Passw0rd1 (password). To log in as a non-admin user, provide the following credentials: user@contextualise.io and Passw0rd1 .

Tutorial

Pending.

Documentation

Pending.

Miscellaneous

Currently, I am using Contextualise for worldbuilding purposes of the Brave Robot fictional universe including its Codex Roboticus .

Manage Your Knowledge

How to Contribute

  1. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
  2. Fork the repository on GitHub to start making your changes to the master branch (or branch off of it).
  3. Write a test which shows that the bug was fixed or that the feature works as expected.
  4. Send a pull request and bug the maintainer until it gets merged and published. :) Make sure to add yourself to AUTHORS .

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

科技之巅

科技之巅

麻省理工科技评论 / 人民邮电出版社 / 2016-10-1 / CNY 98.00

《麻省理工科技评论》从2001年开始,每年都会公布“10大突破技术”,即TR10(Technology Review 10),并预测其大规模商业化的潜力,以及对人类生活和社会的重大影响。 这些技术代表了当前世界科技的发展前沿和未来发展方向,集中反映了近年来世界科技发展的新特点和新趋势,将引领面向未来的研究方向。其中许多技术已经走向市场,主导着产业技术的发展,极大地推动了经济社会发展和科技创新......一起来看看 《科技之巅》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具