XPointer and HTTP Range A possible design for a scalable and extensible RDF Data Access protocol. Bryan Thompson 4-21-2004 Presented to the RDF Data Access.

Slides:



Advertisements
Similar presentations
Pierre-Johan CHARTRE Java EE - JAX-RS - Pierre-Johan CHARTRE
Advertisements

HTTP and Apache Roy T. Fielding eBuilt, Inc. The Apache Software Foundation
XPointer and HTTP Range A possible design for a scalable and extensible RDF Data Access protocol. Bryan Thompson draft Presented to the RDF.
Advanced XSLT II. Iteration in XSLT we sometimes wish to apply the same transform to a set of nodes we iterate through a node set the node set is defined.
REST Vs. SOAP.
Introduction to Web Services
W3C and RDF. Why OCLC is a W3C Member Access to networked information resources –the browser and online access –the breath and depth of networked information.
Building a Simple Web Proxy
Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
CGI & HTML forms CGI Common Gateway Interface  A web server is only a pipe between user-agents  and content – it does not generate content.
W3C Workshop on Web Services Mark Nottingham
RDF Schemata (with apologies to the W3C, the plural is not ‘schemas’) CSCI 7818 – Web Technologies 14 November 2001 Van Lepthien.
WSDL 2.0 Marlon Pierce Community Grids Lab Indiana University.
SOAP.
SOAP Overview Simple Object Access Protocol CSCI Topics in Software Engineering Web Infrastructure, Services, and Applications
CIS 375—Web App Dev II SOAP.
XML in the real world (2) SOAP. What is SOAP? ► SOAP stands for Simple Object Access Protocol ► SOAP is a communication protocol ► SOAP is for communication.
XML Technology in E-Commerce
SOAP SOAP is a protocol for accessing a Web Service. SOAP stands for Simple Object Access Protocol * SOAP is a communication protocol * SOAP is for communication.
Topics Acronyms in Action SOAP 6 November 2008 CIS 340.
Web Services Seminar: Service Description Languages
SE 370: Programming Web Services Week 4: SOAP & NetBeans Copyright © Steven W. Johnson February 1, 2013.
ESDSWG2011 – Semantic Web session Semantic Web Sub-group Session ESDSWG 2011 Meeting – Semantic Web sub-group session Wednesday, November 2, 2011 Norfolk,
OCLC Research TAI CHI Webinar 5/27/2010 A Gentle Introduction to Linked Data Ralph LeVan Sr. Research Scientist OCLC Research.
RDF Tutorial.
Semantic Web Introduction
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
SOAP Lee Jong-uk. Introduction What is SOAP? The features of SOAP The structure of SOAP SOAP exchange message model & message Examples of SOAP.
XML 6.7 XForms 6. Motivation HTML forms deliver the interactive WWW Forms are what make electronic transactions possible HTML forms are long overdue for.
 Copyright 2004 Digital Enterprise Research Institute. All rights reserved. SPARQL Query Language for RDF presented by Cristina Feier.
SPARQL Nikhil Rajguru. W3C Standards SPARQL Query Language for RDF SPARQL 1.1 Update SPARQL 1.1 Protocol SPARQL 1.1 Graph Store HTTP Protocol SPARQL.
SOAP Quang Vinh Pham Simon De Baets Université Libre de Bruxelles1.
RDF formats for Linked Data by Mabi Harandi. RDF is not a format, it is a model for data So: It will provide supports for different formats like :  Turtle.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
1 The HyperText Transfer Protocol: HTTP Nick Smith Stuart Alley Tara Tjaden.
 What is it ? What is it ?  URI,URN,URL URI,URN,URL  HTTP – methods HTTP – methods  HTTP Request Packets HTTP Request Packets  HTTP Request Headers.
CS 415 N-Tier Application Development By Umair Ashraf July 6,2013 National University of Computer and Emerging Sciences Lecture # 9 Introduction to Web.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
FTP (File Transfer Protocol) & Telnet
Wyatt Pearsall November  HyperText Transfer Protocol.
Getting Started with the ASP.NET Web API Dhananjay Kumar Infragistics Consultant Microsoft MVP
DP&NM Lab. POSTECH, Korea - 1 -Interaction Translation Methods for XML/SNMP Gateway Interaction Translation Methods for XML/SNMP Gateway Using XML Technologies.
Web HTTP Hypertext Transfer Protocol. Web Terminology ◘Message: The basic unit of HTTP communication, consisting of structured sequence of octets matching.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
SOAP & WSDL Aug’10 – Dec ’10. Introduction  SOAP - Simple Object Access protocol Protocol specification for exchanging structured information in the.
Copyright © 2013 Curt Hill SOAP Protocol for exchanging data and Enabling Web Services.
1 Seminar on Service Oriented Architecture Principles of REST.
1 Web Services Web and Database Management System.
Web Architecture update for WSAWG/WSDL TAG published Principles of the Web Contents: –Identifiers Most of the work –Formats Not much –Protocols Summary.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
RESTful Web Services What is RESTful?
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
SOAP, Web Service, WSDL Week 14 Web site:
Linked Data Publishing on the Semantic Web Dr Nicholas Gibbins
1 Mashup Workflow. 2 What We Have 3 Challenges with REST APIs * Only ask what its built to answer * No standard - must relearn each time * Opaque - no.
What’s Really Happening
HyperText Transfer Protocol HTTP v1.1 hussein suleman uct cs honours 2009.
Hypertext Transfer Protocol
Developing Linked Data Applications
Hypertext Transfer Protocol
Node.js Express Web Services
Hypertext Transfer Protocol
Hypertext Transport Protocol
WEB API.
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
HyperText Transfer Protocol
EE 122: HyperText Transfer Protocol (HTTP)
World Wide Web Uniform Resource Locator hostname [:port]/path
Chengyu Sun California State University, Los Angeles
Presentation transcript:

XPointer and HTTP Range A possible design for a scalable and extensible RDF Data Access protocol. Bryan Thompson Presented to the RDF Data Access Working Group

W3C XPointer Framework 1.0 Extensible semantics for URI fragment identifiers, e.g., #foo, #element(foo/2), #svgView(0,0,100,100), etc. –Each XPointer scheme is has its own QName. –W3C schemes are in the default namespace. But, the fragment identifier is NOT passed with a normal HTTP request. Therefore, the client must GET the representation and then applies an XPointer processor to interpret the fragment identifier. So, extensible, but not scalable.

XPointer specifies encoding for URI The XPointer Framework[1] specifies how a given XPointer expression must be encoded before it may be placed into an external form as the fragment identifier of a URI. So, we can choose any RDF query notation and the XPointer Framework will tell us how to represent that as the fragment identifier for a URI. rdf() – possible name for an XPointer scheme that this group could define triple store data access query language. [1]

Normal HTTP Request & Response Request: GET /myTripleStore HTTP/1.1 Host: Accept: application/rdf+xml Response: HTTP/ Ok Content-Type: application/rdf+xml This request asks for the entire triple store, serialized as RDF/XML.

The HTTP Range header The HTTP/1.1 protocol defines an extensible request header named Range The client specifies a range-unit, e.g., xpointer and a range-value, e.g., rdf(…). The server sends back only the identified sub- resources for the negotiated content type (or a status code indicating an appropriate error). So, this looks like ….

RDF data access w/ HTTP Range GET /myTripleStore HTTP/1.1 Host: Accept: application/rdf+xml Range: xpointer = rdf( SELECT (?x foaf:mbox ?mbox) WHERE (?x foaf:name "John Smith") (?x foaf:mbox ?mbox) USING foaf FOR ) _______________________________________________________ HTTP/ Ok Content-Type: application/rdf+xml

Pros and Cons. +1 Bookmarkable XPointer expression is just the URI fragment identifier, e.g., XPointer specifies how to encode the RDF query into the URI. +1 Scalable Only identified sub-resources are transmitted to the client. +1 Extensible DAWG can define an XPointer scheme for RDF, e.g., rdf(). Applications can define their own RDF query schemes. Same protocol can be used for graph update. +1 Content negotiation Client can request RDF/XML, N3, etc.

Pros and Cons +1 Low implementation burden Machine clients are fine, since this is easy with nearly any HTTP client library. Server implementation burden for protocol is small using existing HTTP platforms.

Pros and Cons. Does not use the query string: +1 Lots of applications already define a query interface. XPointer will not interfere with these existing interfaces, or even with other XPointer schemes. +1 Very long query expressions are Ok since query is sent using an HTTP request header. -1 Browsers cant do this unless they implement the protocol extension (by mapping the fragment identifier onto the HTTP Range request header).

Pros and Cons ? Intermediaries Impact on existing intermediaries should be evaluated (in the field). ? Caching Servers can use the Vary header to indicate to caches that they may use a given response for all requests with the same Range header field. Caching will be an issue if/when we consider graph updates since there are likely to be multiple queries that select the same set of triples.

What is a sub-resource for RDF? Probably a triple. Can be represented in many notations, e.g., RDF/XML, N3, etc. Client can request a specific notation (content negotiation). Closure – In order for the response to be well- formed in a given notation, it will need to be a set of triples, not just URIs or literals. These are query language design issues.