Distributed Affordance

Ruben Verborgh
Ruben VerborghPostdoctoral Researcher in Semantic Hypermedia at Ghent University – imec, Belgium
Distributed
Affordance
An Open-World Assumption
for Hypermedia
Ruben Verborgh, Michael Hausenblas,
Thomas Steiner, Erik Mannens,
Rik Van de Walle
The three princes of Serendip
RESTarchitectural style
different?
What makes the
HATEOAS
Hypermedia As The Engine
Of Application State
Representations contain
the links to next steps.
How can the server know
what the client’s next steps are?
Distributed Affordance
An Open-World Assumption
for Hypermedia
Problem statement
Concept and Architecture
Demo
Distributed Affordance
An Open-World Assumption
for Hypermedia
Problem statement
Concept and Architecture
Demo
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
Distributed Affordance
Distributed Affordance
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
A handle affords opening a door.
The handle is an affordance
through which you can open the door.
…the information becomes the affordance…
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
SC SC
RPC REST
1
2
3
SC
SC
SC
SC
SC
REST
SC
SC
Loose conversational coupling
Enabling clients to discover
at runtime how to correctly
interact with a service is
a loosely coupled design practice
— Cesare Pautasso & Erik Wilde
SC
REST
SC
SC
The server has to provide
the affordance towards
next steps the client can take.
It is impossible
for the server to know all steps
any client might want to take.
Tight affordance coupling
SC
SC SC SC
closed world open world open world
“today’s weather in Rio”
“tomorrow’s weather in Rio” “plane tickets to Rio” “hotels in Rio”
Weather API
Distributed Affordance
An Open-World Assumption
for Hypermedia
Problem statement
Concept and Architecture
Demo
C
P
S
user
publisher
provider
distributed
affordance
S
Publishers offer representations
that contain semantic annotations.
HTML
&
Microdata
Providers offer semantic descriptions
of the actions they support.
RESTdescP
Based on the semantic annotations,
matching service descriptions are instantiated.
P
P
P
HTML
&
Microdata
+ =
Based on the semantic annotations,
matching service descriptions are instantiated.
+ =Rio
Rio
Rio
Based on the semantic annotations,
matching service descriptions are instantiated.
Rio
Rio
* 1
*
1
Representation RepresentationEnricher
«use»
ResourceExtractor
«use»
Resource
«instantiate»
APICatalogAPIDescription
«instantiate»
PreferenceManager
ActionGeneratorAction
«instantiate»
«use»
Figure 1: The resources inside a representation are extracted 1 and combined with api d
based on the user’s preferences 3 , into actions 4 , for which affordances are added to the repr
4. ARCHITECTURE
4.1 Components
the role of the PreferenceManager can be
the APICatalog, which then only includes
that match the user’s preferences.
Distributed Affordance
An Open-World Assumption
for Hypermedia
Problem statement
Concept and Architecture
Demo
Distributed Affordance
<div id="book" itemscope itemtype="http://schema.org/Book">
<span itemprop="name">The Catcher in the Rye</span> -
by <a itemprop="author" href="#salinger">J.D. Salinger</a>
<div itemprop="aggregateRating" itemscope>
<span itemprop="ratingValue">4</span> stars -
<span itemprop="reviewCount">3077</span> reviews
</div>
<div class="affordances" data-for="book">
<em>the browser will insert affordances here</em>
</div>
</div>
Distributed Affordance
Distributed Affordance
Distributed Affordance
centralized affordance
distributed affordance
publisher-driven
mostly within application
user-driven
on the entire Web
tight
affordance coupling
loose
affordance coupling
Hypermedia as the engine of application state
only works to the extent by which the publisher
can predict what affordance the client needs.
Distributed affordance uses semantic technologies
to generate the needed affordance at runtime.
Distributed
Affordance
An Open-World Assumption
for Hypermedia
@RubenVerborgh
distributedaffordance.org
1 of 37

Recommended

The web – A hypermedia story by
The web – A hypermedia storyThe web – A hypermedia story
The web – A hypermedia storyRuben Verborgh
2.9K views69 slides
Hypermedia Cannot be the Engine by
Hypermedia Cannot be the EngineHypermedia Cannot be the Engine
Hypermedia Cannot be the EngineRuben Verborgh
4.4K views36 slides
Querying data on the Web – client or server? by
Querying data on the Web – client or server?Querying data on the Web – client or server?
Querying data on the Web – client or server?Ruben Verborgh
1.8K views66 slides
Initial Usage Analysis of DBpedia's Triple Pattern Fragments by
Initial Usage Analysis of DBpedia's Triple Pattern FragmentsInitial Usage Analysis of DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern FragmentsRuben Verborgh
2.3K views36 slides
Live DBpedia querying with high availability by
Live DBpedia querying with high availabilityLive DBpedia querying with high availability
Live DBpedia querying with high availabilityRuben Verborgh
2.8K views20 slides
Querying datasets on the Web with high availability by
Querying datasets on the Web with high availabilityQuerying datasets on the Web with high availability
Querying datasets on the Web with high availabilityRuben Verborgh
3.4K views46 slides

More Related Content

What's hot

Sustainable queryable access to Linked Data by
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked DataRuben Verborgh
2.2K views46 slides
The Future is Federated by
The Future is FederatedThe Future is Federated
The Future is FederatedRuben Verborgh
2K views65 slides
DBpedia's Triple Pattern Fragments by
DBpedia's Triple Pattern FragmentsDBpedia's Triple Pattern Fragments
DBpedia's Triple Pattern FragmentsRuben Verborgh
2.7K views33 slides
Linked Data Fragments by
Linked Data FragmentsLinked Data Fragments
Linked Data FragmentsRuben Verborgh
7.2K views37 slides
The Lonesome LOD Cloud by
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD CloudRuben Verborgh
4.5K views88 slides
Querying federations 
of Triple Pattern Fragments by
Querying federations 
of Triple Pattern FragmentsQuerying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern FragmentsRuben Verborgh
1.2K views35 slides

What's hot(20)

Sustainable queryable access to Linked Data by Ruben Verborgh
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked Data
Ruben Verborgh2.2K views
DBpedia's Triple Pattern Fragments by Ruben Verborgh
DBpedia's Triple Pattern FragmentsDBpedia's Triple Pattern Fragments
DBpedia's Triple Pattern Fragments
Ruben Verborgh2.7K views
Querying federations 
of Triple Pattern Fragments by Ruben Verborgh
Querying federations 
of Triple Pattern FragmentsQuerying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern Fragments
Ruben Verborgh1.2K views
GraphQL and its schema as a universal layer for database access by Connected Data World
GraphQL and its schema as a universal layer for database accessGraphQL and its schema as a universal layer for database access
GraphQL and its schema as a universal layer for database access
Building materialised views for linked data systems using microservices by Connected Data World
Building materialised views for linked data systems using microservicesBuilding materialised views for linked data systems using microservices
Building materialised views for linked data systems using microservices
GraphQL Story: Intro To GraphQL by Riza Fahmi
GraphQL Story: Intro To GraphQLGraphQL Story: Intro To GraphQL
GraphQL Story: Intro To GraphQL
Riza Fahmi9.1K views
Os Gottfrid by oscon2007
Os GottfridOs Gottfrid
Os Gottfrid
oscon2007332 views
Open Data and Web API by Sammy Fung
Open Data and Web APIOpen Data and Web API
Open Data and Web API
Sammy Fung974 views
Os Pittaro by oscon2007
Os PittaroOs Pittaro
Os Pittaro
oscon2007379 views
ScholarsDay_Poster2015_Sumner-Atay by Alex Sumner
ScholarsDay_Poster2015_Sumner-AtayScholarsDay_Poster2015_Sumner-Atay
ScholarsDay_Poster2015_Sumner-Atay
Alex Sumner96 views
Overview of GraphQL & Clients by Pokai Chang
Overview of GraphQL & ClientsOverview of GraphQL & Clients
Overview of GraphQL & Clients
Pokai Chang676 views
Os Lonergan by oscon2007
Os LonerganOs Lonergan
Os Lonergan
oscon2007361 views
Creating 3rd Generation Web APIs with Hydra by Markus Lanthaler
Creating 3rd Generation Web APIs with HydraCreating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with Hydra
Markus Lanthaler12.8K views

Viewers also liked

Model Your Application Domain, Not Your JSON Structures by
Model Your Application Domain, Not Your JSON StructuresModel Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON StructuresMarkus Lanthaler
29.3K views22 slides
Build-Cloud-By-Open-Source-Software by
Build-Cloud-By-Open-Source-SoftwareBuild-Cloud-By-Open-Source-Software
Build-Cloud-By-Open-Source-SoftwareKimihiko Kitase
1.9K views35 slides
TOSCA - Topology and Orchestration Specification for Cloud Applications by
TOSCA  - Topology and Orchestration Specification for Cloud ApplicationsTOSCA  - Topology and Orchestration Specification for Cloud Applications
TOSCA - Topology and Orchestration Specification for Cloud Applicationssdmoser
9.2K views7 slides
Orchestrating Cloud Applications With TOSCA by
Orchestrating Cloud Applications With TOSCAOrchestrating Cloud Applications With TOSCA
Orchestrating Cloud Applications With TOSCAArthur Berezin
2.1K views39 slides
Tosca explained by
Tosca explainedTosca explained
Tosca explainedYaron Parasol
12.3K views31 slides
An Introduction to OpenStack Heat by
An Introduction to OpenStack HeatAn Introduction to OpenStack Heat
An Introduction to OpenStack HeatMirantis
32.8K views26 slides

Viewers also liked(10)

Model Your Application Domain, Not Your JSON Structures by Markus Lanthaler
Model Your Application Domain, Not Your JSON StructuresModel Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON Structures
Markus Lanthaler29.3K views
Build-Cloud-By-Open-Source-Software by Kimihiko Kitase
Build-Cloud-By-Open-Source-SoftwareBuild-Cloud-By-Open-Source-Software
Build-Cloud-By-Open-Source-Software
Kimihiko Kitase1.9K views
TOSCA - Topology and Orchestration Specification for Cloud Applications by sdmoser
TOSCA  - Topology and Orchestration Specification for Cloud ApplicationsTOSCA  - Topology and Orchestration Specification for Cloud Applications
TOSCA - Topology and Orchestration Specification for Cloud Applications
sdmoser9.2K views
Orchestrating Cloud Applications With TOSCA by Arthur Berezin
Orchestrating Cloud Applications With TOSCAOrchestrating Cloud Applications With TOSCA
Orchestrating Cloud Applications With TOSCA
Arthur Berezin2.1K views
An Introduction to OpenStack Heat by Mirantis
An Introduction to OpenStack HeatAn Introduction to OpenStack Heat
An Introduction to OpenStack Heat
Mirantis32.8K views
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview by OpenTOSCA
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem OverviewTOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
TOSCA and OpenTOSCA: TOSCA Introduction and OpenTOSCA Ecosystem Overview
OpenTOSCA49.5K views
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs... by Nati Shalom
Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Nati Shalom85.2K views
Grade 8 English teachers guide Q1 Only by Melanio Florino
Grade 8 English teachers guide Q1 OnlyGrade 8 English teachers guide Q1 Only
Grade 8 English teachers guide Q1 Only
Melanio Florino140.9K views

Similar to Distributed Affordance

The path towards pervasive computing by
The path towards pervasive computingThe path towards pervasive computing
The path towards pervasive computingMichel Burger
462 views26 slides
Treinamento 1 by
Treinamento 1Treinamento 1
Treinamento 1Carlos Melo
1.4K views43 slides
(More) Transparency Transformation by
(More) Transparency Transformation(More) Transparency Transformation
(More) Transparency TransformationGeorge Thomas
862 views29 slides
Web2 0 Incredibles by
Web2 0 IncrediblesWeb2 0 Incredibles
Web2 0 Incrediblesanjeshdubey
580 views28 slides
Modeling REST API's Behaviour with Text, Graphics or Both? by
Modeling REST API's Behaviour with Text, Graphics or Both?Modeling REST API's Behaviour with Text, Graphics or Both?
Modeling REST API's Behaviour with Text, Graphics or Both?Ana Ivanchikj
154 views57 slides
[Webinar Slides] Connect with your customers in our modern world with apps, d... by
[Webinar Slides] Connect with your customers in our modern world with apps, d...[Webinar Slides] Connect with your customers in our modern world with apps, d...
[Webinar Slides] Connect with your customers in our modern world with apps, d...AIIM International
762 views53 slides

Similar to Distributed Affordance(20)

The path towards pervasive computing by Michel Burger
The path towards pervasive computingThe path towards pervasive computing
The path towards pervasive computing
Michel Burger462 views
Treinamento 1 by Carlos Melo
Treinamento 1Treinamento 1
Treinamento 1
Carlos Melo1.4K views
(More) Transparency Transformation by George Thomas
(More) Transparency Transformation(More) Transparency Transformation
(More) Transparency Transformation
George Thomas862 views
Web2 0 Incredibles by anjeshdubey
Web2 0 IncrediblesWeb2 0 Incredibles
Web2 0 Incredibles
anjeshdubey580 views
Modeling REST API's Behaviour with Text, Graphics or Both? by Ana Ivanchikj
Modeling REST API's Behaviour with Text, Graphics or Both?Modeling REST API's Behaviour with Text, Graphics or Both?
Modeling REST API's Behaviour with Text, Graphics or Both?
Ana Ivanchikj154 views
[Webinar Slides] Connect with your customers in our modern world with apps, d... by AIIM International
[Webinar Slides] Connect with your customers in our modern world with apps, d...[Webinar Slides] Connect with your customers in our modern world with apps, d...
[Webinar Slides] Connect with your customers in our modern world with apps, d...
AIIM International762 views
Implementing Hypermedia Clients: It's Not Rocket Science – Mike Amundsen, Pri... by CA API Management
Implementing Hypermedia Clients: It's Not Rocket Science – Mike Amundsen, Pri...Implementing Hypermedia Clients: It's Not Rocket Science – Mike Amundsen, Pri...
Implementing Hypermedia Clients: It's Not Rocket Science – Mike Amundsen, Pri...
CA API Management3.9K views
Elewayte Cloud Computing Advancements by Elewayte
Elewayte Cloud Computing AdvancementsElewayte Cloud Computing Advancements
Elewayte Cloud Computing Advancements
Elewayte48 views
Cs 1023 lec 13 web (week 4) by stanbridge
Cs 1023 lec 13 web (week 4)Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)
stanbridge301 views
Smarthings Architecture Analysis by Shauna Joy
Smarthings Architecture AnalysisSmarthings Architecture Analysis
Smarthings Architecture Analysis
Shauna Joy3 views
Sears web30e connectionartificialintelligence by hrpiza
Sears web30e connectionartificialintelligenceSears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligence
hrpiza200 views
Sears web30e connectionartificialintelligence by hrpiza
Sears web30e connectionartificialintelligenceSears web30e connectionartificialintelligence
Sears web30e connectionartificialintelligence
hrpiza194 views
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk) by Steven Willmott
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)
Steven Willmott1.4K views
API and Platform Strategies to Win in Global and Local Markets by Axway
API and Platform Strategies to Win in Global and Local MarketsAPI and Platform Strategies to Win in Global and Local Markets
API and Platform Strategies to Win in Global and Local Markets
Axway422 views
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue... by apidays
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays1.8K views
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer... by apidays
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays146 views
Building Event Driven (Micro)services with Apache Kafka by Guido Schmutz
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
Guido Schmutz1.5K views

Recently uploaded

virtual reality.pptx by
virtual reality.pptxvirtual reality.pptx
virtual reality.pptxG036GaikwadSnehal
18 views15 slides
"Surviving highload with Node.js", Andrii Shumada by
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada Fwdays
33 views29 slides
Ransomware is Knocking your Door_Final.pdf by
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfSecurity Bootcamp
66 views46 slides
Vertical User Stories by
Vertical User StoriesVertical User Stories
Vertical User StoriesMoisés Armani Ramírez
17 views16 slides
Kyo - Functional Scala 2023.pdf by
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
418 views92 slides
Design Driven Network Assurance by
Design Driven Network AssuranceDesign Driven Network Assurance
Design Driven Network AssuranceNetwork Automation Forum
19 views42 slides

Recently uploaded(20)

"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays33 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays24 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman38 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software317 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi139 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab23 views
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf by Dr. Jimmy Schwarzkopf
STKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdfSTKI Israeli Market Study 2023   corrected forecast 2023_24 v3.pdf
STKI Israeli Market Study 2023 corrected forecast 2023_24 v3.pdf
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc72 views
The Forbidden VPN Secrets.pdf by Mariam Shaba
The Forbidden VPN Secrets.pdfThe Forbidden VPN Secrets.pdf
The Forbidden VPN Secrets.pdf
Mariam Shaba20 views

Distributed Affordance