ELIS – Multimedia Lab




           RESTdesc
   Efficient runtime service
 discovery and consumption.

            Ruben Verborgh, Thomas Steiner,
Davy Van Deursen, Rik Van de Walle, Joaquim Gabarró Vallés
ELIS – Multimedia Lab
                Talking with others is difficult
                    when you’re different.




                                              RESTdesc
© Jule Berlin           Efficient runtime service discovery and consumption.                           2
ELIS – Multimedia Lab




                                                   The goal is not
                                    RESTdesc
                                                    to blend in…
© Eric Vest   Efficient runtime service discovery and consumption.                           3
ELIS – Multimedia Lab




  …but to
 stand out.




                                             RESTdesc
© Nicholas Kreidberg   Efficient runtime service discovery and consumption.                           4
What makes a Web service
 stand out from others?




   Functionality.
Capturing functionality
 is vital for automated
service consumption.
ELIS – Multimedia Lab




       RESTdesc
  Efficient runtime service
discovery and consumption.

1. Why? – need and challenges

2. What? – syntax and structure

3. So what? – benefits and potential



                                RESTdesc
          Efficient runtime service discovery and consumption.                           7
ELIS – Multimedia Lab




       RESTdesc
  Efficient runtime service
discovery and consumption.

1. Why? – need and challenges

2. What? – syntax and structure

3. So what? – benefits and potential



                                RESTdesc
          Efficient runtime service discovery and consumption.                           8
ELIS – Multimedia Lab


Example service: calculating photo height




                                                                                        768




photo height service
send a photo, retrieve its height in pixels


                                     RESTdesc
               Efficient runtime service discovery and consumption.                           9
ELIS – Multimedia Lab


 Several service description methods exist.




FACT: there are already lots of ways to describe that
 • the input is an image;
 • the output is a height in pixels.

FACT: none of them really helps... wait?




                                        RESTdesc
                  Efficient runtime service discovery and consumption.                           10
ELIS – Multimedia Lab


       They don’t describe functionality.



         53                                                    768                       23.489




What height in pixels?

 • The height of the face rectangle in the image?
 • The optimal height on a certain mobile device?
 • The height of the costume, mysteriously converted to pixels?

                                          RESTdesc
                    Efficient runtime service discovery and consumption.                           11
ELIS – Multimedia Lab


Functional descriptions tell the whole story.



                                                                   768




What height in pixels?
Only the functional relation tells us this:


send a photo, retrieve its height in pixels



                                        RESTdesc
                  Efficient runtime service discovery and consumption.                           12
ELIS – Multimedia Lab




       RESTdesc
  Efficient runtime service
discovery and consumption.

1. Why? – need and challenges

2. What? – syntax and structure

3. So what? – benefits and potential



                                RESTdesc
          Efficient runtime service discovery and consumption.                           13
ELIS – Multimedia Lab


           Ingredients of RESTdesc




• HTTP
  • resources




                                      RESTdesc
                Efficient runtime service discovery and consumption.                           14
ELIS – Multimedia Lab


REST-style HTTP is resource-oriented.
        http://example.com/images/wolfie
        This is a resource.



                       http://example.com/images/wolfie/height
                       This is a resource, too.




                                  They’re even the same resources
                    768           as those on the Semantic Web:
                                  “Resource Description Framework”.




                                 RESTdesc
           Efficient runtime service discovery and consumption.                           15
ELIS – Multimedia Lab


           Ingredients of RESTdesc




• HTTP
  • resources
• Notation3 (N3)
  • small superset of RDF




                                      RESTdesc
                Efficient runtime service discovery and consumption.                           16
ELIS – Multimedia Lab


     Everything in RDF has 3 parts.



  
  


           :MyPhoto  :a  :Photo.
             subject verb object
                                                                        
                                                                        
                        




                                 RESTdesc
           Efficient runtime service discovery and consumption.                           17
ELIS – Multimedia Lab


        RDF is organized in vocabularies.


@prefix  :  <http://example.org/photo/>.  
@prefix  rdf:  <http://www.w3.org/1999/02/22-­‐rdf-­‐syntax-­‐ns#>.
@prefix  dbpedia:  <http://dbpedia.org/resource/>.


           :MyPhoto  rdf:type  dbpedia:Photo.
                                                                              
                                                                              
                              




                                            RESTdesc
                      Efficient runtime service discovery and consumption.                           18
ELIS – Multimedia Lab


           Ingredients of RESTdesc




• HTTP
  • resources
• Notation3 (N3)
  • small superset of RDF
• your own vocabulary



                                      RESTdesc
                Efficient runtime service discovery and consumption.                           19
ELIS – Multimedia Lab


 How do we describe this functionality?




                                                                                        768




photo height service
send a photo, retrieve its height in pixels


                                     RESTdesc
               Efficient runtime service discovery and consumption.                           20
ELIS – Multimedia Lab


         Photo height service in RESTdesc
@prefix  :  <http://restdesc.no.de/ontlogies/photos#>.
@prefix  http:  <http://www.w3.org/2006/http#>.
@prefix  tmpl:  <http://purl.org/restdesc/http-­‐template#>.

{                                                           Not a new model.
    ?photo  :photoId  ?id.                          This is RDF in Notation3,
}                                                  a Semantic Web language.
=>
{
      _:request  http:methodName  "GET";
                          tmpl:requestURI  ("/photos/"  ?id  "/height");
                          http:resp  [  tmpl:represents  ?pixels  ].
      ?photo  :height  ?pixels.
}.

                                              RESTdesc
                        Efficient runtime service discovery and consumption.                           21
ELIS – Multimedia Lab


         Photo height service in RESTdesc

If your photo
has identifier “wolfie”...

{                                                            “wolfie
                                                                    ”
    ?photo  :photoId  ?id.
}
=>
{
      _:request  http:methodName  "GET";
                          tmpl:requestURI  ("/photos/"  ?id  "/height");
                          http:resp  [  tmpl:represents  ?pixels  ].
      ?photo  :height  ?pixels.
}.

                                             RESTdesc
                       Efficient runtime service discovery and consumption.                           22
ELIS – Multimedia Lab


         Photo height service in RESTdesc

... then ...


{
    ?photo  :photoId  ?id.
}
=>
{
      _:request  http:methodName  "GET";
                          tmpl:requestURI  ("/photos/"  ?id  "/height");
                          http:resp  [  tmpl:represents  ?pixels  ].
      ?photo  :height  ?pixels.
}.

                                             RESTdesc
                       Efficient runtime service discovery and consumption.                           23
ELIS – Multimedia Lab


         Photo height service in RESTdesc

...you can use HTTP to get
/photos/wolfie/height...

{
    ?photo  :photoId  ?id.
}
=>
{
      _:request  http:methodName  "GET";
                          tmpl:requestURI  ("/photos/"  ?id  "/height");
                          http:resp  [  tmpl:represents  ?pixels  ].
      ?photo  :height  ?pixels.
}.

                                             RESTdesc
                       Efficient runtime service discovery and consumption.                           24
ELIS – Multimedia Lab


         Photo height service in RESTdesc

...and the response will                                                      768
represent a value...

{
    ?photo  :photoId  ?id.
}
=>
{
      _:request  http:methodName  "GET";
                          tmpl:requestURI  ("/photos/"  ?id  "/height");
                          http:resp  [  tmpl:represents  ?pixels  ].
      ?photo  :height  ?pixels.
}.

                                             RESTdesc
                       Efficient runtime service discovery and consumption.                                 25
ELIS – Multimedia Lab


         Photo height service in RESTdesc

...which is                                                                   768
that photo’s height.

{                                                             “wolfie
                                                                     ”
    ?photo  :photoId  ?id.
}
=>
{
      _:request  http:methodName  "GET";
                          tmpl:requestURI  ("/photos/"  ?id  "/height");
                          http:resp  [  tmpl:represents  ?pixels  ].
      ?photo  :height  ?pixels.
}.

                                             RESTdesc
                       Efficient runtime service discovery and consumption.                                 26
ELIS – Multimedia Lab


This description contains everything you need.

                                                                                768



  “wolfie”
                                                                                       “wolfie
                                                                                              ”

{
    ?photo  :photoId  ?id.                      It’s that simple.
}
                                            And it’s that powerful.
=>
{
      _:request  http:methodName  "GET";
                          tmpl:requestURI  ("/photos/"  ?id  "/height");
                          http:resp  [  tmpl:represents  ?pixels  ].
      ?photo  :height  ?pixels.
}.

                                             RESTdesc
                       Efficient runtime service discovery and consumption.                           27
ELIS – Multimedia Lab




       RESTdesc
  Efficient runtime service
discovery and consumption.

1. Why? – need and challenges

2. What? – syntax and structure

3. So what? – benefits and potential



                                RESTdesc
          Efficient runtime service discovery and consumption.                           28
ELIS – Multimedia Lab


RESTdesc descriptions are simple, because…


They rely on HTTP and HTTP best practices.
 • resource-oriented

They use the vocabulary you choose.
 • descriptions adapts to your domain

They describe only what you need.
 • concepts live in vocabularies
   • “height” is an integer, expresses a length in pixels



                                         RESTdesc
                   Efficient runtime service discovery and consumption.                           29
ELIS – Multimedia Lab


RESTdesc descriptions are powerful, because…


They use the Resource Description Framework.
 • logically sound
 • allows complex expressions
 • interoperable with other services and data

They can be composed by generic reasoners.
 • all N3 reasoners understand RESTdesc
 • enables goal-driven service composition



                                      RESTdesc
                Efficient runtime service discovery and consumption.                           30
RESTdesc enables
     straightforward
automated use of services.
Seeing services as resources
      leads to elegant
 functional descriptions.
In functional descriptions,
 services are not defined
 by what they look like…
ELIS – Multimedia Lab




  …but by
what they do.




                                  http://restdesc.org/
                                  RESTdesc
            Efficient runtime service discovery and consumption.                           34

RESTdesc – Efficient runtime service discovery and consumption

  • 1.
    ELIS – MultimediaLab RESTdesc Efficient runtime service discovery and consumption. Ruben Verborgh, Thomas Steiner, Davy Van Deursen, Rik Van de Walle, Joaquim Gabarró Vallés
  • 2.
    ELIS – MultimediaLab Talking with others is difficult when you’re different. RESTdesc © Jule Berlin Efficient runtime service discovery and consumption. 2
  • 3.
    ELIS – MultimediaLab The goal is not RESTdesc to blend in… © Eric Vest Efficient runtime service discovery and consumption. 3
  • 4.
    ELIS – MultimediaLab …but to stand out. RESTdesc © Nicholas Kreidberg Efficient runtime service discovery and consumption. 4
  • 5.
    What makes aWeb service stand out from others? Functionality.
  • 6.
    Capturing functionality isvital for automated service consumption.
  • 7.
    ELIS – MultimediaLab RESTdesc Efficient runtime service discovery and consumption. 1. Why? – need and challenges 2. What? – syntax and structure 3. So what? – benefits and potential RESTdesc Efficient runtime service discovery and consumption. 7
  • 8.
    ELIS – MultimediaLab RESTdesc Efficient runtime service discovery and consumption. 1. Why? – need and challenges 2. What? – syntax and structure 3. So what? – benefits and potential RESTdesc Efficient runtime service discovery and consumption. 8
  • 9.
    ELIS – MultimediaLab Example service: calculating photo height 768 photo height service send a photo, retrieve its height in pixels RESTdesc Efficient runtime service discovery and consumption. 9
  • 10.
    ELIS – MultimediaLab Several service description methods exist. FACT: there are already lots of ways to describe that • the input is an image; • the output is a height in pixels. FACT: none of them really helps... wait? RESTdesc Efficient runtime service discovery and consumption. 10
  • 11.
    ELIS – MultimediaLab They don’t describe functionality. 53 768 23.489 What height in pixels? • The height of the face rectangle in the image? • The optimal height on a certain mobile device? • The height of the costume, mysteriously converted to pixels? RESTdesc Efficient runtime service discovery and consumption. 11
  • 12.
    ELIS – MultimediaLab Functional descriptions tell the whole story. 768 What height in pixels? Only the functional relation tells us this: send a photo, retrieve its height in pixels RESTdesc Efficient runtime service discovery and consumption. 12
  • 13.
    ELIS – MultimediaLab RESTdesc Efficient runtime service discovery and consumption. 1. Why? – need and challenges 2. What? – syntax and structure 3. So what? – benefits and potential RESTdesc Efficient runtime service discovery and consumption. 13
  • 14.
    ELIS – MultimediaLab Ingredients of RESTdesc • HTTP • resources RESTdesc Efficient runtime service discovery and consumption. 14
  • 15.
    ELIS – MultimediaLab REST-style HTTP is resource-oriented. http://example.com/images/wolfie This is a resource. http://example.com/images/wolfie/height This is a resource, too. They’re even the same resources 768 as those on the Semantic Web: “Resource Description Framework”. RESTdesc Efficient runtime service discovery and consumption. 15
  • 16.
    ELIS – MultimediaLab Ingredients of RESTdesc • HTTP • resources • Notation3 (N3) • small superset of RDF RESTdesc Efficient runtime service discovery and consumption. 16
  • 17.
    ELIS – MultimediaLab Everything in RDF has 3 parts.     :MyPhoto  :a  :Photo. subject verb object                                                       RESTdesc Efficient runtime service discovery and consumption. 17
  • 18.
    ELIS – MultimediaLab RDF is organized in vocabularies. @prefix  :  <http://example.org/photo/>.   @prefix  rdf:  <http://www.w3.org/1999/02/22-­‐rdf-­‐syntax-­‐ns#>. @prefix  dbpedia:  <http://dbpedia.org/resource/>. :MyPhoto  rdf:type  dbpedia:Photo.                                                       RESTdesc Efficient runtime service discovery and consumption. 18
  • 19.
    ELIS – MultimediaLab Ingredients of RESTdesc • HTTP • resources • Notation3 (N3) • small superset of RDF • your own vocabulary RESTdesc Efficient runtime service discovery and consumption. 19
  • 20.
    ELIS – MultimediaLab How do we describe this functionality? 768 photo height service send a photo, retrieve its height in pixels RESTdesc Efficient runtime service discovery and consumption. 20
  • 21.
    ELIS – MultimediaLab Photo height service in RESTdesc @prefix  :  <http://restdesc.no.de/ontlogies/photos#>. @prefix  http:  <http://www.w3.org/2006/http#>. @prefix  tmpl:  <http://purl.org/restdesc/http-­‐template#>. { Not a new model.    ?photo  :photoId  ?id. This is RDF in Notation3, } a Semantic Web language. => {      _:request  http:methodName  "GET";                          tmpl:requestURI  ("/photos/"  ?id  "/height");                          http:resp  [  tmpl:represents  ?pixels  ].      ?photo  :height  ?pixels. }. RESTdesc Efficient runtime service discovery and consumption. 21
  • 22.
    ELIS – MultimediaLab Photo height service in RESTdesc If your photo has identifier “wolfie”... { “wolfie ”    ?photo  :photoId  ?id. } => {      _:request  http:methodName  "GET";                          tmpl:requestURI  ("/photos/"  ?id  "/height");                          http:resp  [  tmpl:represents  ?pixels  ].      ?photo  :height  ?pixels. }. RESTdesc Efficient runtime service discovery and consumption. 22
  • 23.
    ELIS – MultimediaLab Photo height service in RESTdesc ... then ... {    ?photo  :photoId  ?id. } => {      _:request  http:methodName  "GET";                          tmpl:requestURI  ("/photos/"  ?id  "/height");                          http:resp  [  tmpl:represents  ?pixels  ].      ?photo  :height  ?pixels. }. RESTdesc Efficient runtime service discovery and consumption. 23
  • 24.
    ELIS – MultimediaLab Photo height service in RESTdesc ...you can use HTTP to get /photos/wolfie/height... {    ?photo  :photoId  ?id. } => {      _:request  http:methodName  "GET";                          tmpl:requestURI  ("/photos/"  ?id  "/height");                          http:resp  [  tmpl:represents  ?pixels  ].      ?photo  :height  ?pixels. }. RESTdesc Efficient runtime service discovery and consumption. 24
  • 25.
    ELIS – MultimediaLab Photo height service in RESTdesc ...and the response will 768 represent a value... {    ?photo  :photoId  ?id. } => {      _:request  http:methodName  "GET";                          tmpl:requestURI  ("/photos/"  ?id  "/height");                          http:resp  [  tmpl:represents  ?pixels  ].      ?photo  :height  ?pixels. }. RESTdesc Efficient runtime service discovery and consumption. 25
  • 26.
    ELIS – MultimediaLab Photo height service in RESTdesc ...which is 768 that photo’s height. { “wolfie ”    ?photo  :photoId  ?id. } => {      _:request  http:methodName  "GET";                          tmpl:requestURI  ("/photos/"  ?id  "/height");                          http:resp  [  tmpl:represents  ?pixels  ].      ?photo  :height  ?pixels. }. RESTdesc Efficient runtime service discovery and consumption. 26
  • 27.
    ELIS – MultimediaLab This description contains everything you need. 768 “wolfie” “wolfie ” {    ?photo  :photoId  ?id. It’s that simple. } And it’s that powerful. => {      _:request  http:methodName  "GET";                          tmpl:requestURI  ("/photos/"  ?id  "/height");                          http:resp  [  tmpl:represents  ?pixels  ].      ?photo  :height  ?pixels. }. RESTdesc Efficient runtime service discovery and consumption. 27
  • 28.
    ELIS – MultimediaLab RESTdesc Efficient runtime service discovery and consumption. 1. Why? – need and challenges 2. What? – syntax and structure 3. So what? – benefits and potential RESTdesc Efficient runtime service discovery and consumption. 28
  • 29.
    ELIS – MultimediaLab RESTdesc descriptions are simple, because… They rely on HTTP and HTTP best practices. • resource-oriented They use the vocabulary you choose. • descriptions adapts to your domain They describe only what you need. • concepts live in vocabularies • “height” is an integer, expresses a length in pixels RESTdesc Efficient runtime service discovery and consumption. 29
  • 30.
    ELIS – MultimediaLab RESTdesc descriptions are powerful, because… They use the Resource Description Framework. • logically sound • allows complex expressions • interoperable with other services and data They can be composed by generic reasoners. • all N3 reasoners understand RESTdesc • enables goal-driven service composition RESTdesc Efficient runtime service discovery and consumption. 30
  • 31.
    RESTdesc enables straightforward automated use of services.
  • 32.
    Seeing services asresources leads to elegant functional descriptions.
  • 33.
    In functional descriptions, services are not defined by what they look like…
  • 34.
    ELIS – MultimediaLab …but by what they do. http://restdesc.org/ RESTdesc Efficient runtime service discovery and consumption. 34