GithubHelp home page GithubHelp logo

kavir1698 / graphnotes Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 0.0 1.41 MB

Convert your research notes to a graph, so that finding a specific piece of information will be easier.

License: MIT License

Julia 37.68% Nim 40.30% TeX 22.02%
graph-database knowledge-graph knowledge-management knowledge-organization science research notes note-taking notes-app

graphnotes's Introduction

GraphNotes

What is it

Convert your research notes to a graph, so that finding a specific piece of information will be easier in the future.

Research requires remembering many facts and details with credible references. It is easy to forget a specific piece of information after a few days or months, or forget where you read it. Scientists usually mark PDF files or write down important details in text documents. These files can quickly pile up and make it tedious to find specific information.

A traditional method for gathering all the necessary information is using paper note cards. In a note card, we write specific information along with their references. We then organize the note cards and use them for writing papers or books. This method has a few drawbacks, namely, it will be difficult to keep all the cards organized as we add more of them, and it will become more difficult to find a specific card quickly. Therefore, people usually prepare and keep a separate set of note cards for each project. This is inefficient.

Introducing GraphNotes, I offer a solution to this problem. This is a software for organizing and easily retrieving scientific concepts. As you read textbooks or journal articles, you take notes of important definitions and sentences. GraphNotes converts your notes to a graph structure. Each node of such a graph has one concept. If two concepts have a relationship with each other, a link connect them in the graph. Each node (concept) and each link (relationship) can store multiple descriptions.

When you need to retrieve a specific information, all you need is to search for the concept you are looking for, and see all descriptions about it, and all of its relations with other concepts. The figure below shows a schematic view of how concepts and their relations are organized in GraphNotes. The figure shows descriptions for two concepts and a relation between them, in a graph with five nodes and five edges.

solution

How to use it

  • Write your notes in a text file. Any text format such as markdown would work.
  • GraphNotes will read any line that starts with an asterisk "*".
    • Any word that is preceded with a hashtag "#" will be a node in the graph. E.g. #concept
      • If there are multiple works in a single concept, enclose them in "[]" and then precede it with a hashtag. E.g. #[multiple words]
    • To add citation to a description, put all the citations in a .bib file and cite the keys as follows: [@key1;@key2] That's all. You can then import your notes file using the Add notes button from the GUI.

Here is a complete example of a single note that will be converted into a graph:

* It has been long hypothesized that #scientists' choice of #[research problems] to work on are shaped by an ongoing tension between productive tradition and risky innovation [@Uzzi2018;@Bourdieu1975].

Installation

To use pre-built binaries, copy the binary for your system from the bin folder and run it.

To compile it yourself, first install nim and then compile with nim c GraphNotes.nim in the src folder.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.