smurp / huviz

interactive, customizable semantic web visualization
GNU General Public License v3.0
14 stars 4 forks source link
canvas-animation coffeescript graph-visualization javascript linked-open-data semantic-web svg-animations

huviz

Image

What is HuViz?

HuViz is a Semantic Web graph visualization engine which uses a powerful system of interactions which can be captured to produce replayable scripts. It is rather like SQL (the Structured Query Language) but applied to the task of creating graph visualizations. It runs as a stand-alone site and can be integrated into other sites as a visualizer for their graph content.

Pages about HuViz

Deployments

Papers and Presentations Mentioning HuViz

Development and Issues

Wireframes for future directions

Sets

The commands in HuViz can be thought of as moving nodes around among various sets, where each set behaves in a particular way on screen.

Verbs

The Verbs are the operations which move nodes between the various sets, ie sets of nodes in particular states.

Installation

Install huviz from github

git clone https://github.com/smurp/huviz.git

Installation (for running the server)

# install NodeJS using NVM for most flexibility
# known to work on NodeJS >= v6.11.3
# (as of this writing, the latest Long Term Support version)

https://github.com/creationix/nvm#install-script

# Install `nvm` using the curl command in 'Install Script'.
# Then quit that Terminal window and start a new one to make sure its firing up automatically.
# There are tips at the bottom of the NVM README in case of problems.

# Then install the LTS version of `node` itself like this:
nvm install --lts

# Make sure you've got a suitable version of Node
node -v # expecting v6.11.3 or later

# Then do classic normal npm stuff
npm install # install needed modules

Running the server

npm start

Development

Running the server during development

npm run watch
# watches for changes
# then runs build:*
# which creates a new lib/huviz.dist.js
# which triggers restarting the server

Running Tests "Continuously"

# in one window be running
npm run watch

# in another window run one of
npm run watchTest # runs both unit tests and user tests whenever code changes
npm run watchTest:user # runs just user tests continuously
npm run watchTest:unit # runs just unit tests continuously

Run all tests once (not continuously)

npm run test # starts a server and runs both user tests and unit tests
# prefixing the above with BAIL=1 stops test execution on first failure
BAIL=1 npm run test

To create new user tests

Install Selenium-IDE and edit the file test/user_tests.side.

Watch Selenium IDE Demo A tutorial for beginners (15min) or Selenium IDE Tutorial For Beginners for a thorough (100min) tutorial.

To create new unit tests

Add HuViz module unit tests in test using mocha and chai to match the existing style.

Developing quaff-lod

Run the auto build process while you are editing src/quaff-lod-worker.js

$ cd quaff-lod
$ npm run watch

Run the development version of huviz and tell it where to find the dev version of quaff-lod

$ cd huviz
$ QUAFF_PATH=../quaff-lod/ npm run watch

Gallery

Finite state machine

Demo of finite state machine diagram

Friend of a Friend (FOAF) Ontology

Image

Demo of CWRC subject-centric data

Demo of moderately dense graph

3191 Nodes

Graph of 3191 nodes pulled from CWRC SPARQL

System Diagram

HuViz System Diagram