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.
1 of 34
Download to read offline
More Related Content
Approaches to machine actionable links
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 newidentify 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