Kevin D' Munroe - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Kevin D' Munroe

Description:

University of ... constructed on top of result view. San Diego Supercomputer Center ... local copies of data structures. San Diego Supercomputer Center ... – PowerPoint PPT presentation

Number of Views:23
Avg rating:3.0/5.0
Slides: 24
Provided by: daksUc
Category:
Tags: diego | kevin | munroe | of | san | university

less

Transcript and Presenter's Notes

Title: Kevin D' Munroe


1
BBQ Blended Browsing and Querying of XML in a
Lazy Mediator System
  • Kevin D. Munroe
  • Bertram Ludäscher
  • Yannis Papakonstantinou
  • University of California, San Diego

2
Overview
  • Introduction BBQ and MIXm
  • BBQ The Interface
  • Browsing and Querying with BBQ
  • The BBQ API
  • Discussion

3
Introduction (preaching to the choir)
  • XML as a universal data exchange format and model
  • MIX (Mediation of Information using XML) project
    at UCSD/SDSC
  • MIX mediator (MIXm)
  • integrated views of XML data sources
  • XMAS query language
  • lazy query evaluation with DOM-VXD (EDBT 2000)
  • Features of a MIXm client
  • simplify query construction
  • intuitive XML browsing
  • flexible interface

4
BBQ 2.0
  • BBQ User Interface API package
  • BBQ Interface features
  • Schema-driven browsing of XML
  • Intuitive drag-and-drop query formulation
  • Iterative Query refinement
  • History
  • BBQ API
  • cross-platform (Java)
  • based on well-known Java 2 APIs

5
BBQ and MIXm
BBQ Interface
Interface X
BBQ API
BBQ API
XML Document
XMAS Query
DOM-VXD Interface
Source DTD
MIX Mediator
Source DTD
6
The BBQ Interface
  • DTDs are represented by trees
  • non leaf nodes elements
  • leaf nodes character content
  • Nodes are rendered based on type
  • Wildcards are also displayed

7
BBQ Interface, contd
  • Example BBQ Tree
  • lt!DOCTYPE Interns
  • lt!ELEMENT Interns (Intern)gt
  • lt!ELEMENT Intern (name, supervisor, sponsor)gt
  • lt!ELEMENT name (PCDATA) gt
  • lt!ELEMENT supervisor (PCDATA) gt
  • lt!ELEMENT sponsor (CAIDA NPACI UCSD)gt
  • lt!ELEMENT CAIDA (ANY)gt
  • lt!ELEMENT NPACI (ANY)gt
  • lt!ELEMENT UCSD (ANY)gt
  • gt

8
BBQ Interface, contd
  • Query Body Panel
  • contains multiple data sources
  • Query Head Panel
  • has a hook for building up projected elements

Query Body Panel
Query Head Panel
9
BBQ Interface, contd
  • Can browse data as DTD-driven list or XML tree

DTD-Driven List
XML Tree
10
A BBQ Query Session
  • Query Sessions consist of one or more query
    cycles
  • A query cycle is delineated by executing a query
  • BBQ maintains history across query cycles
  • XMAS queries
  • syntax CONSTRUCT head WHERE body

11
BBQ Query Session, contd
  • Begin by opening XML data source
  • Select data source from list
  • BBQ application can open arbitrary data sources
  • Browse data source by DTD or XML tree
  • If document has no DTD, BBQ derives one
  • DDbE from IBM AlphaWorks
  • XML data source is sample data

12
BBQ Query Session, contd
  • Setting Conditions
  • Set-Required- requires existence
  • Binary operations
  • applied to leaf nodes
  • operators are in pulldown list set one or more
    conditions
  • Setting Joins
  • Copy/Paste one leaf node onto the other
  • Join format
  • equality
  • other binary operators (theta-join)

13
BBQ Query Session, contd
  • Constructing the Head
  • Use Data Source Elements
  • Drag/Drop elements from Query Body Panel to Query
    Head Panel
  • XMAS semantics requires at most one top-level
    element
  • Set a group-by
  • Simple Group-by - group by the selected node
  • Complex Group-by - group by other nodes in the
    body

Created in Query Head Panel
Paste from Query Body Panel
14
BBQ Session, contd
  • Executing Query and browsing result
  • Preview Query...
  • UI gt XMAS query string
  • Power Users can modify the string
  • ...Then Execute
  • Result view displayed in Query Body Pane
  • Answer tree gt result view DTD
  • If error occurs
  • BBQ reverts to state prior to Execute
  • No results?
  • BBQ saves XMAS query string so users can debug

15
BBQ Query Session- Complete
  • Browse the result view
  • BBQ Derives text DTD for view
  • View contents materialized using DOM-VXD
    interface
  • Views can be constructed on top of result view

16
The BBQ API
  • BBQ API package of Java classes
  • BBQ Interface is a client of BBQ API
  • API client is handed the same data structures
    that BBQ manipulates internally
  • XML/DTD data structures based on TreeNode class.
  • Clients keep local copies of data structures

17
BBQ API, contd
  • A Select-From-Where query using BBQ API
  • The DTD
  • lt!ELEMENT employees (employee)gt
  • lt!ELEMENT employee (name, salary)gt
  • The Query
  • CONSTRUCT ltoverpaidgt N lt/gt
  • WHERE ltemployeesgtltemployeegt
  • Nltname/gt ltsalarygt OP lt/gt lt/gt
    lt/gt
  • AND OP gt 30000

18
BBQ API, contd
  • function simpleBBQClient()
  • boolean required true
  • bbqSession lt- new BBQSession()
  • bbqSession.connect()
  • String list bbqSession.getListOfDataSources()
  • src bbqSession.openDataSource(listemployees)
  • bbqSession.setSourceConstraint(salary,gt,
    30000)
  • ans bbqSession.getAnswerTree()
  • bbqSession.addNewAnswerTreeNode(ans,
    BBQSession.kNodeTypeElement, null, overpaid)
  • bbqSession.addAnswerTreeNode(ans.child(0), name,
    required)
  • bbqSession.setGroupBySimple(ans.child(0),required)
  • answer
  • bbqSession.executeXMASQuery( bbqSession.create
    XMASQuery())

19
BBQ API, contd
  • function simpleBBQClient()
  • boolean required true
  • bbqSession lt- new BBQSession()
  • bbqSession.connect()
  • String list bbqSession.getListOfDataSources()
  • src bbqSession.openDataSource(listemployees)
  • bbqSession.setSourceConstraint(salary,gt,
    30000)
  • ans bbqSession.getAnswerTree()
  • bbqSession.addNewAnswerTreeNode(ans,
    BBQSession.kNodeTypeElement, null, overpaid)
  • bbqSession.addAnswerTreeNode(ans.child(0), name,
    required)
  • bbqSession.setGroupBySimple(ans.child(0),required)
  • answer
  • bbqSession.executeXMASQuery( bbqSession.create
    XMASQuery())

20
BBQ API, contd
  • function simpleBBQClient()
  • boolean required true
  • bbqSession lt- new BBQSession()
  • bbqSession.connect()
  • String list bbqSession.getListOfDataSources()
  • src bbqSession.openDataSource(listemployees)
  • bbqSession.setSourceConstraint(salary,gt,
    30000)
  • ans bbqSession.getAnswerTree()
  • bbqSession.addNewAnswerTreeNode(ans,
    BBQSession.kNodeTypeElement, null, overpaid)
  • bbqSession.addAnswerTreeNode(ans.child(0), name,
    required)
  • bbqSession.setGroupBySimple(ans.child(0),required)
  • answer
  • bbqSession.executeXMASQuery( bbqSession.create
    XMASQuery())

21
BBQ API, contd
  • function simpleBBQClient()
  • boolean required true
  • bbqSession lt- new BBQSession()
  • bbqSession.connect()
  • String list bbqSession.getListOfDataSources()
  • src bbqSession.openDataSource(listemployees)
  • bbqSession.setSourceConstraint(salary,gt,
    30000)
  • ans bbqSession.getAnswerTree()
  • bbqSession.addNewAnswerTreeNode(ans,
    BBQSession.kNodeTypeElement, null, overpaid)
  • bbqSession.addAnswerTreeNode(ans.child(0), name,
    required)
  • bbqSession.setGroupBySimple(ans.child(0),required)
  • answer
  • bbqSession.executeXMASQuery( bbqSession.create
    XMASQuery())

22
BBQ API, contd
  • function simpleBBQClient()
  • boolean required true
  • bbqSession lt- new BBQSession()
  • bbqSession.connect()
  • String list bbqSession.getListOfDataSources()
  • src bbqSession.openDataSource(listemployees)
  • bbqSession.setSourceConstraint(salary,gt,
    30000)
  • ans bbqSession.getAnswerTree()
  • bbqSession.addNewAnswerTreeNode(ans,
    BBQSession.kNodeTypeElement, null, overpaid)
  • bbqSession.addAnswerTreeNode(ans.child(0), name,
    required)
  • bbqSession.setGroupBySimple(ans.child(0),required)
  • answer
  • bbqSession.executeXMASQuery( bbqSession.create
    XMASQuery())

23
Further Information
  • MIX project
  • http//www.npaci.edu/DICE/MIX/
  • BBQ
  • http//www.npaci.edu/DICE/MIX/BBQ
Write a Comment
User Comments (0)
About PowerShow.com