VisKo is a framework supporting the answering of visualization queries, which allow users to specify what visualziations they want generated by a multitude of different visualizations toolkits (e.g., Visualization Toolkit).
You can start generating visualizations on our VisKo network.
You can install your own VisKo server and build up your own visualization knowledge base.
VisKo Project
The VisKo project comprises:
Query Language: The query language used to request for visualization generation;
Ontologies: The visualization toolkit centric model;
Query Engine: Module that uses the visualization knoweldge base to answer visualization queries;
Imperative Visualization Code vs. Visualization Queries
Rather than writing visualization applications, VisKo users can submit visualization queries that specify what visualizations they want generated without specifying how the visualizations are generated. The image below shows a snippet of imperative Visualization Toolkit (VTK) Java code and a visualization query that both generate an equivalent isosurfaces rendering of seismic velocity data. Note the compactness of the visualization query in comparison to the VTK Java code, and how the query only specifies the properties of the visualization but makes no mention about any services or operations that should be used to derive the visualization.
Visualization Toolkit (VTK) Code to Generate Velocity Isosurfaces
Equivalent Visualization Query in VisKo
vtkImageReader rdr = new vtkImageReader();
rdr.SetFileName(inputDatasetFilePath);
rdr.SetDataScalarTypeToUnsignedShort();
rdr.SetDataByteOrderToLittleEndian();
rdr.SetFileDimensionality(3);
rdr.SetDataOrigin(0,0,0);
rdr.SetDataSpacing(1,1,1);
rdr.SetDataExtent(0,230,0,25,0,68);
rdr.SetNumberOfScalarComponents(1);
rdr.FileLowerLeftOn();
rdr.Update();
vtkContourFilter contours =
new vtkContourFilter();
contours.SetInput(rdr.GetOutput());
contours.GenerateValues(35,0.0,9000.0);
vtkPolyDataMapper contMapper =
new vtkPolyDataMapper();
contMapper.SetInput(contours.GetOutput());
contMapper.SetScalarRange(0.0,9000.0);
vtkActor contActor = new vtkActor();
contActor.SetMapper(contMapper);
contActor.RotateX(105);
vtkRenderer ren1 = new vtkRenderer();
ren1.AddActor(contActor);
ren1.AddActor2D(outlineActor);
ren1.SetBackground(1,1,1);
vtkRenderWindow renWin = new vtkRenderWindow();
renWin.SetOffScreenRendering(1);
renWin.AddRenderer(ren1);
renWin.SetSize(300,300);
renWin.Render();
vtkJPEGWriter img = new vtkJPEGWriter();
img.SetInputConnection(renWin.GetOutputPort());
img.SetFileName(outputDatasetFilePath);
img.SetQuality(100);
PREFIX formats http://cs.utep.edu/formats.owl#
PREFIX types http://cs.utep.edu/HolesCodeWDO.owl#
PREFIX visko http://cs.utep.edu/visko.owl#
PREFIX params http://cs.utep.edu/vtkPolyDataMapperService.owl#
SELECT visko:isosurfaces IN-VIEWER visko:firefox
FROM http://rio.cs.utep.edu/HolesCodeFullPML/vel.3d
FORMAT formats:BINARYFLOATARRAY
TYPE types:d2
WHERE params:xRotation = 104 AND
params:yRotation = 0 AND
params:zRotation = 0
Resultant Velocity Model Isosurfaces Visualization
Start Playing With VisKo
If you want to start submitting VisKo Visualization Queries please start reading about queries and how to pose them.