2. Registry
Referrer
Referring Entity By Reference
Schema
Namespace POST
UTF-8 KEV
ContextObject
Profiles
OpenURL 1.0
OpenURL 1.0
Service types
Referent URI
Metadata
HTTPS
ORI formats
By Value Resolver
Identifiers
URI XML
GET
HTTP
Requester Encoding
3. Overview
Why OpenURL 1.0
Definitions
ContextObject and related “entities”
San Antonio Profile
Becoming a compliant source
4. OpenURL 0.1 example
http://example.org/myResolver? BaseURL
sid=myid:mydb
&id=doi:10.1126/science.275.5304.1320 Source
&id=pmid:9036860
&genre=article
&atitle=Isolation of a common receptor
for coxsackie B Item
&title=Science
&aulast=Bergelson
&auinit=J
&date=1997
&volume=275
&spage=1320
&epage=1323
5. Why OpenURL 1.0
Represent new genres
Richer metadata options
Version control
More complete context description
Ability to send request “by reference”
Extensible
6. New genres
OpenURL 0.1 (genres) OpenURL 1.0 (format/genres)
Journal Journal
Article Journal
Preprint
Issue
Article
Book Conference
Book item Proceeding
Conference Preprint
Proceeding Book
Book
Book item
Report
Document
Dissertation
Patent
Others can be registered
7. Richer metadata formats
OpenURL 0.1 OpenURL 1.0
Key-value pairs Key-value pairs
Limited pre-set list of XML
elements MARC
Other formats can be
registered
Options for element
sets
New data elements can
be registered
8. Describing “context”
Up to six entities to describe item and context
Referent (item being referenced)
Referrer (site sending request)
Resolver (site request is being sent to)
Requester (user making request)
Referring entity (article containing reference)
Service type (what the resolver should do)
9. New terminology
ContextObject
An information construct that binds a
description of a primary entity -- the
referenced resource -- together with
descriptions of entities that indicate the
context of the reference to the referenced
resource.
10. New terminology
Entity
One of the six possible constituents of a
ContextObject: Referent, Requester,
Referrer, Resolver, ReferringEntity, or
ServiceType
11. New terminology
Format
A concrete method of expression for a class
of information constructs. It is a triple
comprising:
(1) a Physical Representation;
(2) a Constraint Language; and
(3) a set of constraints expressed in that
Constraint Language
12. Example of metadata “Format”
ori:fmt:kev:mtx:journal
The actual set of elements that
To do with have been defined.
OpenURL
Constraint language is a table (matrix).
This is the form used to describe the list
Describing a of possible elements. Other examples
format are DTD or XML Schema.
Physical element representation
is key-encoded- values. E.G.
aulast=Smith
15. Using Format in a sentence
http://example.org/myResolver
ContextObject
?url_ver=z39.88-2003
format
&url_ctx_fmt=ori:fmt:kev:mtx:ctx
&rft_val_fmt=ori:fmt:kev:mtx:journal Metadata
format
&rfr_id=ori:rfr:myid.com:mydb
&rft_id=ori:doi:10.1126/science.275.5304.1320
&rft_id=ori:pmid:9036860
16. New terminology
Transport
A Transport is a network protocol and the
method in which it is used to convey
representations of ContextObjects.
OpenURL is about “transporting”
ContextObjects using HTTP GET and POST.
17. New terminology
By-Value OpenURL
An OpenURL in which all of the metadata
and identifiers for the entities are included as
part of the request.
18. Example of By-Value OpenURL
http://example.org/myResolver
?url_ver=z39.88-2003
&url_ctx_fmt=ori:fmt:kev:mtx:ctx
&rft_val_fmt=ori:fmt:kev:mtx:journal
&rfr_id=ori:rfr:myid.com:mydb
&rft_id=ori:doi:10.1126/science.275.5304.1320
&rft_id=ori:pmid:9036860
&rft.genre=article &atitle=Isolation of a common receptor
for coxsackie B
&rft.title=Science
&rft.aulast=Bergelson
&rft.auinit=J
&rft.date=1997
…
19. New terminology
By-Reference OpenURL
An OpenURL in which the initial request contains a
pointer to the ContextObject being referenced.
Optionally, an entity within a ContextObject can be
pointed to.
The ContextObject can be created as a stand-alone
file on a web server, then referred to. Can reduce
size of web pages and amount of data transferred.
20. Example of By-Value OpenURL
http://example.org/myResolver
?url_ver=z39.88-2003
&url_ctx_fmt=ori:fmt:kev:mtx:ctx
&url_ctx_ref=uri:http://www.example.org/objects/1234.txt
Network location of
ContextObject
Declares that this ContextObject (ctx)
is being passed by reference (ref)
21. ContextObject
Describes item and its context
Uses up to six entities: Referent, Resolver,
Referrer, Requester, Referring Entity and
Service Type
Can be described separately from its
transport
OpenURL is the HTTP GET or POST
transport of a ContextObject
22. OpenURL 0.1 example
http://example.org/myResolver? Resolver
sid=myid:mydb
&id=doi:10.1126/science.275.5304.1320 Referrer
&id=pmid:9036860
&genre=article
&atitle=Isolation of a common receptor
for coxsackie B Referent
&title=Science
&aulast=Bergelson
&auinit=J
&date=1997
&volume=275
&spage=1320
&epage=1323
23. New Entities in OpenURL 1.0
Requester
Allow the identity of the user to be passed to the resolver.
Identification not authentication
Referring Entity
For links from references in other articles
Identity of article where reference found in can be
important context
Don’t create link back to this article
Use information about that article to tailor results
Service Type
Define what “services” to present the user.
Full text, interlibrary loan, abstract record, etc.
24. Why separate ContextObject
from its transport?
Assumptions:
Notion of describing an item and its context has
value beyond simple HTML-based linking
applications of today
Communication between link resolvers
reasonable (see Jenny’s examples)
Using Microsoft SOAP or other protocols can be
more efficient in some applications
Conclusion:
Separating standard into parts allows more
flexible options for future growth.
25. Dealing with complexity
OpenURL 0.1 was simple because it was
hardwired
ContextObjects OpenURL 1.0 is extensible
and flexible and much more abstract
Many options for implementation and
extension can lead to confusion and
interoperability problems
Community Profiles introduced to simplify
implementation
26. San Antonio Profile
Represents view of scholarly information community
List of choices for implementing OpenURL
Framework. For example:
Physical Representations (KEV, XML, etc.)
Constraint languages (Matrix, Schema, etc.)
ContextObject Format
Metadata formats (Journal, Book, etc.)
Transports (HTTP GET and PUT)
Provides a roadmap for building compliant sources
and targets
27. Implementing OpenURL 1.0
Goals
Keep it simple
Use data already available (tagged metadata,
DOI)
Stick to widely accepted approaches
28. Implementing OpenURL 1.0
Recommended approach to take:
Base on San Antonio Profile
Start with key-encoded-values for metadata
Inline representation of keys and values
Tag data elements according to the registered
metadata formats (e.g. ori:fmt:kev:mtx:journal)
Stick to the required entities
Resolver (baseURL)
Referent
Referrer
Create links on-the-fly
31. Building an OpenURL
http://resolver.example.org? Add the referrer
url_ver=z39.88-2003
&url_ctx_fmt=ori:fmt:kev:mtx:ctx
&rfr_id=ori:rfr:publisher.com
Identifier for referrer
OpenURL “Referrer” Domain of
referrer
The tag for
Referrer (rfr) ID
32. Building an OpenURL
http://resolver.example.org? Add the referent
url_ver=z39.88-2003
&url_ctx_fmt=ori:fmt:kev:mtx:ctx
&rfr_id=ori:rfr:publisher.com
&rft_id=ori:doi:10.1126/science.275.5304.1320
Include identifiers
&rft_id=ori:pmid:9036860
33. Building an OpenURL
http://resolver.example.org? Add the referent
url_ver=z39.88-2003
&url_ctx_fmt=ori:fmt:kev:mtx:ctx
&rfr_id=ori:rfr:publisher.com
&rft_id=ori:doi:10.1126/science.275.5304.1320
&rft_id=ori:pmid:9036860
&rft_val_fmt=ori:fmt:kev:mtx:journal Declare the
metadata format
Shows referent (rft) format Indicates we are using key-
(fmt) is by value (val) encoded-values (kev) as
defined in the “journal” matrix
(mtx) in the registry.
34. Building an OpenURL
http://resolver.example.org? Add the referent
url_ver=z39.88-2003
&url_ctx_fmt=ori:fmt:kev:mtx:ctx
&rfr_id=ori:rfr:publisher.com
&rft_id=ori:doi:10.1126/science.275.5304.1320
&rft_id=ori:pmid:9036860
&rft_val_fmt=ori:fmt:kev:mtx:journal
&rft.genre=article Add the metadata
&rft.atitle=Isolation of a common receptor for … elements
&rft.jtitle=Science
&rft.aulast=Bergelson Substitute actual
values for the item
&rft.auinit=J
being referenced
…
35. Where to add OpenURL links
Citation/Abstract display
OpenURL would allow the user’s institution to
control access to alternate copy’s, order through
document delivery, etc.
List of references for article
Must have separately tagged elements
Allow user to access to appropriate copy for
referenced item
38. When to add OpenURL links
Show links if a customer has a link resolver
The customer-specific BaseURL – the link to
their resolver – is primary building block of
OpenURL
Allow customer to indicate they have a
resolver:
Store BaseURL as customer-specific data in an
admin option
Use of a cookie to indicate BaseURL
(http://www.sfxit.com/openurl/cookiepusher.html)
39. References
The OpenURL Framework for Context-Sensitive Services
http://library.caltech.edu/openurl/PubComDocs/StdDocs/Part1-PC-200305
The OpenURL Framework for Context-Sensitive Services – Part 2
http://library.caltech.edu/openurl/PubComDocs/StdDocs/Part2-PC-200305
The San Antonio Level 1 Community Profile (SAP1): Implementation
Guidelines
http://library.caltech.edu/openurl/PubComDocs/StdDocs/SAP1_Guidelines
Registry for the OpenURL Framework - ANSI/NISO Z39.88-2003
http://alcme.oclc.org/openurl/servlet/OAIHandler?verb=ListSets
Cookie Pusher Document
http://www.sfxit.com/openurl/cookiepusher.html
OpenURL 0.1 http://www.sfxit.com/openurl/openurl.html