Coder Social home page Coder Social logo

bookworm-marc's Introduction

MARC parsing into Bookworm

This repo should build metadata for a HathiTrust bookworm from original MARC records. It builds off of the pymarc module to pull metadata likely to be useful in analysis. This includes:

  1. Dates
  2. Author information
  3. Classification information
  4. Titles
  5. Language information
  6. Holding library information
  7. Scanner information.

How the code is organized.

The heart of the module is the new BRecord class in bookwormMARC/bookwormMARC.py. This extends the existing pymarc.Record class with several new methods analogous to the original Record.title() that just parses out the first title field.

Certain MARC fields, like 100 (creator) have so much useful information that rather than overload the main class, I've created a few new classes (Author for field 100; F008 for field 008) that can return a little dictionary suitable for tacking onto the main record.

At a first pass, I'm opting to create methods for the first author, date, etc.; although MARC allows for multiple fields in all of these, Bookworm queries frequently make more sense with a single location. This will likely require some refactoring later.

Hathi-MARC vs MARC in general

There are a number of particularities around Hathi MARC records that I (Ben) don't yet fully understand. In particular, this relies a lot on the 974 field.

The files in bookwormMARC should be generalizable classes for reading in MARC records, although they may have hathi-specific methods. I want this code to be portable to at least the Medical Heritage library.

Done right, this could be a quick and easy way to take any library catalog and build a Bookworm around at least the metadata. That would be nice to have.

bookworm-marc's People

Contributors

bmschmidt avatar organisciak avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bookworm-marc's Issues

Test cases for LCC sorting and parsing

I've implemented some rules for MARC record sorting, but it would be good to have some test cases.

Things like

E1000 .A45 > E 101 .B34,

and so forth. The big questions come up with the arbitrary mixing of Cutter numbers, dates, and decimals.

For example, my reading of the use of table PR4a suggests that a translation of a Shakespeare play may have two sucessive Cutter numbers in a way that breaks the parser. But I'm not immediately sure.

LCC class key review

Two bugs in parsing LCC numbers to classes. Grouping together, because these indicate a larger need to hand-review the class key.

1: "Philosophy. Psychology. Religion" -> should be comma-space, not period-space-space.

2: image

Missing Volumes in the Bookworm?

Integrating the MARC records with the Bookworm, I've noticed that there seem to be just under a million books
that don't exist in the Bookworm but do have Marc records. (IE, the bookworm has about 4.7 million volumes; there are about 5.5m volumes in the MARC records).

They are not evenly distributed. The losses include, most notably, every single Internet-Archive scanned book. Where have they gone? Maybe the entire open-open corpus is missing?

Here's a list of the scanners by number of volumes in the MARC files: (from field 974$s)

bschmidt@sibelius:/raid/hathipd$ jq '.scanner' jsoncatalognew.txt | sort | uniq -c
    156 "bc"
   1169 "borndigital"
      2 "brooklynmuseum"
    292 "clark"
     89 "clements-umich"
      3 "cornell"
  68344 "cornell-ms"
   4772 "getty"
    977 "geu"
4880745 "google"
 483568 "ia"
  54847 "lit-dlps-dc"
   1062 "mcgill"
  10717 "mdl"
  10501 "mhs"
     11 "mou"
    191 "nnc"
    374 "northwestern"
      1 "private"
   1109 "tamu"
    346 "ucm"
     68 "udel"
   4192 "uiuc"
     57 "umd"
      7 "umn"
    875 "ump"
     17 "wau"
  22948 "yale"
    420 "yale2"

Here, on the other hand, are the sources inside the bookworm (ie, the MARC records that also exist inside the bookworm).

Every IA-scanned book is gone; 68,000 Cornell-MS books are gone, and about 700,000 Google-scanned books are missing.

bschmidt@sibelius:/raid/hathipd$ mysql -e "SELECT scanner,COUNT(*) from contributing_library_serial_killer_guess GROUP BY scanner" hathipd
+----------------+----------+
| scanner        | COUNT(*) |
+----------------+----------+
| clements-umich |       32 |
| cornell        |        2 |
| google         |  4102853 |
| lit-dlps-dc    |    46365 |
| northwestern   |        1 |
| ucm            |       18 |
| yale           |    22947 |
+----------------+----------+

Non-MARC metadata about scans

OK, I just noticed something interesting while paging through some of my OCR outlier scripts about useful language metadata about scans not included in Hathi MARC fields.

Randomly tagging @billdueber and @organisciak, because this is one of those questions that I have no idea who in Hathi knows the answer to.

Google OCR occasionally seems to mistakenly read things as being in Arabic because, I guess, it's a squiggly language in wide use. Most items on this tsv, for example, are English-language texts that, if you click through to the OCR on Hathi, are clearly mistakenly being read in the OCR as Arabic.

What's interesting to me is that Hathi seems to know this. If you click on the following English-language books (and your Hathi browser is set to display 2-up), you'll see that they start on the last (i.e., rightmost) page--the page that would be appropriate if they were written in Arabic. That is, the language metadata has them as being in English, but something else has tagged them as Arabic (or at least, generically, as in "in an RTL-script.") Examples; I suspect I can supply several dozen more if needed:

So what's going on that makes these display RTL? Is it the sequencing information (these books resolve to urls like https://babel.hathitrust.org/cgi/pt?id=hvd.32044107205387;view=2up;seq=1) : That would indicate Hathi believes these books to be in English, either because

  1. Google must have sent them to the libraries with sequencing data that regarded them as Arabic, based on their OCR.
  2. Hathi itself determines sequence order by looking at the character set to tell it what direction to go in.

Either one of those would be useful information to have in the Bookworm--at a minimum, it would be nice to be able to drop books that are actually in English but whose OCR is just nonsense in the Arabic alphabet. To have a Google determination of language to compare against the MARC determination (if it is language, and not character set, that's operative here) would be extremely useful.

But I'm also very curious where this data is being stored, because it definitely indicates some useful information about the scans that is not in the MARC records about the items. Maybe that data is limited to just one bit (whether to display a book online as LTR or RTL), but might it also contain some other information about character set, OCR provenance, or the like?

Changes to first pass?

Just in case anyone wants to comment, here are some sample records as the script is currently pulling them out. The fields I'm most excited about for general purpose are contributing library and scanner, which I think are important to know; the distinction between 'item date' and 'record date' (the former from field 974, which should generally be higher quality), which should improve resolution.

"subject_places" (Field 045) is also both interesting and quite highly populated. I've run Erez and JB"s "Serial killer" algorithm to identify serial publications; looking at how that interacts with the MARC 'serial' field will ve some interesting comparisons between this and the ngram viewer.

A few things, like "marc_record_created" date and "lc_class_from_lc", are unlikely to be interesting to anyone but myself; we might not even load them into the primary bookworm.

I've now got the lookup to convert "lc2" into a finer taxonomy of several thousand items. The only problem is that it's highly hierarchical; I'm not sure how to usefully represent all the branching trees in the database.

Compared to the current bookworm, I don't have information about length and physical format. I think that's it, though?

{"cataloging_source": "e", "scanner": "google", "lc0": "F", "lc1": "F", "date": 1919, "first_author_birth": 1881, "item_date": 1919, "rights_changed_date": "2016-04-26", "lc2": "3444", "serial_killer_guess": "book", "title": "Organizaci\u00f3n de la iglesia y \u00f3rdenes religiosas en el virreinato del Per\u00fa en el siglo XVI : documentos del Archivo de Indias /--- V.1", "filename": "txu.059173017892026", "first_author_name": "Levillier, Roberto, 1881-", "contributing_library": "txu", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=txu.059173017892026><em>Organizaci\u00f3n de la iglesia y \u00f3rdenes religiosas en el virreinato del Per\u00fa en el siglo XVI : documentos del Archivo de Indias /--- V.1</em> (1919)", "cntry": "sp ", "first_place": "Madrid :", "lc_class_from_lc": false, "first_publisher": "Sucesores de Rivadeneyra,", "permalink": "https://babel.hathitrust.org/cgi/pt?id=txu.059173017892026", "language": "spa", "government_document": " ", "subject_places": ["s-pe---"], "record_date": 1919, "marc_record_created": "1989-08-28", "resource_type": "book"}
{"lc2": "466.", "scanner": "google", "lc0": "S", "lc1": "SB", "date": 1929, "item_date": 1929, "rights_changed_date": "2014-02-21", "cataloging_source": "d", "serial_killer_guess": "book", "title": "Japanese gardens,", "filename": "mdp.39015027407272", "first_author_name": "Taylor, Harriet (Osgood), Mrs.", "contributing_library": "University of Michigan", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=mdp.39015027407272><em>Japanese gardens,</em> (1929)", "cntry": "nyu", "first_place": "New York,", "lc_class_from_lc": true, "first_publisher": "Dodd, Mead and company,", "permalink": "https://babel.hathitrust.org/cgi/pt?id=mdp.39015027407272", "language": "eng", "government_document": " ", "subject_places": ["a-ja---"], "record_date": 1929, "marc_record_created": "1989-08-28", "resource_type": "book"}
{"contributing_library": "University of Michigan", "item_date": 2007, "permalink": "https://babel.hathitrust.org/cgi/pt?id=mdp.39015075632599", "serial_killer_guess": "book", "cataloging_source": "d", "scanner": "google", "language": "eng", "title": "School-age children in regulated family child care settings.", "government_document": "f", "rights_changed_date": "2013-12-29", "filename": "mdp.39015075632599", "cntry": "dcu", "subject_places": ["n-us---"], "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=mdp.39015075632599><em>School-age children in regulated family child care settings.</em> (2007)", "first_place": "[Washington, D.C.] :", "date": 2007, "first_publisher": "U.S. Dept. of Health and Human Services, Administration for Children and Families, Child Care Bureau,", "marc_record_created": "2008-05-16", "resource_type": "book", "record_date": 2007}
{"cataloging_source": "r", "scanner": "google", "lc0": "N", "lc1": "ND", "date": 1906, "first_author_birth": 1850, "item_date": 1906, "rights_changed_date": "2013-10-17", "lc2": "623.", "serial_killer_guess": "book", "title": "Raffael : des meisters gem\u00e4lde in 203 abbildungen /", "filename": "njp.32101067661536", "first_author_name": "Rosenberg, Adolf, 1850-1906.", "contributing_library": "Princeton University", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=njp.32101067661536><em>Raffael : des meisters gem\u00e4lde in 203 abbildungen /</em> (1906)", "first_author_death": 1906, "cntry": "gw ", "first_place": "Stuttgart und Leipzig :", "lc_class_from_lc": false, "first_publisher": "Deutsche verlags-anstalt,", "permalink": "https://babel.hathitrust.org/cgi/pt?id=njp.32101067661536", "language": "ger", "government_document": " ", "record_date": 1906, "marc_record_created": "1976-12-17", "resource_type": "book"}
{"contributing_library": "University of Wisconsin", "item_date": 1905, "permalink": "https://babel.hathitrust.org/cgi/pt?id=wu.89094626389", "serial_killer_guess": "book", "cataloging_source": "d", "scanner": "google", "language": "ger", "title": "Die Welt des Sichtbaren : eine Betrachtung u\u0308ber die Art und  Weise unseres Sehens /", "government_document": " ", "filename": "wu.89094626389", "cntry": "gw ", "rights_changed_date": "2013-08-01", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=wu.89094626389><em>Die Welt des Sichtbaren : eine Betrachtung u\u0308ber die Art und  Weise unseres Sehens /</em> (1905)", "first_place": "Leipzig :", "first_author_name": "Kiesel, Arthur.", "first_publisher": "R. Voigtla\u0308nder,", "marc_record_created": "1977-10-26", "date": 1905, "resource_type": "book", "record_date": 1905}
{"contributing_library": "nrlf", "item_date": 1914, "permalink": "https://babel.hathitrust.org/cgi/pt?id=uc1.$b23538", "serial_killer_guess": "book", "cataloging_source": "d", "scanner": "google", "language": "eng", "title": "The river Amazon from its sources to the sea /", "government_document": " ", "rights_changed_date": "2013-09-27", "filename": "uc1.$b23538", "cntry": "nyu", "subject_places": ["sa-----"], "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=uc1.$b23538><em>The river Amazon from its sources to the sea /</em> (1914)", "first_place": "New York :", "first_author_name": "Fountain, Paul.", "first_publisher": "Dodd, Mead,", "marc_record_created": "1985-05-16", "date": 1914, "resource_type": "book", "record_date": 1914}
{"cataloging_source": "d", "scanner": "ia", "date": 1860, "first_author_birth": 1804, "item_date": 1860, "rights_changed_date": "2013-08-10", "serial_killer_guess": "book", "title": "History of the town of Dunbarton, Merrimack County, New-Hampshire, from the grant by Mason's assigns, in 1751, to the year 1860.", "filename": "uc2.ark:/13960/t6m042443", "first_author_name": "Stark, Caleb, 1804-1864.", "contributing_library": "isrlf", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=uc2.ark:/13960/t6m042443><em>History of the town of Dunbarton, Merrimack County, New-Hampshire, from the grant by Mason's assigns, in 1751, to the year 1860.</em> (1860)", "first_author_death": 1864, "cntry": "xx ", "first_place": "Concord :", "first_publisher": "Lyon,", "permalink": "https://babel.hathitrust.org/cgi/pt?id=uc2.ark:/13960/t6m042443", "language": "eng", "government_document": " ", "record_date": 1860, "marc_record_created": "1978-04-19", "resource_type": "book"}
{"lc2": "1129.", "scanner": "google", "lc0": "J", "lc1": "JN", "date": 1894, "item_date": 1894, "rights_changed_date": "2015-02-15", "cataloging_source": "u", "serial_killer_guess": "book", "title": "Pamphlets and leaflets of the Liberal Publication Dept.--- 1894", "filename": "coo.31924093446569", "contributing_library": "Cornell University", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=coo.31924093446569><em>Pamphlets and leaflets of the Liberal Publication Dept.--- 1894</em> (1894)", "cntry": "enk", "first_place": "London :", "lc_class_from_lc": true, "first_publisher": "The Liberal Publication Department.", "permalink": "https://babel.hathitrust.org/cgi/pt?id=coo.31924093446569", "language": "eng", "government_document": "#", "subject_places": ["e-uk---"], "record_date": null, "marc_record_created": "2013-12-09", "resource_type": "serial"}
{"contributing_library": "Princeton University", "item_date": 1886, "permalink": "https://babel.hathitrust.org/cgi/pt?id=njp.32101067014249", "serial_killer_guess": "book", "cataloging_source": "d", "scanner": "google", "language": "ita", "title": "Relazione del direttore generale alla Commissione di vigilanza sul rendiconto dell' amministrazione del debito pubblico ...--- 1885-86", "government_document": " ", "filename": "njp.32101067014249", "cntry": "it ", "rights_changed_date": "2013-10-17", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=njp.32101067014249><em>Relazione del direttore generale alla Commissione di vigilanza sul rendiconto dell' amministrazione del debito pubblico ...--- 1885-86</em> (1886)", "first_place": "Roma :", "date": 1886, "first_publisher": "Tipografia Eredi Botta [etc.]", "marc_record_created": "1990-05-30", "resource_type": "serial", "record_date": null}
{"contributing_library": "Universidad Complutense de Madrid", "item_date": 1612, "permalink": "https://babel.hathitrust.org/cgi/pt?id=ucm.5320302075", "serial_killer_guess": "book", "cataloging_source": "c", "scanner": "google", "language": "lat", "title": "Quaestionum juris tam romani quam saxonici liber primus /", "government_document": " ", "filename": "ucm.5320302075", "cntry": "gw ", "rights_changed_date": "2016-03-31", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=ucm.5320302075><em>Quaestionum juris tam romani quam saxonici liber primus /</em> (1612)", "first_place": "[Haidelbergae] :", "first_author_name": "Pistoris, Hartmann", "first_publisher": "Gotthardi Voegelini,", "marc_record_created": "2008-06-25", "date": 1612, "resource_type": "book", "record_date": 1612}
{"cataloging_source": "#", "scanner": "google", "date": 1867, "first_author_birth": 1802, "item_date": 1867, "rights_changed_date": "2013-08-03", "serial_killer_guess": "book", "title": "Dzieje Rzeczypospolite\u0301j Polskie\u0301j /--- t.4-6 (1849-64)", "filename": "hvd.hnzmgk", "first_author_name": "Moraczewski, Je\u0328drzej, 1802-1855.", "contributing_library": "Harvard University", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=hvd.hnzmgk><em>Dzieje Rzeczypospolite\u0301j Polskie\u0301j /--- t.4-6 (1849-64)</em> (1867)", "first_author_death": 1855, "cntry": "pl#", "first_place": "Poznan\u0301 :", "first_publisher": "N. Kamien\u0301ski,", "permalink": "https://babel.hathitrust.org/cgi/pt?id=hvd.hnzmgk", "language": "pol", "government_document": "#", "subject_places": ["e-pl---"], "record_date": 1862, "marc_record_created": "1986-01-09", "resource_type": "book"}
{"cataloging_source": "d", "scanner": "google", "lc0": "Q", "lc1": "QR", "date": 1886, "first_author_birth": 1842, "item_date": 1886, "rights_changed_date": "2014-10-27", "lc2": "56", "serial_killer_guess": "book", "title": "Les microbes, les ferments et les moisissures.", "filename": "hvd.hc2mbd", "first_author_name": "Trouessart, E.-L. (Edouard-Louis), 1842-1927.", "contributing_library": "Harvard University", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=hvd.hc2mbd><em>Les microbes, les ferments et les moisissures.</em> (1886)", "first_author_death": 1927, "cntry": "fr ", "first_place": "Paris,", "lc_class_from_lc": false, "first_publisher": "Alcan,", "permalink": "https://babel.hathitrust.org/cgi/pt?id=hvd.hc2mbd", "language": "fre", "government_document": " ", "record_date": 1886, "marc_record_created": "1982-06-26", "resource_type": "book"}
{"cataloging_source": "u", "scanner": "cornell-ms", "date": 1892, "first_author_birth": 1852, "item_date": 1892, "rights_changed_date": "2015-07-19", "serial_killer_guess": "book", "title": "The Parsifal of Richard Wagner,", "filename": "coo1.ark:/13960/t2t448b1z", "first_author_name": "Kufferath, M. (Maurice), 1852-1919.", "contributing_library": "Cornell University", "searchstring": "<a href=https://babel.hathitrust.org/cgi/pt?id=coo1.ark:/13960/t2t448b1z><em>The Parsifal of Richard Wagner,</em> (1892)", "first_author_death": 1919, "cntry": "nyu", "first_place": "New York,", "first_publisher": "Tait", "permalink": "https://babel.hathitrust.org/cgi/pt?id=coo1.ark:/13960/t2t448b1z", "language": "eng", "government_document": " ", "record_date": 1892, "marc_record_created": "1974-06-04", "resource_type": "book"}

What's going on in the Hathi-specifc MARC field 974?

There's lots of good information in the Hathi-specific MARC field 97, but I don't totally understand it.

  1. 974b and 974c both seem to be libraries. They're often, but not always the same. What's the difference?
  2. Is there a lookup dictionary anywhere that expands the codes to a full string? (Eg, HVD -> "Harvard University Libraries", or whatever it is?)
  3. What role does 974t play compared to the record title field? Is it safe to smash them together?
  4. What role does 974y play compared to the record publication date field? Is it safe to always overwrite the record date (which may be a serial beginning date) with 974y (which generally gives the year for the specific serial volume)?
  5. If there are two 974 fields for a single bibliographic record, but they do not have different title identifiers, what are the chances that they are actually the same volume?

880 references

I believe there's something going wrong with references to 880 fields (alternate encoding representations of foreign languages) that leads to the text "880" being incorrectly embedded into the text of values.

Add the serial flag in MARC.

The serial/monograph flag in the current Hathi Bookworm is extremely useful. I don't know where to find that information, so it's not yet being written out.

Status check

I want to do a status check--after the penultimate conference call, I think I was supposed to check in with @organisciak on the status of this.

I've built out the jsoncatalog.txt for the bookworm; it can be as the file "jsoncatalog_hathi.txt.gz" hosted on my personal web domain. (Not posting the URL because it's huge and I don't want robots to try and download it.)

There are still a few issues. The "contributing library" is sometimes a code, because it's looked up in a sub-optimal place.

There's not a full field_descriptions.txt, because it's not yet determined exactly which fields we want in the bookworm. (I plan to do some visualizations with the MARC field item, for instance; but I doubt anyone else cares about that.)

But I think it's necessary to get the code in shape to redo the metadata anyway (which mostly works at present) so it should be safe to build the bookworm with some subset of the data here.

Here are some random entries from the top of the first million or so items in the file; they are all from the non-PD portion of the collection, where we've looked less in the past.

{"cataloging_source":" ","scanner":"google","lc0":"J","lc1":"J","date":1956,"item_date":1956,"rights_changed_date":"2014-05-22","lc2":"500","literary_form":"Unknown","serial_killer_guess":"book","title":"Lok Sabha debates.--- 1956 pt.2 v.6:9-15","filename":"uc1.b3890417","contributing_library":"nrlf","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=uc1.b3890417><em>Lok Sabha debates.--- 1956 pt.2 v.6:9-15</em> (1956)","target_audience":"Unknown or not specified","cntry":"ii ","first_place":"New Delhi,","lc_class_from_lc":true,"first_publisher":"Lok Sabha Secretariat.","permalink":"https://babel.hathitrust.org/cgi/pt?id=uc1.b3890417","language":"eng","government_document":"f","subject_places":["a-ii---"],"record_date":null,"marc_record_created":"1984-02-11","resource_type":"serial"}
{"literary_form":"Unknown","contributing_library":"nrlf","permalink":"https://babel.hathitrust.org/cgi/pt?id=uc1.b5175500","serial_killer_guess":"book","cataloging_source":"d","scanner":"google","language":"rus","title":"Novoe i zabytoe /--- v.1","government_document":" ","target_audience":"Unknown or not specified","filename":"uc1.b5175500","cntry":"ru ","rights_changed_date":"2013-08-03","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=uc1.b5175500><em>Novoe i zabytoe /--- v.1</em> (1966)","first_place":"Moskva :","date":1966,"first_publisher":"Nauka,","marc_record_created":"1984-02-04","resource_type":"serial","record_date":1966}
{"lc2":"1174","scanner":"lit-dlps-dc","lc0":"H","lc1":"HG","date":1928,"item_date":1928,"rights_changed_date":"2013-08-19","cataloging_source":"d","literary_form":"Not fiction","serial_killer_guess":"book","title":"Valuta i valutna politika; nauchna anketa za prichiniti͡e na stopanskata kriza v Bŭlgarii͡a.","filename":"mdp.39015057135074","first_author_name":"Toshev, Gospodin P.","contributing_library":"University of Michigan","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=mdp.39015057135074><em>Valuta i valutna politika; nauchna anketa za prichiniti͡e na stopanskata kriza v Bŭlgarii͡a.</em> (1928)","target_audience":"Unknown or not specified","cntry":"bu ","first_place":"Sofii͡a,","lc_class_from_lc":true,"first_publisher":"Kooperativna pechatnit͡sa \"Franklin\",","permalink":"https://babel.hathitrust.org/cgi/pt?id=mdp.39015057135074","language":"bul","government_document":" ","record_date":1928,"marc_record_created":"1988-07-18","resource_type":"book"}
{"lc2":"2342.2.","scanner":"google","lc0":"L","lc1":"LB","date":1986,"item_date":1986,"rights_changed_date":"2013-11-23","cataloging_source":" ","literary_form":"Not fiction","serial_killer_guess":"book","title":"China : management and finance of higher education.","filename":"mdp.39015038055250","contributing_library":"University of Michigan","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=mdp.39015038055250><em>China : management and finance of higher education.</em> (1986)","target_audience":"Unknown or not specified","cntry":"dcu","first_place":"Washington, D.C., U.S.A. :","lc_class_from_lc":true,"first_publisher":"World Bank,","permalink":"https://babel.hathitrust.org/cgi/pt?id=mdp.39015038055250","language":"eng","government_document":"i","subject_places":["a-cc---"],"record_date":1986,"marc_record_created":"1988-07-18","resource_type":"book"}
{"lc2":"1","scanner":"google","lc0":"G","lc1":"GN","date":1996,"item_date":1996,"rights_changed_date":"2013-10-17","cataloging_source":" ","literary_form":"Unknown","serial_killer_guess":"serial","title":"Bulletin of the National Science Museum.--- v.22 1996","filename":"mdp.39015073103726","contributing_library":"University of Michigan","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=mdp.39015073103726><em>Bulletin of the National Science Museum.--- v.22 1996</em> (1996)","target_audience":"Unknown or not specified","cntry":"ja ","first_place":"Tokyo,","lc_class_from_lc":true,"first_publisher":"National Science Museum.","permalink":"https://babel.hathitrust.org/cgi/pt?id=mdp.39015073103726","language":"eng","government_document":"f","record_date":null,"marc_record_created":"1988-07-18","resource_type":"serial"}
{"cataloging_source":" ","scanner":"google","lc0":"D","lc1":"D","date":1982,"item_date":1982,"rights_changed_date":"2015-04-03","lc2":"1","literary_form":"Unknown","serial_killer_guess":"serial","title":"The Historian : a journal of history.--- v.44 1981/1982","filename":"mdp.39015068987661","contributing_library":"University of Michigan","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=mdp.39015068987661><em>The Historian : a journal of history.--- v.44 1981/1982</em> (1982)","target_audience":"Unknown or not specified","cntry":"riu","first_place":"[Kingston, R.I., etc.] :","lc_class_from_lc":true,"first_publisher":"Phi Alpha Theta,","permalink":"https://babel.hathitrust.org/cgi/pt?id=mdp.39015068987661","language":"eng","government_document":" ","record_date":1938,"marc_record_created":"1988-07-18","resource_type":"serial"}
{"cataloging_source":" ","scanner":"google","lc0":"H","lc1":"HC","date":1969,"item_date":1969,"rights_changed_date":"2013-08-08","lc2":"10","literary_form":"Unknown","serial_killer_guess":"book","title":"Mirovai͡a ėkonomika i mezhdunarodnye otnoshenii͡a.--- 1969:7-12","filename":"uc1.b3230826","contributing_library":"nrlf","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=uc1.b3230826><em>Mirovai͡a ėkonomika i mezhdunarodnye otnoshenii͡a.--- 1969:7-12</em> (1969)","target_audience":"Unknown or not specified","cntry":"ru ","first_place":"Moskva :","lc_class_from_lc":true,"first_publisher":"Pravda.","permalink":"https://babel.hathitrust.org/cgi/pt?id=uc1.b3230826","language":"rus","government_document":"o","record_date":null,"marc_record_created":"1988-07-18","resource_type":"serial"}
{"cataloging_source":"d","scanner":"google","first_publisher":"Deutsche Verlags-Anstalt","item_date":2005,"rights_changed_date":"2013-08-09","literary_form":"Unknown","serial_killer_guess":"book","title":"Osteuropa--- v.55:8 2005","filename":"uc1.32106020346950","contributing_library":"ucsc","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=uc1.32106020346950><em>Osteuropa--- v.55:8 2005</em> (2005)","target_audience":"Unknown or not specified","cntry":"gw ","first_place":"Stuttgart :","date":2005,"permalink":"https://babel.hathitrust.org/cgi/pt?id=uc1.32106020346950","language":"ger","government_document":" ","subject_places":["ee-----"],"record_date":null,"marc_record_created":"1975-09-01","resource_type":"serial"}
{"cataloging_source":"d","scanner":"google","first_publisher":"Badan Usaha Jaya Press Jajasan Jaya Raya],","item_date":1988,"rights_changed_date":"2015-09-03","literary_form":"Unknown","serial_killer_guess":"book","title":"Tempo.--- 1988 Index","filename":"mdp.39015066449201","contributing_library":"University of Michigan","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=mdp.39015066449201><em>Tempo.--- 1988 Index</em> (1988)","target_audience":"Unknown or not specified","cntry":"io ","first_place":"[Djakarta,","date":1988,"permalink":"https://babel.hathitrust.org/cgi/pt?id=mdp.39015066449201","language":"ind","government_document":" ","subject_places":["a-io---"],"record_date":1971,"marc_record_created":"1988-07-18","resource_type":"serial"}
{"cataloging_source":"d","scanner":"google","date":1974,"item_date":1974,"rights_changed_date":"2013-08-04","literary_form":"Not fiction","serial_killer_guess":"book","title":"Solar energy / c[Vlastimir A. Stevovich, Informatics, Inc.] ; csponsored by Advanced Research Project Agency.","filename":"mdp.39015002048653","first_author_name":"Stevovich, Vlastimir A.","contributing_library":"University of Michigan","searchstring":"<a href=https://babel.hathitrust.org/cgi/pt?id=mdp.39015002048653><em>Solar energy / c[Vlastimir A. Stevovich, Informatics, Inc.] ; csponsored by Advanced Research Project Agency.</em> (1974)","target_audience":"Unknown or not specified","cntry":"vau","first_place":"Rockville, Md. :","first_publisher":"Informatics Inc.,","permalink":"https://babel.hathitrust.org/cgi/pt?id=mdp.39015002048653","language":"eng","government_document":" ","record_date":1974,"marc_record_created":"1988-07-18","resource_type":"book"}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.