際際滷

際際滷Share a Scribd company logo
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
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
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>
Hypermedia driven
Add data to Map Application
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
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
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
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 .
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
Resource object-based
 https://api.twitter.com/1.1/
statuses/mentions_timeline.json
 http://resources.usgin.org/uri-gin/
nmbgmr/bhintercept/API:30-035-2024
 specific schema used is only known to
client and server
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
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
Machine Actionable Links
 Essential to hypermedia applications
 HTML
 <a> anchor element for HTTP GET
 <form> form element for HTTP POST
 <img>
Can we produce a content
model for hypermedia
controls for data
applications?
Scenarios
 Examine several scenarios commonly
encounter with data access and processing
 Search and data access
 Linked data
 Web processing services
 Vocabulary usage in content
Hypermedia search
 Search catalog
 Get list of distributions
 SelectWMS distribution
 Add to arc map project
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
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
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
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
Vocabulary examples
 <gsmlem:lithology
 xlink:href="http://resource.geosciml.org/classifier/
cgi/lithology/wacke"
 xlink:title="Wacke" />
 gmd:CI_RoleCode
 codeList="http://www.isotc211.org/2005/resources/
Codelist/gmxCodelists.xml#CI_RoleCode"
 codeListValue="pointOfContact">
 pointOfContact</gmd:CI_RoleCode>
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
Content model for link
 link (syn: href, targetURI)
 title
 type
 rel
 overlayAPI
 template
 profile
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]
Title
 Text string that identifies the link function for
a human user.
 Only necessary if link is being used for human
user interaction
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
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
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
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.
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
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?
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
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

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>
  • 5. Add data to Map Application
  • 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
  • 11. Resource object-based https://api.twitter.com/1.1/ statuses/mentions_timeline.json http://resources.usgin.org/uri-gin/ nmbgmr/bhintercept/API:30-035-2024 specific schema used is only known to client and server
  • 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
  • 22. Vocabulary examples <gsmlem:lithology xlink:href="http://resource.geosciml.org/classifier/ cgi/lithology/wacke" xlink:title="Wacke" /> gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/ Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="pointOfContact"> pointOfContact</gmd:CI_RoleCode>
  • 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