480 likes | 575 Views
NEESgrid Data Effort. Jean-Pierre Bardet, Amr Elnashai, Charles Severance, Joe Futrelle. Goals. Data is online and persistent Data and Metadata are supported together Data migrates transparently including security, and metadata
E N D
NEESgrid Data Effort Jean-Pierre Bardet, Amr Elnashai, Charles Severance, Joe Futrelle
Goals • Data is online and persistent • Data and Metadata are supported together • Data migrates transparently including security, and metadata • Data is completely secure with access controls but security does not get in the way • Data provenance - how was it gathered, how has it been manipulated? • Data in support of research publication • Support for repeatable experiments • Data oriented research computation support • Support for workflow
Data Meta Data Gathering Extracting Repository Mapping Vision: data on the Grid studies
Objectives of Data Effort in NEESgrid through 09/04 • Develop deploy and extend the NEESgrid toolset • Educate community on the tools and how to use the tools • Work with sites to help in the adoption and localization of the NEESgrid toolset • Work with the community to define and implement a basic NEES-wide data model to enable some basic sharing - much of this will be based on adopting existing work.
NEESgrid Data – Core Elements • Local Repository • Central Repository • JAVA APIs – Run locally on the same system as a repository or over OGSA Web Services • NEES File Management Services • NEES Meta Data Services • Data Viewers • Streaming (numeric, X/Y graph) • Stored (X/Y graph, 2-D structure, video)
Core Elements Data Acquisition NEESpop Data/MD Ingest Tools API Local Repository Grid and Web Services Data Teamlets API Workstation NEESdata Data tools Central Repository Data Teamlets API Data viewers
NEESgrid Data – Technologies • Grid • GRIDFTP is used for data transport • Grid Web Services are used to insure security and provide access control between systems over the Internet – also provide for credential passthrough • Grid credentials are used as part of login providing a single sign-on framework • CHEF • Provides a flexible mechanism for deploying GUI tools like the data viewers and data browsers.
Researcher System A Simple Experimental Scenario Developer System DAQ System Test Specimen Labview Glue
Simulation System Simulation System Simulation System Code Code Code A Simulation Scenario Developer System
The MOST Scenario • Part of the run-up to NEESPop 2.0 • Used Beta of NEESpop and Beta of CHEF • Tested the data ingestion • Tested the metadata capabilities • Developed sample metadata • Tested mapping capabilities • System still available at https://cee-nees.cee.uiuc.edu/chef/
Series of files Ftp Plug In Complete file (aggregated) NTCP NSDS Wires File I/O Site / Location NFMS/NMDS Computer Process UIUC/Newmark Colorado Test Specimen Test Specimen MatLab Host And Real-Time Target Control System LabView DAQ Shore-Western Sim Controller LabView DAQ UIUC Matlab NEESPop (1.1) NSDS NTCP Incoming FTP CO NEESPop (2.0) NTCP Ingest Repository NSDS CO UIUC NCSA NEESPop (1.1) Incoming FTP Ingest NCSA Meta NTCP UIUC NEESMost (Win XP) Matlab Computational Model NCSA Ingest MOST Data Flows
Oregon State: Experiment Based Deployment looking at Synchronized Video
An LED was added to be visible in the video frame which was connected to a button which would signal the “start of the experiment” (1) This signal was also patched into the DAQ (channel 15) (2) A person was stationed at the DAQ and at the video camera to manually start both processes. (3) Both DAQ and Video capture were manually started about 10 seconds before experiment start. The experiment was run for about 20 seconds at which time both the video and data acquisition were manually stopped Done using NEESgrid 2.0 beta without any changes Experiment Setup 2 DAQ 3 1 3
Time ch01 ch02 0.00 0.01 3 6 4 8 0 2 3 5 3 3 5 3 4 0 3 4 0 6 8 2 Manual processing of the data DAQ 1 • Mpeg video data was moved to a PC using a memory stick and the DAQ data was transferred into Excel. • (1) The video data was trimmed using Pinnacle Studio to discard the frames before the trailing edge of the LED signal. • (2) The DAQ data was discarded through the trailing edge of the LED signal • (3) A time channel (100hz) was added and the data channels were extracted and placed in the NEESpop • (4) We put meta data into the NEESpop (neesevent.xml) describing the event and channels (this was done before the experiment was started) NEESpop 2.0 Alpha Metadata 3 4
Time ch01 ch02 0.00 0.01 3 6 4 8 0 2 3 5 3 3 5 3 4 0 3 4 0 6 8 The experiment was viewed using the standard NEES stored viewer with synchronized video and data and the ability to move back and forth DAQ NEESpop 2.0 Alpha Metadata
NEES Metadata Effort • NEES Markup Language (NEESML) • Provides an RDF-like structure capable of representing semantic information • XML is the syntax which is used • Logic is more “object oriented” • Can define objects • Can create objects • Can reference objects • Meta data is many different things…. • Goal if we EVER want to build reusable data tools, we have to represent the semantics inside the meta data rather than just the information
Which one is Semantic Metadata and Why? <stuff> <sensor-info> <manufactured-by>phillips </manufactured-by> <owner>phillips</owner> <which-beam>second </which-beam> </sensor-info> <nees-experiment> <time-step>0.13</time-step> <time-step-unit>second </time-step-unit> <pi-name>phillips</pi-name> </nees-experiment> </stuff> <stuff> <person id=“68”> <title string=“phillips”> </person> <unit id=“second”> <title string=“second”/> </unit> <sensor-info> <manufactured-by string=“phillips”> <owner id=“68”/> <which-beam string=“second”> <width double=“0.13”> </sensor-info> <nees-experiment> <time-step double=“0.13” unit=“second”/> <pi id=“68”> </nees-experiment> </stuff>
Instant Tutorial: Semantics / RDF • This is an XML document. We can do some things with this document like ask the following questions: • What string is the “which-beam” attribute of “sensor-info” • Does this document meet the syntax requirememts of a DTD (i.e. does it contain “compile”?) • That is it. There are some unanswered questions: • What does “phillips” mean? • What does “second” mean? • With enough effort, we could write software which made intelligent choices about the meaning of the elements in each of these two “sub-document types”. Effectively, to build “knowledge” from data, software must evolve which “understands” each new document type. <stuff> <sensor-info> <manufactured-by>phillips </manufactured-by> <owner>phillips</owner> <which-beam>second </which-beam> </sensor-info> <nees-experiment> <time-step>0.13</time-step> <time-step-unit>second </time-step-unit> <pi-name>phillips</pi-name> </nees-experiment> </stuff>
type: sensor-info man: phillips owner: which-beam: Second width: 45.33 type: nees-experiment time-step: 0.13 pi: Instant Tutorial: Semantic Information <stuff> <person id=“68”> <title string=“phillips”> </person> <unit id=“second”> <title string=“second”/> </unit> <sensor-info> <manufactured-by string=“phillips”> <owner id=“68”/> <which-beam string=“second”> <width double=“0.13”> </sensor-info> <nees-experiment> <time-step double=“0.13” unit=“second”/> <pi id=“68”> </nees-experiment> </stuff> This is a semantic (or at least “more” semantic” document. It is best represented by a picture. Instead of thinking of things as strings and having to parse lots of documents, we can learn about seconds and then we can build components which understand “seconds” or “people” and ALWAYS know when to use those components. To “understand” a new “object type”, software must only understand the new elements introduced in that document type. Important: Semantic representation of information is necessary but not sufficient for understanding. Type: Unit title:second type: Person title:chuck
Tools are coded so as to “understand” a particular semantic structure – this becomes “meaning” and something useful
Data Metadata The Slide There is a layer is where we develop tools which take advantage and begin to depend on of the “meaning” of the data – where we begin to depend on the meaning of a second. Where we make a viewer capable of viewing a certain type of object. This is where we build things which make use of knowledge. This layer will never be complete but it is a large focus of the coming months. Data Ingestors Search Data Mappers Concepts Data Viewers
Partial ORST Data Model as Types <neesml xmlns:o="http://www.nees.org/md/ns/orst-example" xmlns:md="http://www.nees.org/md/ns/md"> <type id="o:described" title="Object with Description"> <o:description title="description"/> <o:shortDescription title="short description"/> <o:longDescription title="long description"/> </type> <type id="o:resource" title="Resource" extends="o:described"> <o:name title="name"/> <!-- "equipment class" can be represented by subtyping this type --> </type> <type id="o:resourceConfiguration" title="Resource Configuration"> <o:resources allow="o:resource" max="unbounded" title="resources"/> <o:x0 type="quant" title="x0"/> <o:y0 type="quant" title="y0"/> <o:z0 type="quant" title="z0"/> <o:x1 type="quant" title="x1"/> <o:y1 type="quant" title="y1"/> <o:z1 type="quant" title="z1"/> <o:angle type="double" title="angle"/> <o:configurationFile allow="io:file" title="configuration file"/> <o:acquisitionDevice title="acquisition device"/> <o:acquisitionChannel title="acquisition device"/> </type> <type id="o:facility" title="Facility"> <o:name title="name"/> <o:resources allow="o:resource" max="unbounded" title="resources"/> </type> <type id="o:experiment" title="Experiment" extends="o:described"> <o:facility allow="o:facility" title="facility"/> <o:startDate title="start date" type="date"/> <o:endDate title="end date" type="date"/> <o:specialConditions" title="special conditions"/> <o:status title="status"/> <o:configurations max="unbounded" title="configurations"> <type id="o:experimentConfiguration" title="Experiment Configuration" extends="o:descrbied"> <o:specialConditions title="special conditions"/> <o:startDateTime title="start date and time" type="date"/> <o:endDateTime title="end date and time" type="date"/> <o:isFidelity title="requires fidelity to real-world conditions?"/> <o:status title="status"/> <o:trials max="unbounded" title="trials" extends="o:described"> <type id="o:trial" title="Trial"> <o:output max="unbounded" title="resource output"> <type id="o:resourceOutput" title="Resource Output"> <o:resourceConfiguration allow="o:resourceConfiguration" title="resource configuration"/> <o:outputFile allow="io:file" title="output file"/> </type> </o:output> </type> </o:trials> </type> </o:configurations> </type> </neesml>
Evolution of Data Technologies Formats/Representation Concepts Storage Data Presentation Relations Objects Data Models NEESml RDF/XML CSS/DHTML RDBMS Data Dictionaries Validation XML HTML Flat File SGML
Relational DBs versus RDF-Style Stores • Both are ways to implement a relation-oriented data model • RDBMS – style repository • DBA “implements” data relationships and tunes important relationships for high performance • Able to handle very large amounts of data with proper tuning • Not flexible – a new relationship requires DBS intervention • Query performance depends on building joins which exploit the hard-coded relationships • Ideal in a high-transaction load environment • RDF – style repository • Relations are not determined a prioiri • Data model can be easily extended by any user as they insert data into the store • Ideal for an archival situation where transaction performance is not critical the ultimate use of data is not fully known in advance • Allows flexibility and change over time – can always put in new models and then develop mappings for • Ideal for a situation where data may need to migrate between repositories
RDF/XML Versus NEESML • NEESml is topologically equivalent to RDF but more straightforward to use • A compromise between usability and functionality • Focused on solving the problems of ingesting types and data – rather than “cross-server ontology webs” • Used to build a reference set of ingestion tools • RDF is a moving target • Repository does not store either RDF or NEESML – It is an relational database tuned to store “three-tuples”
NEESgrid Data - Value Proposition • An RDF like store – Referential integrity long-term flexibility • Seamless data and meta data transport • Smooth integration of data with meta data • Cool set of extensible tools • Willingness to support efforts to adapt and/or build new tools • Data tools • Metadata tools • Data Viewer (s)
(lots of) Directions • In the past 45 days – we have gotten a lot of input on data directions • Form swat teams of interested site to build consensus (Data workshop) • Investigate the ORST model and other models looking for low hanging fruit (NEESgrid summit) • Coordinate with the Consortium data committee (EAB Meeting) • These are all good ideas – we need to do them all – I would prefer that they are one effort for a while • We will discuss plans in the second meeting – I would like “one” direction – at least on the model
General Go Forward Plan on Technical Elements • Two words: “Experiment-Based Deployment” • Invest effort where sites are ready to produce results • Core SI team will focus on documenting and hardening the NEESgrid software • EBD team will bring well-understood requirements back to the Core SI team • Liason with other data efforts for best practice • GriPhyn – Physics data effort (Grid based automated storage and workflow) • CMCS – Chemistry collaboration (notebook, automated mapping, and provenance) • Engage sites between releases who have skills that can help – discuss@neesgrid.org
Go Forward – Core Elements • Investigate RDF and its relationship to NEESML • Investigate provenance – would like to adopt from another project • Investigate mapping – Would like to adopt from another project • Making notebook information available as metadata
Go Forward - Tools • Evaluate the ORST interface and use it to implement experiment-based interface to meta data repository • Extend and improve viewers – publish API so that sites can extend the viewers • Improve notebook • Single signon using CHEF/Grid credentials • Integration with Metadata • Smother integration with CHEF • Explore synchronized video and data capture using DAQ and after-experiment replay of synchronized video and data (ORST UMinn) • Explore the capture of high quality still images as data (UMinn) • Investigate adopting a data-editing tool (XMLSpy)
Go Forward – Data “Dictionary” • Analyze the ORST model, determine core, convert to NEESML, pre-populate repositories with types, and develop usage documentation • Form core group between SI, ES, and CS to push data model issues forward – once groundwork is better defined – we can disperse into distributed teams • Use experiment based deployment to help us encounter new data needs over time
Groovy look and feel Local Data Repository Repository Browser in CHEF Browse Create objects Upload / download data API documentation NEESML User Documentation Extensible data mapping in Java Data Viewer in CHEF Improved visually Configured by XML Can read data from repository or from urls Pre-populated with sample video and data formats Local Repositories pre-populated with SAC Data MOST Data ORST data model (subset) What is in Release 2.0?October 7
NEESML Table 1: Primitive types in NEESML
Configuring Events in XML <event id="oregon" desc="Oregon Large Tank Test September 8, 2003" host=“/chef/org.nees.repo.data/retrieve-data?lfn=nacse_sample_01.txt& static=yes&mapping=nacse-" type="stored"> <channel id="00" desc="time" unit="Seconds" url="t" /> <channel id="01" desc="Offshore Wave Gauge" unit="" url="02" /> <channel id="02" desc="Wave gauge at the front face of the cylinder" unit="" url="03" /> <channel id="03" desc="Wave gauge at the back face of the cylinder " unit="" url="04" /> <channel id="04" desc="Pressure at the front face of the cylinder " unit="" url="05" /> <video id="01" desc="Video of cylinder" url=“/chef/retrieve-data/static/nacse_sample_01.avi" /> </event> <type id="nees:storedEvent"> <data allow="io:file"/> <url/> <parseOptions/> <storedTimeChannelsmin="1" max=“1" allow="nees:storedTimeChannel"/> <storedDataChannels min=“0" max="unbounded" allow="nees:storedDataChannel"/> <storedVideoChannels min=“0" max="unbounded" allow="nees:storedVideoChannel"/> <storedStruct2DChannels min=“0" max="unbounded" allow="nees: stored2DStructureChannel "/> <fileChannels max="unbounded" allow="nees:fileChannel"/> </type> We may be able to get a patch out to switch this to NEESml and provide a simple entry tool.
Mappings and the Data Viewer • NSDS (ISO 8601 Time channel) • Column data with time recorded as a column • Column – generate time • Column – generate time – trigger filter Channel units: g,g,in,kip Time ATL1 ATT1 2002-11-13T15:48:55.26499 -0.006409 0.004272 2002-11-13T15:48:55.36499 -0.005798 -0.003662 100.000 0.435 0.161 -1.016 -0.981 0.430 0.161 -1.016 -0.977 0.435 0.161 -1.016 -0.977 public class NEESDataMap { public static boolean repoMap(File mainFile, File mappingFile, String mapping) { // Code here } }
Release 2.1 Data AspectsDecember 2003 • NEESpop • Notebook to metadata repository connection made • Closer integration of notebook into CHEF • First release of experiment tool (based on ORST) • Retool data viewers to be completely driven by Metadata objects rather than their own objects • More fine grained access control • Enhanced data models • Tools • Ingestion tools released • A limited set of pre-release video/image tools
Further releases • Release 2.2 – March 04 • Driven by your needs as we encounter them • Perhaps some “nice to haves” from the SI team • Release 3.0 – June 04 • Very limited new functionality – maybe almost nothing new in the core components of the NEESpop
DAQ 0 3 4 0 6 8 <experiment> <blah> <public-view> </experiment> My Skunkworks Project 0 3 4 0 6 8 <experiment> <blah> <public-view> </experiment>
Detailed Session • Amr Elnashai and JP Bardet will lead • Discussion of Metadata used in MOST and the SAC data sets • Discussion of Cosmos, SensorML, and the ORST model • Discussion of the effort on the ORST data model to date • Discussion of the ORST IT tool and how to get its functionality into NEESgrid • Discussion of the relationship between Consortium DSAC and SI data effort
Summary • Once NEESpop 2.0 is released, we will have a powerful set of data tools that the sites could take and use out of the box. • Experiment based deployment says that the SI team will work hand-in-hand with EBD sites to use the tools • This will identify new needs and requirements over the next year • The SI team will extend the NEESpop (2.1, 2.2, and 3.0) within resource constraints • This is really starting to be fun
NEESdata Worktools Site • neespop.si.umich.edu