Visualization Knowledge Query Language (VKQL) Workshop Nicholas Del Rio University of Texas at El Paso Computer Science.

Slides:



Advertisements
Similar presentations
VisKo: Enabling Visualization Generation Over the Web Nicholas Del Rio – UTEP Paulo Pinheiro - PNNL 1
Advertisements

Yingcai Xiao Chapter 4 The Visualization Pipeline.
Execute Stored Procedure having Output Parameter and returning Result Set in Adeptia Server.
ParaView Tutorial Greg Johnson, Karla Vega. Before we begin… Make sure you have ParaView installed so you can follow along in the lab section –
Chapter 6 UNDERSTANDING AND DESIGNING QUERIES AND REPORTS.
Programming Fundamentals. Programming concepts and understanding of the essentials of programming languages form the basis of computing.
Chapter 12: ADO.NET and ASP.NET Programming with Microsoft Visual Basic.NET, Second Edition.
Using ADO.NET Chapter Microsoft Visual Basic.NET: Reloaded 1.
DT228/3 Web Development Databases. Database Almost all web application on the net access a database e.g. shopping sites, message boards, search engines.
Figure 1. Hit analysis in 2002 of database-driven web applications Hits by Category in 2002 N = 73,873 Results Reporting 27% GME 26% Research 20% Bed Availability.
Overview of Search Engines
Visualization Knowledge (VisKo): Leveraging the Semantic Web to Support VisualizationVisKo University of Texas at El Paso Computer Science.
Visualization Knowledge (VisKo): Leveraging the Semantic Web to Support VisualizationVisKo Nicholas Del Rio CyberShARE Center University of Texas at El.
EVAT Solution Workshop Public. ©2013 SAP AG. All rights reserved.2 Public 1. eVAT Background 2. SARS process 3. SAP Reporting 4. Note Information 5. Short.
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
Stored Procedures Dr. Ralph D. Westfall May, 2009.
Server-side Scripting Powering the webs favourite services.
Beyond the Visualization Pipeline Werner Benger 1, Marcel Ritter, Georg Ritter, Wolfram Schoor 1 Scientific Visualization Group Center for Computation.
VTK: The Visualization Toolkit Part I: Overview and object models March 28, 2001.
CSC 2720 Building Web Applications Using Java Beans, Custom Tags and Tag Libraries in JSP pages.
Programming Paradigms
Chapter 1. Introduction.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
ITCS 6010 SALT. Speech Application Language Tags (SALT) Speech interface markup language Extension of HTML and other markup languages Adds speech and.
Web Programming: Client/Server Applications Server sends the web pages to the client. –built into Visual Studio for development purposes Client displays.
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
CSCI 6962: Server-side Design and Programming Introduction to Java Server Faces.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
A Query Translation Scheme for Rapid Implementation of Wrappers Presented By Preetham Swaminathan 03/22/2007 Yannis Papakonstantinou, Ashish Gupta, Hector.
Galaxy for Bioinformatics Analysis An Introduction TCD Bioinformatics Support Team Fiona Roche, PhD Date: 31/08/15.
Distributed Information Retrieval Using a Multi-Agent System and The Role of Logic Programming.
Application portlets within the PROGRESS HPC Portal Michał Kosiedowski
VTK. VTK Online Resources On-line Resources VTK –Manual: –Examples:
Visualization Knowledge (VisKo): Leveraging the Semantic Web to Support VisualizationVisKo Paulo Pinheiro da Silva and Nicholas Del Rio CyberShARE Center.
2007. Software Engineering Laboratory, School of Computer Science S E Web-Harvest Web-Harvest: Open Source Web Data Extraction tool 이재정 Software Engineering.
1.  10% Assignments/ class participation  10% Pop Quizzes  05% Attendance  25% Mid Term  50% Final Term 2.
GEON Cyberinfrastructure Workshop Beijing, China, July 21-23, 2006 Workflow-Driven Ontologies for the Geosciences Leonardo Salayandía The University of.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Adding Parameters to Commands ADO.NET - Lesson 06  Training time: 15 minutes.
NA-MIC, 2008 June Workshop, IHK Akademie Westerham VTK
VTK: The Visualization Toolkit Qaiser Chaudry Georgia Institute of Technology June 28, 2006.
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
GEON2 and OpenEarth Framework (OEF) Bradley Wallet School of Geology and Geophysics, University of Oklahoma
WDO-It! 102 Workshop: Using an abstraction of a process to capture provenance UTEP’s Trust Laboratory NDR HP MP.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Supported in part by the National Science Foundation under Grant No. HRD Any opinions, findings, and conclusions or recommendations expressed.
Chapter Fourteen Access Databases and SQL Programming with Microsoft Visual Basic th Edition.
OOSSE Week 8 JSP models Format of lecture: Assignment context JSP models JSPs calling other JSPs i.e. breaking up work Parameter passing JSPs with Add.
Visualization with ParaView. Before we begin… Make sure you have ParaView 3.14 installed so you can follow along in the lab section –
CHAPTER 4 THE VISUALIZATION PIPELINE. CONTENTS The focus is on presenting the structure of a complete visualization application, both from a conceptual.
©SoftMooreSlide 1 Introduction to HTML: Forms ©SoftMooreSlide 2 Forms Forms provide a simple mechanism for collecting user data and submitting it to.
Oracle Data Integrator User Functions, Variables and Advanced Mappings
Supported in part by the National Science Foundation under Grant No. HRD Any opinions, findings, and conclusions or recommendations expressed.
Programming Models/ Paradigms Chapter 5: Programming Languages.
Drill-Through Features Cognos 8 BI. Objectives  In this module we will examine:  Cognos 8 Drill Through Overview  Model / Package Drill Through  Cross.
Chapter – 8 Software Tools.
DAT 378 SQL Server 2000 Bringing The Best of Reporting Services and Analysis Services Together Sean Boon Program Manager, BI Systems
A Use Case for GEON 1 A user request of the form: “For a given region (i.e. lat/long extent, plus depth), return a 3D structural model with accompanying.
June 27-29, DC2 Software Workshop - 1 Tom Stephens GSSC Database Programmer GSSC Data Servers for DC2.
VisKo: Enabling Visualization Generation Over the Web Nicholas Del Rio – UTEP Paulo Pinheiro - PNNL 1
Programming with Microsoft Visual Basic 2012 Chapter 14: Access Databases and SQL.
VTK: The Visualization Toolkit
Step 1 Create Database Info activity in Adeptia Server specifying the driver, URL and user credentials information for the database in which stored.
课程名 编译原理 Compiling Techniques
Microsoft Access Illustrated
Assembler, Compiler, Interpreter
Array and Method.
Creating Noninput Items
Assembler, Compiler, Interpreter
Lecture 5: Functions and Parameters
Presentation transcript:

Visualization Knowledge Query Language (VKQL) Workshop Nicholas Del Rio University of Texas at El Paso Computer Science

Workshop Objectives Understand notion and purpose of visualization queries Understand why writing queries may be easier that writing visualization programs Learn the VKQL syntax and practice posing queries

Workshop Summary 1.Generating Visualizations Imperatively 2.Visualization Query 3.VKQL Syntax and Examples 4.Activity 1: Manual Inspection of Query 5.Activity 2: Copy and Pasting Examples 6.Conclusion

Velocity Model Visualization A set of isosurfaces – extracted from a seismic velocity model – Covers a region in southern New Mexico 8 km/s 3 km/s Depth

Visualizing the Velocity Model Generated by custom Java application – relied on Visualization Toolkit (VTK) for rendering – VTK was developed for rendering 3D visualizations – VTK is supported by Sandia, Los Alamos, ARL, and others Writing a custom visualization application: – may rely on third party package to support rendering – may need to perform some transformations on input dataset before rendering

Visualization Toolkits Visualization Toolkit (VTK) was used to render the velocity visualization VTK is a toolkit that provides functions such as: – Filtering – Gridding/interpolating – Mapping (i.e., transform data into views like isosurfaces) – Rendering the views Functions are referred to as operators – Generic mapping tools (GMT): 60 operators – VTK: hundreds of operators

Visualization Pipeline Model VTK requires that users write pipelines – the output of an operator feeds into the operator next in the pipeline sequence – first operator in pipeline is usually data reader – final operator in pipeline is usually renderer Thus the Java program that visualizes the velocity model can be seen as a pipeline of VTK operators It is up to the users to write these pipelines…

VTK Java Pipeline For Velocity Model 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);

Pipeline of Visualization Operators 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); Op 1 Op 2 Op 3 Op 5 Op 6 Op 7 Op 8

Different Types of Operators 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); Op 1 Op 2 Op 3 Op 5 Op 6 Op 7 Op 8 Transformer View Mapper Renderer Transformer

Operators are Parameterized 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); Op 1 Op 2 Op 3 Op 5 Op 6 Op 7 Op 8 P1 P2 P5 P6 P7 P8 P9 P3 P4

Declarative Requests Many user skills needed to visualize data Aside from cognitive aspects of visualization, a large part of the problem is engineering Stems from fact that we generate visualizations imperatively (i.e., write code) Can we provide a means for users to generate visualizations declaratively (i.e., generate what visualization they want without having to write code)?

Workshop Summary 1.Generating Visualizations Imperatively 2.Visualization Query 3.VKQL Syntax and Examples 4.Activity 1: Manual Inspection of Query 5.Activity 2: Copy and Pasting Examples 6.Conclusion

Visualization Query (AND(hasView ?VIS isosurfaces) (hasContent ?VIS (hasFormat ?VIS floatArray) (hasType ?VIS velocityData) (viewedBy ?VIS mozilla-firefox) (hasValue numContours 36)) Desired View URL of Data to visualize Semantic Type of dataset WDO types (UTEP) Format of dataset ParameterArgumentViewer The velocity model visualization was actually a result of a visualization query Requested Visualization

Visualization Queries and SQL Visualization queries mirror SQL queries – query request is specified declaratively – request is then translated into a query plan – query plan computes the result requested by the query Information specified in visualization queries is used to derive pipelines rather than query plans The pipeline in turn generates the visualization requested in the query

Information Needed to Write Queries At a minimum you need to know: – The type of your dataset (e.g., gravity, seismic) – The format it is stored in (e.g., netCDF) – The URL of your dataset With only above info, all possible visualizations will be returned (wildcard) For more control, you need to know: – What view you want (i.e., chart, isolines, volume) – The appropriate values for operator parameters

Workshop Summary 1.Generating Visualizations Imperatively 2.Visualization Query 3.VKQL Syntax and Examples 4.Activity 1: Manual Inspection of Query 5.Activity 2: Copy and Pasting Examples 6.Conclusion

VKQL Syntax A conjunction of Prolog statements that contain: – hasView( -DATA, ?VIEW) – hasContent(-DATA, +URL), – hasType(-DATA, +TYPE), – hasFormat(-DATA, +FORMAT) – [hasValue(+PARAM, +VALUE)] Variable NameMeaning DATAThe requested visualization VIEWThe view (e.g., 2D plot, isolines, volume) URLURL of information to be visualized TYPESemantic Type of Data (e.g., gravity, 3DVelocity) FORMATFormat of data (e.g., netCDF, ascii-tabular) PARAMAn operator parameter VALUEArgument passed to PARAM SymbolMeaning -Unbound ?Optional +Required

Workshop Summary 1.Generating Visualizations Imperatively 2.Visualization Query 3.VKQL Syntax and Examples 4.Activity 1: Manual Inspection of Query 5.Activity 2: Copy and Pasting Examples 6.Conclusion

Activity 1: Manual Inspection of Query Navigate to: Refer to the first query specified on the page: 1.What viewer is the query requesting the system to target? 2.What view is the query requesting the system to generate? 3.What is the type and format of the dataset being visualized? 4.Are there any parameter bindings? If so what is the parameter bound to?

Workshop Summary 1.Generating Visualizations Imperatively 2.Visualization Query 3.VKQL Syntax and Examples 4.Activity 1: Manual Inspection of Query 5.Activity 2: Copy and Pasting Examples 6.Conclusion

Submitting VKQL Queries VKQL queries can be entered and executed at: You can build queries by selecting values from combo boxes You can type queries manually in a text box without any guidance or copy and paste an existing query

Activity 2: Pasting Examples Navigate to: examples/ examples/ Copy query for: Gridded Time with Rotation Paste and Submit Query in Query Submission Page Try manually changing the values assigned to: – xRotation – yRotation – zRotation Resubmit with new bindings

Workshop Summary 1.Generating Visualizations Imperatively 2.Visualization Query 3.VKQL Syntax and Examples 4.Activity 1: Manual Inspection of Query 5.Activity 2: Copy and Pasting Examples 6.Conclusion

Conclusion Writing queries may be easier to request for visualization generation than writing imperative code VKQL Queries can be constructed a few ways using the VKQL Query Submit interface VKQL Queries can target more than a single toolkit for generation