This is an attempt to classify and list all operations people do with knowledge. An advanced note taking software should support as many features as possible. Of course it should use few clever abstractions to avoid complexity and bloatware. It is only a brief outline for inspiration. Many concepts overlap with each other, so the structure is not normative.

Information Structure

Here is an outline of common information structure. Many note taking applications support just textual information. However rich formats need to be supported. With clever abstractions, the database system is the same and the only extra thing is to write presentation layers for each format (image, video, sound, map, etc.).

  • data
  • metadata
    • title
    • date created, modified
    • type
      • MIME
    • location
    • source / URI (source can be for example document with optionally specified exact page number, video with specific time position)
    • tagging
  • examples
    • bookmarks, web pages, snippets of pages, snippets of code, documents, mind maps, multimedia content (audio, photos, and video)

Gathering / Sharing

This section describe how we gather/share, receive/transmit information. Note that many methods use the same metaphor for receiving and sharing information, e.g. file copying.

  • input devices
    • typing text keyboard
    • drawing pictures - mouse, tablet, touch screen
    • recording audio - microphone / speech recognition
    • recording video - camera
  • copy&paste
  • drag&drop
  • copy file / resource (categories can be interchangeable, URI)
    • local
    • external media - CD, DVD, flash drive
    • remote
      • web - http, ftp, etc.
  • mixed
    • extract some information
      • paragraph of text from a website
      • image from a video
    • screenshot, screencasting
    • annotate existing notes or documents
    • scrapbooking
  • import / export

Querying and Transformations

Common operations should be available using intuitive user interface without a need to do programming.

  • querying
    • by data
      • fulltext - like google
      • but there is no reason to limit it only to text, for example search by image fragment, sound etc.
    • by metadata
      • categories, tags
      • title
      • dates
      • etc.
  • meta search
    • consolidate results of searches performed by different engines
  • filter, sort
  • transformations
    • mapreduce, aggregate

Organizing, Representation and Visualization

To better understand and utilize data, we can view the data in different ways. Good visualization is very important and useful.

  • folders
  • grouping into categories / tagging (tags and categories can make hierarchy)
  • linking
  • navigation
    • hierarchy
    • outlines
    • linking
    • visual browsing (by timeline, calendar, geographic maps)
    • faceted viewing
  • representation,
    • collection of items
      • list
      • grid
      • tree
      • etc. + different spatial layouts
    • item
      • preview / thumbnail, full view, editing mode
      • depends on type