<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.code4lib.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=68.50.223.109</id>
		<title>Code4Lib - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.code4lib.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=68.50.223.109"/>
		<link rel="alternate" type="text/html" href="https://wiki.code4lib.org/Special:Contributions/68.50.223.109"/>
		<updated>2026-06-25T14:29:30Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://wiki.code4lib.org/index.php?title=ServiceResponse_data_structures_and_generation&amp;diff=6910</id>
		<title>ServiceResponse data structures and generation</title>
		<link rel="alternate" type="text/html" href="https://wiki.code4lib.org/index.php?title=ServiceResponse_data_structures_and_generation&amp;diff=6910"/>
				<updated>2011-01-24T00:33:13Z</updated>
		
		<summary type="html">&lt;p&gt;68.50.223.109: /* Statelessness */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Part of [[Umlaut Technical Overview]]&lt;br /&gt;
&lt;br /&gt;
==ServiceResponse and related data structures==&lt;br /&gt;
&lt;br /&gt;
Before talking about how the services generate data, we should talk about the data format of a [http://umlaut.rubyforge.org/api/classes/ServiceResponse.html ServiceResponse].  A ServiceResponse is basically a unit of information generated by a Service, generally for display somewhere on the link resolver menu page. For example, there might be a ServiceResponse representing a fulltext link, a help link, or an abstract. ServiceResponses almost always link out somewhere, along with providing other data for display. &lt;br /&gt;
&lt;br /&gt;
The ServiceResponse entity has a few 'standard' properties (display_text, url, notes), but also a property, service_data, consisting of a serialized hash for holding arbitrary key/value information. Different service types might require different key/values here.  The [] operator on ServiceResponse conveniently allows you to store arbitrary key/value information in this property (and also access/set the 'built-in' properties). For appropriately loose coupling between data stored, service generating it, and view, we define some conventions for what key/value pairs are used for what purposes in each response type, in comments on [http://umlaut.rubyforge.org/api/classes/ServiceResponse.html ServiceResponse class definition]. &lt;br /&gt;
&lt;br /&gt;
A ServiceResponse also records which Service generated it, using that Service's service_id/name as defined in config/umlaut_config/services.yml, and generally retrievable from the ServiceList.&lt;br /&gt;
&lt;br /&gt;
So what do we mean by a 'service type'?  The list of all valid service types is defined in the ServiceTypeValue table. Each ServiceTypeValue has a one-word internal identifier token (name), a display_name for user presentation, and optionally a display_name_pluralized (to over-ride standard Rails pluralization). The values in this table are initialized from db/orig_fixed_data/service_type_values.yml when you run rake umlautdb:load_initial_data. We intend the local implementer to be able to create locally defined ServiceTypeValues too, if necessary.  &lt;br /&gt;
&lt;br /&gt;
ServiceTypeValue uses the acts_as_enumerated plug-in to conveniently allow the developer to refer to an individual ServiceTypeValue by name:  ServiceTypeValue[:fulltext] ==&amp;gt; the ServiceTypeValue object with name == 'fulltext'.  acts_as_plugin does efficient caching.&lt;br /&gt;
&lt;br /&gt;
So obviously which ServiceTypeValue a given ServiceResponse is intended for needs to be registered somewhere. But you won't find it in ServiceResponse, which might be confusing at first. In fact, there's a somewhat confusingly named three-way join object called ServiceType, which ties together:&lt;br /&gt;
* a ServiceResponse&lt;br /&gt;
* a ServiceTypeValue&lt;br /&gt;
* a Request&lt;br /&gt;
&lt;br /&gt;
This architecture theoretically allows:&lt;br /&gt;
* One ServiceResponse to belong to multiple Requests (ServiceResponse cacheing accross requests/sessions). &lt;br /&gt;
* One ServiceResponse to be assigned ''multiple'' ServiceTypeValues and thus listed multiple times with a given Request. &lt;br /&gt;
&lt;br /&gt;
In fact, Umlaut does not currently use ServiceResponse caching across requests; it turned out to be tricky to get right without clear gain. And very few (if any?) current services register the same ServiceResponse to a request with multiple ServiceTypeValues. But, the architecture is there to support it if needed in the future. &lt;br /&gt;
&lt;br /&gt;
This data structure architecture ends up somewhat confusing (and ServiceType is probably not a clear name for that three-way join) but there are usually convenience methods defined to avoid the complexity; they should be used. See for example (tbd).&lt;br /&gt;
&lt;br /&gt;
[http://bibwild.wordpress.com/files/2008/02/umlaut-serviceresponse.jpg Data structure diagram] Trying to figure out how to make this display inline, sorry.&lt;br /&gt;
&lt;br /&gt;
==Obligations of Service logic==&lt;br /&gt;
&lt;br /&gt;
What you need to know to write a new Service. How to generate data, and callback methods service logic can or must provide. &lt;br /&gt;
&lt;br /&gt;
Recall that an umlaut &amp;quot;service&amp;quot; is defined in config/umlaut_config/services.yml to be a particular class holding the service logic, and some configuration parameters. &lt;br /&gt;
&lt;br /&gt;
That class holding the service logic is called a &amp;quot;service adaptor&amp;quot;, or somewhat ambiguously, sometimes times just a &amp;quot;service&amp;quot;. Service adaptors live in lib/service_adaptors, and extend [http://umlaut.rubyforge.org/api/classes/Service.html Service]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Statelessness===&lt;br /&gt;
&lt;br /&gt;
(Not sure this is actually true any longer, working to make it not so. jrochkind jan 2010). Service logic should generally be written to be state-less. The same Service object, defined in services.yml, is initialized once and generally re-used for the life of an application instance (cached by ServiceList).  So any state you store can end up persisting from request to request and session to session, which you probably don't intend. Umlaut architecture for background services also involves threads and forks, and while there's normally no reason a given service object would be in two threads simultaneously, better safe than sorry. It's safest to store no non-universal state in the service object.&lt;br /&gt;
&lt;br /&gt;
===Disclosure methods===&lt;br /&gt;
&lt;br /&gt;
A service adaptor must define [http://umlaut.rubyforge.org/api/classes/Service.html#service_types_generated service_types_generated()] to return an Array of ServiceTypeValues constituting the types of ServiceResponses the service&lt;br /&gt;
&lt;br /&gt;
A service adaptor may optionally list some required configuration params. If they are not supplied, an exception will be thrown when the service is initialized from services.yml. eg:&lt;br /&gt;
: required_config_params :api_key, :base_url&lt;br /&gt;
&lt;br /&gt;
===The handle method===&lt;br /&gt;
&lt;br /&gt;
The heart of a typical service is in implementing the [http://umlaut.rubyforge.org/api/classes/Service.html#handle handle] method. When Umlaut wants a service to do it's thing, Umlaut will pass the request in, and it's up to the Service to do it's work. Note that while the individual umlaut request is passed into handle() as an argument for legacy purposes, it's also available from Service#request at any time, the argument isn't really necessary. &lt;br /&gt;
&lt;br /&gt;
The service can examine all metadata from the request, and even examine ServiceResponses generated by other services, and the status of other services in progress or finished. (See [http://umlaut.rubyforge.org/api/classes/Request.html Request#dispatched_services], Request#dispatched, Request#services_in_progress, etc.)&lt;br /&gt;
&lt;br /&gt;
The service can then enhance any metadata if desired (likely data in [http://umlaut.rubyforge.org/api/classes/Referent.html Referent], from Request#referent). &lt;br /&gt;
&lt;br /&gt;
The service can create one or more ServiceResponses. A ServiceResponse normally represents a discrete package of data that will be displayed on some part of the resolve menu. ServiceResponses should generally be created with the convenience method [http://umlaut.rubyforge.org/api/classes/Request.html Request]#add_service_response.  &lt;br /&gt;
&lt;br /&gt;
The add_service_response call has you specify the particular service class, the ServiceTypeValue, and arbitrary key value pairs as appropriate/conventional for the given time. For conventions on these key/value pairs, see [http://umlaut.rubyforge.org/api/classes/ServiceResponse.html ServiceResponse]. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
request.add_service_response(:service=&amp;gt;self,&lt;br /&gt;
                            :service_type_value =&amp;gt; :cover_image,&lt;br /&gt;
                            :display_text =&amp;gt; 'Cover Image',&lt;br /&gt;
                            :key=&amp;gt;size,&lt;br /&gt;
                            :url =&amp;gt; img.inner_html,&lt;br /&gt;
                            :asin =&amp;gt; asin,&lt;br /&gt;
                            :size =&amp;gt; size )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Service code is also responsible for registering a DispatchedService object with the completion state of the service. This should be done with the convenience method [http://umlaut.rubyforge.org/api/classes/Request.html Request]#dispatched .  If the service throws an uncaught exception, Umlaut itself will register a DispatchedService with status FailedFatal. But otherwise, the service is responsible for registering a completion status, or Umlaut may not realize the service is complete and continue running it over and over again, or reporting it as timed out.&lt;br /&gt;
&lt;br /&gt;
===callback methods===&lt;br /&gt;
&lt;br /&gt;
The Service can play an interactive role with the view elements of Umlaut in determining how to display the ServiceResponse and how to generate an external url for it if the user clicks on it. A Service doesn't need to do this--it can simply include properties in generated ServiceResponses for the conventional keys mentioned in [http://umlaut.rubyforge.org/api/classes/ServiceResponse.html ServiceResponse],  including a pre-generated url in the :url property. &lt;br /&gt;
&lt;br /&gt;
However, for more complicated processing (including not generating urls until the point-of-need when a user actually clicks on one), callback methods can instead be implemented. &lt;br /&gt;
&lt;br /&gt;
These callback methods include [http://umlaut.rubyforge.org/api/classes/Service.html]#view_data_from_service_type(service_type_obj) ,  #to_[name of service goes here] (eg #to_fulltext, or #to_help ), Service#response_to_view_data, and Service#response_url. &lt;br /&gt;
&lt;br /&gt;
For more information, see the Technical Overview section on view logic. (tbd).&lt;br /&gt;
&lt;br /&gt;
==Alternate Service Tasks==&lt;br /&gt;
&lt;br /&gt;
Services were originally designed to do one thing, as described above. However, it has been useful to use the service architecture to perform other 'tasks' too, basically other sorts of plug-ins. What plug-in 'task' a service will be called upon to perform depends on the task config property in services.yml, which defaults to 'standard' when empty. &lt;br /&gt;
&lt;br /&gt;
The other service task we have defined currently as 'link_out_filter'. A task:link_out_filter service will never have it's handle method called. Instead, it will have a [http://umlaut.rubyforge.org/api/classes/Service.html Service#]link_out_filter method defined, and called at the appropriate control point.  Examples of link_out_filter services are ezproxy, and sfx_backchannel_record.&lt;br /&gt;
&lt;br /&gt;
[[Category: Umlaut]]&lt;/div&gt;</summary>
		<author><name>68.50.223.109</name></author>	</entry>

	<entry>
		<id>https://wiki.code4lib.org/index.php?title=Umlaut_wishlist&amp;diff=6168</id>
		<title>Umlaut wishlist</title>
		<link rel="alternate" type="text/html" href="https://wiki.code4lib.org/index.php?title=Umlaut_wishlist&amp;diff=6168"/>
				<updated>2010-10-05T01:45:47Z</updated>
		
		<summary type="html">&lt;p&gt;68.50.223.109: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Umlaut]]&lt;br /&gt;
&lt;br /&gt;
Some actual current future plans:&lt;br /&gt;
&lt;br /&gt;
* Fix HathiTrust adapter to use new HT plugin, including not showing fulltext for just portions of a serial. (Or showing it in 'see also' section only)&lt;br /&gt;
&lt;br /&gt;
* Rails3&lt;br /&gt;
&lt;br /&gt;
* Internet Archive -- use new OL/IA api, discover search-inside-the-book. &lt;br /&gt;
&lt;br /&gt;
* WorldCat, use new api, link directly to nearest public library in 'see also' or elsewhere. &lt;br /&gt;
&lt;br /&gt;
* CiteSeerX -- source of 'cited by' info, AND, most excitingly, open access pre-prints. But their Atom/RSS feeds (the only API I could find) don't seem to advertise enough info to actually use these features. Would need to talk to developer team -- possibly offer to help code? Also not entirely clear how big their corpus actually is, if it's worth it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''old''' Desired or planned features. &lt;br /&gt;
&lt;br /&gt;
* Check for similar articles from: http://biosemantics.org/jane/faq.php#api&lt;br /&gt;
&lt;br /&gt;
* Full-text availability check from http://chroniclingamerica.loc.gov/ -- check by title/city, check by lccn (?), able to check particular dates/link to particular dates and/or pages of paper?&lt;br /&gt;
&lt;br /&gt;
* Allow a service_response to have a tree relationship to children, so for instance alternate versions of a text can be attached as children of the main link, expandable by the user. &lt;br /&gt;
&lt;br /&gt;
* http://export.arxiv.org/api_help/   !!!!&lt;br /&gt;
&lt;br /&gt;
* PubMed Central full text lookup http://www.ncbi.nlm.nih.gov/entrez/query/static/esearch_help.html (SFX may already do this?)&lt;br /&gt;
&lt;br /&gt;
* Journal ToC from CiteULike&lt;br /&gt;
&lt;br /&gt;
* Parsing of formatted references from an entry screen. Use http://wing.comp.nus.edu.sg/parsCit/ package. Very interesting!  Or a similar UCOP package: http://purl.net/net/egh/hmm-citation-extractor/ See list of such packages here under &amp;quot;Other Parsing Tools&amp;quot; http://freecite.library.brown.edu/&lt;br /&gt;
&lt;br /&gt;
* LibraryThing open knowledge API for more data. http://www.librarything.com/blog/2008/08/free-web-services-api-to-common.php&lt;br /&gt;
&lt;br /&gt;
* Connect to internet linked movie database on movies: http://www.linkedmdb.org/&lt;br /&gt;
&lt;br /&gt;
* Add information about the conversation happening around an article with Scintilla if we have a URL, PMID or DOI (Alf at Scintilla would prefer us NOT to use the API for high-traffic. But we can copy his techniques internally to Umlaut. CrossRef and PubMed for &amp;quot;cited by&amp;quot; on DOI and PMID identifiers are a good idea. He has also reverse engineered the Scopus javascript api to allow server-side json access. http://hublog.hubmed.org/archives/001512.html):&lt;br /&gt;
     http://hublog.hubmed.org/archives/001609.html&lt;br /&gt;
     Unofficially it will return json:&lt;br /&gt;
     http://scintilla.nature.com/conversations?uri=info%3Adoi%2F10.1371%2Fjournal.pmed.0020124&amp;amp;format=json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rochester “Getting Users Fulltext” style code to skip right to the full text, skipping content-provider metadata pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UMich Mirlyn for metadata enrichment? &lt;br /&gt;
     http://webservices.itcs.umich.edu/mediawiki/MLibraryAPI/index.php/Mirlynapi:Home&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* xISBN/thingISBN use. (Some thought is required in how to integrate this while avoiding false positives). Bowker ISSN service for metadata enhancement. OCLC xISSN?  Integrate preceding/succeeding title information from OPAC or xISSN?&lt;br /&gt;
&lt;br /&gt;
* LibraryLookup: http://xisbn.worldcat.org/liblook/index.htm  At least until xISBN is baked in we could provide a link to this service. Increases the chances of finding a desired book in the catalog through work set grouping. Used by LibX.&lt;br /&gt;
      http://xisbn.worldcat.org/liblook/resolve.htm?res_id=http://www.iucat.iu.edu&amp;amp;rft.isbn=0451530942&amp;amp;url_ver=Z39.88-2004&amp;amp;rft_val_fmt=info:ofi/fmt:kev:mtx:book&lt;br /&gt;
&lt;br /&gt;
* Journal covers from Ulrich's via screen-scraping (or Ulrich's/sersol built in api?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Connotea integration&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Fetch ToC from LC. Screen scrape, I guess? Or z3950? Any other content from LC?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Link to Books In Print ala Notre Dame. &lt;br /&gt;
http://www.library.nd.edu/eresources/findit/findit.cgi?doc_num=001939269&amp;amp;aleph_session=U5AVHRXD5QB1CGDFDSVJ9DSY2UA6QNCGVEU8EYRX9NNMIQ429Q-54668%22&lt;br /&gt;
example &lt;br /&gt;
&lt;br /&gt;
* bip search url? :&lt;br /&gt;
http://www.booksinprint.com/merge_shared/Search/advsearch.asp%3FdateState%3DY%26txtAction%3D%26BooleanSearch%3D%26SType%3Dadv%26collection%3DBIP%26QueryMode%3DSimple%26ResultCount%3D25%26ResultTemplate%3Dmbbookresult_fl.hts%26navPage%3D1%26SrchFrm%3DAdv%26ScoreThreshold%3D0%26Criteria1%3DISBN%26CriteriaText1%3D0838935370&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SFX plugin:  Notice when first title given is non-roman, and look for roman title to enhance metadata with when so. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* HIP and other OPAC searchers should pull ToC from MARC 505 when present.  And 856's judged to be ToC in ToC, not full text. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Fix Umlaut Referent to more easily allow multiple authors. Architectural change neccessary to get a lot of this stuff working right. &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Cited by&amp;quot; service. Scopus via screen scraping? (scopus javascript api? http://www.scopus.com/scsearchapi/ See also http://hublog.hubmed.org/archives/001512.html ) ISI Web of Science is too hard to even screen scrape the interface is such a mess, but Scopus looks do-able.  Google scholar?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enhance metadata to have full metadata for a refworks etc export. Using: CrossRef?  Metalib?  Anything else?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* A general purpose responsecache. Schema: Date, service/source, key.  Use for caching image urls, ToC urls from LC, etc. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Fix Worldcat registry auto-discovery. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Add a Worldcat search that uses API, instead of screen scrape. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Switch OCA search to use OCA native APIs, instead of indexdata mirror index. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* fix unapi in umlaut. unapi to rsi?  For zotero. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Change background to use Spawn plugin instead of manual threading. Investigating using spawn with fork instead of thread (terry reese on limited pool of forks). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Crazy idea for an abstract interface/architecture to support querying web service apis that require client side javascript, like Google Books and Scopus. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Integrate my various local document delivery services into menu of options when full text isn’t available. More generally, a clear architecture for providing localized doc delivery services in addition to a single ILL link.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SFX adaptor: Add a &amp;quot;rollup&amp;quot; feature that pays attention to dates to avoid eliminating coverage.&lt;/div&gt;</summary>
		<author><name>68.50.223.109</name></author>	</entry>

	<entry>
		<id>https://wiki.code4lib.org/index.php?title=Umlaut_wishlist&amp;diff=6167</id>
		<title>Umlaut wishlist</title>
		<link rel="alternate" type="text/html" href="https://wiki.code4lib.org/index.php?title=Umlaut_wishlist&amp;diff=6167"/>
				<updated>2010-10-05T01:40:00Z</updated>
		
		<summary type="html">&lt;p&gt;68.50.223.109: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Umlaut]]&lt;br /&gt;
&lt;br /&gt;
Some actual current future plans:&lt;br /&gt;
&lt;br /&gt;
* Fix HathiTrust adapter to use new HT plugin, including not showing fulltext for just portions of a serial. (Or showing it in 'see also' section only)&lt;br /&gt;
&lt;br /&gt;
* Rails3&lt;br /&gt;
&lt;br /&gt;
* Internet Archive -- use new OL/IA api, discover search-inside-the-book. &lt;br /&gt;
&lt;br /&gt;
* WorldCat, use new api, link directly to nearest public library in 'see also' or elsewhere. &lt;br /&gt;
&lt;br /&gt;
* CiteSeerX -- source of 'cited by' info, AND, most excitingly, open access pre-prints. But their Atom/RSS feeds (the only API I could find) don't seem to advertise enough info to actually use these features. Would need to talk to developer team -- possibly offer to help code?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''old''' Desired or planned features. &lt;br /&gt;
&lt;br /&gt;
* Check for similar articles from: http://biosemantics.org/jane/faq.php#api&lt;br /&gt;
&lt;br /&gt;
* Full-text availability check from http://chroniclingamerica.loc.gov/ -- check by title/city, check by lccn (?), able to check particular dates/link to particular dates and/or pages of paper?&lt;br /&gt;
&lt;br /&gt;
* Allow a service_response to have a tree relationship to children, so for instance alternate versions of a text can be attached as children of the main link, expandable by the user. &lt;br /&gt;
&lt;br /&gt;
* http://export.arxiv.org/api_help/   !!!!&lt;br /&gt;
&lt;br /&gt;
* PubMed Central full text lookup http://www.ncbi.nlm.nih.gov/entrez/query/static/esearch_help.html (SFX may already do this?)&lt;br /&gt;
&lt;br /&gt;
* Journal ToC from CiteULike&lt;br /&gt;
&lt;br /&gt;
* Parsing of formatted references from an entry screen. Use http://wing.comp.nus.edu.sg/parsCit/ package. Very interesting!  Or a similar UCOP package: http://purl.net/net/egh/hmm-citation-extractor/ See list of such packages here under &amp;quot;Other Parsing Tools&amp;quot; http://freecite.library.brown.edu/&lt;br /&gt;
&lt;br /&gt;
* LibraryThing open knowledge API for more data. http://www.librarything.com/blog/2008/08/free-web-services-api-to-common.php&lt;br /&gt;
&lt;br /&gt;
* Connect to internet linked movie database on movies: http://www.linkedmdb.org/&lt;br /&gt;
&lt;br /&gt;
* Add information about the conversation happening around an article with Scintilla if we have a URL, PMID or DOI (Alf at Scintilla would prefer us NOT to use the API for high-traffic. But we can copy his techniques internally to Umlaut. CrossRef and PubMed for &amp;quot;cited by&amp;quot; on DOI and PMID identifiers are a good idea. He has also reverse engineered the Scopus javascript api to allow server-side json access. http://hublog.hubmed.org/archives/001512.html):&lt;br /&gt;
     http://hublog.hubmed.org/archives/001609.html&lt;br /&gt;
     Unofficially it will return json:&lt;br /&gt;
     http://scintilla.nature.com/conversations?uri=info%3Adoi%2F10.1371%2Fjournal.pmed.0020124&amp;amp;format=json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rochester “Getting Users Fulltext” style code to skip right to the full text, skipping content-provider metadata pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UMich Mirlyn for metadata enrichment? &lt;br /&gt;
     http://webservices.itcs.umich.edu/mediawiki/MLibraryAPI/index.php/Mirlynapi:Home&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* xISBN/thingISBN use. (Some thought is required in how to integrate this while avoiding false positives). Bowker ISSN service for metadata enhancement. OCLC xISSN?  Integrate preceding/succeeding title information from OPAC or xISSN?&lt;br /&gt;
&lt;br /&gt;
* LibraryLookup: http://xisbn.worldcat.org/liblook/index.htm  At least until xISBN is baked in we could provide a link to this service. Increases the chances of finding a desired book in the catalog through work set grouping. Used by LibX.&lt;br /&gt;
      http://xisbn.worldcat.org/liblook/resolve.htm?res_id=http://www.iucat.iu.edu&amp;amp;rft.isbn=0451530942&amp;amp;url_ver=Z39.88-2004&amp;amp;rft_val_fmt=info:ofi/fmt:kev:mtx:book&lt;br /&gt;
&lt;br /&gt;
* Journal covers from Ulrich's via screen-scraping (or Ulrich's/sersol built in api?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Connotea integration&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Fetch ToC from LC. Screen scrape, I guess? Or z3950? Any other content from LC?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Link to Books In Print ala Notre Dame. &lt;br /&gt;
http://www.library.nd.edu/eresources/findit/findit.cgi?doc_num=001939269&amp;amp;aleph_session=U5AVHRXD5QB1CGDFDSVJ9DSY2UA6QNCGVEU8EYRX9NNMIQ429Q-54668%22&lt;br /&gt;
example &lt;br /&gt;
&lt;br /&gt;
* bip search url? :&lt;br /&gt;
http://www.booksinprint.com/merge_shared/Search/advsearch.asp%3FdateState%3DY%26txtAction%3D%26BooleanSearch%3D%26SType%3Dadv%26collection%3DBIP%26QueryMode%3DSimple%26ResultCount%3D25%26ResultTemplate%3Dmbbookresult_fl.hts%26navPage%3D1%26SrchFrm%3DAdv%26ScoreThreshold%3D0%26Criteria1%3DISBN%26CriteriaText1%3D0838935370&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SFX plugin:  Notice when first title given is non-roman, and look for roman title to enhance metadata with when so. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* HIP and other OPAC searchers should pull ToC from MARC 505 when present.  And 856's judged to be ToC in ToC, not full text. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Fix Umlaut Referent to more easily allow multiple authors. Architectural change neccessary to get a lot of this stuff working right. &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Cited by&amp;quot; service. Scopus via screen scraping? (scopus javascript api? http://www.scopus.com/scsearchapi/ See also http://hublog.hubmed.org/archives/001512.html ) ISI Web of Science is too hard to even screen scrape the interface is such a mess, but Scopus looks do-able.  Google scholar?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enhance metadata to have full metadata for a refworks etc export. Using: CrossRef?  Metalib?  Anything else?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* A general purpose responsecache. Schema: Date, service/source, key.  Use for caching image urls, ToC urls from LC, etc. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Fix Worldcat registry auto-discovery. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Add a Worldcat search that uses API, instead of screen scrape. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Switch OCA search to use OCA native APIs, instead of indexdata mirror index. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* fix unapi in umlaut. unapi to rsi?  For zotero. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Change background to use Spawn plugin instead of manual threading. Investigating using spawn with fork instead of thread (terry reese on limited pool of forks). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Crazy idea for an abstract interface/architecture to support querying web service apis that require client side javascript, like Google Books and Scopus. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Integrate my various local document delivery services into menu of options when full text isn’t available. More generally, a clear architecture for providing localized doc delivery services in addition to a single ILL link.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SFX adaptor: Add a &amp;quot;rollup&amp;quot; feature that pays attention to dates to avoid eliminating coverage.&lt;/div&gt;</summary>
		<author><name>68.50.223.109</name></author>	</entry>

	<entry>
		<id>https://wiki.code4lib.org/index.php?title=2011_nominations_list&amp;diff=6052</id>
		<title>2011 nominations list</title>
		<link rel="alternate" type="text/html" href="https://wiki.code4lib.org/index.php?title=2011_nominations_list&amp;diff=6052"/>
				<updated>2010-07-30T18:29:25Z</updated>
		
		<summary type="html">&lt;p&gt;68.50.223.109: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''This page is under development'''&lt;br /&gt;
&lt;br /&gt;
Below is a list of nominations for invited speakers for Code4Lib 2011. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://jfwilliams.com/ Joan Frye Williams] - a sharp thinker of an extremely practical bent, I would expect her to tell us the cold, hard facts as she sees them in libraries today, which I think is what we should be hearing. - Roy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://managemetadata.org/blog/ Diane Hillman] -- has years of experience working with library metaata, starting with traditional cataloging but over the past many years moving into modern metadata for library applications. Involved in RDA schema modelling. Knows what modern metadata looks like, knows what our legacy data is like, has a lot of insight into where we need to go and how to get there -- and on how systems people can work with catalogers to do it. --jrochkind&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Code4Lib2011]]&lt;/div&gt;</summary>
		<author><name>68.50.223.109</name></author>	</entry>

	<entry>
		<id>https://wiki.code4lib.org/index.php?title=2011_nominations_list&amp;diff=6051</id>
		<title>2011 nominations list</title>
		<link rel="alternate" type="text/html" href="https://wiki.code4lib.org/index.php?title=2011_nominations_list&amp;diff=6051"/>
				<updated>2010-07-30T18:28:04Z</updated>
		
		<summary type="html">&lt;p&gt;68.50.223.109: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''This page is under development'''&lt;br /&gt;
&lt;br /&gt;
Below is a list of nominations for invited speakers for Code4Lib 2011. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://jfwilliams.com/ Joan Frye Williams] - a sharp thinker of an extremely practical bent, I would expect her to tell us the cold, hard facts as she sees them in libraries today, which I think is what we should be hearing. - Roy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://managemetadata.org/blog/ Diane Hillman] -- has years of experience working with library metaata, starting with traditional cataloging but over the past many years moving into modern metadata for library applications. Involved in RDA schema modelling. Knows what modern metadata looks like, knows what our legacy data is like, has a lot of insight into where we need to go and how to get there. --jrochkind&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Code4Lib2011]]&lt;/div&gt;</summary>
		<author><name>68.50.223.109</name></author>	</entry>

	</feed>