Giter VIP home page Giter VIP logo

visualisation-lab's Introduction

Visualisation Lab

VisLab is an experimental visualisation workbench being built using Svelte. This is a work in progress so nothing fancy yet although potentially useful even now, as can be seen from the live demo which loads the latest data COVID-19 data directly from the WHO website.

Feedback and contributions are welcome.

Visualisation Lab aims to make it easy to do useful stuff as easily as possible with RDF / Linked Data. So 'semantic sources' are the focus, but this doesn't mean you can't visualise other data. Many formats will be or are already supported from CSV to directly querying of databases.

If you wish to add support for a new data source or format you can do so by implementing a couple of simple JavaScript classes. You can probably use or tweak one of the existing classes, which load data from a variety of sources, including local files, the web and RDF/SPARQL endpoints. Then convert it into one of the standard formats used internally for visualisation which are defined in the VisLab JSON ViewModel Specification (see below).

Plan

The plan is to start simple but long term aim to allow visualisation of data from multiple sources (manual, queried, loaded, filtered) to be explored, mixed and mashed through multiple visualisations.

Svelte components are used to provide a user interface separated into:

  • data query and access
  • filtering and visual modelling
  • visualisation (with a multiple configurable views)

A modular design is used to isolate implementation specific code related to the data type, serialisation and visual modelling. This makes it possible to to add support for new data types and sources, for different serialisation formats, data structures and visual models. All by implementing a couple of JavaScript classes which you can probably base largely on an existing class.

An overview and detailed design notes have been written but are not yet included in this repository. If you wish to know more or get involved, please contact the author.

JSON ViewModel Specification - proposed

In creating VisLab I searched in vein for a standard or documentation for a comprehensive set of JSON data structures designed for visualisation.

The aim of this specification is to make it quicker and easier to produce visualisations, reduce work on producing documentation and help improve code maintenance and interoperability.

Having not found anything suitable I created the JSON ViewModel Specification and welcome comments, suggestions and feedback. It is will be tested in VisLab and is open to changes that will improve its usefulness and effectiveness in other projects.

Get started developing

git clone https://github.com/happybeing/visualisation-lab

Install the dependencies...

cd visualisation-lab
yarn

...then start webpack:

yarn dev

Navigate to localhost:8080. You should see each component produce output in the browser (and the browser console). Edit a component file in src, save it, and the page should reload with your changes.

Deploying to the web

I include the following even though I've moved from using now to my regular hosting service so I have offer http rather than https as I encountered problems accessing some of the SPARQL demo databases when hosting under https. That's something that needs looking into, so if it is in your expertise and you want to help, let me know.

With now

Install now if you haven't already:

yarn global add now

Then, from within your project folder:

now

As an alternative, use the Now desktop client and simply drag the unzipped project folder to the taskbar icon.

With surge

Install surge if you haven't already:

yarn global add surge

Then, from within your project folder:

yarn build
surge public

LICENSE

License: GPLv3 (see LICENSE)

visualisation-lab's People

Contributors

dependabot[bot] avatar happybeing avatar

Watchers

 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.