From Knoesis wiki
Revision as of 05:12, 18 February 2009 by (Talk) (Introduction)

Jump to: navigation, search

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. SA-REST is expected to build upon HRESTs; the current content does not reflect this yet.

0929dd1c385482a11 watch naruto series c# transparent picturebox tickets to blackpool tower keystone colorado pictures lacy peterson pictures welcome to my life by simple plan ideas for graduation speech seth enslow pictures to date news on madeleine mccann the book where the heart is angular cheilitis picture pictures of dimpling of gamma hydroxybutyrate recipe media bean bag chairs kate ceberano pictures joseph tour tickets migration jobs in australia monchy y alexandra tickets broadcast live video streaming vanderbilts complete book planetariums in los used pc video games paulo coelho brida book power plant concept pictures of bichion erate technology plan someone take her picture so i don t forget her wizardology the book of lateral sclerosis life red hand of ulster picture thor heyerdahl book chris oyakhilome books a prison on planet bullshit in the psychology tests used pyramids of giza wallpaper notebook battery adapter to plan for disaster recovery ballrooms in birmingham catha edulis plants racing form explanation and strategic planning processes plan lyrics welcome to my life book lap top computers plans on how to build a deck hbsc life insurance plantard and saint clair corner gun cabinets center ridge road westlake virtual world gets another life current weather in munich of phillis wheatleys life haggerty road livonia mi 48152 weekend apologies lyrics thriving ivory stringed instruments pictures blue room lounge atlanta acoustica beatcraft keygen harriet tubman picture free audio book of the radiology jobs in iowa serial number for incrediflash

226b42cf3da1 name for treponema community college jobs employment books on equipment leasing professional picture editing flanner and buchanan broad ripple infant neoprene life vests watch foreign body online american direct austin texas used croth rockets memory price watch spectrum blackfriars road preimplantation genetics diagnosis wgp trilogy paintball gun stormy weather by carl hiaasen travel resort jobs recipe from slovak republic wpnfire shooting flash game cheat american civil liberties union 1 9 tech altimeter barometer watch electronic book catalog much are tickets for wimbledon indian summer lagerstroemia indica x l fauriei english sympathizers in america american star marine virginia newspaper jobs learn american slangs jobos isabela puerto boom boom room singapore tony hawks pro skater 4 cheats ps1 chanters road bideford watch two girls in one cup alter table update column smith macaroni and cheese recipe bookers cash and carry london pictures of mercedes c class intelligent office garden officejet 6213 all watch tristan and isolde free rihanna ultimate pictures widelife all things just keep labor day weekend 2003 jobs in hotels around planet house kitzingen bucherer ring watch dlink router default username and password hublot watches big bang hair and texturizers bringing grammar to life where to watch mobile suit gundam california sea lion pictures books online skinny bitch crackwhore confessions hailey crosshairs in cod4 best restaurants magazine japanese hamburg recipe offices to let bickenhill isreali cous cous recipe 2525 shermer road northbrook 12 week development nottinghill carnival date

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. SA-REST can improve faceted search in a significant manner. Using known techniques of GRDDL and XSLT, one can extract RDF representations of APIs. This can then be indexed and searched upon.

Data Mediation and Mediatability

The importance of enabling easier approaches to data mediation has been well understood. In the context of mashups this is even more important, largely due to the fact that often developers are faced with the burden of handling data at the client side. SA-REST will address this issue in two ways

  • Adopting XML annotation from SAWSDL: This will allow us to add the lifting and lowering transformations to data elements as a part of the API description. Information about SAWSDL lifting and lowering can be found in theSAWSDL spec on schema annotations. There is a small catch that we have to address here. In the WSDL world, data exchange was XML de-facto. However, in the RESTful environment, developers can use many formats such as JSON, GData, RSS. It will be interesting to investigate this as a part of the SA-REST effort.
  • Mediatability: Mediatability is a measure of the estimated human effort for performing data mediation manually. Having additional annotations can significantly help us in computing the mediatability. Even when automatic mediation is not possible, knowing how hard or easy the mediation between two services can definitely help developers in choosing services for their mashups.

Smart Mashups

Smart mashups are those that allow the end user more flexibility to change certain services in a mashup. For example, in the popular Housing Maps mashup, if the quality of Yahoo! maps in a certain area is better than that of Google, the user must have the flexibility to change it. To realize this, we are pursuing on a meta based approach for mashup creation. In this approach, the developer creates the mashup application at a meta level and services are added to them at the run time. In this context, there needs to be a way for the developer to specify the requirements for a service and the system to check if the user preference meets the requirement. Having annotations can help accomplish this task with lesser difficulty.

SA-REST Elements

We have currently come up with a few elements for SA-REST. This is by no means final and is very much open to discussion and change. Markups can be one of:

  • block markup : Markups on that pertain to a block like div, body etc.
 <body domain-rel=""> 

In this example, the domain-rel markup is added to the body. This markup indicates that API descriptions inside the body belong to the maps domain as described in the domain model.

  • element markup: markup on a single element like a, span (when it wraps a word or a phrase)

Currently, we propose to have the following elements: Note that the examples depict the SA-REST compoenents in the commonly used microformat annotation style.

  • sem-rel: Sem-rel element will capture the semantics of a link. This evolves from the popular rel tag. An application of sem-rel would be to describe

a data model that is captured in a XSD. The primary purpose of the sem-rel tag is to allow developers to add "top level annotation" to schemas that are third party.

 <a href="http://foo.xsd" sem-rel=""> This is the input schema</a> 
  • domain-rel: captures the domain of the current api. It can applied either as a block or an elemental markup.
 <body domain-rel=""> 

The above example can also be reformulated with an additional value property, rather than just using domain-rel. This would be,

 <body class="domain-rel" value=""> 
  • p-lang-binding: captures a particular client side binding. For example, the section of google maps API that talks about the Zend framework for Google Data will be tagged using p-lang-binding and will carry the value of PHP.
 <span p-lang-binding=""> PHP bindings for this API ... </span> 

Here again, we can reformulate this using a value property.

 <span class="p-lang-binding" value=""> PHP bindings for this API ... </span> 
  • message-format: describes the messaging formats supported. The value will be a message format. The messaging format refers to the way the message is represented, typically XML, Java Script Object Notation(JSON) or specific formats such as GData.
 <span message-format=""> The XML messages that are passed between the client and the server are ... </span> 

Reformulation using value property:

 <span class="message-format" value=""> The address is a XML object... </span> 
  • protocol: describes the messaging protocols supported. Typical values include SOAP and REST.
 <span protocol=""> ... </span> 

Reformulation using value property:

 <span class="protocol" value=""> ... </span> 
  • sem-class: is an alternative to modelreference in SAWSDL. It can be used to refer to a concept in a semantic model.
 <span sem-class=""> Computer </span> 

Reformulation using value property:

 <span class="sem-class" value=""> Computer </span> 

Processing SA-REST

The most straight forward way to process the documents is to use XSLT along with GRDDL. XSLT is a well supported and a flexible way to transform XML documents from one form to another, typically the target form being XML or any other text format. GRDDL specification describes how the XSLT transformation can be used to convert annotated XHTML/HTML documents to RDF. The following snippet shows a specification of the transformation stylesheet according to GRDDL.

 <html xmlns=""

The subsequent processing can be done using the RDF representation.

Related Documents