400 likes | 490 Views
SSP 25 th Annual Meeting: “Navigating Change” Linking Seminar. Implementing OpenURL 1.0 (Updated Oct-31-2003 to match standard sent to ballot) Oliver Pesch Chief Architect, EBSCO Publishing opesch@epnet.com. Registry. Referrer. Referring Entity. By Reference. Schema. Namespace. POST.
E N D
SSP 25th Annual Meeting: “Navigating Change” Linking Seminar Implementing OpenURL 1.0(Updated Oct-31-2003 to match standard sent to ballot) Oliver Pesch Chief Architect, EBSCO Publishing opesch@epnet.com
Registry Referrer Referring Entity By Reference Schema Namespace POST UTF-8 KEV ContextObject OpenURL 1.0 Profiles Service types Referent URI Metadata formats HTTPS ORI By Value Resolver Identifiers URI XML GET HTTP Requester Encoding
Overview • Why OpenURL 1.0 • Definitions • ContextObject and related “entities” • San Antonio Profile • Becoming a compliant source
OpenURL 0.1 example BaseURL http://example.org/myResolver? sid=myid:mydb &id=doi:10.1126/science.275.5304.1320 &id=pmid:9036860 &genre=article &atitle=Isolation of a common receptor for coxsackie B &title=Science &aulast=Bergelson &auinit=J &date=1997 &volume=275 &spage=1320 &epage=1323 Source Item
Why OpenURL 1.0 • Represent new genres • Richer metadata options • Version control • More complete context description • Ability to send request “by reference” • Extensible
OpenURL 0.1 (genres) Journal Article Preprint Book Book item Conference Proceeding OpenURL 1.0 (format/genres) Journal Journal Issue Article Conference Proceeding Preprint Book Book Book item Report Document Dissertation Patent Dublin CORE Others can be registered New genres
OpenURL 0.1 Key-value pairs Limited pre-set list of elements OpenURL 1.0 Key-value pairs XML MARC Other formats can be registered Options for element sets New data elements can be registered Richer metadata formats
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)
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.
New terminology Entity One of the six possible constituents of a ContextObject: Referent, Requester, Referrer, Resolver, ReferringEntity, or ServiceType
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
Example of metadata “Format” info:ofi/fmt:kev:mtx:journal The actual set of elements that have been defined. 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. Describing a format Physical element representation is key-encoded- values. E.G. aulast=Smith
Metadata formats in registry Info:ofi/fmt:kev:mtx:journal
ContextObject format Metadata format Using Format in a sentence http://example.org/myResolver?url_ver=z39.88-2003&url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx&rft_val_fmt=info:ofi/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
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.
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.
Example of By-Value 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 &atitle=Isolation of a common receptor for coxsackie B &rft.title=Science &rft.aulast=Bergelson &rft.auinit=J &rft.date=1997 …
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.
Example of By-Value OpenURL http://example.org/myResolver?url_ver=Z39.88-2004&url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx &url_ctx_ref=http://www.example.org/objects/1234.txt Network location of ContextObject Declares that this ContextObject (ctx) is being passed by reference (ref)
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
OpenURL 0.1 example Resolver http://example.org/myResolver? sid=myid:mydb &id=doi:10.1126/science.275.5304.1320 &id=pmid:9036860 &genre=article &atitle=Isolation of a common receptor for coxsackie B &title=Science &aulast=Bergelson &auinit=J &date=1997 &volume=275 &spage=1320 &epage=1323 Referrer Referent
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.
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.
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
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
Implementing OpenURL 1.0 Goals • Keep it simple • Use data already available (tagged metadata, DOI) • Stick to widely accepted approaches
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
http://resolver.example.org? Start with the BaseURL Building an OpenURL
http://resolver.example.org? url_ver=Z39.88-2004 &url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx Add the fixed elements Building an OpenURL Version Declare format for ContextObject
http://resolver.example.org? url_ver=Z39.88-2004 &url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx &rfr_id=info:sid/publisher.com Add the referrer Building an OpenURL Identifier for referrer OpenURL “Source ID” Domain of referrer The tag for Referrer (rfr) ID
http://resolver.example.org? url_ver=Z39.88-2004 &url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx &rfr_id=info:sid/publisher.com &rft_id=info:doi/10.1126/science.275.5304.1320 &rft_id=info:pmid/9036860 Add the referent Building an OpenURL Include identifiers
http://resolver.example.org? url_ver=Z39.88-2004 &url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx &rfr_id=info:sid/publisher.com &rft_id=info:doi/10.1126/science.275.5304.1320 &rft_id=info:pmid/9036860 &rft_val_fmt=info:ofi/fmt:kev:mtx:journal Add the referent Building an OpenURL Declare the metadata format Shows referent (rft) format (fmt) is by value (val) Indicates we are using key-encoded-values (kev) as defined in the “journal” matrix (mtx) in the registry.
http://resolver.example.org? url_ver=Z39.88-2004 &url_ctx_fmt=info:ofi/fmt:kev:mtx:ctx &rfr_id=info:sid/publisher.com &rft_id=info:doi/10.1126/science.275.5304.1320 &rft_id=info:pmid/9036860 &rft_val_fmt=info:ofi/fmt:kev:mtx:journal &rft.genre=article &rft.atitle=Isolation of a common receptor for … &rft.jtitle=Science &rft.aulast=Bergelson &rft.auinit=J … Add the referent Building an OpenURL Add the metadata elements Substitute actual values for the item being referenced
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
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)
References • The OpenURL Framework for Context-Sensitive Services http://library.caltech.edu/openurl/PubComDocs/StdDocs/Part1-PC-20030513.pdf • The OpenURL Framework for Context-Sensitive Services – Part 2 http://library.caltech.edu/openurl/PubComDocs/StdDocs/Part2-PC-20030513.pdf • The San Antonio Level 1 Community Profile (SAP1): Implementation Guidelines http://library.caltech.edu/openurl/PubComDocs/StdDocs/SAP1_Guidelines-20030425.pdf • 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
Thank you Oliver Pesch opesch@epnet.com