Infovis using VTK and Qt DOECGF 2005 Andy Wilson Sandia National Laboratories Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed.

Slides:



Advertisements
Similar presentations
Timothy M. Shead Sandia National Laboratories
Advertisements

Point of Sale (POS) Client & Back Office Server. Operational Concept What is our Objective? What is our Objective? What are our Goals? What are our Goals?
EUFORIA FP7-INFRASTRUCTURES , Grant JRA4 Overview and plans M. Haefele, E. Sonnendrücker Euforia kick-off meeting 22 January 2008 Gothenburg.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Feature requests for Case Manager By Spar Nord Bank A/S IBM Insight 2014 Spar Nord Bank A/S1.
Lecture 2 Page 1 CS 236, Spring 2008 Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher Spring, 2008.
Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.
S.R.F.E.R.S. State, Regional, and Federal Enterprise Retrieval System Inter-Agency & Inter-State Integration Using GJXML.
1 ©2007, University of Pisa, Dip. Ingegneria dell’Informazione – Andrea Bacioccola Survey on Database Architectures A. Bacioccola.
Week 2 IBS 685. Static Page Architecture The user requests the page by typing a URL in a browser The Browser requests the page from the Web Server The.
Modules, Hierarchy Charts, and Documentation
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
Maximizing Teaching & Learning For the Short Course.
SM3121 Software Technology Mark Green School of Creative Media.
Maintaining and Updating Windows Server 2008
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
 MODERN DATABASE MANAGEMENT SYSTEMS OVERVIEW BY ENGINEER BILAL AHMAD
Creating Web Page Forms
Understanding and Managing WebSphere V5
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Lesson 46: Using Information From the Web copy and paste information from a Web site print a Web page download information from a Web site customize Web.
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
XML, DITA and Content Repurposing By France Baril.
1 Web Developer & Design Foundations with XHTML Chapter 6 Key Concepts.
J2EE Web Fundamentals Lesson 1 Introduction and Overview
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
WIKI IN EDUCATION Giti Javidi. W HAT IS WIKI ? A Wiki can be thought of as a combination of a Web site and a Word document. At its simplest, it can be.
Selected Topics in Software Computing Distributed Software Development CVSQL Final Project Presentation.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
ABSTRACT Zirous Inc. is a growing company and they need a new way to track who their employees working on various different projects. To solve the issue.
ROOT: A Data Mining Tool from CERN Arun Tripathi and Ravi Kumar 2008 CAS Ratemaking Seminar on Ratemaking 17 March 2008 Cambridge, Massachusetts.
Crystal Yellow Agile Software Methodology For ParaView Development Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Department.
Networked File System CS Introduction to Operating Systems.
PowerPoint 2003 – Level 1 Computer Concepts Cathy Horwitz April 25, 2011.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
The Network Performance Advisor J. W. Ferguson NLANR/DAST & NCSA.
Creating Dynamic Web Pages Using PHP and MySQL CS 320.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Claims-Based Identity Solution Architect Briefing zoli.herczeg.ro Taken from David Chappel’s work at TechEd Berlin 2009.
MEMBERSHIP AND IDENTITY Active server pages (ASP.NET) 1 Chapter-4.
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
Securing Passwords Against Dictionary Attacks Presented By Chad Frommeyer.
Knowledge Management & Knowledge Management Systems By: Chad Thomison MIS 650.
The Changing Campus Web November, December 6, 2015 page 2 Agenda 1)Introductions 2)Overview: Campus Trends 3)Overview: Lessons Learned 4)Our Approach.
1 Registry Services Overview J. Steven Hughes (Deputy Chair) Principal Computer Scientist NASA/JPL 17 December 2015.
David Orchard W3C Lead BEA Systems Web service and XML Extensibility and Versioning.
Site Report DOECGF April 26, 2011 W. Alan Scott Sandia National Laboratories Sandia National Laboratories is a multi-program laboratory managed and operated.
ParaView III Software Methodology Update Where to now November 29, 2006 John Greenfield Sandia is a multiprogram laboratory operated by Sandia Corporation,
©SoftMooreSlide 1 Introduction to HTML: Forms ©SoftMooreSlide 2 Forms Forms provide a simple mechanism for collecting user data and submitting it to.
UI's for inputting and presenting the metadata of hypermedia documents Kai Kuikkaniemi HUT T
Clusters Rule! (SMPs DRUEL!) David R. White Sandia National Labs Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin.
21 Copyright © 2009, Oracle. All rights reserved. Working with Oracle Business Intelligence Answers.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Excel Services Displays all or parts of interactive Excel worksheets in the browser –Excel “publish” feature with optional parameters defined in worksheet.
Enterprise Oracle Solutions Oracle Report Manager The New ADI and More Revised:June 20091Report Manager/SROAUG Presentation.
This was written with the assumption that workbooks would be added. Even if these are not introduced until later, the same basic ideas apply Hopefully.
Maintaining and Updating Windows Server 2008 Lesson 8.
17 Copyright © 2006, Oracle. All rights reserved. Information Publisher.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Automated File Server Disk Quota Management May 13 th, 2008 Bill Claycomb Computer Systems Analyst Infrastructure Computing Systems Department Sandia is.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Advanced Higher Computing Science
CS 5150 Software Engineering
The Client/Server Database Environment
Infovis using VTK and Qt
Lecture 1: Multi-tier Architecture Overview
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Presentation transcript:

Infovis using VTK and Qt DOECGF 2005 Andy Wilson Sandia National Laboratories Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000.

Outline Driving Problems Why VTK? Adapting VTK for Infovis Applications: CallView Lessons Learned What’s next?

Driving Problems Customers are asking for tools that are more about infovis than traditional scivis. –Map concepts against one another and display as a graph Patent database LDRD calls and ideas –Social and semantic networks Who knew whom, when? We also want the ability to annotate data inside Paraview. –Pass along annotations like any other attribute

Okay, how do we do that? Possible options: –Adopt an existing toolkit. –Write our own. –Adapt something we already have.

Option 1: Adopt an existing toolkit  Plenty of candidates –Several toolkits presented at a seminar before Vis last year  Don’t need to reinvent the wheel  Java toolkits make portability easier –Not a panacea…  Licensing issues? –If proprietary, how much does it cost? –If open, which license does it use?  We may still have to re-invent other components –How does the toolkit work with Paraview, VTK, others?

Option 2: Write our own  Toolkit will do exactly what we want –Play nicely with VTK, Paraview, perhaps even Ensight…  No license problems  Large initial investment  Duplication of effort  Difficult to collaborate with others

Option 3: Modify existing code  Some initial investment  Reinvent the wheel but not the whole car  Toolkit will do most of what we want  May not be a perfect fit  Take advantage of existing code  There is already a skilled developer community  Portability may come nearly for free  Contribute back to the community  Potential license problems

Adapting VTK for Infovis Why VTK? –We already know how to use it –Widely deployed within Sandia via Paraview –Good working relationship with Kitware –We already have permission to release code as open source within VTK –Portability –Multiple language bindings There may be other toolkits with most of these advantages…

Infrastructure Problems String support –Add string as a new data type in VTK arrays –VTK assumes that array elements are numbers –Major problem: Strings are variable length! I/O –Need a robust way to read and write string data Filtering –What should happen when a numeric filter encounters string data? Backward compatibility is critical!

Problem 1: String data type We need to be able to treat a string as a POD type. –std::string is close enough Bigger problem: vtkDataArray and its subclasses assume that their contents are numeric. –Tried subclassing. It didn’t work. –Solution: Change the class hierarchy. Factor out the numeric assumption Backward compatibility is critical!

Old VTK data array hierarchy vtkObject vtkDataArray vtkBitArray vtkCharArray vtkShortArray vtkLongArrayvtkFloatArray vtkIntArray

New VTK data array hierarchy vtkObject vtkDataArray vtkAbstractArray Other arrays…vtkStringArray vtkBitArray etc… Backward compatibility is critical!

Changes to VTK I/O The elements of a vtkStringArray do not all have the same size. –The components of each element do, though! Flatten each string array into two separate arrays –One long block of characters –An array of offsets Use standard VTK I/O code to read and write those arrays

Changes to VTK Filtering Add a new IsNumeric() method to vtkAbstractArray Filters that only copy and select data remain unchanged Filters that work with a specific data type must check for that data type –That’s the way it is already!

Okay, now what? This relatively minor change lets us pass string data through the VTK pipeline just like any other data type. That was the only real obstacle to using VTK for infovis. Now, on to what users really care about: the applications.

CallView: Who is the customer? Customer: Sandia LDRD (Lab Directed Research & Development) program office Proposal submission season every March –About 15 broad research categories –About 100 specific thrusts (topics of interest) –Typical submission season gets ~1200 short proposals

CallView: What is the problem? The people submitting ideas for research projects don’t know what area & thrust to submit to. The people in the LDRD office want to explore the submissions. –How well do the ideas match the areas & thrusts? –Are ideas being submitted to the appropriate areas? Infovis to the rescue!

CallView: Server function Store a set of documents in a local database –Initially, thrust text only –Ideas as well (after submission season closes) Compute similarities between all pairs of documents –Do force-directed graph layout using the results –Also allow clients to compare arbitrary chunks of text against all documents in a set

Use case #1: I have an idea! Researcher has an idea for an LDRD proposal. Send idea text to CallView as part of submission process. Results include a list of the top 5 most similar thrusts. Researcher is not forced to submit to those: they are only a suggestion.

Use case #1: Results page

Use case #2: Analyzing all idea submissions Investment area managers want to see how the ideas map to the areas and thrusts. Construct a document set containing all ideas and thrusts for a given year Build a semantic graph using the similarities between all pairs within that set Allow users to explore that graph

Use case #2: Front end

Use case #3: Analyzing some submissions LDRD area managers want to see the ideas most relevant to their investment area Construct a document set with all the ideas For each thrust within an investment area, find all the ideas similar to that thrust Sort the results by similarity Flag those ideas that are very similar to a thrust but were not submitted to it. –How can they improve the process so that this doesn’t happen as frequently?

CallView: System overview CVServer (VTK + Qt) STANLEY (Text analysis) Clients (web pages, interactive viewer) VxOrd (Graph layout) SQLite (Documents) XML over TCP, HTTP CallView

CallView: Results CallView integrated into the standard LDRD idea submission process Server handled about 1000 requests over the 2- week submission period Positive reactions from LDRD staff, VPs, and end users Development continues on use cases #2 and #3 –Investment area manager tools should be online right now

CallView: Lessons learned Neat graphical interface isn’t always the right thing –Convey the information necessary in the simplest format sufficient to users’ needs –Sometimes a web page is all you need Developing distributed systems is hard! –Robust network code is hard to write and debug –Following a specification incorrectly can be worse than not following it at all There is no substitute for testing on real data.

What’s next? We have enough infrastructure to build general information visualization tools –Many, many applications: homeland security, intelligence, business planning, patent & publication analysis… String support in VTK is general enough to handle data annotation as well as string attributes

Where do I get it? String support is currently in a branch of the VTK CVS repository. With luck, it will be released with VTK 5.0. Without luck, it will be in VTK 5.1. If you want to play with it before then… – –CVS branch: VTK-Sandia-InfoViz –If it breaks, you get to keep both pieces

Thanks to… Will Schroeder, Kitware Nabeel Rahal, Keith Ortiz, Brian Wylie, Hank Westrich, and Travis Bauer, Sandia Desert Sky Software