High Performance Faceted Interfaces Using S2S Eric Rozell, Tetherless World Constellation.

Slides:



Advertisements
Similar presentations
The Web Warrior Guide to Web Design Technologies
Advertisements

Using JavaServer Pages Harry R. Erwin, PhD CIT304/CSE301.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
DT211/3 Internet Application Development
DT228/3 Web Development Databases. Database Almost all web application on the net access a database e.g. shopping sites, message boards, search engines.
Python and Web Programming
Chapter 9 Introduction to the Document Object Model (DOM) JavaScript, Third Edition.
Web Tailor Basics.
1 Agenda Overview Review Roles Lists Libraries Columns.
Drupal Workshop Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology, Drupal technology, directories.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
JQuery CS 268. What is jQuery? From their web site:
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Creating a Basic Web Page
Chapter 33 CGI Technology for Dynamic Web Documents There are two alternative forms of retrieving web documents. Instead of retrieving static HTML documents,
Server-side Scripting Powering the webs favourite services.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Building a UI with Zen Pat McGibbon –Sales Engineer.
WEB-ENHANCED INFORMATION MANAGEMENT (COMS E6125) SPRING 2008 (CVN) NAVID AZIMI (NA2258) Web Platforms, or: How I Learned To Stop Worrying And Love Facebook.
Configurable User Interface Framework for Cross-Disciplinary and Citizen Science Presented by: Peter Fox Authors: Eric Rozell, Han Wang, Patrick West,
Java Omar Rana University of South Asia. Course Overview JAVA  C/C++ and JAVA Comparison  OOP in JAVA  Exception Handling  Streams  Graphics User.
1 PHP and MySQL. 2 Topics  Querying Data with PHP  User-Driven Querying  Writing Data with PHP and MySQL PHP and MySQL.
L. Grewe LAMP, WAMP and... Motivaiton Basic Web Systems with Delivery of Static and Dynamic Web Pages html, css, media javascript (“dynamic” on client.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
The Web Architecture and ASP.NET. Slide 2 Review of the Web (1) It began with HTTP and HTML, which delivers static Web pages to browsers which would render.
JavaScript, Fourth Edition
INTRODUCTION TO JAVASCRIPT AND DOM Internet Engineering Spring 2012.
Creating Dynamic Web Pages Using PHP and MySQL CS 320.
Web OPAC & GUI (Staff) Search v.16 eSeminar Doron Greenshpan.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Dynamic Web Pages & JavaScript. Dynamic Web Pages Dynamic = Change Dynamic Web Pages are web pages that change. More than just moving graphics around.
Peter Laird. | 1 Building Dynamic Google Gadgets in Java Peter Laird Managing Architect WebLogic Portal BEA Systems.
 Whether using paper forms or forms on the web, forms are used for gathering information. User enter information into designated areas, or fields. Forms.
Chapter 6 Server-side Programming: Java Servlets
Seattle Drupal Clinic Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Rails & Ajax Module 5. Introduction to Rails Overview of Rails Rails is Ruby based “A development framework for Web-based applications” Rails uses the.
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Search Overview Search Features: WSS and Office Search Architecture Content Sources and.
Offline Web Apps - an offline web application is a list of URLs for HTML, CSS, JavaScript, images, or any other kind of resource. Most browsers have offline.
JQuery JavaScript is a powerful language but it is not always easy to work with. jQuery is a JavaScript library that helps with: – HTML document traversal.
Implementing and Using the SIRWEB Interface Setup of the CGI script and web procfile Connecting to your database using HTML Retrieving data using the CGI.
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.
4. Javascript M. Udin Harun Al Rasyid, S.Kom, Ph.D Lab Jaringan Komputer (C-307) Desain.
1 Applets are small applications that are accessed on an Internet server, transported over the internet, automatically installed and run as a part of web.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
ASP.NET User Controls. User Controls In addition to using Web server controls in your ASP.NET Web pages, you can create your own custom, reusable controls.
ASP. ASP is a powerful tool for making dynamic and interactive Web pages An ASP file can contain text, HTML tags and scripts. Scripts in an ASP file are.
AJAX. Overview of Ajax Ajax is not an API or a programming language Ajax aims to provide more responsive web applications In normal request/response HTTP.
Rich Internet Applications 2. Core JavaScript. The importance of JavaScript Many choices open to the developer for server-side Can choose server technology.
Dave Salinas. What is XML? XML stands for eXtensible Markup Language Markup language, like HTML HTML was designed to display data, whereas XML was designed.
AJAX Use Cases for WSRP Subbu Allamaraju BEA Systems Inc WSRP F2F Meeting, May 2006.
This material is based upon work supported by the U.S. Department of Energy Office of Science under Cooperative Agreement DE-SC Michigan State.
AJAX CS456 Fall Examples Where is AJAX used? Why do we care?
Dr. Abdullah Almutairi Spring PHP is a server scripting language, and a powerful tool for making dynamic and interactive Web pages. PHP is a widely-used,
Flux & React Web Application Development Mark Repka, Rich McNeary, Steve Mueller.
STYLING WITH THEMES Active server pages (ASP.NET) 1 Chapter-5.
Here are some things you can do while you wait 1.Open your omeka.net site in your browser (e.g. 2.Open.
SAS ® Global Forum 2014 March Washington, DC.
HTML III (Forms) Robin Burke ECT 270. Outline Where we are in this class Web applications HTML Forms Break Forms lab.
Apache Cocoon – XML Publishing Framework 데이터베이스 연구실 박사 1 학기 이 세영.
//liveVirtualacademy2011/ What’s New for ASP.NET 4.5 and Web Development in Visual Studio 11 Developer Preview Γιώργος Καπνιάς MVP, MCT, MCDP, MCDBA, MCTS,
Office 365 Development July 2014.
Personal Website Final Project
Google Web Toolkit Tutorial
Database Driven Websites
PHP.
Tutorial 6 PHP & MySQL Li Xu
PHP an introduction.
Presentation transcript:

High Performance Faceted Interfaces Using S2S Eric Rozell, Tetherless World Constellation

Outline Motivation Demos Architecture S2S-Compatible Web Services Deploying S2S S2S UI Development S2S: The Next Generation Questions

Motivation Reusable user interfaces Supporting heterogeneous data Leveraging legacy web services Customizable search interfaces

Overview

Demos BCO-DMO MapService IOGDS version 1.2

Architecture

S2S-Compatible Web Services Real world example: –IOGDS Step (1): identify your “Parameters” –Countries, catalogs, agencies, categories, keywords, (languages?)…

S2S-Compatible Web Services Step (2): create metadata for your “Parameters” –At this time, figure out which “Parameters” should be “dynamic”, i.e., vary as other parameters are constrained.

S2S-Compatible Web Services Step (3): create QueryInterface-s for each “dynamic Parameter” –A separate asynchronous request is made for each Parameter and the results. –You will need to identify the expected output of the QueryInterface, as well as the Parameter it returns values for.

S2S-Compatible Web Services Step (4): create a QueryInterface for your results. –Sometimes, it’s easiest to use a plain HTML response. (There’s already a QueryInterface for that!)

S2S-Compatible Web Services Step (5): code your service! –This is entirely up to you. You’re free to use any programming language, so long as you can describe your web service using OpenSearch (for now). –Some programming languages people have used include: PHP, Python, Go, and node.js

S2S-Compatible Web Services Step (6): describe your service… –using OpenSearch. –This is where all those URIs come in…

S2S-Compatible Web Services

Step (7): create metadata for your service. –This will inform S2S where to find things like your OpenSearch description document.

S2S-Compatible Web Services Step (8): host the metadata. –Currently, S2S requires you to “register” the metadata (load it into the S2S triple store). –Coming Soon: Linked Data support…* * More on this later

S2S-Compatible Web Services [Optional] Step (9): create a default configuration file –This file will inform S2S of the order for parameters, and the UI widgets to use by default.

S2S-Compatible Web Services

Step (10): Deploy! –Don’t worry, this one’s easy…

Deploying S2S Can be deployed in a number of ways: –As a standalone application –Embedded in a CMS (e.g., Drupal) –Embedded in a custom application Examples follow…

Stand-Alone S2S S2S offers a core function that allows you to automatically render an interface based on HTML tag “id” attributes. –init(“

Stand-Alone S2S

S2S in CMS Embedding in a CMS is just as easy as the stand-alone browser… Just embed the same HTML and JavaScript into a page Be wary of Drupal, we have had issues where Drupal’s page rendering mechanism has caused browsers to crash (i.e., IE … heh)

S2S in Application X This core “init” function requires that you specify the result widget you want in your “default configuration” (we’ll get into that in a bit…). You may instead want to feed results to a separate application…

S2S in Application X

S2S allows you to override the “ResultsPanel”, i.e., the thing that gets updated every time a facet is changed. Rather than pushing the updated results to a “ResultWidget”, the results can be pushed to the external application.

S2S in Application X

S2S UI Development Real world example: –In IOGDS, there is a “Country” facet. –In truth, the labels for the “Country” facet are a hack… Labels are created by removing the namespace and underscores from the country URI. –We can make the UI responsible for getting country labels. While we’re at it… –Why not add a flag thumbnail?

Creating the Metadata Step (1), create widget metadata. –Choose URI for your widget –Choose type of widget In this case, it’s a s2s:ParameterWidget –Add label/comment to your widget –If necessary, constrain your widget to a specific parameter In this case, the “Country” parameter for IOGDS –If necessary, specify the expected results In this case, a simple JSON array containing URIs

Creating the Metadata Step (1) continued. –Specify the function names used by S2S This includes a function for generating a frame for the widget and a function for rendering query results –Specify the JavaScript files needed for your widget (including libraries!) Except jQuery… please don’t include jQuery, but feel free to use jQuery functions (S2S core already uses it!) –If necessary, include the CSS files needed for your widget Unless you’re lazy and encode the CSS in your JavaScript…

Creating the Metadata

Coding the Widget Step (2), code the widget. –There are two mandatory functions (or hooks) needed by S2S widgets: generator function (to build widget frame) callback function (to populate widget) –Be careful when choosing function names and assigning variables at the window level. widgetGenerator edu.rpi.tw.logd.s2s.widgetGenerator

The Generator Function

The Callback Function

Other Functions

Host the Metadata Step (3): Host the metadata. –Currently, S2S requires you to “register” the metadata (load it into the S2S triple store). –Coming Soon: Linked Data support…

S2S: The Next Generation S2S Server 2.0 –Service, widget, parameter metadata as linked data (via Ripple)Ripple –S2S metadata caching –Deployable/configurable server (via Servlets) S2S Search Interface 2.1 –“Linked data widgets” –Modular means of embedding widgets –Compound search widgets (e.g., date range) S2S Search Interface 2.x –Support for dynamic facet sets

Questions? Comments? Concerns? Critiques? …

Links BCO-DMO MapService IOGDS version 1.2