Git Product home page Git Product logo

slog's Introduction

slog: simple lab tracking system
================================

Overview
--------

The basic architectural idea for the slog system is to build the LIMS
on a specific but modifiable ontology, i.e. a view of the types of
entities that exist in the lab world, and their relationships with
each other. The ontology (types of entities) is viewed as the primary
level of the LIMS, while the workflows (processes, methods) are seen
as the secondary level. 

We believe that this is the appropriate design choice for a lab
environment employing cutting-edge technology, which evolves
continuously. The lab entities are more fundamental and less subject
to change than workflows. The methods used in the lab typically evolve
more rapidly than the actual things (samples, projects, etc) the
methods are applied to.

As a consequence of this architectural decision, the entities and
their information can be entered in any order (subject to the
relationships defined as required). As the LIMS system matures,
workflows can be added that aid or control the input of data in a
specific order. This is viewed as a refinement of the LIMS system, not
a fundamental property. 

The technical architecture is based on entities whose data is stored
in a document database. This decision was based on the observation
that an entity is more naturally represented by a document in a
database than in a set of tables in a traditional RDBMS.

The properties of a traditional RDBMS require that the data for
any specific entity type be split up in a number of tables. As long as
all data items for an entity are singleton values (a float, a string,
etc), a single table with columns for the data items suffices. But as
soon as composite data structures (lists, sets, dictionaries) are
required for storing the information of an entity, multiple tables
involving foreign-key relationships must be used to store the data for
an entity. This creates complexity in the design, and fragility in the
evolution of the entity definitions.

A document database can be used to store all data for an entity in a
single document, where it is straightforward to represent composite
data structures.

Terminology
-----------

account 
    An entity type representing a user in the system, including
    customers.

action
    Brief description in a log entry of the modification for an entity.

admin
    Role value: Allowed to do anything.

customer
    Role value: Read-only of its own project and samples.

engineer
    Role value: Allowed to create and edit samples within a project.

manager
    Role value: Allowed to do add customers and projects.

name
    One-word name for an entity, alphabetical first character, the rest
    alphanumerical or underscore '_'. Must be unique within its entity type.

role
    Hard-coded level for access privilege.
    Possible values are: admin, manager, engineer, customer.

sample
    Specific material to be analyzed.

tag
    A simple name or phrase attached to an entity, for classification and
    for search purposes.

title
    A one-line description of an entity.
    May contain several words, be non-unique, or empty.

timestamp
    Date and time (ISO format) of the modification producing the current
    revision of the document.

tool
    A software component that operates on a sample, project, or other
    entity to change it, produce other entities, or to do something else.
    The available tools depend on the site.

user
    A person interacting with the system.
    All access to slog requires login to an existing account.

xref
    A cross reference from an entity to an external item. May be an explicit
    URL (http://...) or a URN (urn:database:key), which may be processed by
    the system into a clickable URL link.

slog's People

Contributors

pekrau avatar

Stargazers

(major) john (major) avatar

Watchers

Luminita Färnström avatar Dave Messina avatar Magnus Bjursell avatar Måns Magnusson avatar  avatar Phil Ewels avatar Henrik Stranneheim avatar José Fernández Navarro avatar Andreas avatar Daniel Nilsson avatar James Cloos avatar Alexey Kutsenko avatar Johannes Alneberg avatar  avatar Pelin Sahlén avatar  avatar Johan Dahlberg avatar Mario Giovacchini avatar  avatar Remi-Andre Olsen avatar Denis Moreno avatar Husain Ahammad Talukdar avatar  avatar

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.