# Presentation: 175348

## Z39.88-2004The OpenURL Framework forContext-Sensitive Services

- Herbert Van de Sompel
- Los Alamos National Laboratory
- Thanks for the nice slides:
- Oliver Pesch
- Chief Architect, EBSCO Publishing

## Z39.88-2004

- Referent

- Referrer

- Requester

- Resolver

- ReferringEntity

- Namespace

- Registry

- OFI

- URI

- URI

- Profiles

- Encoding

- KEV

- XML

- Schema

- By Reference

- By Value

- Identifiers

- Metadata formats

- Service types

- HTTP

- HTTPS

- GET

- POST

- UTF-8

**Z39.88-2004**

## Topics

- What is a 0.1 OpenURL?
- Why the NISO OpenURL Standard?
- A tour of the NISO OpenURL Standard

## What is OpenURL 0.1 ?

- An accepted “standard” syntax for creating a link between an information source and a link resolver
- Pre-defines sets of data elements to use in describing an “item”
- Relies on HTTP protocol for transmission
- The **concept **of context-sensitive linking implemented for a specific class of resources: (some) scholarly assets

## OpenURL 0.1

## OpenURL 0.1

**INFORMATION**
**SOURCE**

- Link
- Resolver

- http://lib.example.edu/resolver.cgi

## OpenURL 0.1

**Journal:** Journal of Banking and Finance**ISSN:**     0378-4266**Date:      **2000-03**Volume:** 24**Issue:**    3**Page:     **395 **Author:**  Narayanan, Ranga**Title:**      Insider Trading and the Voluntary              Disclosure of Information by Firms

**genre**=article&**title**=Journal of Banking and Finance&**issn=**0378-4266&**date=**2000-03&**volume=**24&**issue=**3&**spage=**395&**aulast=**Narayanan&**aufirst=**Ranga&**atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms& **sid=***InfoSource*

**Title=**Journal of Banking and Finance&**issn=**0378-4266&**date=**2000-03&**volume=**24&**issue=**3&**spage=**395&**aulast=**Narayanan&**aufirst=**Ranga&**atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms&sid=InfoSource

- http://lib.example.edu/resolver.cgi

**Address**

## OpenURL 0.1

## OpenURL 0.1 - limitations

**genre=**article&**title=**Journal of Banking and Finance&**issn=**0378-4266&**date=**2000-03&**volume=**24&**issue=**3&**spage=**395&**aulast=**Narayanan&**aufirst=**Ranga&**atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms&**sid=***InfoSource*

- OpenURL 0.1 is tied to HTTP transport

- Only provides for key-value pair (HTTP GET or POST) representation of metadata.

- Allowable metadata genres and elements pre-defined with no means to define new ones

##   Why the NISO OpenURL Standard?

- Ensure wide acceptance
- Facilitate emergence of Context-Sensitive Service Applications beyond the original OpenURL 0.1 community
- Address specific OpenURL 0.1 shortcomings
- Support additional genres
- Support richer data formats
- Provide more complete context description
- Allow ability to send request “by reference”
- Support transports other than HTTP
- Provide an environment for OpenURL Applications to evolve in a controlled way

## A very generic specification that allows to implement OpenURL Applications
OpenURL Applications: networked applications that implement the concept of context-sensitive services for a certain class of resources
Based on generalization of original OpenURL ideas in D-Lib Bison-Fute paper

**OpenURL Applications**: networked applications that implement the **concept **of context-sensitive services for a certain class of resources
- Based on generalization of original OpenURL ideas in D-Lib Bison-Fute paper

**    ****NISO OpenURL Standard**

## Core Concept 1: The ContextObject
An “information package” that describes a referenced resource and the context within which it is being referenced
ContextObject has abstract definition (data model).  
The data model can be instantiated via different representations: KEV, XML, RDF, ...

- An “information package” that describes a _referenced resource_ and the context within which it is being referenced
- ContextObject has abstract definition (data model).
- The data model can be instantiated via different representations: KEV, XML, RDF, ...

**    ****NISO OpenURL Standard**

## Core Concept 2: Transport of a ContextObject
The idea is that ContextObjects will be transported in OpenURL Applications
Reason of transportation of a ContextObject: probably the request of services pertaining to the referenced resource 
Transport of ContextObject is decoupled from representation of ContextObject => Can transport ContextObjects over HTTP, HTTPS, SOAP, OAI-PMH, ...

- The idea is that ContextObjects will be _transported _in OpenURL Applications
- Reason of transportation of a ContextObject: probably the request of services pertaining to the _referenced resource_
- Transport of ContextObject is decoupled from representation of ContextObject => Can transport ContextObjects over HTTP, HTTPS, SOAP, OAI-PMH, ...

**    ****NISO OpenURL Standard**

## networked

- resource

## Deliverables from Committee AX

- 4 part standard
- Part 1: ContextObject & Transport
- Part 2: KEV ContextObject Format
- Part 3: XML ContextObject Format
- Part 4: OpenURL – HTTP(s) based - Transports
- Registry
- Community profiles: SAP-1 , SAP-2
- Implementation guidelines

## Part 1: ContextObject and Transports

- Defines the general framework for specifying OpenURL Applications
- Introduces the ContextObject data model
- Introduces what it takes to represent a ContextObject
- Introduces Transports
- Defines Community Profiles as a means to define OpenURL Applications
- Defines the OpenURL Registry

## ContextObject

- An information construct with descriptions of 6 Entities:
- Referent (the resource that is being referenced)
- Entities that make up the _context_ in which the Referent is referenced:
-  ReferringEntity (the resource that references the Referent)
-   Requester (the agent initiating the transportation of the ContextObject)
-  ServiceType (the purpose of transportation)
-  Resolver (the target of transportation)
-  Referrer (the system providing the ContextObject)

## reference

## ContextObject

- Entities of the ContextObject can be described by means of the 1-4 Descriptors:
-  Identifiers ~ many Namespaces
-  By-Value Metadata ~ many Metadata Formats
-  By-Reference Metadata ~ many Metadata Formats
-  Private Data

## Slide 20

## Slide 21

## reference

## reference

## ContextObject Format

- Standard introduces interesting formalization of a Format as a triple consisting of choice for:
- Serialization: i.e. KEV, XML
- Constraint Language: i.e. Z39.88-2004 Matrix, XML Schema Language
- Constraint Definition: i.e. an XML Schema created to convey book metadata

## ContextObject Format

- The triple-formalism is used for:
- Metadata Formats: to describe Entities
- ContextObject Format: to represent ContextObjects
- The triple-formalism is revealed in Registry Identifiers for Metadata Formats & ContextObject Formats:
- info:ofi/fmt:kev:mxt:book
- info:ofi/fmt:xml:xsd:ctx

## Slide 26

## reference

## Transports

- A representation of a ContextObject can be transported in different ways, e.g.
-  HTTP(S) GET/POST
-  SOAP
-  OAI-PMH
-  ...

## reference

## Registry

- At _[http://](http://www.openurl.info/registry/)__[www.openurl.info](http://www.openurl.info/registry/)__[/registry/](http://www.openurl.info/registry/)_
- Contains entries for all choices of the core components of the OpenURL Framework
- Registry comes pre-loaded to facilitate an OpenURL Application similar to OpenURL 0.1
- New entries can be registered
- Entries have Registry Identifiers in info:ofi/ namespace

## Slide 31

## Community Profiles

- A Community Profile summarizes the choices of core components of the OpenURL Framework for the creation of a specific OpenURL Application
- Machine readable, format defined by XML Schema
- Currently in Registry: info:ofi/pro:sap-1 , info:ofi/pro:sap-2

## scholarly

- information
- community

- xyz
- community

**http://www.openurl.info/registry/**

## Part 2: KEV ContextObject Format

- Represents a ContextObject as a list of ampersand-delimited Key/Encoded-Value pairs
- Similar to “payload” of OpenURL 0.1
- But extensible
- Format triple is (kev,mtx,ctx)
- Illustrated here for use in OpenURL Application similar to OpenURL 0.1

## Slide 35

## Slide 36

## OpenURL 0.1 example

**http://lib.example.edu/resolver.cgi?****genre=**article&**title=**Journal of Banking and Finance&**issn=**0378-4266&**date=**2000-03&**volume=**24&**issue=**3&**spage=**395&**aulast=**Narayanan&**aufirst=**Ranga&**atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms&**sid=***InfoSource*

**genre=**article &**title=**Journal of Banking and Finance &**issn=**0378-4266 &**date=**2000-03 &**volume=**24 &**issue=**3 &**spage=**395 &**aulast=**Narayanan &**aufirst=**Ranga &**atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms &**sid=***InfoSource*

**http://lib.example.edu/resolver.cgi?**

## And the ContextObject is...

**And the ContextObject is...**

- ServiceType

- Referent

- Resolver

- ReferringEntity

- Referrer

- Requester

- Administrative

- Version control, character encodings, timestamp, etc.

- Item being referenced.  E.G. bibliographic reference in full text article.

- “User” making the request

- Service creating the link. E.G. where the user found the reference.

- The item which contains the reference.  E.G. the article in which the bibliographic reference was found.

- The target of the link.  E.G. the link server of the user’s institution

- The desired services from the Resolver.  E.G. Full text, ILL, Abstract, etc.

## KEV ContextObject

**KEV ContextObject**

## KEV ContextObject

**genre**=article&**title**=Journal of Banking and Finance&**issn=**0378-4266&**date=**2000-03&**volume=**24&**issue=**3&**spage=**395&**aulast=**Narayanan&**aufirst=**Ranga&**atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms& **sid=***InfoSource*

**KEV ContextObject**

**Title=**Journal of Banking and Finance&**issn=**0378-4266&**date=**2000-03&**volume=**24&**issue=**3&**spage=**395&**aulast=**Narayanan&**aufirst=**Ranga&**atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms

**rfr_id**=info:sid/*InfoSource.com&*

**rfr_id**=info:sid/*InfoSource.com&*

- http://lib.example.edu/resolver.cgi

**Address**

## KEV ContextObject

**genre**=article&**title**=Journal of Banking and Finance&**issn=**0378-4266&**date=**2000-03&**volume=**24&**issue=**3&**spage=**395&**aulast=**Narayanan&**aufirst=**Ranga&**atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms

**KEV ContextObject**

**rfr_id**=info:sid/*InfoSource.com&*

**rft_val_fmt**=info:ofi/fmt:kev:mtx:journal&**rft.genre**=article&**rft.title**=Journal of Banking and Finance&**rft.issn=**0378-4266&**rft.date=**2000-03&**rft.volume=**24&**rft.issue=**3&**rft.spage=**395&**rft.aulast=**Narayanan&**rft.aufirst=**Ranga&**rft.atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms&

**rft_val_fmt**=info:ofi/fmt:kev:mtx:journal& **rft.genre**=article&**rft.title**=Journal of Banking and Finance&**rft.issn=**0378-4266&**rft.date=**2000-03&**rft.volume=**24&**rft.issue=**3&**rft.spage=**395&**rft.aulast=**Narayanan&**rft.aufirst=**Ranga&**rft.atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms&

- http://lib.example.edu/resolver.cgi

**res_id**=http://lib.example.edu/resolver.cgi

**res_id**=http://lib.example.edu/resolver.cgi

## KEV ContextObject

**KEV ContextObject**

**rfr_id**=info:sid/*InfoSource.com&*

**rft_val_fmt**=info:ofi/fmt:kev:mtx:journal& **rft.genre**=article&**rft.title**=Journal of Banking and Finance&**rft.issn=**0378-4266&**rft.date=**2000-03&**rft.volume=**24&**rft.issue=**3&**rft.spage=**395&**rft.aulast=**Narayanan&**rft.aufirst=**Ranga&**rft.atitle**=Insider Trading and the Voluntary           Disclosure of Information by Firms&

**res_id**=http://lib.example.edu/resolver.cgi

- http://lib.example.edu/resolver.cgi

**ctx_ver**=Z39.88-2004&**ctx_tim**=2003-10-26&

**ctx_ver**=Z39.88-2004&**ctx_tim**=2003-10-26&

## Example of KEV Metadata Format

**Example of KEV Metadata Format**

- info:ofi/fmt:kev:mtx:journal

- Describing a format

- To do with OpenURL

- Constraint language is a table (matrix).  This is the form used to describe the list of possible elements.  Other examples are DTD or XML Schema.

- The class of resources that can be described.

## Slide 44

## Part 3: XML ContextObject Format

- Represents a (list of) ContextObject(s) as an XML document
- Format triple is (xml,xsd,ctx)
- Far more expressive than KEV ContextObject Format

## Part 4: OpenURL Transports

- 3 types of HTTP(S)-based manners to Transport ContextObjects:
- For all representations of ContextObjects:
- By-Reference OpenURL
- By-Value OpenURL
- For KEV ContextObjects only:
- Inline OpenURL (very similar to OpenURL 0.1)
- Flag on OpenURL identifies ContextObject Format:
-   url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx

## KEV ContextObject, Inline OpenURL

**KEV ContextObject, Inline OpenURL**

- http://lib.example.edu/resolver.cgi

**http://lib.example.edu/resolver.cgi?****url_ver**=Z39.88-2004&**url_tim**=2003-10-25&**url_ctx_fmt**=info:ofi/fmt:kev:mtx:ctx&

**http://lib.example.edu/resolver.cgi?****url_ver**=Z39.88-2003&**url_tim**=2003-10-25&**url_ctx_fmt**=info:ofi/fmt:kev:mtx:ctx&

## KEV ContextObject, Inline OpenURL

**KEV ContextObject, Inline OpenURL**

## http://example.org/myResolver?url_ver=z39.88-2004&url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx
     &rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rfr_id=info:sid/myid.com:mydb&rft_id=info:doi/10.1126/science.275.5304.1320&rft_id=info:pmid/9036860&rft.genre=article &rft.atitle=Isolation of a common receptor for coxsackie B&rft.title=Science&rft.aulast=Bergelson&rft.auinit=J&rft.date=1997
	...

-      &rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rfr_id=info:sid/myid.com:mydb&rft_id=info:doi/10.1126/science.275.5304.1320&rft_id=info:pmid/9036860&rft.genre=article &rft.atitle=Isolation of a common receptor for coxsackie B&rft.title=Science&rft.aulast=Bergelson&rft.auinit=J&rft.date=1997
- 	...

**Inline OpenURL**

## http://example.org/myResolver?url_ver=z39.88-2004&url_ctx_fmt=info:ofi/fmt:xml:xsd:ctx
    &url_ctx_ref=http://www.example.org/my_ctx.xml

-     &url_ctx_ref=http://www.example.org/my_ctx.xml

**By-Reference OpenURL**

## http://example.org/myResolver?url_ver=z39.88-2004&url_ctx_fmt=info:ofi/fmt:xml:xsd:ctx
    &url_ctx_val=<?xml ....><ctx:context-object>.......

-     &url_ctx_val=<?xml ....><ctx:context-object>.......

**By-Value OpenURL**

**Would typically use this with HTTP(S) POST**

## Implementation Guidelines

- Centered on SAP-1
- For implementers
- Describe necessary bits of the standard
- How to create KEV OpenURLs
- Demonstrates the upgrade path from OpenURL 0.1 to OpenURL 1.0
- Includes hybrid OpenURLs

## New use cases?

## LANL aDORe repository

- repository

- OpenURL

- id_1

- id_2

- id_3

- id_1 . id_16

**Notes:**
Also something about requester here: PDA etc.

## travelling shopping cart?

## To summarize: Big Picture

## mountain of context-sensitive services

-  Architecture for context-sensitive services
-  Framework for the representation and transportation of contextual information ~ Registry
-  Allows for the emergence of OpenURL Applications
-  Address ...

-  Architecture for context-sensitive links in scholarly information environment
-  HTTP GET syntax for scholarly information
-  Address the appropriate copy problem

## mountain of context-sensitive services

## mountain of context-sensitive services