PROV-AQ: Provenance Access and Query Editors: Authors: Graham - - PowerPoint PPT Presentation

prov aq provenance access and query
SMART_READER_LITE
LIVE PREVIEW

PROV-AQ: Provenance Access and Query Editors: Authors: Graham - - PowerPoint PPT Presentation

An Overview on PROV-AQ: Provenance Access and Query Editors: Authors: Graham Klyne Luc Moreau Paul Groth Olaf Hartig Yogesh Simmhan James Myers Timothy Lebo Khalid Belhajjame Simon Miles Presentation at the Dagstuhl Seminar on


slide-1
SLIDE 1

An Overview on

PROV-AQ: Provenance Access and Query

Editors: Authors: Graham Klyne Luc Moreau Paul Groth Olaf Hartig Yogesh Simmhan James Myers Timothy Lebo Khalid Belhajjame Simon Miles

Presentation at the Dagstuhl Seminar on Principles of Provenance February 29, 2012

slide-2
SLIDE 2

An Overview on PROV-AQ 2

Purpose

 Describes how to

 locate,  retrieve, and  query

provenance information

 Guiding principle:

 Do not reinvent the wheel  Use standard Web protocols

slide-3
SLIDE 3

An Overview on PROV-AQ 3

Main Contributions

 Simple mechanisms for

discovery and retrieval

 More advanced

 discovery service and  query mechanisms

slide-4
SLIDE 4

An Overview on PROV-AQ 4

Outline

Key Concepts Simple Mechanisms Provenance Services Querying Provenance Information Open Issues

slide-5
SLIDE 5

An Overview on PROV-AQ 5

Key Concepts

 Resource*  Entity  Provenance information  Provenance URI  Entity URI

*Architecture of the World Wide Web, Volume One, W3C Rec.

slide-6
SLIDE 6

An Overview on PROV-AQ 6

Questions to be Addressed

 What is the provenance URI for provenance

information about a particular entity?

 What is the relevant entity URI used in some

provenance information?

 What if there is no provenance URI?  What if there is no entity URI?  Out of scope:

 Representation of provenance information  Management of provenance information

slide-7
SLIDE 7

An Overview on PROV-AQ 7

Outline

Key Concepts Simple Mechanisms Provenance Services Querying Provenance Information Open Issues

slide-8
SLIDE 8

An Overview on PROV-AQ 8

Entity URI and Provenance URI ...

… for resources accessed by HTTP

 Link header field* in the HTTP response

*defined in RFC 5988

HTTP/1.1 200 OK Content-Type: text/html Date: Fri, 24 Feb 2012 12:58:02 GMT Expires: Fri, 02 Mar 2012 12:57:52 GMT Link: http://example.org/prov/aboutX; rel="provenance"; anchor="http://example.org/X" Content-Length: 18556 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" type="text/css" href="main.css" /> <!-- page-specific style definitions --> <style type="text/css"> GET //example.org/X HTTP/1.1 Host: example.org Accept: text/html

slide-9
SLIDE 9

An Overview on PROV-AQ 9

Entity URI and Provenance URI ...

… for resources accessed by HTTP

 Link header field* in the HTTP response

*defined in RFC 5988

HTTP/1.1 200 OK Content-Type: text/html Date: Fri, 24 Feb 2012 12:58:02 GMT Expires: Fri, 02 Mar 2012 12:57:52 GMT Link: http://example.org/prov/aboutX; rel="provenance"; anchor="http://example.org/X" Content-Length: 18556 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" type="text/css" href="main.css" /> <!-- page-specific style definitions --> <style type="text/css">

Link: http://example.org/prov/aboutX; rel="provenance"; anchor="http://example.org/X"

GET //example.org/X HTTP/1.1 Host: example.org Accept: text/html

slide-10
SLIDE 10

An Overview on PROV-AQ 10

Entity URI and Provenance URI ...

… for resources accessed by HTTP

 Link header field* in the HTTP response

*defined in RFC 5988

HTTP/1.1 200 OK Content-Type: text/html Date: Fri, 24 Feb 2012 12:58:02 GMT Expires: Fri, 02 Mar 2012 12:57:52 GMT Link: http://example.org/prov/aboutX; rel="provenance"; anchor="http://example.org/X" Content-Length: 18556 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" type="text/css" href="main.css" /> <!-- page-specific style definitions --> <style type="text/css">

Link: http://example.org/prov/aboutX; rel="provenance"; anchor="http://example.org/X"

Entity URI (optional)

GET //example.org/X HTTP/1.1 Host: example.org Accept: text/html

Provenance URI

slide-11
SLIDE 11

An Overview on PROV-AQ 11

Embedding Provenance Links ...

… in representations of resources.

 Proposal for particular representation formats:

 HTML  RDF based (e.g. RDF/XML, Turtle, RDFa)

 Common mechanism for arbitrary

representations is out of scope

slide-12
SLIDE 12

An Overview on PROV-AQ 12

Outline

Key Concepts Simple Mechanisms Provenance Services Querying Provenance Information Open Issues

slide-13
SLIDE 13

An Overview on PROV-AQ 13

Functionality

 Provenance retrieval service

 Input: entity URI  Output: provenance information

 Provenance discovery service

 Input: entity URI  Output: provenance URI(s)

 Provided via a REST API

slide-14
SLIDE 14

An Overview on PROV-AQ 14

Service Discovery

 Simple mechanism

 … for resources accessed by HTTP:

 However, a general approach is out of scope

Link: Service-URI; rel="provenance-service"; anchor="Entity-URI"

slide-15
SLIDE 15

An Overview on PROV-AQ 15

Resources in the REST API

  • 1. Service description resource

 Accessible by dereferencing the Service-URI  How to construct URIs for other two resource types

  • 2. Provenance information resource

 Provides provenance information  Represented in any format (e.g. RDF based, XML)

  • 3. Provenance locations resource
slide-16
SLIDE 16

An Overview on PROV-AQ 16

Provenance Locations Resource

 Enumerates provenance URIs for

a particular entity

slide-17
SLIDE 17

An Overview on PROV-AQ 17

Provenance Locations Resource

{ "uri": "http://example.org/X", "provenance": [ "http://prov.example.org/aboutX", "http://example.com/prov?id=X" ] }

 Enumerates provenance URIs for

a particular entity

 Example representation in JSON format

slide-18
SLIDE 18

An Overview on PROV-AQ 18

Provenance Locations Resource

{ "uri": "http://example.org/X", "provenance": [ "http://prov.example.org/aboutX", "http://example.com/prov?id=X" ] } @prefix prov: <@@TBD@@#> . <http://example.org/X> a prov:Entity ; prov:hasProvenance <http://prov.example.org/aboutX> ; prov:hasProvenance <http://example.com/prov?id=X> .

 Enumerates provenance URIs for

a particular entity

 Example representation in JSON format  Example representation in Turtle (i.e.RDF data)

slide-19
SLIDE 19

An Overview on PROV-AQ 19

Using the API ...

 Required: Entity-URI and Service-URI

  • 1. Obtain service description

(by dereferencing Service-URI)

  • 2. Extract URI template for locations resources
  • 3. Form Provenance-Locations-URI

(by instantiating the template with Entity-URI)

  • 4. Obtain provenance locations resource

(by dereferencing Provenance-Locations-URI)

  • 5. Extract relevant Provenance-URIs

… to retrieve provenance URI(s)

slide-20
SLIDE 20

An Overview on PROV-AQ 20

Outline

Key Concepts Simple Mechanisms Provenance Services Querying Provenance Information Open Issues

slide-21
SLIDE 21

An Overview on PROV-AQ 21

Provenance Query Services

 Alternative for cases where aforementioned

mechanisms are insufficient

 PROV-AQ recommends SPARQL

 Query language for RDF data  Protocol for SPARQL query processing services

slide-22
SLIDE 22

An Overview on PROV-AQ 22

Example Queries

 Use case: unknown entity URI  Use case: ask for a particular piece of

provenance information only

SELECT ?provenance_uri WHERE { ?entity prism:doi "1234.5678" ; prov:hasProvenance ?provenance_uri . } SELECT ?start_time WHERE { <http://example.org/X> prov:wasGeneratedBy ?act . ?act prov:startedAt ?start . ?start prov:inXSDDateTime ?start_time . }

slide-23
SLIDE 23

An Overview on PROV-AQ 23

Outline

Key Concepts Simple Mechanisms Provenance Services Querying Provenance Information Open Issues

slide-24
SLIDE 24

An Overview on PROV-AQ 24

Main Open Issues

 Entities disjoint from Activities in PROV-DM  Remove service descriptions (i.e. prescribe a

particular template)?

 Simplifies the process of using provenance services

 Embedding provenance information directly

 Best practice recommendation for HTML: RDFa  General approach is out of scope

{ "provenance_service_uri": "http://example.org/PS/", "provenance_locations_template": "http://ps.example.org/loc?uri={uri}" }

slide-25
SLIDE 25

An Overview on PROV-AQ 25

Summary

 Main contributions:

 Simple mechanisms for retrieving and

discovering provenance information

 More advanced discovery service and

query mechanisms

slide-26
SLIDE 26

An Overview on PROV-AQ 26

These slides have been created by Olaf Hartig

http://olafhartig.de

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License

http://creativecommons.org/licenses/by-sa/3.0/

slide-27
SLIDE 27

An Overview on PROV-AQ 27

Backup Slides

slide-28
SLIDE 28

An Overview on PROV-AQ 28

Resources Represented as HTML

 <link> elements in the <head> section

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="provenance" href="http://example.org/prov/aboutX" /> <link rel="anchor" href="http://example.org/X" /> <link rel="stylesheet" type="text/css" href="main.css" /> <title>Welcome</title> </head> <body> <h1>Welcome to this Web page</h1> <p>

slide-29
SLIDE 29

An Overview on PROV-AQ 29

Provenance Service URI ...

… for resources accessed by HTTP

Link: Service-URI; rel="provenance-service"; anchor="Entity-URI"

slide-30
SLIDE 30

An Overview on PROV-AQ 30

Resources Represented as HTML

 <link> elements in the <head> section

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="provenance" href="http://example.org/provOfX" /> <link rel="anchor" href="http://example.org/X" /> <link rel="stylesheet" type="text/css" href="main.css" /> <title>Welcome</title> </head> <body> <h1>Welcome to this Web page</h1> <p>

Indicating a provenance service:

<link rel="provenance-service" href="Service-URI" />

slide-31
SLIDE 31

An Overview on PROV-AQ 31

Service Description

 Provides templates for URIs of

 provenance locations resources and/or  provenance information resources

slide-32
SLIDE 32

An Overview on PROV-AQ 32

Service Description

 Provides templates for URIs of

 provenance locations resources and/or  provenance information resources

 Example description represented in JSON

{ "provenance_service_uri": "http://example.org/PS/", "provenance_locations_template": "http://ps.example.org/loc?uri={uri}", "provenance_content_template": "http://example.org/PS/prov?uri={uri}" }

slide-33
SLIDE 33

An Overview on PROV-AQ 33

Service Description

 Provides templates for URIs of

 provenance locations resources and/or  provenance information resources

 Example description represented in JSON

 Provenance locations resource for

http://example.org has URI: { "provenance_service_uri": "http://example.org/PS/", "provenance_locations_template": "http://ps.example.org/loc?uri={uri}", "provenance_content_template": "http://example.org/PS/prov?uri={uri}" } http://ps.example.org/loc?uri=http%3A%2F%2Fexample.org

slide-34
SLIDE 34

An Overview on PROV-AQ 34

Using the API ...

 Required: Entity-URI and Service-URI

  • 1. Obtain service description

(by dereferencing Service-URI)

  • 2. Extract URI template for information resources
  • 3. Form Provenance-URI

(by instantiating the template with Entity-URI)

  • 4. Obtain provenance information resource

(by dereferencing Provenance-URI)

  • 5. Extract relevant provenance information

… to retrieve provenance information