SA-REST

From Knoesis wiki
Revision as of 22:44, 18 September 2008 by Kgomadam (Talk | contribs)

Jump to: navigation, search

{{

 {{#switch:
 {{#if: 
   | 
   | {{#ifeq:|
     | main
     | {{#ifeq:|talk
       | talk
       |  
       }}
     }} 
   }}

| main = ambox | talk = tmbox | user = ombox | wikipedia = ombox | image = imbox | mediawiki = ombox | template = ombox | help = ombox | category = cmbox | portal = ombox | other | #default = ombox

}} | type = style | image = | imageright = | style = | textstyle = | text = This article may require cleanup to meet Wikipedia's quality standards.
Please improve this article if you can. {{#if:|({{{date}}})}} | small = | smallimage = | smallimageright = | smalltext = }} {{#switch: | | Talk | Image | Template =

 {{#if:
 |{{#ifexist:Category:Cleanup from {{{date}}}
   |   
   |
   }}
 |
 }}

| #default = }} {{#ifeq:yes|yes|

| {{

 {{#switch:
 {{#if: 
   | 
   | {{#ifeq:|
     | main
     | {{#ifeq:|talk
       | talk
       |  
       }}
     }} 
   }}

| main = ambox | talk = tmbox | user = ombox | wikipedia = ombox | image = imbox | mediawiki = ombox | template = ombox | help = ombox | category = cmbox | portal = ombox | other | #default = ombox

}} | type = protection | image = [[Image:{{#switch:semi

|full=Padlock.svg
|semi=Padlock-silver-medium.svg
|move=Padlock-olive.svg
|indef=Padlock-red.svg
|office=Padlock-black.svg
|create=Padlock-skyblue.svg
|#default=Transparent.gif

}}|40px|This page is {{#switch:semi

|semi=semi-
|move=move-
|indef=permanently 
|create=creation-
|office=
|full
|#default=

}}protected.]] | imageright = | style = | textstyle = | text = {{#switch:semi

|full=This page is currently protected from editing
|semi=Editing of this {{#ifeq:||article|page}} by new or unregistered users is currently disabled
|move=This {{#ifeq:||article|page}} is currently protected from page moves
|indef=This page is protected from editing indefinitely
|office=This {{#ifeq:||article|page}} is currently protected from editing
|create=Recreation of this {{#ifeq:||article|page}} has been disabled

}}{{#ifeq:semi|indef||{{#if:| until {{#time:F j, Y|}}}}}}{{#if:| because }}.
{{#ifeq:no|yes|This protection is
not an endorsement of the {{#ifeq:semi|move|current title|current version}}.}} See the protection policy and protection log for more details. {{#switch:semi

|full|indef=Please discuss any changes on the talk page; you may use the {{{{#if: |subst:}}editprotected{{#if:  ||{{{2}}}}}{{#if:  ||{{{3}}}}}{{#if:  ||{{{4}}}}}{{#if:  ||{{{5}}}}}{{#if:  ||{{{6}}}}}{{#if:  ||{{{7}}}}}{{#if:  ||{{{8}}}}}{{#if:  ||{{{9}}}}}{{#if: ||{{{10}}}}}{{#if: ||{{{11}}}}}{{#if: ||}}}} template to ask an administrator to make the edit if it is supported by consensus. {{#ifeq:|MediaWiki||You may also request that this page be unprotected.}}
|semi=If you cannot edit this {{#switch:|=article|File=image|#default=page}} and you wish to make a change, you can {{#ifeq:|Talk||discuss changes on the talk page,}} request unprotection, log in, or create an account.
|move=The page may still be edited but cannot be moved until unprotected. Please discuss any suggested moves on the talk page or at Wikipedia:Requested moves.  You can also request that the page be unprotected.  
|office=If you are able to edit this page, please discuss all changes and additions on the talk page first. Do not remove protection from this article unless you are authorized by the Wikimedia Foundation to do so.
|create=Please see the {{#if:|[[{{{xfd}}}|deletion discussion]] or the}} deletion log for details of why this page was deleted. If you would like to create a page at this title, you must first request for it to be unprotected, or for the deleted material to be restored via deletion review.

}} | small = | smallimage = | smallimageright = | smalltext = }} }}{{#ifeq:{{#ifexpr:{{#if:|{{#time:u|today}}>{{#time:u|{{{expiry}}}}}|0}}|}}|no||{{#ifexpr:{{#if:|{{#time:U|today}}>{{#time:U|{{{expiry}}}}}|0}}|}}}} Template:Policy This article is written in a style that is not suitable for a wiki. This will change as we get more inputs and continue our edits. For now, this is just a easy way to share what our thoughts and start a discussion. The editorial changes will happen as we start and continue the discussion. The wikimedia css bombs on me, hence this personal message - karthik.

SA-REST is a simple and open format for enhancing Web APIs HTML or XHTML. In addition to HTML and XHTML, the SA-REST approach can also be used to enrich Atom, RSS, and arbitrary XML. SA-REST is one of several open microformat standards.

People

Collaborators in the SA-REST initiative are listed by their affiliations.

  • kno.e.sis center, Wright State University, Dayton, OH
    • Amit P. Sheth.
    • Karthik Gomadam.
    • Ajith Ranabahu

Introduction

Services based on the REpresentational State Transfer (REST) paradigm, a lightweight implementation of a service-oriented architecture, have found even greater success than their heavyweight siblings, which are based on the Web Services Description Language (WSDL) and SOAP (Reconciling Web Services and REST Services). By using XML-based messaging, RESTful services can bring together discrete data from different services to create meaningful data sets; mashups such as these are extremely popular today.

Current mashup tools and technologies

Although mashups fully embrace the idea of customization on the Web, read-write is another story. The complexity of application development using javascript makes it hard for average developers to create new mashups and to customize the existing ones. To solve this problem, several companies are developing tools for mashup creation that require little or no programming knowledge. These tools, exemplified by Yahoo! pipes, IBM's QEDwiki and Google's Mashup Editor, facilitate the selection of some number of RESTful Web services or other Web resources and chain them together by piping one service's output into the next service's input while filtering content and making slight format changes.

Limitations

One of the main drawbacks of the current state of the art is the lack of support for interoperability, especially that of data. Since most these deal with services internal to the company that created them (for example, Google Mashup Editor can use Google Maps) or to services that have standard types of outputs such as RSS or Atom (Yahoo! Pipes), the problem of interop does not seem to arise.

Another drawback of the current approach to mashups is the complexity of their development itself. Frameworks like Pipes that do not require any programming have limited capabilities. Google Mashup Editor has a steeper learning curve and can do much more than Yahoo! Pipes. The need to be proficient in languages such as javascript is mandatory to create more complex mashups. We identify two types of this complexity

  • Visual: Complexity arising out of the need to create intuitive visual elements and handle various events relating to them
  • Data: Complexity arising due to heterogeneous in data schemas and formats.

SA-REST in a nutshell

SA-REST is a microformat to add additional meta-data to REST API descriptions in HTML and XHTML. Developers can directly embed meta-data from various models such an ontology, taxonomy or a tag cloud into their API descriptions. The embedded meta-data can be used to improve search (for example: perform faceted search for APIs), data mediation (in conjunction with XML annotation) as well as help in easier integration of services to create mashups.

Background

Researchers in the area of Semantic Web Services have proposed various specifications, the prominent of which are

  • OWL-S
  • WSDL-S
  • WSMO

In 2005, the W3C initiated a charter to create a standard for adding semantics to WSDL descriptions. The WSDL-S specification (submitted by Services Research Lab at kno.e.sis from LSDIS Lab in GA along with IBM) was taken as the primary input for the charter. This led to the standardization of SAWSDL (Semantic Annotation of WSDL and XML Schema). SAWSDL has had a significant impact in the evolution of SA-REST. However, the adoption of a microformat based approach is a key difference between the SAWSDL and SA-REST frameworks. However, it must be noted here that the principles of Schema annotation, lifting and lowering can be directly used from SAWSDL for XML data objects in the RESTful environment.

Usage Scenarios

We present three usage scenarios where additional meta-data can be very useful.

Faceted Search

The number of available APIs are growing fast. In April 2008, we found that there were about 700 APIs added to ProgrammableWeb. In September, that number is over 900. Currently, general purpose search engines like Google are largely used to find these APIs. However, these treat API documents like any other in indexing and ranking APIs. As a result, search for APIs (even when specific queries like "Maps API") results in API resources being scattered all over the result set. Web API directories like programmableWeb do present a more domain-specific solution. However, they largely rely on user tags for classification and searching.

Addition of meta-data to capture the various facets of APIs (their functionality, the message types they support, clientside bindings, protocol) can allow for better searching. The results of one such framework APIHut is presented in Faceted Search for APIs. We also present our initial evaluation of precision and recall metrics.

Data Mediation and Mediatability

Smart Mashups

SA-REST Elements

==Processing SA-REST==