ThisTest/translators/Primo Normalized XML.js

610 lines
55 KiB
JavaScript
Raw Normal View History

2022-03-23 12:58:01 +01:00
{
"translatorID": "efd737c9-a227-4113-866e-d57fbc0684ca",
"label": "Primo Normalized XML",
"creator": "Philipp Zumstein",
"target": "xml",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"configOptions": {
"dataMode": "xml/dom"
},
"inRepository": true,
"translatorType": 1,
"lastUpdated": "2020-11-11 21:49:51"
}
/*
***** BEGIN LICENSE BLOCK *****
Copyright © 2018 Philipp Zumstein
This file is part of Zotero.
Zotero is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Zotero is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with Zotero. If not, see <http://www.gnu.org/licenses/>.
***** END LICENSE BLOCK *****
*/
function detectImport() {
var text = Zotero.read(1000);
return text.includes("http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib");
}
function doImport() {
var doc = Zotero.getXML();
var ns = {
p: 'http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib',
sear: 'http://www.exlibrisgroup.com/xsd/jaguar/search'
};
var item = new Zotero.Item();
var itemType = ZU.xpathText(doc, '//p:display/p:type', ns) || ZU.xpathText(doc, '//p:facets/p:rsrctype', ns) || ZU.xpathText(doc, '//p:search/p:rsrctype', ns);
if (!itemType) {
throw new Error('Could not locate item type');
}
switch (itemType.toLowerCase()) {
case 'book':
case 'ebook':
case 'pbook':
case 'books':
case 'score':
case 'journal': // as long as we don't have a periodical item type;
item.itemType = "book";
break;
case 'audio':
case 'sound_recording':
item.itemType = "audioRecording";
break;
case 'video':
case 'dvd':
item.itemType = "videoRecording";
break;
case 'computer_file':
item.itemType = "computerProgram";
break;
case 'report':
item.itemType = "report";
break;
case 'webpage':
item.itemType = "webpage";
break;
case 'article':
case 'review':
item.itemType = "journalArticle";
break;
case 'thesis':
case 'dissertation':
item.itemType = "thesis";
break;
case 'archive_manuscript':
case 'object':
item.itemType = "manuscript";
break;
case 'map':
item.itemType = "map";
break;
case 'reference_entry':
item.itemType = "encyclopediaArticle";
break;
case 'image':
item.itemType = "artwork";
break;
case 'newspaper_article':
item.itemType = "newspaperArticle";
break;
case 'conference_proceeding':
item.itemType = "conferencePaper";
break;
default:
item.itemType = "document";
var risType = ZU.xpathText(doc, '//p:addata/p:ristype', ns);
if (risType) {
switch (risType.toUpperCase()) {
case 'THES':
item.itemType = "thesis";
break;
}
}
}
item.title = ZU.xpathText(doc, '//p:display/p:title', ns);
if (item.title) {
item.title = ZU.unescapeHTML(item.title);
item.title = item.title.replace(/\s*:/, ":");
}
var creators = ZU.xpath(doc, '//p:display/p:creator', ns);
var contributors = ZU.xpath(doc, '//p:display/p:contributor', ns);
if (!creators.length && contributors.length) {
// <creator> not available using <contributor> as author instead
creators = contributors;
contributors = [];
}
// //addata/au is great because it lists authors in last, first format,
// but it can also have a bunch of junk. We'll use it to help split authors
var splitGuidance = {};
var addau = ZU.xpath(doc, '//p:addata/p:addau|//p:addata/p:au', ns);
for (let i = 0; i < addau.length; i++) {
var author = stripAuthor(addau[i].textContent);
if (author.includes(',')) {
var splitAu = author.split(',');
if (splitAu.length > 2) continue;
var name = splitAu[1].trim().toLowerCase() + ' '
+ splitAu[0].trim().toLowerCase();
splitGuidance[name.replace(/\./g, "")] = author;
}
}
fetchCreators(item, creators, 'author', splitGuidance);
fetchCreators(item, contributors, 'contributor', splitGuidance);
item.place = ZU.xpathText(doc, '//p:addata/p:cop', ns);
var publisher = ZU.xpathText(doc, '//p:addata/p:pub', ns);
if (!publisher) publisher = ZU.xpathText(doc, '//p:display/p:publisher', ns);
if (publisher) {
publisher = publisher.replace(/,\s*c?\d+|[()[\]]|(\.\s*)?/g, "");
item.publisher = publisher.replace(/^\s*"|,?"\s*$/g, '');
var pubplace = ZU.unescapeHTML(publisher).split(" : ");
if (pubplace && pubplace[1]) {
var possibleplace = pubplace[0];
if (!item.place) {
item.publisher = pubplace[1].replace(/^\s*"|,?"\s*$/g, '');
item.place = possibleplace;
}
if (item.place && item.place == possibleplace) {
item.publisher = pubplace[1].replace(/^\s*"|,?"\s*$/g, '');
}
}
// sometimes the place is also part of the publisher string
// e.g. "Tübingen Mohr Siebeck"
if (item.place) {
var contained = item.publisher.indexOf(item.place);
if (contained === 0) {
item.publisher = item.publisher.substring(item.place.length);
}
}
}
var date = ZU.xpathText(doc, '//p:addata/p:date', ns)
|| ZU.xpathText(doc, '//p:addata/p:risdate', ns);
if (date && /\d\d\d\d\d\d\d\d/.test(date)) {
item.date = date.substring(0, 4) + '-' + date.substring(4, 6) + '-' + date.substring(6, 8);
}
else {
date = ZU.xpathText(doc, '//p:display/p:creationdate|//p:search/p:creationdate', ns);
var m;
if (date && (m = date.match(/\d+/))) {
item.date = m[0];
}
}
// the three letter ISO codes that should be in the language field work well:
item.language = ZU.xpathText(doc, '(//p:display/p:language|//p:facets/p:language)[1]', ns);
var pages = ZU.xpathText(doc, '//p:display/p:format', ns);
if (item.itemType == 'book' && pages && pages.search(/\d/) != -1) {
item.numPages = extractNumPages(pages);
}
item.series = ZU.xpathText(doc, '(//p:addata/p:seriestitle)[1]', ns);
if (item.series) {
let m = item.series.match(/^(.*);\s*(\d+)/);
if (m) {
item.series = m[1].trim();
item.seriesNumber = m[2];
}
}
var isbn = ZU.xpathText(doc, '//p:addata/p:isbn', ns);
var issn = ZU.xpathText(doc, '//p:addata/p:issn', ns);
if (isbn) {
item.ISBN = ZU.cleanISBN(isbn);
}
if (issn) {
item.ISSN = ZU.cleanISSN(issn);
}
// Try this if we can't find an isbn/issn in addata
// The identifier field is supposed to have standardized format, but
// the super-tolerant idCheck should be better than a regex.
// (although note that it will reject invalid ISBNs)
var locators = ZU.xpathText(doc, '//p:display/p:identifier', ns);
if (!(item.ISBN || item.ISSN) && locators) {
item.ISBN = ZU.cleanISBN(locators);
item.ISSN = ZU.cleanISSN(locators);
}
item.edition = ZU.xpathText(doc, '//p:display/p:edition', ns);
var subjects = ZU.xpath(doc, '//p:display/p:subject', ns);
if (!subjects.length) {
subjects = ZU.xpath(doc, '//p:search/p:subject', ns);
}
for (let i = 0, n = subjects.length; i < n; i++) {
let tagChain = ZU.trimInternal(subjects[i].textContent);
// Split chain of tags, e.g. "Deutschland / Gerichtsverhandlung / Schallaufzeichnung / Bildaufzeichnung"
for (let tag of tagChain.split(/ (?:\/|--) /)) {
item.tags.push(tag);
}
}
item.abstractNote = ZU.xpathText(doc, '//p:display/p:description', ns)
|| ZU.xpathText(doc, '//p:addata/p:abstract', ns);
if (item.abstractNote) item.abstractNote = ZU.unescapeHTML(item.abstractNote);
item.DOI = ZU.xpathText(doc, '//p:addata/p:doi', ns);
item.issue = ZU.xpathText(doc, '//p:addata/p:issue', ns);
item.volume = ZU.xpathText(doc, '//p:addata/p:volume', ns);
item.publicationTitle = ZU.xpathText(doc, '//p:addata/p:jtitle', ns);
var startPage = ZU.xpathText(doc, '//p:addata/p:spage', ns);
var endPage = ZU.xpathText(doc, '//p:addata/p:epage', ns);
var overallPages = ZU.xpathText(doc, '//p:addata/p:pages', ns);
var pageRangeTypes = ["journalArticle", "magazineArticle", "newspaperArticle", "dictionaryEntry", "encyclopediaArticle", "conferencePaper"];
if (startPage && endPage) {
item.pages = startPage + '' + endPage;
}
else if (overallPages) {
if (pageRangeTypes.includes(item.itemType)) {
item.pages = overallPages;
}
else {
item.numPages = overallPages;
}
}
else if (startPage) {
item.pages = startPage;
}
else if (endPage) {
item.pages = endPage;
}
// these are actual local full text links (e.g. to google-scanned books)
// e.g http://solo.bodleian.ox.ac.uk/OXVU1:LSCOP_OX:oxfaleph013370702
var URL = ZU.xpathText(doc, '//p:links/p:linktorsrc', ns);
if (URL && URL.search(/\$\$U.+\$\$/) != -1) {
item.url = URL.match(/\$\$U(.+?)\$\$/)[1];
}
// add finding aids as links
var findingAid = ZU.xpathText(doc, '//p:links/p:linktofa', ns);
if (findingAid && findingAid.search(/\$\$U.+\$\$/) != -1) {
item.attachments.push({ url: findingAid.match(/\$\$U(.+?)\$\$/)[1], title: "Finding Aid", snapshot: false });
}
// get the best call Number; sequence recommended by Harvard University Library
var callNumber = ZU.xpath(doc, '//p:browse/p:callnumber', ns);
var callArray = [];
for (let i = 0; i < callNumber.length; i++) {
if (callNumber[i].textContent.search(/\$\$D.+\$/) != -1) {
callArray.push(callNumber[i].textContent.match(/\$\$D(.+?)\$/)[1]);
}
}
if (!callArray.length) {
callNumber = ZU.xpath(doc, '//p:display/p:availlibrary', ns);
for (let i = 0; i < callNumber.length; i++) {
if (callNumber[i].textContent.search(/\$\$2.+\$/) != -1) {
callArray.push(callNumber[i].textContent.match(/\$\$2\(?(.+?)(?:\s*\))?\$/)[1]);
}
}
}
if (callArray.length) {
// remove duplicate call numbers
callArray = dedupeArray(callArray);
item.callNumber = callArray.join(", ");
}
else {
ZU.xpathText(doc, '//p:enrichment/p:classificationlcc', ns);
}
// Harvard specific code, requested by Harvard Library:
// Getting the library abbreviation properly,
// so it's easy to implement custom code for other libraries, either locally or globally should we want to.
var library;
var source = ZU.xpathText(doc, '//p:control/p:sourceid', ns);
if (source) {
// The HVD library code is now preceded by $$V01 -- not seeing this in other catalogs like Princeton or UQAM
// so making it optional
library = source.match(/^(?:\$\$V)?(?:\d+)?(.+?)_/);
if (library) library = library[1];
}
// Z.debug(library)
if (library && library == "HVD") {
if (ZU.xpathText(doc, '//p:display/p:lds01', ns)) {
item.extra = "HOLLIS number: " + ZU.xpathText(doc, '//p:display/p:lds01', ns);
}
for (let lds03 of ZU.xpath(doc, '//p:display/p:lds03', ns)) {
if (lds03.textContent.match(/href="(.+?)"/)) {
item.attachments.push({
url: lds03.textContent.match(/href="(.+?)"/)[1],
title: "HOLLIS Permalink",
snapshot: false
});
}
}
}
// End Harvard-specific code
item.complete();
}
function stripAuthor(str) {
// e.g. Wheaton, Barbara Ketcham [former owner]$$QWheaton, Barbara Ketcham
str = str.replace(/^(.*)\$\$Q(.*)$/, "$2");
return str
// Remove year
.replace(/\s*,?\s*\(?\d{4}-?(\d{4})?\)?/g, '')
// Remove things like (illustrator). TODO: use this to assign creator type?
.replace(/\s*,?\s*[[(][^()]*[\])]$/, '')
// The full "continuous" name uses no separators, which need be removed
// cf. "Luc, Jean André : de (1727-1817)"
.replace(/\s*:\s+/, " ");
}
function fetchCreators(item, creators, type, splitGuidance) {
for (let i = 0; i < creators.length; i++) {
var creator = ZU.unescapeHTML(creators[i].textContent).split(/\s*;\s*/);
for (var j = 0; j < creator.length; j++) {
var c = stripAuthor(creator[j]).replace(/\./g, "");
c = ZU.cleanAuthor(
splitGuidance[c.toLowerCase()] || c,
type,
true
);
if (!c.firstName) {
delete c.firstName;
c.fieldMode = 1;
}
item.creators.push(c);
}
}
}
function extractNumPages(str) {
// Borrowed from Library Catalog (PICA). See #756
// make sure things like 2 partition don't match, but 2 p at the end of the field do
// f., p., and S. are "pages" in various languages
// For multi-volume works, we expect formats like:
// x-109 p., 510 p. and X, 106 S.; 123 S.
var numPagesRE = /\[?\b((?:[ivxlcdm\d]+[ \-,]*)+)\]?\s+[fps]\b/ig;
var numPages = [];
let m = numPagesRE.exec(str);
if (m) {
numPages.push(m[1].trim()
.replace(/[ \-,]+/g, '+')
.toLowerCase() // for Roman numerals
);
}
return numPages.join('; ');
}
function dedupeArray(names) {
// via http://stackoverflow.com/a/15868720/1483360
return names.reduce(function (a, b) {
if (!a.includes(b)) {
a.push(b);
}
return a;
}, []);
}
/** BEGIN TEST CASES **/
var testCases = [
{
"type": "import",
"input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <record xmlns=\"http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib\" xmlns:sear=\"http://www.exlibrisgroup.com/xsd/jaguar/search\">\n <control>\n <sourcerecordid>22248448</sourcerecordid>\n <sourceid>medline</sourceid>\n <recordid>TN_medline22248448</recordid>\n <sourceformat>XML</sourceformat>\n <sourcesystem>Other</sourcesystem>\n </control>\n <display>\n <type>article</type>\n <title>Water</title>\n <creator>Bryant, Robert G ; Johnson, Mark A ; Rossky, Peter J</creator>\n <ispartof>Accounts of chemical research, 17 January 2012, Vol.45(1), pp.1-2</ispartof>\n <identifier><![CDATA[<b>E-ISSN:</b> 1520-4898 ; <b>PMID:</b> 22248448 Version:1 ; <b>DOI:</b> 10.1021/ar2003286]]></identifier>\n <subject>Water -- Chemistry</subject>\n <language>eng</language>\n <source/>\n <version>2</version>\n <lds50>peer_reviewed</lds50>\n </display>\n <links>\n <openurl>$$Topenurl_article</openurl>\n <backlink>$$Uhttp://pubmed.gov/22248448$$EView_this_record_in_MEDLINE/PubMed</backlink>\n <openurlfulltext>$$Topenurlfull_article</openurlfulltext>\n <addlink>$$Uhttp://exlibris-pub.s3.amazonaws.com/aboutMedline.html$$EView_the_MEDLINE/PubMed_Copyright_Statement</addlink>\n </links>\n <search>\n <creatorcontrib>Bryant, Robert G</creatorcontrib>\n <creatorcontrib>Johnson, Mark A</creatorcontrib>\n <creatorcontrib>Rossky, Peter J</creatorcontrib>\n <title>Water.</title>\n <subject>Water -- chemistry</subject>\n <general>22248448</general>\n <general>English</general>\n <general>MEDLINE/PubMed (U.S. National Library of Medicine)</general>\n <general>10.1021/ar2003286</general>\n <general>MEDLINE/PubMed (NLM)</general>\n <sourceid>medline</sourceid>\n <recordid>medline22248448</recordid>\n <issn>15204898</issn>\n <issn>1520-4898</issn>\n <rsrctype>text_resource</rsrctype>\n <creationdate>2012</creationdate>\n <addtitle>Accounts of chemical research</addtitle>\n <searchscope>medline</searchscope>\n <searchscope>nlm_medline</searchscope>\n <searchscope>MEDLINE</searchscope>\n <scope>medline</scope>\n <scope>nlm_medline</scope>\n <scope>MEDLINE</scope>\n <lsr41>20120117</lsr41>\n <citation>pf 1 vol 45 issue 1</citation>\n <startdate>20120117</startdate>\n <enddate>20120117</enddate>\n </search>\n <sort>\n <title>Water</title>\n <author>Bryant, Robert G ; Johnson, Mark A ; Rossky, Peter J</author>\n <creationdate>20120117</creationdate>\n <lso01>20120117</lso01>\n </sort>\n <facets>\n <frbrgroupid>-1388435396316500619</frbrgroupid>\n <frbrtype>5</frbrtype>\n <newrecords>20180102</newrecords>\n <language>eng</language>\n <creationdate>2012</creationdate>\n <topic>WaterChemistry</topic>\n <collection>MEDLINE/PubMed (NLM)</collection>\n <rsrctype>text_resources</rsrctype>\n <creatorcontrib>Bryant, Robert G</creatorcontrib>\n <creatorcontrib>Johnson, Mark A</creatorcontrib>\n <creatorcontrib>Rossky, Peter J</creatorcontrib>\n <jtitle>Accounts Of Chemical Research</jtitle>\n <toplevel>peer_reviewed</toplevel>\n </facets>\n <delivery>\n <delcategory>Remote Search Resource</delcategory>\n <fulltext>fulltext</fulltext>\n </delivery>\n <addata>\n <aulast>Bryant</aul
"items": [
{
"itemType": "journalArticle",
"title": "Water",
"creators": [
{
"firstName": "Robert G.",
"lastName": "Bryant",
"creatorType": "author"
},
{
"firstName": "Mark A.",
"lastName": "Johnson",
"creatorType": "author"
},
{
"firstName": "Peter J.",
"lastName": "Rossky",
"creatorType": "author"
}
],
"date": "2012-01-17",
"DOI": "10.1021/ar2003286",
"ISSN": "1520-4898",
"issue": "1",
"language": "eng",
"pages": "1-2",
"publicationTitle": "Accounts of chemical research",
"volume": "45",
"attachments": [],
"tags": [
{
"tag": "Chemistry"
},
{
"tag": "Water"
}
],
"notes": [],
"seeAlso": []
}
]
},
{
"type": "import",
"input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><record xmlns=\"http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib\" xmlns:sear=\"http://www.exlibrisgroup.com/xsd/jaguar/search\">\n <control>\n <sourcerecordid>002208563</sourcerecordid>\n <sourceid>HVD_ALEPH</sourceid>\n <recordid>HVD_ALEPH002208563</recordid>\n <originalsourceid>HVD01</originalsourceid>\n <ilsapiid>HVD01002208563</ilsapiid>\n <sourceformat>MARC21</sourceformat>\n <sourcesystem>Aleph</sourcesystem>\n </control>\n <display>\n <type>book</type>\n <title>Mastering the art of French cooking</title>\n <creator>Beck, Simone, 1904-1991. $$QBeck, Simone, 1904-1991.</creator>\n <contributor>Bertholle, Louisette.$$QBertholle, Louisette.</contributor>\n <contributor>Child, Julia.$$QChild, Julia.</contributor>\n <contributor>Wheaton, Barbara Ketcham [former owner]$$QWheaton, Barbara Ketcham</contributor>\n <contributor>DeVoto, Avis [former owner]$$QDeVoto, Avis</contributor>\n <edition>[1st ed.]</edition>\n <publisher>New York : Knopf, 1961-70.</publisher>\n <creationdate>1961-70</creationdate>\n <format>2 v. : ill. ; 26 cm.</format>\n <subject>Cooking, French.</subject>\n <description>Illustrates the ways in which classic French dishes may be created with American foodstuffs and appliances.</description>\n <language>eng</language>\n <source>HVD_ALEPH</source>\n <availlibrary>$$IHVD$$LHVD_SCH$$1Offsite Storage -- In-library use only$$2641.64 C53m, c.1$$Savailable$$32$$40$$5Y$$60$$XHVD50$$YSCH$$ZHD$$P78$$HHVD60003115849</availlibrary>\n <availlibrary>$$IHVD$$LHVD_SCH$$1Offsite Storage -- In-library use only$$2641.64 C53m, c. 3$$Savailable$$32$$40$$5Y$$61$$XHVD50$$YSCH$$ZHD$$P78$$HHVD60018187101</availlibrary>\n <availlibrary>$$IHVD$$LHVD_SCH$$1Offsite Storage -- In-library use only$$2641.64 C53m, c.5$$Savailable$$32$$40$$5Y$$60$$XHVD50$$YSCH$$ZHD$$P78$$HHVD60018770891</availlibrary>\n <availlibrary>$$IHVD$$LHVD_SCH$$1Offsite Storage -- In-library use only$$2641.64 C53m, c.6$$Savailable$$31$$40$$5Y$$60$$XHVD50$$YSCH$$ZHD$$P78$$HHVD60019421606</availlibrary>\n <availlibrary>$$IHVD$$LHVD_SCH$$1Offsite Storage -- In-library use only$$2641.64 C53m, c. 7$$Savailable$$32$$40$$5N$$60$$XHVD50$$YSCH$$ZHD$$P78$$HHVD60019730367</availlibrary>\n <availlibrary>$$IHVD$$LHVD_SCH$$1Offsite Storage -- In-library use only$$2641.64 C53m, c. 8$$Savailable$$31$$40$$5Y$$60$$XHVD50$$YSCH$$ZHD$$P78$$HHVD60019730395</availlibrary>\n <availlibrary>$$IHVD$$LHVD_SCH$$1Offsite Storage -- In-library use only$$2641.64 C53m, c.2$$Savailable$$31$$40$$5Y$$60$$XHVD50$$YSCH$$ZHD$$P78$$HHVD60016438903</availlibrary>\n <availlibrary>$$IHVD$$LHVD_SCH$$1Vault$$2641.64 C53m, c.4$$Savailable$$31$$40$$5N$$60$$XHVD50$$YSCH$$ZVAULT$$P78$$HHVD60018653989</availlibrary>\n <lds01>002208563</lds01>\n <lds02>567511</lds02>\n <lds03>&lt;a href=\"http://id.lib.harvard.edu/aleph/002208563/catalog\">http://id.lib.harvard.edu/aleph/002208563/catalog&lt;/a></lds03>\n <lds05>Knopf</lds05>\n <lds06>Vol. 1. Kitchen equipment -- Definitions -- Ingredients -- Measures -- Temperatures -- Cutting : chopping, slicing, dicing, and mincing -- Wines -- Soups -- Sauces -- Eggs -- Entrees and luncheon dishes -- Fish -- Poultry -- Meat -- Vegetables -- Cold buffet -- Desserts and cakes -- Vol. 2. Soups from the garden -- bisques and chowders from the sea -- Baking : breads, brioches, croissants, and pastries -- Meats : from country kitchen to haute cuisine -- Chickens, poached and sauced -- and a coq en pâte -- Charcuterie : sausages, salted pork and goose, pâtés and terrines -- A choice of vegetables -- Desserts :extending the repertoire -- Appendices : Stuffings -- Kitchen equipment
"items": [
{
"itemType": "book",
"title": "Mastering the art of French cooking",
"creators": [
{
"firstName": "Simone",
"lastName": "Beck",
"creatorType": "author"
},
{
"firstName": "Louisette",
"lastName": "Bertholle",
"creatorType": "contributor"
},
{
"firstName": "Julia",
"lastName": "Child",
"creatorType": "contributor"
},
{
"firstName": "Barbara Ketcham",
"lastName": "Wheaton",
"creatorType": "contributor"
},
{
"firstName": "Avis",
"lastName": "DeVoto",
"creatorType": "contributor"
}
],
"date": "1961",
"abstractNote": "Illustrates the ways in which classic French dishes may be created with American foodstuffs and appliances.",
"callNumber": "641.64 C53m, c.1, 641.64 C53m, c. 3, 641.64 C53m, c.4, 641.64 C53m, c.5, 641.64 C53m, c.6, 641.64 C53m, c. 7, 641.64 C53m, c. 8, 641.64 C53m, c.2",
"edition": "[1st ed.]",
"extra": "HOLLIS number: 002208563",
"language": "eng",
"place": "New York",
"publisher": "Knopf",
"attachments": [
{
"title": "HOLLIS Permalink",
"snapshot": false
}
],
"tags": [
{
"tag": "Cooking, French."
}
],
"notes": [],
"seeAlso": []
}
]
},
{
"type": "import",
"input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<record xmlns=\"http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib\" xmlns:sear=\"http://www.exlibrisgroup.com/xsd/jaguar/search\">\n <control>\n <sourcerecordid>21126560510002561</sourcerecordid>\n <sourceid>MAN_ALMA</sourceid>\n <recordid>MAN_ALMA21126560510002561</recordid>\n <originalsourceid>MAN_INST</originalsourceid>\n <addsrcrecordid>KPLUS492418942</addsrcrecordid>\n <addsrcrecordid>BSZ118463411</addsrcrecordid>\n <addsrcrecordid>OCLC238724886</addsrcrecordid>\n <addsrcrecordid>OCLC62185846</addsrcrecordid>\n <sourceformat>MARC21</sourceformat>\n <sourcesystem>Alma</sourcesystem>\n <almaid>49MAN_INST:21126560510002561</almaid>\n </control>\n <display>\n <type>book</type>\n <title>Zur Medienöffentlichkeit der Dritten Gewalt rechtliche Aspekte des Zugangs der Medien zur Rechtsprechung im Verfassungsstaat des Grundgesetzes</title>\n <creator>Coelln, Christian von</creator>\n <contributor>Bethge, Herbert</contributor>\n <contributor>Söhn, Hartmut [Gutachter]</contributor>\n <publisher>Tübingen Mohr Siebeck</publisher>\n <creationdate>2005</creationdate>\n <format>XXX, 575 S. 24 cm</format>\n <identifier>$$CISBN$$V 3161486617</identifier>\n <subject>Conduct of court proceedings -- Germany; Constitutional law -- Germany; Freedom of information -- Germany; Hochschulschrift</subject>\n <subject>Deutschland / Rechtsprechende Gewalt / Öffentlichkeitsgrundsatz / Informationsfreiheit</subject>\n <subject>Deutschland / Gerichtsberichterstattung / Elektronische Medien / Verbot / Verfassungsmäßigkeit</subject>\n <subject>Deutschland / Gerichtsverhandlung / Schallaufzeichnung / Bildaufzeichnung</subject>\n <description>Zugl.: Passau, Univ., Habil.-Schr., 2004</description>\n <description>Christian von Coelln behandelt die rechtlichen, insbesondere die verfassungsrechtlichen Fragen des Zugangs der Medien zur Rechtsprechung. Neben generellen Erwägungen zur Bedeutung der Medienöffentlichkeit der Dritten Gewalt für Demokratie und Rechtsstaat befaßt er sich u.a. mit der Teilnahme von Journalisten an mündlichen Verhandlungen und mit der Problematik von Bild- und Tonaufnahmen in Gerichtsgebäuden.(Quelle: Verlag).</description>\n <language>ger</language>\n <relation>$$Cseries $$VIus publicum ; 138 ; 13800</relation>\n <source>MAN_ALMA</source>\n <availlibrary>$$IMAN$$LMANLS300$$1Lehrstuhl Müller-Terpitz$$2(341 PH 4520 C672 )$$Savailable$$X49MAN_INST$$YLS300$$Z341$$P1</availlibrary>\n <lds01>Mohr Siebeck</lds01>\n <lds27>121557006 Bethge, Herbert</lds27>\n <lds30>PG 430</lds30>\n <availinstitution>$$IMAN$$Savailable</availinstitution>\n <availpnx>available</availpnx>\n </display>\n <links>\n <openurl>$$Topenurl</openurl>\n <thumbnail>$$Tamazon_thumb</thumbnail>\n <thumbnail>$$Tgoogle_thumb</thumbnail>\n <addlink>$$Uhttp://www.gbv.de/dms/bsz/toc/bsz118463411inh.pdf$$DInhaltsverzeichnis 04</addlink>\n <addlink>$$Uhttp://d-nb.info/975503499/04$$D04</addlink>\n <addlink>$$Uhttp://swbplus.bsz-bw.de/bsz118463411inh.htm$$DInhaltsverzeichnis</addlink>\n <lln05>$$TSerial_Link$$ESerialLink$$1UP(DE-627)231976704</lln05>\n </links>\n <search>\n <creatorcontrib>Christian von Coelln</creatorcontrib>\n <creatorcontrib>Christian, Von Coelln</creatorcontrib>\n <creatorcontrib>Coelln, C</creatorcontrib>\n <creatorcontrib>Von Coelln, C</creatorcontrib>\n <creatorcontrib>Christian von Coelln</creatorcontrib>\n <creatorcontrib>Herbert Bethge</creatorcontrib>\n <creatorcontrib>Hartmut Söhn Gutachter</creatorcontrib>\n <creatorcontrib>Bethge, H</creatorcontrib>\n <creatorcontrib>Söhn, H</creatorcontrib>\n <creatorcontrib>Coelln, Christian von</creatorcontrib>\n <creatorcontrib>Coelln C</creatorcontrib>\n <creatorcontrib>Bethge, Herbert</creatorcontrib>\n <creatorcontrib>Söhn, Hartmut [Gutachter]</creatorcontrib>\n <title>Zur Medienöffentlichkeit der Dritten Gewalt rechtliche Aspekte des Zugangs der Medien zur
"items": [
{
"itemType": "book",
"title": "Zur Medienöffentlichkeit der Dritten Gewalt rechtliche Aspekte des Zugangs der Medien zur Rechtsprechung im Verfassungsstaat des Grundgesetzes",
"creators": [
{
"firstName": "Christian von",
"lastName": "Coelln",
"creatorType": "author"
},
{
"firstName": "Herbert",
"lastName": "Bethge",
"creatorType": "contributor"
},
{
"firstName": "Hartmut",
"lastName": "Söhn",
"creatorType": "contributor"
}
],
"date": "2005",
"ISBN": "3161486617",
"abstractNote": "Zugl.: Passau, Univ., Habil.-Schr., 2004, Christian von Coelln behandelt die rechtlichen, insbesondere die verfassungsrechtlichen Fragen des Zugangs der Medien zur Rechtsprechung. Neben generellen Erwägungen zur Bedeutung der Medienöffentlichkeit der Dritten Gewalt für Demokratie und Rechtsstaat befaßt er sich u.a. mit der Teilnahme von Journalisten an mündlichen Verhandlungen und mit der Problematik von Bild- und Tonaufnahmen in Gerichtsgebäuden.(Quelle: Verlag).",
"callNumber": "341 PH 4520 C672",
"language": "ger",
"numPages": "xxx+575",
"place": "Tübingen",
"publisher": "Mohr Siebeck",
"series": "Jus publicum",
"seriesNumber": "138",
"attachments": [],
"tags": [
{
"tag": "Bildaufzeichnung"
},
{
"tag": "Conduct of court proceedings"
},
{
"tag": "Deutschland"
},
{
"tag": "Deutschland"
},
{
"tag": "Deutschland"
},
{
"tag": "Elektronische Medien"
},
{
"tag": "Gerichtsberichterstattung"
},
{
"tag": "Gerichtsverhandlung"
},
{
"tag": "Germany; Constitutional law"
},
{
"tag": "Germany; Freedom of information"
},
{
"tag": "Germany; Hochschulschrift"
},
{
"tag": "Informationsfreiheit"
},
{
"tag": "Rechtsprechende Gewalt"
},
{
"tag": "Schallaufzeichnung"
},
{
"tag": "Verbot"
},
{
"tag": "Verfassungsmäßigkeit"
},
{
"tag": "Öffentlichkeitsgrundsatz"
}
],
"notes": [],
"seeAlso": []
}
]
}
]
/** END TEST CASES **/