This document discusses developing a content model for machine-actionable links to enable hypermedia applications. It reviews current web architecture and link usage. Example scenarios for data discovery, access, and processing are examined. An initial proposal is made for a link content model that includes properties like link, title, type, rel, overlayAPI, template, and profile. The goal is to allow hypermedia applications to direct machine agents through semantic links. Further development of vocabularies and example links is suggested.
Presentation sur la contrainte d'architecture HATEOAS et comment le framework Spring nous facilite son implementation.
Source code : https://github.com/YoannBuch/simple-spring-restbucks
Fait par l'equipe de http://findtheflow.io, un outil qui permet d'analyser et visualiser des executions d'applications Java.
This presentation is the culmination of my detail to the E-Government Office in the US Office of Management and Budget and the work I did to evolve and mature initiatives like recovery.gov and data.gov.
Presentation sur la contrainte d'architecture HATEOAS et comment le framework Spring nous facilite son implementation.
Source code : https://github.com/YoannBuch/simple-spring-restbucks
Fait par l'equipe de http://findtheflow.io, un outil qui permet d'analyser et visualiser des executions d'applications Java.
This presentation is the culmination of my detail to the E-Government Office in the US Office of Management and Budget and the work I did to evolve and mature initiatives like recovery.gov and data.gov.
Building Self Documenting HTTP APIs with CQRSDerek Comartin
Does your HTTP API expose your database structure?
HTTP endpoints that represent your database entities couples your consuming clients to the internals of your application. Making it much harder to change your API.
Go beyond serializing a database row into json by leveraging CQRS.
Start designing an HTTP API like a regular HTML website. Bringing the concepts of HTML links and forms to your API allows your clients to consume it with ease.
Attendees will learn how to design an HTTP API by leveraging CQRS and hypermedia to decouple their core application from their HTTP API.
Railsplitter is a framework which significantly reduces development cost to expose a hierarchical data model as a production quality Create, Read, Update, and Delete (CRUD) web service. Railsplitter adopts JSON API [10] as the standard for the service definition given its focus on consumption by front-end developers. Inherent in the design of JSON API are capabilities that reduce the number of round trips from client to server to fetch or update data. Updates on disparate models can happen in a single request allowing the server to build atomicity guarantees. Rather than starting from scratch with a domain-specific language (DSL) to describe a data model, Railsplitter adopts Java Persistence API (JPA) [6] - a modeling definition that is rich and has a long tenure of proven provider implementations. Unlike other approaches, Railsplitter addresses the fundamental needs of flexible, model driven authorization, interoperability with client side applications, and test automation.
The story of a friendly maid from a nearby town, who does strange things. It is an old Telugu tale which used to be narrated by my grandmother. Now I have translated this story in English.
One Web (API?) – Alexandre Bertails - Ippevent 10 juin 2014Ippon
Un simple site Web ne suffit plus : si je veux que les machines puissent comprendre et interagir avec mes données et pas seulement des pages HTML, je dois exposer une Web API.
Or les styles, architectures et buzzwords sont variés (Web services, REST, hypermedia et maintenant HATEOAS, etc.) et les religions sont légion. Il a fallu de longues années pour que l’industrie et la communauté Web voient émerger de bonnes pratiques. L’heure est maintenant à la consolidation.
Cette présentation se veut une rétrospective sur l’évolution des Web APIs et plus généralement des données sur le Web. Je ferai une revue de l’état de l’art, illustrée par des exemples concrets et des conseils pratiques.
Le speaker : Alexandre est expert Linked Data à Pellucid Analytics. Auparavant au W3C. Code principalement en Scala et est intéressé par le Web, les données et les questions d’anonymat/vie privée sur le Web.
Building Self Documenting HTTP APIs with CQRSDerek Comartin
Does your HTTP API expose your database structure?
HTTP endpoints that represent your database entities couples your consuming clients to the internals of your application. Making it much harder to change your API.
Go beyond serializing a database row into json by leveraging CQRS.
Start designing an HTTP API like a regular HTML website. Bringing the concepts of HTML links and forms to your API allows your clients to consume it with ease.
Attendees will learn how to design an HTTP API by leveraging CQRS and hypermedia to decouple their core application from their HTTP API.
Railsplitter is a framework which significantly reduces development cost to expose a hierarchical data model as a production quality Create, Read, Update, and Delete (CRUD) web service. Railsplitter adopts JSON API [10] as the standard for the service definition given its focus on consumption by front-end developers. Inherent in the design of JSON API are capabilities that reduce the number of round trips from client to server to fetch or update data. Updates on disparate models can happen in a single request allowing the server to build atomicity guarantees. Rather than starting from scratch with a domain-specific language (DSL) to describe a data model, Railsplitter adopts Java Persistence API (JPA) [6] - a modeling definition that is rich and has a long tenure of proven provider implementations. Unlike other approaches, Railsplitter addresses the fundamental needs of flexible, model driven authorization, interoperability with client side applications, and test automation.
The story of a friendly maid from a nearby town, who does strange things. It is an old Telugu tale which used to be narrated by my grandmother. Now I have translated this story in English.
One Web (API?) – Alexandre Bertails - Ippevent 10 juin 2014Ippon
Un simple site Web ne suffit plus : si je veux que les machines puissent comprendre et interagir avec mes données et pas seulement des pages HTML, je dois exposer une Web API.
Or les styles, architectures et buzzwords sont variés (Web services, REST, hypermedia et maintenant HATEOAS, etc.) et les religions sont légion. Il a fallu de longues années pour que l’industrie et la communauté Web voient émerger de bonnes pratiques. L’heure est maintenant à la consolidation.
Cette présentation se veut une rétrospective sur l’évolution des Web APIs et plus généralement des données sur le Web. Je ferai une revue de l’état de l’art, illustrée par des exemples concrets et des conseils pratiques.
Le speaker : Alexandre est expert Linked Data à Pellucid Analytics. Auparavant au W3C. Code principalement en Scala et est intéressé par le Web, les données et les questions d’anonymat/vie privée sur le Web.
Many enterprise IT folk seem to believe that REST is only suitable for lightweight integration or for relatively simple data manipulation (CRUD). On the contrary, by applying well-understood design patterns, REST can provide capabilities that only traditional enterprise integration tools have been able to provide - high performance, asynchronous messaging, reliability, etc.
Enterprise guide to building a Data MeshSion Smith
Making Data Mesh simple, Open Source and available to all; without vendor lock-in, without complex tooling and to use an approach centered around ‘specifications’, existing tools and baking in a ‘domain’ model.
The Enterprise Guide to Building a Data Mesh - Introducing SpecMeshIanFurlong4
For organisations to successfully adopt data mesh, setting up and maintaining infrastructure needs to be easy.
We believe the best way to achieve this is to leverage the learnings from building a ‘central nervous system‘, commonly used in modern data-streaming ecosystems. This approach formalises and automates of the manual parts of building a data mesh.
This presentation introduces SpecMesh; a methodology and supporting developer toolkit to enable business to build the foundations of their data mesh.
An introduction to hypermedia driven APIs. What is Hydra, what are its benefits and how to implement it.
It begins with a description of the current usage of REST APIs and goes until we have a linked API that describes operations and properties.
Hydra is a vocabulary that lives on top of JSON-LD
Implementing Hypermedia Clients: It's Not Rocket Science – Mike Amundsen, Pri...CA API Management
Coding hypermedia clients need not be ugly nor complicated. This session shows you how to write clean, adaptive code that responds to changes in data and workflow requirements over time. This session covers the truth (both good and bad) about hypermedia client coding and includes examples of several client models that handle evolvable Hypermedia APIs without sacrificing user experience or requiring Herculean effort on the part of developers.
Copy of the slides from the Advanced Web Development Workshop presented by Ed Bachta, Charlie Moad and Robert Stein of the Indianapolis Museum of Art during the Museums and the Web 2008 conference in Montreal
Industry Ontologies: Case Studies in Creating and Extending Schema.org for In...MakoLab SA
The presentation introduces listeners into the details of the most important global semantic vocabulary build jointly by Google, Yahoo, Microsoft and Yandex: schema.org. It then discusses the experiences related to the creation of “hosted” extensions for the automotive industries (existing: auto.schema.org) and for the financial industries (in making: fibo.schema.org). The two extensions, built by an international team of specialists managed by MakoLab with full respect to the community processes, have two different creation strategies which will be presented and discussed.
The use cases for both vocabularies will be demonstrated. They are related to both “external” business effects (better visibility of the websites using them on the web) and “internal” effects (new kind of analytics and search capacities).
The presentation will also invite to participate to two W3C Community Groups responsible for the open communication activities around the two extensions.
ER(Entity Relationship) Diagram for online shopping - TAEHimani415946
https://bit.ly/3KACoyV
The ER diagram for the project is the foundation for the building of the database of the project. The properties, datatypes, and attributes are defined by the ER diagram.
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
1. APPROACHES TO MACHINE-
ACTIONABLE LINKS: A
HYPERMEDIA FORMAT FOR DATA
Breakout session
ESIP Summer Meeting, 2013-07-12
Chapel Hill, North Carolina
Stephen M Richard, organizer
2. Objectives
Develop a content model for information
associated with links
Enable hypermedia applications
Focus on functionality related to data discovery,
evaluation, access, and processing
Review usage of links in web architecture
Look at example use scenarios
Proposal for content
3. ‘Traditional’ Web application
HTML is the hypermedia format
Application state is directed by a Human
<ul class="secondary">
<li><a href="http://www.nytimes.com/pages/automobiles/index.html">Autos</a></li>
<li><a href="http://www.nytimes.com/ref/topnews/blog-index.html">Blogs</a></li>
<li><a href="http://www.nytimes.com/pages/books/index.html">Books</a></li>
<li><a href="http://wordplay.blogs.nytimes.com/cartoons/">Cartoons</a></li>
<li><a
href="http://www.nytimes.com/ref/classifieds/?incamp=hpclassifiedsnav">Classifieds</a></li>
<li><a href="http://www.nytimes.com/crosswords/index.html">Crosswords</a></li><li
id="navWorld"><a href="http://www.nytimes.com/pages/world/index.html">World</a></li>
<li id="navUS"><a href="http://www.nytimes.com/pages/national/index.html">U.S.</a></li>
<li id="navPolitics"><a href="http://www.nytimes.com/pages/politics/index.html">Politics</a></li>
<li id="navNYRegion"><a href="http://www.nytimes.com/pages/nyregion/index.html">New
York</a></li>
<li id="navBusiness"><a
href="http://www.nytimes.com/pages/business/index.html">Business</a></li>
<li id="navDealbook"><a href="http://dealbook.nytimes.com">Dealbook</a></li>
<li id="navTechnology"><a
href="http://www.nytimes.com/pages/technology/index.html">Technology</a></li>
<li id="navSports"><a href="http://www.nytimes.com/pages/sports/index.html">Sports</a></li>
<a href="http://www.nytimes.com/ref/
topnews/blog-index.html">Blogs</a>
6. Distributed applications on
the Web
HTTP as the transport for application
messaging
Operations: GET, PUT, POST, DELETE
Agnostic about message format and content
Headers provide metadata for messages
Language, MIME type
7. Richardson Maturity Model
http://martinfowler.com/articles/richardsonMaturityModel.html
Tunneling, RPC
(Plain Old XML)
Operate on
domain objects
Use HTTP operations
as intended
HATEOAS (Hypertext As
The EngineOf Application
State)
NOTE: Roy Fielding has made is clear that level 3 RMM is a pre-condition of REST.
Useful comparison table: http://nordsc.com/ext/classification_of_http_based_apis.html
8. Approaches to application messaging
Tunneling
HTTP GET or POST
URL or message content contains method request
SOAP, ‘remote procedure call’
encode methods and parameters in URLS
HTTP messages always directed to a single web
location
9. Tunneling RPC call
http://api.flickr.com/services/rest/?
method=flickr.test.echo&name=value
http method is GET
https://sdb.amazonaws.com/?
Action=PutAttributes&other parameters…
http method is POST
URI contains action
Message semantics depend on action .
10. Approaches to application messaging
Object based
Define resource scheme for application objects
Use HTTP request to create, read, update, delete
Various representations may be available for the
objects
12. URI template
A sequence of characters for describing a
range of URIs through variable expansion
(IETF RFC-6570)
Example: Get scientific metadata for a
dataOne data package
https://datadryad.org/mn/object/{identifier}
identifier:= "http://dx.doi.org/10.5061/dryad.8790"
https://datadryad.org/mn/object/http://dx.doi
.org/10.5061/dryad.8790
13. Approaches to application messaging
Hypermedia
messages specify resources and possible actions
(read, write, create, delete, filter, report, etc.)
controls provided to invoke next action
media format must be understood a priori by
client applications
server can change any URI except the initial entry
point
14. Machine Actionable Links
Essential to hypermedia applications
HTML
<a> anchor element for HTTP GET
<form> form element for HTTP POST
<img>
15. Can we produce a content
model for hypermedia
controls for data
applications?
16. Scenarios
Examine several scenarios commonly
encounter with data access and processing
Search and data access
Linked data
Web processing services
Vocabulary usage in content
17. Hypermedia search
Search catalog
Get list of distributions
SelectWMS distribution
Add to arc map project
18. CI_OnlineResource affordance
Distribution options offered by an ISO19139 XML metadata response
<URL> http://services.kgs...service=WMS
<protocol> OGC:WMS
<name> Service Description
<description>WMS Capabilities
<function> webService
<URL> http://services.kgs.ku.....;service=WFS</URL>
<protocol> OGC:WFS
<name> Service Description
<description>WFSCapabilities
<function> webService
<URL> http://services.kgs.ku..../MapServer
<protocol> ESRI
<name> Service Description
<description> ESRI Service End Point
<function> webService
<URL> http://repository.stategeothermaldata.org/..._20121212.zip
<name> Zipped 2007 Excel file containing BoreholeTemperature data for the State of Kansas
<function> download
19. Hypermedia and linked data
Offer an ‘affordances’ representation for any
URI
Dereference URI to see list of things can do
with it
Picture, text explanation, searches,
discussion, usage, plot, publications, people,
brokers…
Over to Doug…
20. Web processing service
1. Landing page: start process
1. Select existing and execute
2. Start new—identify inputs and parameters and
execute
2. Successful completion
1. Modify parameter and rerun
2. Save results
3. Visualize result
If process is largely user driven, HTML forms
provide necessary hypermedia
21. Semantics: Vocabulary
URI identifies a concept
Hypermedia helps user understand concept
Hypermedia to help machine agent navigate
semantic web
Related, broader, narrower
RDF graph, SPARQL endpoints
ISO codelists, GML codeType
23. Survey
Specification Link
ATOM http://tools.ietf.org/html/rfc4287
CoRE http://tools.ietf.org/html/rfc6690
ESIP discovery http://wiki.esipfed.org/index.php/Discovery_Change_Proposal-8
GML codeType
HAL http://tools.ietf.org/html/draft-kelly-json-hal
Home document http://tools.ietf.org/html/draft-nottingham-json-home
Hydra http://www.markus-lanthaler.com/hydra/spec/latest/core/
IANA link type registry
IETF Web Linking http://tools.ietf.org/html/rfc5988
ISO19115/19139 see USGIN profile document
RDFa http://rdfa.info/about/
xlink http://www.w3.org/TR/xlink11/
OWC offering OCG 12-080 Table 3
24. Content model for link
link (syn: href, targetURI)
title
type
rel
overlayAPI
template
profile
25. Link property
Essential– must be a URI that will dereference
using web architecture (DNS,TCP/IP), with
result according to other link properties
Typically using http
URI syntax (IETF RFC-3986) specifies that
"each URI begins with a scheme name"
[RFC3986, section 1.1.1]
26. Title
Text string that identifies the link function for
a human user.
Only necessary if link is being used for human
user interaction
27. type
Registered string that identifies the media
type
MIME type (http://www.iana.org/assignments/media-types).
Allow comma-delimited list
Intention is that if a type is listed here, it is
known to be available from the host
28. rel property
Semantics of link
Attribute value is list;
Use global vocabulary for interoperability
(IETF RFC-5988)
include one of the 5 original Atom link@rel
values
Domain specific rel values should be URI that
will dereference as a vocabulary term
29. overlayAPI: Legacy approaches
identifies the API for messages tunneled to a
component on the target server
should be defined by the service specification
for the protocol or service type
Include version information if applicable
30. template: guidance for URI
patterns
identifies template scheme
if a value is provided for this attribute, the
targetURI MUST be interpreted as a template
service specification should define the URI
that identifies the scheme and version.
31. profile property
application specific conventions
Specific vocabularies for message content
Restrictions on alternate usages of interchange
format schema
May apply to template scheme or overlayAPI
32. parameters
Additional parameters encoded as key-value
pairs
Account for information like layer name in
WMS, feature Name inWFS or ESRI service,
coverage name inWCS
Can this be done more simply?
33. Other possible properties
Property Scope
altTitle Title value in a different character set, or
language
behavior list of properties specifying behavior expected in
client when link is actuated
descriptionURL URL that locates a detailed text description of
what the online resource is/does
hints profile-specific information about link operation;
granular to protocol or overlayAPI method level
hreflang language of resource content; multiple
"hreflang" parameters indicate options
length advisory size linked content in octets
34. Where to from here
Collect examples of example links intended
for machine to machine operation
(examples from white paper)
What vocabularies are necessary?
https://github.com/usgin/usginspecs/blob/master/
MetadataAsHypermediaApp.docx
ESIP Google Doc or Discovery Cluster
Presentation to ESIP Semantic Cluster