Difference between revisions of "SA-REST"

From Knoesis wiki
Jump to: navigation, search
Line 1: Line 1:
2761108419cb6ef
+
'''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'''
http://11.lujuxyuc.com/0cx2d.html to check your broadband speed
+
'''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.'''
http://8.wetonytyq.com/tsa7o.html
+
 
http://2.majofaca.com/q0edhu.html self adhesive name tags
+
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.
http://1.nisegylyc.com/ne8q.html
+
 
http://11.nisegylyc.com/nsx3t.html county market weekly ads
+
==People==
http://7.zowuhime.com/bw48d70.html
+
Collaborators in the SA-REST initiative are listed by their affiliations.  
http://10.wetonytyq.com/xtajr.html a gun lyrics by search the  
+
* '''kno.e.sis center, Wright State University, Dayton, OH'''
http://5.nisegylyc.com/v957.html
+
** Amit P. Sheth.
http://11.rarekiva.com/n7kdew.html tiramisu recipe without alcohol
+
** Karthik Gomadam.
http://10.nisegylyc.com/v1ch8a.html
+
** Ajith Ranabahu
http://11.zefusuwy.com/15thb.html gas process plants
+
 
http://5.rarekiva.com/sml1mwy.html
+
==Introduction==
http://2.majofaca.com/894bw.html milwaukie oregon used  
+
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.
http://11.zowuhime.com/24n1y.html
+
===Current mashup tools and technologies===
http://8.zowuhime.com/1blg.html crank squad pictures
+
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.
http://5.majofaca.com/8spre0m.html
+
====Limitations====
http://8.wetonytyq.com/sa10t.html office of house employment counsel
+
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.  
http://11.lujuxyuc.com/b7i32.html
+
 
http://11.quebaryxy.com/5qo5.html bartending jobs in tacoma
+
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
http://7.ledythuth.com/ohl8tp.html
+
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.
http://9.wetonytyq.com/6cssa.html watch naruto shipuuden 62
+
We identify two types of this complexity
http://3.majofaca.com/97n559.html
+
* Visual: Complexity arising out of the need to create intuitive visual elements and handle various events relating to them
http://8.nisegylyc.com/lheib.html customer relationship manager jobs
+
* Data: Complexity arising due to heterogeneous in data schemas and formats.
http://5.ledythuth.com/zui6t.html
+
 
http://1.nisegylyc.com/56bt2t.html pure country pictures
+
===SA-REST in a nutshell===
http://6.wetonytyq.com/c8ry3.html
+
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.  
http://6.ledythuth.com/cbend.html death to spies cheat
+
 
http://9.quebaryxy.com/c3jv.html
+
===Background===
http://6.zowuhime.com/9j95.html writing prompts with pictures
+
Researchers in the area of Semantic Web Services have proposed various specifications, the prominent of which are
http://6.nisegylyc.com/zqtbit6.html
+
* OWL-S
http://5.quebaryxy.com/xwkx.html how to dredlock hair
+
*WSDL-S
http://11.lujuxyuc.com/u0rsd2v.html
+
*WSMO
http://7.wetonytyq.com/gtc1m6.html paradise point pictures
+
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
http://6.majofaca.com/xt7e.html
+
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.
http://5.zefusuwy.com/wg53.html graywood plantation lake
+
 
http://3.wetonytyq.com/hnw8y.html
+
==Usage Scenarios==
http://1.quebaryxy.com/u9fzh.html graphic novel book club
+
 
http://3.lujuxyuc.com/wb6y.html
+
We present three usage scenarios where additional meta-data can be very useful.
http://6.ledythuth.com/f31vv6.html cheats for nba2k8 for  
+
 
http://6.rarekiva.com/do52b4.html
+
===Faceted Search===
http://3.wetonytyq.com/276oj.html logic of life free
+
 
http://6.wetonytyq.com/fct1.html
+
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
http://1.busebowyr.com/52p3scb.html christmas cookie recipes for kids
+
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.  
http://4.zefusuwy.com/5g5gmc.html
+
 
http://3.quebaryxy.com/curmdy.html is there a paleolimnological explanation
+
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
http://10.busebowyr.com/gb29.html
+
one such framework [http://apihut.dooduh.com APIHut] is presented in [http://knoesis.wright.edu/library/download/GRNVS-facetedAPISearch-ICWS08.pdf Faceted Search for APIs]. We also present
http://10.majofaca.com/8mb80m.html ticketworld lea salonga
+
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.
http://11.quebaryxy.com/mr64rd.html
+
 
http://4.ledythuth.com/5f09gk6.html real estate broker book
+
===Data Mediation and Mediatability===
http://7.rarekiva.com/mqw3l6.html
+
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
http://8.zefusuwy.com/gar8x8d.html picture of brazil flag
+
*'''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 the[http://www.w3.org/TR/sawsdl/#annotateXSD SAWSDL 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.  
http://6.majofaca.com/3rmcp1.html
+
 
http://11.wetonytyq.com/yvwpt.html sophie okonedo pictures
+
*'''Mediatability''': [http://knoesis.wright.edu/students/gomadam/publications/GRRVS--ICSC08.pdf 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.
http://4.rarekiva.com/8ksu1.html
+
 
http://7.zowuhime.com/cu5tb.html charlotte live weather
+
===Smart Mashups===
http://2.quebaryxy.com/7bpnf.html
+
Smart mashups are those that allow the end user more flexibility to change certain services in a mashup. For example, in the popular [http://housingmaps.com 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.
http://6.quebaryxy.com/vlsj.html dirty little secret hair
+
 
http://11.majofaca.com/gtiiiim.html
+
==SA-REST Elements==
http://5.lujuxyuc.com/xvgxh1.html office contat number
+
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:
http://6.rarekiva.com/0q2v.html
+
* block markup : Markups on that pertain to a block like div, body etc.  
http://11.quebaryxy.com/74ps.html guntersville city schools
+
<pre><nowiki> <body domain-rel="http://apihut.com/taxonomies/domainClassification.rdf#maps"> </nowiki></pre>
http://5.wetonytyq.com/m30b.html
+
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.
http://11.zowuhime.com/0vlo.html semi automatic gun for sale
+
* element markup: markup on a single element like a, span (when it wraps a word or a phrase)
http://8.majofaca.com/94ctzjl.html
+
 
http://1.rarekiva.com/7apuywp.html orange broadband page
+
Currently, we propose to have the following elements:
http://6.majofaca.com/jzwjdae.html
+
Note that the examples depict the SA-REST compoenents in the commonly used microformat annotation style.
http://10.quebaryxy.com/m9r0.html watch movies in italian
+
* 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
http://11.zefusuwy.com/eo12.html
+
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.  
http://5.nisegylyc.com/w2dhy.html witcher game crack
+
 
http://2.busebowyr.com/pwtlseg.html
+
<pre><nowiki> <a href="http://foo.xsd" sem-rel="http://taxonomy.org/computerscience#firstname"> This is the input schema</a> </nowiki></pre>
http://4.rarekiva.com/eswf0.html pedmore road industrial estate
+
 
http://7.majofaca.com/24igg60.html
+
*domain-rel: captures the domain of the current api. It can applied either as a block or an elemental markup.  
http://5.lujuxyuc.com/r4kywr0.html protection in power plant
+
 
http://11.ledythuth.com/jx87dq.html
+
<pre><nowiki> <body domain-rel="http://apihut.com/taxonomies/domainClassification.rdf#maps"> </nowiki></pre>
http://10.nisegylyc.com/lteem.html legends of the fall wallpapers
+
 
http://1.busebowyr.com/n1r9ef.html
+
The above example can also be reformulated with an additional value property, rather than just using domain-rel. This would be,
http://2.majofaca.com/ddey.html the urbs ds cheats
+
 
http://4.nisegylyc.com/tkd7k.html
+
<pre><nowiki> <body class="domain-rel" value="http://apihut.com/taxonomies/domainClassification.rdf#maps"> </nowiki></pre>
http://11.zowuhime.com/ituz4.html private service jobs
+
 
http://5.quebaryxy.com/eai4b9f.html
+
*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.
http://8.nisegylyc.com/ciag.html use of medicinal plants
+
 
http://1.quebaryxy.com/yd22y1.html
+
<pre><nowiki> <span p-lang-binding="http://apihut.com/taxonomies/languages.rdf#php"> PHP bindings for this API ... </span> </nowiki></pre>
http://9.zefusuwy.com/chjn3ys.html jobs retailrecruiters co uk
+
 
http://10.wetonytyq.com/ulbozsg.html
+
Here again, we can reformulate this using a value property.  
http://4.nisegylyc.com/mmnmf.html floyd mayweather off the record
+
 
http://7.wetonytyq.com/0rh6.html
+
<pre><nowiki> <span class="p-lang-binding" value="http://apihut.com/taxonomies/languages.rdf#php"> PHP bindings for this API ... </span> </nowiki></pre>
http://8.nisegylyc.com/vvua.html www old granny pictures
+
 
http://2.quebaryxy.com/osow1u.html
+
*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.
http://5.majofaca.com/gtntq4.html egyptian book of the dead pictures
+
 
http://1.lujuxyuc.com/065lhby.html
+
<pre><nowiki> <span message-format="http://apihut.com/taxonomies/formats.rdf#xml"> The XML messages that are passed between the client and the server are ... </span> </nowiki></pre>
http://8.busebowyr.com/tl7pvr.html used socket a motherboards
+
 
http://4.wetonytyq.com/u3scpea.html
+
Reformulation using value property:  
http://5.busebowyr.com/hwas.html fire weather alert
+
 
http://10.quebaryxy.com/86fa.html
+
<pre><nowiki> <span class="message-format" value="http://apihut.com/taxonomies/formats.rdf#xml"> The XML messages that are passed between the client and the server are ... </span> </nowiki></pre>
http://8.wetonytyq.com/05wfd.html meat fondue sauce recipes
+
 
http://3.wetonytyq.com/a6avruz.html
+
*protocol: describes the messaging protocols supported. Typical values include SOAP and REST.
http://10.rarekiva.com/qo7i0.html rider university book store
+
 
http://3.majofaca.com/epckgy.html  
+
<pre><nowiki> <span protocol="http://apihut.com/taxonomies/protocols.rdf#soap"> ... </span> </nowiki></pre>
http://4.zefusuwy.com/aryk.html mushroom crepe recipe
+
 
http://11.nisegylyc.com/l5x3p.html
+
Reformulation using value property:
http://1.majofaca.com/zap9m8h.html body mass index picture
+
 
http://1.rarekiva.com/yvvx4le.html  
+
<pre><nowiki> <span class="protocol" value="http://apihut.com/taxonomies/protocols.rdf#soap"> ... </span> </nowiki></pre>
http://10.zefusuwy.com/fs1po.html inclusive classroom mastropieri
+
 
http://2.busebowyr.com/svpi.html
+
*sem-class: is an alternative to modelreference in SAWSDL. It can be used to refer to a concept in a semantic model.
http://9.wetonytyq.com/qs9ezlq.html of dieffenbachia plant
+
<pre><nowiki> <span sem-class="http://tap.stanford.edu/#computer"> Computer </span> </nowiki></pre>.
http://10.quebaryxy.com/94zrv4d.html
+
 
http://2.majofaca.com/oxz314o.html wireless g broadband router wrt54
+
Reformulation using value property:
http://10.majofaca.com/kbzoi2.html
+
<pre><nowiki> <span class="sem-class" value="http://tap.stanford.edu/#computer"> Computer </span> </nowiki></pre>.
http://11.ledythuth.com/gfro.html railroad tycoon rules
+
 
http://7.zefusuwy.com/bo6dnt.html
+
==Processing SA-REST==
http://4.rarekiva.com/ksmwxe.html life is beautiful audio
+
The most straight forward way to process the documents is to use [http://www.w3.org/TR/xslt.html XSLT] along with [http://www.w3.org/TR/grddl/ 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.
  http://11.zowuhime.com/00sdmn.html
+
 
http://1.majofaca.com/fbvkj3k.html american patriotic gifts
+
<pre><nowiki> <html xmlns="http://www.w3.org/1999/xhtml"
http://2.ledythuth.com/55wni9o.html
+
      xmlns:grddl='http://www.w3.org/2003/g/data-view#'
http://3.ledythuth.com/faol1bn.html live life the way you want
+
      grddl:transformation="glean_title.xsl
http://11.lujuxyuc.com/x72z8xk.html
+
http://www.w3.org/2001/sw/grddl-wg/td/getAuthor.xsl"
http://5.quebaryxy.com/jxjk080.html jobs for accounts payable in  
+
  >
http://9.zowuhime.com/bkme.html
+
  </nowiki></pre>
'ihukytc uytci7 yf hy78 u uy u
+
 
http://8.quebaryxy.com/sowkz9.html riverdale post office
+
The subsequent processing can be done using the RDF representation.
http://9.zefusuwy.com/neoq4.html
+
 
 +
== Related Documents ==
 +
 
 +
* [http://knoesis.wright.edu/library/resource.php?id=00162 SA-REST publication in IEEE Internet Computing Journal]
 +
* [http://knoesis.wright.edu/research/srl/standards/sa-rest/ SA-REST initial discussion draft]

Revision as of 15:52, 19 February 2009

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. 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="http://apihut.com/taxonomies/domainClassification.rdf#maps"> 

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="http://taxonomy.org/computerscience#firstname"> 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="http://apihut.com/taxonomies/domainClassification.rdf#maps"> 

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="http://apihut.com/taxonomies/domainClassification.rdf#maps"> 
  • 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="http://apihut.com/taxonomies/languages.rdf#php"> PHP bindings for this API ... </span> 

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

 <span class="p-lang-binding" value="http://apihut.com/taxonomies/languages.rdf#php"> 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="http://apihut.com/taxonomies/formats.rdf#xml"> The XML messages that are passed between the client and the server are ... </span> 

Reformulation using value property:

 <span class="message-format" value="http://apihut.com/taxonomies/formats.rdf#xml"> The XML messages that are passed between the client and the server are ... </span> 
  • protocol: describes the messaging protocols supported. Typical values include SOAP and REST.
 <span protocol="http://apihut.com/taxonomies/protocols.rdf#soap"> ... </span> 

Reformulation using value property:

 <span class="protocol" value="http://apihut.com/taxonomies/protocols.rdf#soap"> ... </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="http://tap.stanford.edu/#computer"> Computer </span> 
.

Reformulation using value property:

 <span class="sem-class" value="http://tap.stanford.edu/#computer"> 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="http://www.w3.org/1999/xhtml"
      xmlns:grddl='http://www.w3.org/2003/g/data-view#'
      grddl:transformation="glean_title.xsl
			http://www.w3.org/2001/sw/grddl-wg/td/getAuthor.xsl"
 >
  

The subsequent processing can be done using the RDF representation.

Related Documents