Mailing List Archive

[MediaWiki-commits] [Gerrit] mediawiki...translators[master]: Update to 528296d on github.com/zotero/translators
Mvolz has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/405702 )

Change subject: Update to 528296d on github.com/zotero/translators
......................................................................

Update to 528296d on github.com/zotero/translators

Squashed commit of the following:

commit 528296d74cd2ce66641d5be581f9af178bf46d9e
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Sat Jan 20 18:01:06 2018 +0100

[ACM Digital Library]: Handle also classification pages (#1523)

Fix also abstract for multiples and some small cleaning thing.

commit ff6a38cf675cda1cce6afcb31240514f6226a5ba
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Sun Jan 14 17:07:21 2018 -0500

Fix Sage authors after they broke RIS (#1522)

commit c7111bae317a876ae3cf4b194c223b8d674e7e46
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Sun Jan 14 21:59:44 2018 +0100

[Le Monde] Add abonnes subdomain, fix section title (#1521)

This relates to #1520.

commit c7ce0da1a64686484466e910dd5f4f8b06cf3946
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Fri Jan 12 17:43:44 2018 +0100

Update beck-online.js (#1516)

They changed the HTML slightly, such that some elements (date, number)
were not anymore extracted. Moreover, some cases did not work anymore,
e.g. Leitsatzkartei. This commit should fix all of these.

commit 18f8d6a2f3d7727c2acfd42f021f0adbd2abd9df
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Sun Jan 7 17:25:43 2018 -0500

Fix multiples in ScienceDirect (#1513)

* Fix multiples in ScienceDirect for new format.
* Remove format "ArticleListURL" no longer used
* replace indexOf with includes

commit a6b2412c75d70698f98efb004cbde92fc4a00e02
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Sun Jan 7 13:29:59 2018 -0500

Add El Pais Translator (#1514)

* Add El Pais Translator
* Update following review
* Update tests after #1515

commit 7081d6b524772e408189266e83dd1ed069e99a6f
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Sun Jan 7 16:06:08 2018 +0100

[EM] Extend possibilities to extract the language (#1515)

commit f4a0d8e39d730bdb6f6fb757b9a171bd8eb44bcf
Author: yunusong <yunusong@yahoo.co.kr>
Date: Thu Jan 4 07:59:56 2018 -0500

Kstudy translator (#1308)

Using RIS data and author tweaks

commit 2e9eaba1ebe83b28a2368cfead4718b575331c07
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Thu Jan 4 04:00:20 2018 +0100

Denik CZ translator contd (#1508)

* Rewrite Denik CZ.js by using EM translator

commit 0fec46275fdb8256cc0ec471ddd6e8f84cb20ca1
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Wed Jan 3 04:42:21 2018 +0100

Add new translator Erudit.js (#1509)

Closes #981

commit 089a17832291cd61c367ccfe902f17ac0fdaabc9
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Mon Jan 1 23:35:02 2018 +0100

Citavi 5 XML: Distinguish between local paths and URLs (#1507)

The local files (e.g. PDFs) have to be moved manually to
the same folder beforehand.

commit f20c44dfedee6b0583f9e9eaf56850facb724a42
Author: Dan Michael O. Heggø <danmichaelo@gmail.com>
Date: Mon Jan 1 10:46:46 2018 +0100

Rewrite National Library of Norway for new site (#1486)

commit 71a55e808983d1f6007fbd550f032265c9423042
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Mon Jan 1 10:30:58 2018 +0100

Handle phdthesis and mastersthesis in BibTeX import/export (#1505)

* Discriminates phdthesis and mastersthesis BibTeX types.

See
https://forums.zotero.org/discussion/6276/support-for-masters-thesis-type-and-full-bibtex-format/
for a discussion of the pros and cons to this approach.

* If the BibTeX type carries all relevant information, then the Zotero
field "Type" is redundant and should be suppressed.

* Add new tests for theses

commit 4d76b89f152668ae93bfaecea3f2f81a86cb65a8
Author: Guy Aglionby <GuyAglionby@users.noreply.github.com>
Date: Wed Dec 27 17:30:03 2017 +0000

Add Semantic Scholar translator (#1497)

commit d1e0a252d779134cf603b55db5afa22b541b9a99
Author: Dan Michael O. Heggø <danmichaelo@gmail.com>
Date: Wed Dec 27 16:04:10 2017 +0100

MODS: Two changes (#1488)

* MODS: Change genre mapping

Change mapping for 'bibliography'.

* MODS: Include part number and title

Include part number and title in title.

commit 7cc5ecbf0da8301920ffd225a6f71572f62fcacf
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Wed Dec 27 15:59:27 2017 +0100

Import also BibLaTeX in BibTeX.js (#1504)

Closes #1400.

commit 3119643f1ded3705a2abb7307ec5ce42d914866d
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Wed Dec 27 15:54:20 2017 +0100

Add new translator for EUR-Lex (#1502)

Closes #1499.

commit 42b4f2320011c6d56b57a176ca9dede1e475e153
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Thu Dec 21 09:42:10 2017 -0500

[HAL] Fix saving from PDF view (#1501)

commit ce38a083bd6a8f6e5eef0a5c6a0394de5e79ee9f
Author: Chetan Kushwaha <chetankushwaha0@gmail.com>
Date: Sat Dec 16 02:13:34 2017 +0530

Fixed Bookmarks.js HTML character references in title. (#1496)

As discussed here: https://github.com/zotero/translators/issues/1485

commit 8c58a9e5fbffb503f18b2fb9e6f86b283e1b46a3
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Mon Dec 11 17:30:36 2017 -0500

Add Air University Journals (#1494)

* Add Air University

ASJP and SSQ -- lot's of scraping, and authors and abstract can be
inconsisten, but rest should be solid.

commit dfd53381ee4ed734657fc3b0074593e6fcfde915
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Sat Dec 9 17:04:09 2017 +0100

[Citavi 5 XML] Handle wrongly sorted collection relations (#1495)

This is a simple fix which solves the problem that the relactions
between categories are not always ordered correctly. More precisely
it will ignore the hierarchical number in these cases.

commit 021e9abf7afd613e41c1049e00d9f3937af57c4c
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Mon Dec 4 23:31:01 2017 -0500

Integrum (#1492)

No tests since this is all session IDs
Lot's of different formats & frames to handle

commit 1baa02669ee8b7f4969a95f02ae23d66b36c0c79
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Sat Dec 2 23:41:55 2017 -0500

Quick fix for Google Books Multiples (#1491)

This might be due for a re-write -- lots of legacy code here, but that
requires checking lots of cases as translator accommodates lots of
different views&errors

Change-Id: Ic2bc6e1facba2d5b88e4e749bf088f28a3b7ef0c
---
M ACM Digital Library.js
A Air University Journals.js
M BibTeX.js
M Bookmarks.js
M Citavi 5 XML.js
A Denik CZ.js
M DigiZeitschriften.js
A EUR-Lex.js
A El Pais.js
M Embedded Metadata.js
A Erudit.js
M Google Books.js
M HAL Archives Ouvertes.js
M HighBeam.js
A Integrum.js
A KStudy.js
M KitapYurdu.com.js
M Le Monde.js
M MODS.js
M National Library of Norway.js
M SAGE Journals.js
M ScienceDirect.js
A Semantic Scholar.js
M beck-online.js
24 files changed, 3,231 insertions(+), 198 deletions(-)


git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/zotero/translators refs/changes/02/405702/1

diff --git a/ACM Digital Library.js b/ACM Digital Library.js
index d310805..aa99878 100644
--- a/ACM Digital Library.js
+++ b/ACM Digital Library.js
@@ -2,14 +2,14 @@
"translatorID": "f3f092bf-ae09-4be6-8855-a22ddd817925",
"label": "ACM Digital Library",
"creator": "Simon Kornblith, Michael Berkowitz, John McCaffery, and Sebastian Karcher",
- "target": "^https?://([^/]+\\.)?dl\\.acm\\.org/(results|citation|author_page)\\.cfm",
+ "target": "^https?://([^/]+\\.)?dl\\.acm\\.org/(results|citation|author_page|ccs/ccs)\\.cfm",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-10-29 04:47:45"
+ "lastUpdated": "2018-01-16 21:49:57"
}

/*
@@ -29,10 +29,16 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
function detectWeb(doc, url) {
- if (url.indexOf("/results.cfm") != -1 || url.indexOf("/author_page.cfm") != -1) {
+ if (url.includes("/results.cfm") || url.includes("/author_page.cfm") || url.includes("/ccs/ccs.cfm")) {
return getSearchResults(doc, true) ? 'multiple' : false;
- } else if (url.indexOf("/citation.cfm") != -1) {
+ } else if (url.includes("/citation.cfm")) {
return getArticleType(doc);
}
}
@@ -55,10 +61,12 @@
}
}

+
function getSearchResults(doc, checkOnly) {
- var results = ZU.xpath(doc, '//div[@id="results"]//div[@class="title"]/a[@target="_self"]'),
- items = {},
- found = false;
+ var items = {};
+ var found = false;
+ var results = doc.querySelectorAll('div#results div.title>a[target="_self"], #toShowTop10 li>a');
+
for (var i=0; i<results.length; i++) {
var url = results[i].href;
var title = ZU.trimInternal(results[i].textContent);
@@ -76,8 +84,9 @@
return found ? items : false;
}

+
function scrape(doc) {
- var abs = ZU.xpath(doc, '//div/div[@style="display:inline"]')[0];
+ var abs = text(doc, '#abstract');

// Get genric URL, preferring the conference version.
var url = ZU.xpath(doc, '//meta[@name="citation_conference"]\
@@ -119,9 +128,6 @@
//fix DOIs if they're in URL form
if (item.DOI) item.DOI = item.DOI.replace(/^.*\/(10\.\d+\/)/, '$1');

- //The Abstract from above - may or may not work
- if (abs) item.abstractNote = abs.textContent;
-
//Conference Locations shouldn't go int Loc in Archive (nor should anything else)
delete item.archiveLocation;

@@ -131,7 +137,7 @@
}

//full issues of journals/magazines don't have a title
- if (!item.title && text.indexOf("issue_date")>-1) {
+ if (!item.title && text.includes("issue_date")) {
var m = text.match(/issue_date\s*=\s*{(.*)},?/);
item.itemType = "book";
item.title = item.publicationTitle;
@@ -140,7 +146,23 @@
}
}

- item.complete();
+ //The abstract from above or we try to make an individual request
+ //e.g. for multiples
+ if (!item.abstractNote) {
+ if (abs && abs.trim()) {
+ item.abstractNote = abs;
+ item.complete();
+ } else {
+ ZU.doGet("https://dl.acm.org/tab_abstract.cfm?id="+itemID, function(abstract) {
+ item.abstractNote = ZU.unescapeHTML(abstract);
+ if (item.abstractNote.trim() == "An abstract is not available.") delete item.abstractNote;
+ item.complete();
+ });
+ }
+ } else {
+ item.complete();
+ }
+
});
translator.translate();
});
@@ -243,7 +265,7 @@
},
{
"type": "web",
- "url": "http://dl.acm.org/citation.cfm?id=254650.257486&coll=DL&dl=GUIDE",
+ "url": "https://dl.acm.org/citation.cfm?id=254650.257486&coll=DL&dl=GUIDE",
"defer": true,
"items": [.
{
@@ -270,18 +292,34 @@
"libraryCatalog": "ACM Digital Library",
"pages": "137–149",
"publicationTitle": "J. Electron. Test.",
- "url": "http://dx.doi.org/10.1023/A:1008286901817",
+ "url": "https://doi.org/10.1023/A:1008286901817",
"volume": "10",
"attachments": [],
"tags": [.
- "DFM",
- "DFT",
- "MCM",
- "SMT",
- "board",
- "simulation",
- "test",
- "yield"
+ {
+ "tag": "DFM"
+ },
+ {
+ "tag": "DFT"
+ },
+ {
+ "tag": "MCM"
+ },
+ {
+ "tag": "SMT"
+ },
+ {
+ "tag": "board"
+ },
+ {
+ "tag": "simulation"
+ },
+ {
+ "tag": "test"
+ },
+ {
+ "tag": "yield"
+ }
],
"notes": [],
"seeAlso": []
@@ -422,6 +460,11 @@
"seeAlso": []
}
]
+ },
+ {
+ "type": "web",
+ "url": "https://dl.acm.org/ccs/ccs.cfm?id=10010343&lid=0.10010147.10010341.10010342.10010343",
+ "items": "multiple"
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/Air University Journals.js b/Air University Journals.js
new file mode 100644
index 0000000..a8eba0d
--- /dev/null
+++ b/Air University Journals.js
@@ -0,0 +1,172 @@
+{
+ "translatorID": "e317b4d4-03cf-4356-aa3c-defadc6fd10e",
+ "label": "Air University Journals",
+ "creator": "Sebastian Karcher",
+ "target": "https?://www\\.airuniversity\\.af\\.mil/(ASPJ|SSQ)",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-11 22:06:13"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 Sebastian Karcher
+
+ 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ if (text(doc, 'a[title="View Article"]', 1)) {
+ return "multiple";
+ }
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ var rows = ZU.xpath(doc, '//div[@class="da_black"]/table[tbody//a[@title="View Article"]]');
+ if (rows.length < 3) {
+ rows = ZU.xpath(doc, '//div[@class="da_black"]//p[span//a[@title="View Article"]]');
+ }
+ // Z.debug(rows.length);
+ var items = {};
+ if (url.includes("/ASPJ/")) {
+ var journal = "Air & Space Power Journal";
+ var abbr = "ASPJ";
+ var ISSN = "1554-2505";
+ }
+ else if (url.includes("/SSQ/")) {
+ var journal = "Strategic Studies Quarterly";
+ var abbr = "SSQ";
+ var ISSN = "1936-1815";
+ }
+ var voliss = text(doc, 'h1.title');
+ var date = text(doc, 'p.da_story_info');
+ for (let i = 0; i < rows.length; i++) {
+ var infoArray = [];
+
+ var title = text(rows[i], 'span > a[title="View Article"]');
+ var id = attr(rows[i], 'span > a[title="View Article"]', "id");
+ if (!title) {
+ title = text(rows[i], 'strong > a[title="View Article"]');
+ id = attr(rows[i], 'strong > a[title="View Article"]', "id");
+ }
+
+ if (title !== null) {
+ items[id] = title;
+ }
+ }
+
+ Zotero.selectItems(items, function(items) {
+ // Z.debug(items);
+ if (!items) {
+ return true;
+ }
+ for (let id in items) {
+ scrapeMultiples(doc, id, date, voliss, journal, abbr, ISSN);
+ }
+ });
+ }
+}
+
+
+function scrapeMultiples(doc, id, date, voliss, journal, abbr, ISSN) {
+ // Z.debug(id)
+ var item = new Z.Item('journalArticle');
+ var title = text(doc, 'span > a#' + id);
+ var link = attr(doc, 'span > a#' + id, "href");
+ if (!title) {
+ title = text(doc, 'strong > a#' + id);
+ link = attr(doc, 'strong > a#' + id, "href");
+ }
+ item.title = ZU.trimInternal(title.trim());
+ var section = ZU.xpath(doc, '//div[@class="da_black"]/table[tbody//a[@id="' + id + '"]]');
+ if (!section.length) {
+ section = ZU.xpath(doc, '//div[@class="da_black"]/p[span//a[@id="' + id + '"]]');
+ }
+ if (section.length) {
+ var authors = text(section[0], 'p>span>strong');
+ if (!authors) authors = text(section[0], 'p>strong>span');
+ if (authors) {
+ authors = ZU.trimInternal(authors.trim());
+ // delete name suffixes
+ authors = authors.replace(/, (USAF|USN|Retired|PE|LMFT)\b/g, "");
+ authorsList = authors.split(/\/|,?\sand\s|,\s/);
+ var rank = /^(By:|Adm|Rear Adm|Col|Lt Col|Brig Gen|Gen|Maj Gen \(sel\)|Maj|Capt|Maj Gen|2nd Lt|W(in)?g Cdr|Mr?s\.|Mr\.|Dr\.)\s/;
+
+ for (i = 0; i < authorsList.length; i++) {
+ // Z.debug(authorsList[i]);
+ var author = authorsList[i].trim().replace(rank, "");
+ item.creators.push(ZU.cleanAuthor(author, "author"));
+ }
+ }
+ var abstract = text(section[0], 'p > span', 2);
+ if (!abstract) abstract = text(section[0], 'p > span', 1);
+ if (abstract) {
+ item.abstractNote = ZU.trimInternal(abstract.trim());
+ }
+ }
+
+ if (date && date.includes("Published ")) {
+ item.date = date.match(/Published (.+)/)[1];
+ }
+
+
+ if (voliss && voliss.includes("Volume")) {
+ item.volume = voliss.match(/Volume (\d+)/)[1];
+ }
+ if (voliss && voliss.includes("Issue")) {
+ item.issue = voliss.match(/Issue (\d+)/)[1];
+ }
+
+ item.publicationTitle = journal;
+ item.journalAbbreviation = abbr;
+ item.ISSN = ISSN;
+
+ item.attachments.push({
+ url: link,
+ title: "Full Text PDF",
+ mimeType: "application/pdf"
+ });
+ item.complete();
+}
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "http://www.airuniversity.af.mil/SSQ/Display/Article/1261066/volume-11-issue-3-fall-2017/",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "http://www.airuniversity.af.mil/ASPJ/Display/Article/1151902/volume-30-issue-2-summer-2016/",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/BibTeX.js b/BibTeX.js
index 1143fa0..b19e623 100644
--- a/BibTeX.js
+++ b/BibTeX.js
@@ -19,7 +19,7 @@
"inRepository": true,
"translatorType": 3,
"browserSupport": "gcsv",
- "lastUpdated": "2017-07-05 19:32:38"
+ "lastUpdated": "2017-12-27 22:23:20"
}

function detectImport() {
@@ -170,7 +170,13 @@
institution:"publisher",
publisher:"publisher",
issue:"issue",
- location:"place"
+ location:"place",
+ // import also BibLaTeX fields:
+ journaltitle:"publicationTitle",
+ shortjournal:"journalAbbreviation",
+ eventtitle:"conferenceName",
+ pagetotal:"numPages",
+ version:"version"
};

var zotero2bibtexTypeMap = {
@@ -207,7 +213,21 @@
"mastersthesis":"thesis",
"misc":"book",
"proceedings":"book",
- "online":"webpage"
+ "online":"webpage",
+ // from BibLaTeX translator:
+ "thesis":"thesis",
+ "letter":"letter",
+ "movie":"film",
+ "artwork":"artwork",
+ "report":"report",
+ "legislation":"bill",
+ "jurisdiction":"case",
+ "audio":"audioRecording",
+ "video":"videoRecording",
+ "software":"computerProgram",
+ "inreference":"encyclopediaArticle",
+ "collection":"book",
+ "mvbook":"book"
};

/*
@@ -821,6 +841,10 @@
item._extraFields = [];
}

+ // For theses write the thesisType determined by the BibTeX type.
+ if (type == "mastersthesis" && item) item.type = "Master's Thesis";
+ if (type == "phdthesis" && item) item.type = "PhD Thesis";
+
var field = "";

// by setting dontRead to true, we can skip a read on the next iteration
@@ -1227,6 +1251,22 @@
// determine type
var type = zotero2bibtexTypeMap[item.itemType];
if (typeof(type) == "function") { type = type(item); }
+
+ // For theses BibTeX distinguish between @mastersthesis and @phdthesis
+ // and the default mapping will map all Zotero thesis items to a
+ // BibTeX phdthesis item. Here we try to fix this by examining the
+ // Zotero thesisType field.
+ if (type == "phdthesis") {
+ // In practice, we just want to separate out masters theses,
+ // and will assume everything else maps to @phdthesis. Better to
+ // err on the side of caution.
+ var thesisType = item.type && item.type.toLowerCase().replace(/[\s.]+|thesis|unpublished/g, '');
+ if (thesisType && (thesisType == 'master' || thesisType == 'masters' || thesisType == "master's" || thesisType == 'ms' || thesisType == 'msc' || thesisType == 'ma')) {
+ type = "mastersthesis";
+ item["type"] = "";
+ }
+ }
+
if(!type) type = "misc";

// create a unique citation key
@@ -3549,6 +3589,52 @@
"seeAlso": []
}
]
+ },
+ {
+ "type": "import",
+ "input": "@mastersthesis{DBLP:ms/Hoffmann2008,\n author = {Oliver Hoffmann},\n title = {Regelbasierte Extraktion und asymmetrische Fusion bibliographischer\n Informationen},\n school = {Diplomarbeit, Universit{\\\"{a}}t Trier, {FB} IV, {DBIS/DBLP}},\n year = {2009},\n url = {http://dblp.uni-trier.de/papers/DiplomarbeitOliverHoffmann.pdf},\n timestamp = {Wed, 03 Aug 2011 15:40:21 +0200},\n biburl = {http://dblp.org/rec/bib/ms/Hoffmann2008},\n bibsource = {dblp computer science bibliography, http://dblp.org}\n}\n\n@phdthesis{DBLP:phd/Ackermann2009,\n author = {Marcel R. Ackermann},\n title = {Algorithms for the Bregman k-Median problem},\n school = {University of Paderborn},\n year = {2009},\n url = {http://digital.ub.uni-paderborn.de/hs/content/titleinfo/1561},\n urn = {urn:nbn:de:hbz:466-20100407029},\n timestamp = {Thu, 01 Dec 2016 16:33:49 +0100},\n biburl = {http://dblp.org/rec/bib/phd/Ackermann2009},\n bibsource = {dblp computer science bibliography, http://dblp.org}\n}",
+ "items": [.
+ {
+ "itemType": "thesis",
+ "title": "Regelbasierte Extraktion und asymmetrische Fusion bibliographischer Informationen",
+ "creators": [.
+ {
+ "firstName": "Oliver",
+ "lastName": "Hoffmann",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2009",
+ "itemID": "DBLP:ms/Hoffmann2008",
+ "thesisType": "Master's Thesis",
+ "university": "Diplomarbeit, Universität Trier, FB IV, DBIS/DBLP",
+ "url": "http://dblp.uni-trier.de/papers/DiplomarbeitOliverHoffmann.pdf",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ },
+ {
+ "itemType": "thesis",
+ "title": "Algorithms for the Bregman k-Median problem",
+ "creators": [.
+ {
+ "firstName": "Marcel R.",
+ "lastName": "Ackermann",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2009",
+ "itemID": "DBLP:phd/Ackermann2009",
+ "thesisType": "PhD Thesis",
+ "university": "University of Paderborn",
+ "url": "http://digital.ub.uni-paderborn.de/hs/content/titleinfo/1561",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
}
]
/** END TEST CASES **/
diff --git a/Bookmarks.js b/Bookmarks.js
index 3a6dd84..1dec4d0 100644
--- a/Bookmarks.js
+++ b/Bookmarks.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 3,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-06-03 11:41:00"
+ "lastUpdated": "2017-12-17 17:43:00"
}

/*
@@ -126,7 +126,7 @@
}

openItem = new Zotero.Item("webpage");
- openItem.title = title;
+ openItem.title = ZU.unescapeHTML(title);
openItem.itemID = openItem.id = itemID++;
if(collection) collection.children.push(openItem);

diff --git a/Citavi 5 XML.js b/Citavi 5 XML.js
index c539e80..7239a47 100644
--- a/Citavi 5 XML.js
+++ b/Citavi 5 XML.js
@@ -12,7 +12,7 @@
"inRepository": true,
"translatorType": 1,
"browserSupport": "gcsi",
- "lastUpdated": "2016-12-29 13:57:06"
+ "lastUpdated": "2018-01-01 10:43:28"
}

/*
@@ -43,6 +43,7 @@
TEST DATA can be found here:
- Single reference (162 KB) text: https://gist.github.com/zuphilip/02d6478ace4636e4e090e348443c551e
- Larger project (1221 KB): https://gist.github.com/zuphilip/76ce89ebbdac0386507b36cff3fd499a
+ - Other project (1,11 MB): https://gist.github.com/anonymous/10fc363b6d79dae897e296a4327aa707
*/


@@ -246,10 +247,19 @@
} else if (addressType == "PubMedId" && item.extra.indexOf("PMID") == -1) {
addExtraLine(item, "PMID", address);
} else {
- item.attachments.push({
- url: address,
- title:"Location"
- });
+ // distinguish between local paths and internet addresses
+ // (maybe also encoded in AddressInfo subfield?)
+ if (address.indexOf('http://')==0 || address.indexOf('https://')==0) {
+ item.attachments.push({
+ url: address,
+ title: "Online"
+ });
+ } else {
+ item.attachments.push({
+ path: address,
+ title: "Full Text"
+ });
+ }
}
}
var callNumber = ZU.xpathText(locations[j], 'CallNumber');
@@ -336,6 +346,7 @@
var categoryLists = hierarchy[i].textContent.split(";");
var referencePoint = categoryLists[0];
if (!numbering[referencePoint]) {
+ //in some cases the ordering of these relations is different
Z.debug("Warning: Reference point for categorization hierarchy not yet found");
Z.debug(categoryLists);
continue;
@@ -348,7 +359,11 @@
for (var i=0, n=categories.length; i<n; i++) {
var collection = new Zotero.Collection();
collection.id = ZU.xpathText(categories[i], './@id');
- collection.name = numbering[collection.id].substr(2) + ' ' + ZU.xpathText(categories[i], './Name');
+ collection.name = ZU.xpathText(categories[i], './Name');
+ if (numbering[collection.id]) {
+ //add the hierarchy number whenever possible
+ collection.name = numbering[collection.id].substr(2) + ' ' + collection.name;
+ }
collection.type = 'collection';
collection.children = [];
var referenceCategories = ZU.xpath(doc, '//ReferenceCategories/OnetoN[contains(text(), "'+collection.id+'")]');
@@ -443,4 +458,4 @@
}
}/** BEGIN TEST CASES **/
var testCases = []
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/Denik CZ.js b/Denik CZ.js
new file mode 100644
index 0000000..5283548
--- /dev/null
+++ b/Denik CZ.js
@@ -0,0 +1,273 @@
+{
+ "translatorID": "4ed446ca-b480-43ee-a8fb-5f9730915edc",
+ "label": "Denik CZ",
+ "creator": "Ji?í Sedlá?ek, Philipp Zumstein",
+ "target": "^https?://[^/]*denik\\.cz",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2018-01-07 09:27:42"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 Ji?í Sedlá?ek, 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ var type = ZU.xpathText(doc, '//meta[@property="og:type"]/@content');
+ if (type == "article") {
+ return "newspaperArticle";
+ } else if (getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = doc.querySelectorAll('.right h2 a');
+ for (let i=0; i<rows.length; i++) {
+ let href = rows[i].href;
+ let title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+
+function scrape(doc, url) {
+ var authorsMeta = ZU.xpathText(doc, '//meta[@property="author"]/@content');
+
+ var translator = Zotero.loadTranslator('web');
+ // Embedded Metadata
+ translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48');
+ // translator.setDocument(doc);
+
+ translator.setHandler('itemDone', function (obj, item) {
+ if (authorsMeta) {
+ // multiple authors are not handled correctly by EM and
+ // we want to exclude generic names like "Redakce"
+ item.creators = [];
+ let authorsList = authorsMeta.split(/\s*,\s*/);
+ for (let i=0; i<authorsList.length; i++) {
+ let author = authorsList[i];
+ if (author!= "Redakce") {
+ item.creators.push(ZU.cleanAuthor(authorsList[i], "author"));
+ }
+ }
+ }
+
+ item.complete();
+ });
+
+ translator.getTranslatorObject(function(trans) {
+ trans.itemType = "newspaperArticle";
+ trans.doWeb(doc, url);
+ });
+}
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "https://trebicsky.denik.cz/zpravy_region/podivejte-se-dalsi-na-miminka-narozena-na-trebicsku-20170123.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Podívejte se další na miminka narozená na T?ebí?sku",
+ "creators": [],
+ "date": "2017-01-23T08:20:00+01:00",
+ "abstractNote": "T?ebí?sko - Díky vst?ícnosti t?ebí?ské porodnice Vám p?inášíme fotografie nejmladších obyvatel. Každý týden naši spolupracovníci objíždí porodnice a fotí nov? narozená miminka.",
+ "language": "cs",
+ "libraryCatalog": "trebicsky.denik.cz",
+ "publicationTitle": "T?ebí?ský deník",
+ "url": "https://trebicsky.denik.cz/zpravy_region/podivejte-se-dalsi-na-miminka-narozena-na-trebicsku-20170123.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://trebicsky.denik.cz/zpravy_region/pyrotechniku-pouzivejte-ohleduplne-a-bezpecne-doporucuji-hasici-20171231.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Pyrotechniku používejte ohledupln? a bezpe?n?, doporu?ují hasi?i",
+ "creators": [.
+ {
+ "firstName": "Lud?k",
+ "lastName": "Mahel",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2017-12-31T10:08:00+01:00",
+ "abstractNote": "T?ebí?sko - P?ivítání nového roku se neobejde bez petard a rachejtlí. Jak pyrotechniku správn? používat? Zde jsou n?která doporu?ení.",
+ "language": "cs",
+ "libraryCatalog": "trebicsky.denik.cz",
+ "publicationTitle": "T?ebí?ský deník",
+ "url": "https://trebicsky.denik.cz/zpravy_region/pyrotechniku-pouzivejte-ohleduplne-a-bezpecne-doporucuji-hasici-20171231.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.denik.cz/z_domova/silvestr-se-zachrankou-ustrelena-ruka-agrese-i-slzy-zoufalstvi-20180101.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Silvestr se záchrankou: Ust?elená ruka, agrese i slzy zoufalství",
+ "creators": [.
+ {
+ "firstName": "Ji?í",
+ "lastName": "Sejkora",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2018-01-01T14:22:00+01:00",
+ "abstractNote": "/FOTOGALERIE, VIDEO/ Silvestrovská no?ní služba se záchraná?i v Pardubicích o?ima redaktora Deníku. Podívejte se, ?ím vším si musí projít první den nového roku.",
+ "language": "cs",
+ "libraryCatalog": "www.denik.cz",
+ "publicationTitle": "Deník.cz",
+ "shortTitle": "Silvestr se záchrankou",
+ "url": "https://www.denik.cz/z_domova/silvestr-se-zachrankou-ustrelena-ruka-agrese-i-slzy-zoufalstvi-20180101.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Pardubice"
+ },
+ {
+ "tag": "silvestr"
+ },
+ {
+ "tag": "záchranná služba"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.denik.cz/ze_sveta/co-nas-ceka-v-breznu-prezidentske-volby-v-rusku-sanci-uspet-ma-jen-putin-20180101.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Co nás ?eká v b?eznu? Prezidentské volby v Rusku. Šanci usp?t má jen Putin",
+ "creators": [.
+ {
+ "firstName": "Michal",
+ "lastName": "Bystrov",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Vojt?ch",
+ "lastName": "Žižka",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2018-01-02T00:30:00+01:00",
+ "abstractNote": "Na nedávné bilan?ní konferenci v Moskv? potvrdil v?dce Ruské federace Vladimir Putin, že v b?eznu 2018 hodlá znovu kandidovat na prezidenta. Poprvé tuto informaci sd?lil ve?ejnosti v první polovin? prosince p?i setkání s pracovníky automobilky GAZ v Nižním Novgorodu.",
+ "language": "cs",
+ "libraryCatalog": "www.denik.cz",
+ "publicationTitle": "Deník.cz",
+ "shortTitle": "Co nás ?eká v b?eznu?",
+ "url": "https://www.denik.cz/ze_sveta/co-nas-ceka-v-breznu-prezidentske-volby-v-rusku-sanci-uspet-ma-jen-putin-20180101.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Putin"
+ },
+ {
+ "tag": "Rusko"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.denik.cz/hledani/?q=praha&s=all",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "https://www.denik.cz/ze_sveta/",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/DigiZeitschriften.js b/DigiZeitschriften.js
index c42883e..4e80c94 100644
--- a/DigiZeitschriften.js
+++ b/DigiZeitschriften.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsv",
- "lastUpdated": "2016-09-12 20:57:07"
+ "lastUpdated": "2018-01-07 09:28:38"
}

/*
@@ -139,9 +139,10 @@
}
],
"date": "1997",
+ "ISSN": "0001-9054",
+ "language": "de",
"libraryCatalog": "DigiZeitschriften",
"pages": "117-143",
- "ISSN": "0001-9054",
"publicationTitle": "Aequationes Mathematicae",
"url": "http://www.digizeitschriften.de/dms/img/?PPN=PPN356261603_0054&DMDID=dmdlog15",
"volume": "54",
@@ -171,9 +172,10 @@
}
],
"date": "1997",
+ "ISSN": "0001-9054",
+ "language": "de",
"libraryCatalog": "DigiZeitschriften",
"pages": "117-143",
- "ISSN": "0001-9054",
"publicationTitle": "Aequationes Mathematicae",
"url": "http://www.digizeitschriften.de/en/dms/img/?PPN=GDZPPN002612097",
"volume": "54",
@@ -207,9 +209,10 @@
"creatorType": "author"
}
],
+ "ISSN": "0003-9268",
+ "language": "de",
"libraryCatalog": "DigiZeitschriften",
"pages": "68-77",
- "ISSN": "0003-9268",
"publicationTitle": "Archiv für mathematische Logik und Grundlagenforschung",
"url": "http://www.digizeitschriften.de/dms/img/?PPN=PPN379931524_0002&DMDID=dmdlog10",
"volume": "2",
@@ -239,9 +242,10 @@
}
],
"date": "1997",
+ "ISSN": "0001-9054",
+ "language": "de",
"libraryCatalog": "DigiZeitschriften",
"pages": "117-143",
- "ISSN": "0001-9054",
"publicationTitle": "Aequationes Mathematicae",
"url": "http://www.digizeitschriften.de/dms/img/?PPN=GDZPPN002612097",
"volume": "54",
diff --git a/EUR-Lex.js b/EUR-Lex.js
new file mode 100644
index 0000000..44b3c0b
--- /dev/null
+++ b/EUR-Lex.js
@@ -0,0 +1,291 @@
+{
+ "translatorID": "bf053edc-a8c3-458c-93db-6d04ead2e636",
+ "label": "EUR-Lex",
+ "creator": "Philipp Zumstein",
+ "target": "^https?://(www\\.)?eur-lex\\.europa\\.eu/(legal-content/[A-Z][A-Z]/TXT/|search.html\\?)",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-21 20:27:07"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+// the eli resource types are described at:
+// http://publications.europa.eu/mdr/resource/authority/resource-type/html/resourcetypes-eng.html
+var typeMapping = {
+ 'DIR': 'bill', // directive
+ 'REG': 'statute', // regulation
+ 'DEC': 'statute', // decision
+ 'RECO': 'report', // recommodation
+ 'OPI': 'report' // opinion
+};
+
+
+function detectWeb(doc, url) {
+ var eliTypeURI = attr(doc, 'meta[property="eli:type_document"]', 'resource');
+ if (eliTypeURI) {
+ var eliType = eliTypeURI.split('/').pop();
+ var eliCategory = eliType.split('_')[0];
+ var type = typeMapping[eliCategory];
+ if (type) {
+ return type;
+ } else {
+ Z.debug("Unknown eliType: " + eliType);
+ }
+ } else if (getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = doc.querySelectorAll('a.title');
+ for (let i=0; i<rows.length; i++) {
+ let href = rows[i].href;
+ let title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+// we need to remember the language in search page to use the same for
+// individual entry page
+var autoLanguage;
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ var m = url.match(/\blocale=([a-z][a-z])/);
+ if (m) {
+ autoLanguage = m[1];
+ }
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+
+// this maps language codes from ISO 639-1 to 639-3
+var languageMapping = {
+ 'BG': 'bul',
+ 'CS': 'ces',
+ 'DA': 'dan',
+ 'DE': 'deu',
+ 'EL': 'ell',
+ 'EN': 'eng',
+ 'ES': 'spa',
+ 'ET': 'est',
+ 'FI': 'fin',
+ 'FR': 'fra',
+ 'GA': 'gle',
+ 'HR': 'hrv',
+ 'HU': 'hun',
+ 'IT': 'ita',
+ 'LV': 'lav',
+ 'LT': 'lit',
+ 'MT': 'mlt',
+ 'NL': 'nld',
+ 'PL': 'pol',
+ 'PT': 'por',
+ 'RO': 'ron',
+ 'SK': 'slk',
+ 'SL': 'slv',
+ 'SV': 'swe'
+};
+
+
+function scrape(doc, url) {
+ var type = detectWeb(doc, url);
+ var item = new Zotero.Item(type);
+
+ // determine the language we are currently looking the document at
+ var languageUrl = url.split('/')[4];
+ if (languageUrl=="AUTO") {
+ languageUrl = autoLanguage || "EN";
+ }
+ var language = languageMapping[languageUrl] || "eng";
+
+ item.title = attr(doc, 'meta[property="eli:title"][lang=' + languageUrl.toLowerCase() + ']', 'content');
+ item.language = languageUrl.toLowerCase();
+
+ var uri = attr(doc, '#format_language_table_digital_sign_act_' + languageUrl.toUpperCase(), 'href');
+ if (uri) {
+ var uriParts = uri.split('/').pop().replace('?uri=', '').split(':');
+ // e.g. uriParts = ["OJ", "L", "1995", "281", "TOC"]
+ // e.g. uriParts = ["DD", "03", "061", "TOC", "FI"]
+ if (uriParts.length>=4) {
+ if (/\d+/.test(uriParts[1])) {
+ item.code = uriParts[0];
+ item.codeNumber = uriParts[1] + ', ' + uriParts[2];
+ } else {
+ item.code = uriParts[0] + ' ' + uriParts[1];
+ item.codeNumber = uriParts[3];
+ }
+ if (type=="bill") {
+ item.codeVolume = item.code;
+ item.code = item.codeNumber;
+ }
+ }
+ }
+
+ item.number = attr(doc, 'meta[property="eli:id_local"]', 'content');
+
+ item.date = attr(doc, 'meta[property="eli:date_publication"]', 'content');
+ // attr(doc, 'meta[property="eli:date_document"]', 'content');
+
+ var passedBy = doc.querySelectorAll('meta[property="eli:passed_by"]');
+ var passedByArray = [];
+ for (let i=0; i<passedBy.length; i++) {
+ passedByArray.push(passedBy[i].getAttribute('resource').split('/').pop());
+ }
+ item.legislativeBody = passedByArray.join(', ');
+
+ item.url = attr(doc, 'meta[typeOf="eli:LegalResource"]', 'about') + '/' + language;
+
+ // eli:is_about -> eurovoc -> tags
+
+ item.complete();
+}
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:31995L0046",
+ "items": [.
+ {
+ "itemType": "bill",
+ "title": "Directive 95/46/EC of the European Parliament and of the Council of 24 October 1995 on the protection of individuals with regard to the processing of personal data and on the free movement of such data",
+ "creators": [],
+ "date": "1995-11-23",
+ "billNumber": "31995L0046",
+ "code": "281",
+ "codeVolume": "OJ L",
+ "language": "en",
+ "legislativeBody": "EP, CONSIL",
+ "url": "http://data.europa.eu/eli/dir/1995/46/oj/eng",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/legal-content/CS/TXT/?uri=CELEX:31995L0046&from=DE",
+ "items": [.
+ {
+ "itemType": "bill",
+ "title": "Sm?rnice Evropského parlamentu a Rady 95/46/ES ze dne 24. ?íjna 1995 o ochran? fyzických osob v souvislosti se zpracováním osobních údaj? a o volném pohybu t?chto údaj?",
+ "creators": [],
+ "date": "1995-11-23",
+ "billNumber": "31995L0046",
+ "code": "13, 015",
+ "codeVolume": "DD",
+ "language": "cs",
+ "legislativeBody": "EP, CONSIL",
+ "url": "http://data.europa.eu/eli/dir/1995/46/oj/ces",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:31995L0046",
+ "items": [.
+ {
+ "itemType": "bill",
+ "title": "Richtlinie 95/46/EG des Europäischen Parlaments und des Rates vom 24. Oktober 1995 zum Schutz natürlicher Personen bei der Verarbeitung personenbezogener Daten und zum freien Datenverkehr",
+ "creators": [],
+ "date": "1995-11-23",
+ "billNumber": "31995L0046",
+ "code": "281",
+ "codeVolume": "OJ L",
+ "language": "de",
+ "legislativeBody": "EP, CONSIL",
+ "url": "http://data.europa.eu/eli/dir/1995/46/oj/deu",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/legal-content/FR/TXT/?uri=CELEX:31994R2257",
+ "items": [.
+ {
+ "itemType": "statute",
+ "nameOfAct": "Règlement (CE) n° 2257/94 de la Commission, du 16 septembre 1994, fixant des normes de qualité pour les bananes (Texte présentant de l'intérêt pour l'EEE)",
+ "creators": [],
+ "dateEnacted": "1994-09-20",
+ "code": "OJ L",
+ "codeNumber": "245",
+ "language": "fr",
+ "publicLawNumber": "31994R2257",
+ "url": "http://data.europa.eu/eli/reg/1994/2257/oj/fra",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/search.html?lang=en&text=%22open+access%22&qid=1513887127793&type=quick&scope=EURLEX&locale=nl",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/El Pais.js b/El Pais.js
new file mode 100644
index 0000000..ac5c208
--- /dev/null
+++ b/El Pais.js
@@ -0,0 +1,262 @@
+{
+ "translatorID": "c3b97a6e-4879-4f77-9dbb-18a3fa2b2b81",
+ "label": "El Pais",
+ "creator": "Sebastian Karcher",
+ "target": "^https?://([^.]\\.)?elpais\\.com/",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2018-01-07 16:59:34"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2018 Sebastian Karchger
+
+ 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ if (url.search(/\d+_\d+\.html/) !== -1) {
+ return "newspaperArticle";
+ } else if ((url.includes("/buscador") || url.includes("/tag/")) && getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = doc.querySelectorAll('h2>a[href*=".html"]');
+ for (let i=0; i<rows.length; i++) {
+ let href = rows[i].href;
+ let title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+function scrape(doc, url) {
+ var translator = Zotero.loadTranslator('web');
+ // Embedded Metadata
+ translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48');
+ // translator.setDocument(doc);
+
+ translator.setHandler('itemDone', function (obj, item) {
+ //improve author parsing
+ item.creators = [];
+ var authors = attr(doc, 'meta[name=author]', 'content');
+ authors = authors.split(/\s*,\s/);
+ //Z.debug(authors)
+ for (let author of authors) {
+ if (author !== "Agencias") {
+ item.creators.push(ZU.cleanAuthor(author, "author"));
+ }
+ }
+ item.publicationTitle = "El País";
+ item.ISSN = "1134-6582";
+ item.place = "Madrid";
+ if (item.section) {
+ item.section = ZU.capitalizeTitle(item.section.replace(/_/, " "), true);
+ }
+ item.complete();
+ });
+
+ translator.getTranslatorObject(function(trans) {
+ trans.itemType = "newspaperArticle";
+ trans.addCustomFields({
+ "article:section" : "section"
+ });
+ trans.doWeb(doc, url);
+ });
+}
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "https://elpais.com/tag/estados_unidos/a/",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "https://politica.elpais.com/politica/2018/01/05/actualidad/1515170264_027943.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Juan Carlos I celebra su 80º cumpleaños en La Zarzuela junto a 70 invitados",
+ "creators": [.
+ {
+ "firstName": "Francesco",
+ "lastName": "Rodella",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Alejandro",
+ "lastName": "Romero",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2018-01-05",
+ "ISSN": "1134-6582",
+ "abstractNote": "El rey emérito acudirá este sábado con Felipe VI a la conmemoración de la Pascua militar en el Palacio Real",
+ "language": "es",
+ "libraryCatalog": "politica.elpais.com",
+ "place": "Madrid",
+ "publicationTitle": "El País",
+ "section": "Politica",
+ "url": "https://politica.elpais.com/politica/2018/01/05/actualidad/1515170264_027943.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Aniversarios"
+ },
+ {
+ "tag": "Casa Real"
+ },
+ {
+ "tag": "Celebraciones"
+ },
+ {
+ "tag": "Cumpleaños"
+ },
+ {
+ "tag": "Eventos"
+ },
+ {
+ "tag": "Familia Real"
+ },
+ {
+ "tag": "Felipe VI"
+ },
+ {
+ "tag": "Jefe de Estado"
+ },
+ {
+ "tag": "Juan Carlos I"
+ },
+ {
+ "tag": "Política"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://elpais.com/internacional/2018/01/06/mundo_global/1515256305_575545.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Hallada vacía la botella de vodka valorada en 1,1 millones de euros robada en Copenhague",
+ "creators": [],
+ "date": "2018-01-06",
+ "ISSN": "1134-6582",
+ "abstractNote": "Un obrero encontró el recipiente, hecho de oro y plata, y está aparentemente intacto y en poder de la policía",
+ "language": "es",
+ "libraryCatalog": "elpais.com",
+ "place": "Madrid",
+ "publicationTitle": "El País",
+ "section": "Mundo Global",
+ "url": "https://elpais.com/internacional/2018/01/06/mundo_global/1515256305_575545.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Aguardiente"
+ },
+ {
+ "tag": "Bebidas"
+ },
+ {
+ "tag": "Bebidas alcohólicas"
+ },
+ {
+ "tag": "Copenhague"
+ },
+ {
+ "tag": "Dinamarca"
+ },
+ {
+ "tag": "Escandinavia"
+ },
+ {
+ "tag": "Fuerzas seguridad"
+ },
+ {
+ "tag": "Policía"
+ },
+ {
+ "tag": "Robos"
+ },
+ {
+ "tag": "Vodka"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://elpais.com/buscador/?qt=carlos",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/Embedded Metadata.js b/Embedded Metadata.js
index fd9981b..e6e64f1 100644
--- a/Embedded Metadata.js
+++ b/Embedded Metadata.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-11-25 17:49:05"
+ "lastUpdated": "2018-01-07 09:42:13"
}

/*
@@ -616,10 +616,15 @@
}

if(!newItem.url) {
- newItem.url = ZU.xpathText(doc, '//head/link[@rel="canonical"]/@href');
+ newItem.url = ZU.xpathText(doc, '//head/link[@rel="canonical"]/@href') || doc.location.href;
}
- if(!newItem.url) {
- newItem.url = doc.location.href;
+
+ if (!newItem.language) {
+ newItem.language = ZU.xpathText(doc, '//x:meta[@name="language"]/@content', namespaces) ||
+ ZU.xpathText(doc, '//x:meta[@name="lang"]/@content', namespaces) ||
+ ZU.xpathText(doc, '//x:meta[@http-equiv="content-language"]/@content', namespaces) ||
+ ZU.xpathText(doc, '//html/@lang') ||
+ doc.documentElement.getAttribute('xml:lang');
}


@@ -932,6 +937,7 @@
"date": "2011",
"abstractNote": "Why wait for federal action on incentives to reduce energy use and address Greenhouse Gas (GHG) reductions (e.g. CO2), when we can take personal actions right now in our private lives and in our communities? One such initiative by private citizens working with Portsmouth NH officials resulted in the installation of energy reducing lighting products on Court St. and the benefits to taxpayers are still coming after over 4 years of operation. This citizen initiative to save money and reduce CO2 emissions, while only one small effort, could easily be duplicated in many towns and cities. Replacing old lamps in just one street fixture with a more energy efficient (Non-LED) lamp has resulted after 4 years of operation ($\\sim $15,000 hr. life of product) in real electrical energy savings of $>$ {\\$}43. and CO2 emission reduction of $>$ 465 lbs. The return on investment (ROI) was less than 2 years. This is much better than any financial investment available today and far safer. Our street only had 30 such lamps installed; however, the rest of Portsmouth (population 22,000) has at least another 150 street lamp fixtures that are candidates for such an upgrade. The talk will also address other energy reduction measures that green the planet and also put more green in the pockets of citizens and municipalities.",
"conferenceName": "Climate Change and the Future of Nuclear Power",
+ "language": "en",
"libraryCatalog": "scholarworks.umass.edu",
"shortTitle": "Session F",
"url": "http://scholarworks.umass.edu/climate_nuclearpower/2011/nov19/34",
@@ -970,6 +976,7 @@
"ISSN": "1947-508X",
"abstractNote": "The purpose of this paper is to examine the contemporary role of an eighteenth century bounty proclamation issued on the Penobscot Indians of Maine. We focus specifically on how the changing cultural context of the 1755 Spencer Phips Bounty Proclamation has transformed the document from serving as a tool for sanctioned violence to a tool of decolonization for the Indigenous peoples of Maine. We explore examples of the ways indigenous and non-indigenous people use the Phips Proclamation to illustrate past violence directed against Indigenous peoples. This exploration is enhanced with an analysis of the re-introduction of the Phips Proclamation using concepts of decolonization theory.",
"issue": "1",
+ "language": "en",
"libraryCatalog": "scholarworks.umass.edu",
"pages": "2",
"publicationTitle": "Landscapes of Violence",
@@ -1007,6 +1014,7 @@
],
"date": "2012",
"abstractNote": "This thesis examines decentralized meta-reasoning. For a single agent or multiple agents, it may not be enough for agents to compute correct decisions if they do not do so in a timely or resource efficient fashion. The utility of agent decisions typically increases with decision quality, but decreases with computation time. The reasoning about one's computation process is referred to as meta-reasoning. Aspects of meta-reasoning considered in this thesis include the reasoning about how to allocate computational resources, including when to stop one type of computation and begin another, and when to stop all computation and report an answer. Given a computational model, this translates into computing how to schedule the basic computations that solve a problem. This thesis constructs meta-reasoning strategies for the purposes of monitoring and control in multi-agent settings, specifically settings that can be modeled by the Decentralized Partially Observable Markov Decision Process (Dec-POMDP). It uses decision theory to optimize computation for efficiency in time and space in communicative and non-communicative decentralized settings. Whereas base-level reasoning describes the optimization of actual agent behaviors, the meta-reasoning strategies produced by this thesis dynamically optimize the computational resources which lead to the selection of base-level behaviors.",
+ "language": "en",
"libraryCatalog": "scholarworks.umass.edu",
"university": "University of Massachusetts Amherst",
"url": "http://scholarworks.umass.edu/open_access_dissertations/508",
@@ -1135,9 +1143,16 @@
{
"itemType": "webpage",
"title": "Junot Díaz: My stories come from trauma",
- "creators": [],
+ "creators": [.
+ {
+ "firstName": "Gregg",
+ "lastName": "Barrios",
+ "creatorType": "author"
+ }
+ ],
"date": "2012-10-10 15:36:00",
"abstractNote": "The effervescent author of \"This is How You Lose Her\" explains the darkness coursing through his fiction",
+ "language": "en",
"shortTitle": "Junot Díaz",
"url": "https://www.salon.com/2012/10/10/junot_diaz_my_stories_come_from_trauma/",
"websiteTitle": "Salon",
@@ -1169,6 +1184,7 @@
"date": "2013-12-22T11:58:34+00:00",
"abstractNote": "Northwestern University recently condemned the American Studies Association boycott of Israel. Unlike some other schools that quit their institutional membership in the ASA over the boycott, Northwestern has not. Many of my Northwestern colleagues were about to start urging a similar withdrawal.\nThen we learned from our administration that despite being listed as in institutional member by the ASA, the university has, after checking, concluded it has no such membership, does not plan to get one, and is unclear why the ASA would list us as institutional member.\nApparently, at least several other schools listed by the ASA as institutional members say they have no such relationship.\nThe ASA has been spending a great deal of energy on political activism far from its mission, but apparently cannot keep its books in order. The association has yet to explain how it has come to list as institutional members so many schools that know nothing about such a membership. The ASA’s membership rolls may get much shorter in the coming weeks even without any quitting.\nHow this confusion came to arise is unclear. ASA membership, like that of many academic organizations, comes with a subscription to their journal. Some have suggested that perhaps the ASA also counts as members any institution whose library happened to subscribe to the journal, ie tacking on membership to a subscription, rather than vice versa. This would not be fair on their part. A library may subscribe to all sorts of journals for academic research purposes (ie Pravda), without endorsing the organization that publishes it. That is the difference between subscription and membership.\nI eagerly await the ASA’s explanation of the situation. [...]",
"blogTitle": "The Volokh Conspiracy",
+ "language": "en-US",
"url": "http://volokh.com/2013/12/22/northwestern-cant-quit-asa-boycott-member/",
"attachments": [.
{
@@ -1480,6 +1496,7 @@
"DOI": "10.1353/kri.2008.0061",
"ISSN": "1538-5000",
"issue": "4",
+ "language": "en",
"libraryCatalog": "muse.jhu.edu",
"pages": "627-656",
"publicationTitle": "Kritika: Explorations in Russian and Eurasian History",
diff --git a/Erudit.js b/Erudit.js
new file mode 100644
index 0000000..ebeb9c7
--- /dev/null
+++ b/Erudit.js
@@ -0,0 +1,272 @@
+{
+ "translatorID": "daad5868-6e6a-414e-b2da-14fa013879fc",
+ "label": "Erudit",
+ "creator": "Philipp Zumstein",
+ "target": "^https?://(www\\.)?erudit\\.org/",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2018-01-02 22:48:58"
+}
+
+/*
+ ***** 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ var type = attr(doc, 'meta[property="og:type"]', 'content');
+ if ((url.includes('/revues/') || url.includes('/journals/')) && type == "article") {
+ return "journalArticle";
+ } else if (getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = doc.querySelectorAll('.result h3 a, .article-item h6 a');
+ for (let i=0; i<rows.length; i++) {
+ let href = rows[i].href;
+ let title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+
+function scrape(doc, url) {
+ var abstractFR = text(doc, '#resume-fr>p');
+ var abstractEN = text(doc, '#resume-en>p');
+ var abstract;
+ if (url.includes('/en/')) {
+ abstract = abstractEN || abstractFR;
+ } else {
+ abstract = abstractFR || abstractEN;
+ }
+ var translator = Zotero.loadTranslator('web');
+ // Embedded Metadata
+ translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48');
+ translator.setDocument(doc);
+
+ translator.setHandler('itemDone', function (obj, item) {
+ if (abstract) {
+ item.abstractNote = abstract.replace(/^\s*/mg, '').replace(/\n/g, ' ');
+ }
+ if (item.publicationTitle) {
+ item.publicationTitle = ZU.unescapeHTML(item.publicationTitle);
+ }
+ item.complete();
+ });
+
+ translator.translate();
+}
+
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/fr/revues/ri/1989-v44-n2-ri1155/050499ar/",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Employee Performance as a Function of Job Orientation and Job Design",
+ "creators": [.
+ {
+ "firstName": "Carol",
+ "lastName": "Sales",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Eliahu",
+ "lastName": "Levanoni",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Robert",
+ "lastName": "Knoop",
+ "creatorType": "author"
+ }
+ ],
+ "date": "1989",
+ "DOI": "10.7202/050499ar",
+ "ISSN": "0034-379X, 1703-8138",
+ "abstractNote": "Les approches contemporaines à l'étude de la structuration des tâches ont démontré la nécessité d'un ajustement approprié entre l'individu et le poste qu'il occupe. À l'occasion d'un examen récent de la complexité des tâches, un auteur concluait qu'il fallait considérer à la fois les caractéristiques de la tâche et celles de la personne pour apprécier le rendement au travail.De nombreux auteurs ont exprimé des doutes à propos de la justesse de la méthodologie utilisée pour mesurer simultanément les différences individuelles et les caractéristiques d'un poste. Essentiellement, la méthodologie recourt à des moyens qui se fondent sur l'appréciation propre du salarié pour déterminer les caractéristiques d'une tâche. Un auteur distingue entre la complexité objective d'une tâche et la complexité subjective que le titulaire en perçoit. En conséquence, des employés différents définissent d'une façon différente les caractéristiques d'un même poste. Quelques recherchistes estiment que les individus ont tendance à s'accorder dans leurs appréciations en général. Selon ce point de vue, si les travailleurs affirment que leur poste comporte les caractéristiques cotées, il est fort probable qu'ils décriront leurs attitudes touchant celui-ci d'une manière positive. De plus, certains chercheurs soutiennent que les corrélations substantielles souvent notées dans les études en matière de conception des tâches ne peuvent pas indiquer les rapports réels, mais être plutôt le produit de l'ordre des échelles utilisées dans une étude particulière. De façon à surmonter ces déficiences, les caractéristiques des tâches ont été évaluées dans la présente étude par les supérieurs immédiats des employés.On a beaucoup appuyé sur le rôle des différences entre les individus dans les recherches en matière de structuration des tâches. La force du désir de progrès (FDP), notion abstraite traduisant l'aspiration innée de l'individu de se réaliser et de se développer, est l'une des variables relatives aux différences individuelles qui est la plus fréquemment vérifiée. Cependant, l'utilité de cette formule comme variable régulatrice dans la recherche sur la structuration des tâches a été mise en doute dans des travaux récents. La présente étude examine l'orientation des tâches en tant que substitut à la FDP comme modérateur entre les exigences de l'emploi, le rendement, la satisfaction au travail et le degré de motivation de l'employé. L'adaptation au poste d'orientation des tâches est une tendance individuelle, un attribut relativement stable fondé sur le système des valeurs d'un individu. On peut identifier deux catégories principales d'orientation : l'une intrinsèque, où l'employé recherche les responsabilités, le défi, le progrès; l'autre, extrinsèque, lui fait préférer les bonnes conditions de travail, un salaire équitable et des relations amicales avec les contremaîtres.L'échantillonnage de cette enquête comprenait 333 salariés appartenant à 47 groupes de travail différents et leurs contremaîtres dans 18 organisations diversifiées. Pour chaque employé, les contremaîtres ont rempli les formulaires suivants : le formulaire de notation des emplois (lesquels évaluaient cinq caractéristiques du poste) et les neuf points de l'échelle de rendement. Pour leur part, les employés ont rempli l'échelle des comportements au travail (mesure de l'orientation des tâches), l'échelle de satisfaction au travail de l'index descriptif du poste et un court formulaire portant sur la motivation au travail.Le processus statistique principal comprenait une régression hiérarchique. Les résultats ont indiqué que l'orientation des tâches atténuait dans une certaine mesure le rapport entre les caractéristiques du poste et le rendement en général (qualité du rendement et non-quantité). On n'a remarqué aucun effet de modération en ce qui a trait au travail même et à la motivation. En ce qui touche la performance, on peut estimer que les travailleurs qui aiment les responsabilités, les défis et l'avancement réagissent d'une façon plus positive à des postes dont les exigences sont plus considérables, parce que ces individus cherchent à combler les aspirations plus hautes qu'ils découvrent dans le contenu de la tâche. Les emplois dont les exigences sont plus élevées offrent en conséquence l'occasion voulue de satisfaire leurs ambitions professionnelles, compte tenu des connaissances du titulaire.Le manque d'orientation des tâches comme agent modérateur du rapport entre les cinq caractéristiques, d'une part, la satisfaction au travail et la motivation, d'autre part, peuvent s'expliquer parce que les contremaîtres ont évalué les caractéristiques de la tâche de leurs subordonnés, tandis que ce sont les employés eux-mêmes qui ont estimé leur degré de satisfaction et de motivation au travail. Il est normal que des divergences de perception existent entre contremaîtres et subordonnés.À l'avenir, la recherche devrait scruter les comparaisons qu'il y a lieu d'établir entre les réactions des contremaîtres et celles de leurs subordonnés et le rôle joué par le type de direction en plus de l'orientation des tâches en tant que variable modératrice dans les études en matière de structuration des tâches.",
+ "issue": "2",
+ "journalAbbreviation": "ri",
+ "language": "en",
+ "libraryCatalog": "www.erudit.org",
+ "pages": "409-420",
+ "publicationTitle": "Relations industrielles / Industrial Relations",
+ "url": "http://www.erudit.org/fr/revues/ri/1989-v44-n2-ri1155/050499ar/",
+ "volume": "44",
+ "attachments": [.
+ {
+ "title": "Full Text PDF",
+ "mimeType": "application/pdf"
+ },
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/en/journals/ri/1989-v44-n2-ri1155/050499ar/",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Employee Performance as a Function of Job Orientation and Job Design",
+ "creators": [.
+ {
+ "firstName": "Carol",
+ "lastName": "Sales",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Eliahu",
+ "lastName": "Levanoni",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Robert",
+ "lastName": "Knoop",
+ "creatorType": "author"
+ }
+ ],
+ "date": "1989",
+ "DOI": "10.7202/050499ar",
+ "ISSN": "0034-379X, 1703-8138",
+ "abstractNote": "Two weaknesses in previous job design research were examined: the overuse of self-report measurements and the questionable use of Growth Need Strength as a moderator between job characteristics and employee performance. Job orientation was hypothesized to moderate the relationship between job characteristics and employee performance. Results indicated that job orientation moderated the relationship between job characteristics and quality of performance but not between job characteristics and quantity of performance, job involvement and satisfaction with work.",
+ "issue": "2",
+ "journalAbbreviation": "ri",
+ "language": "en",
+ "libraryCatalog": "www.erudit.org",
+ "pages": "409-420",
+ "publicationTitle": "Relations industrielles / Industrial Relations",
+ "url": "http://www.erudit.org/en/journals/ri/1989-v44-n2-ri1155/050499ar/",
+ "volume": "44",
+ "attachments": [.
+ {
+ "title": "Full Text PDF",
+ "mimeType": "application/pdf"
+ },
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/en/journals/documentation/2015-v61-n2-3-documentation02049/1032808ar/",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Les techniques de la documentation : un programme de formation collégiale en évolution",
+ "creators": [.
+ {
+ "firstName": "Stéphane",
+ "lastName": "Ratté",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2015",
+ "DOI": "10.7202/1032808ar",
+ "ISSN": "0315-2340, 2291-8949",
+ "abstractNote": "In order to maintain the relevance of the curriculum and to ensure current labour market requirements, a revision of the library technology programme of the Collège de Maisonneuve was launched in 2014. The department identified a number of challenges that were assembled around seven themes: cataloguing, public services, records management, automated information systems, project management, professional attitudes and field experience. This article presents an overview of these challenges and establishes a portrait of the library technology programme. It also enables a better understanding of the competencies expected of a library technician.",
+ "issue": "2-3",
+ "journalAbbreviation": "documentation",
+ "language": "fr",
+ "libraryCatalog": "www.erudit.org",
+ "pages": "45-52",
+ "publicationTitle": "Documentation et bibliothèques",
+ "shortTitle": "Les techniques de la documentation",
+ "url": "http://www.erudit.org/en/journals/documentation/2015-v61-n2-3-documentation02049/1032808ar/",
+ "volume": "61",
+ "attachments": [.
+ {
+ "title": "Full Text PDF",
+ "mimeType": "application/pdf"
+ },
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/fr/recherche/?basic_search_term=zotero&basic_search_field=all&advanced_search_operator1=AND&advanced_search_term1=&advanced_search_field1=all&advanced_search_operator2=AND&advanced_search_term2=&advanced_search_field2=all&advanced_search_operator3=AND&advanced_search_term3=&advanced_search_field3=all&advanced_search_operator4=AND&advanced_search_term4=&advanced_search_field4=all&advanced_search_operator5=AND&advanced_search_term5=&advanced_search_field5=all&pub_year_start=1900&pub_year_end=2017",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/fr/revues/memoires/2016-v8-n1-memoires02805/",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/Google Books.js b/Google Books.js
index 4715fd5..8bdc56f 100644
--- a/Google Books.js
+++ b/Google Books.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsbv",
- "lastUpdated": "2017-01-01 16:11:33"
+ "lastUpdated": "2017-12-03 04:20:33"
}

/*
@@ -68,7 +68,6 @@
ZU.doGet("//books.google.com/books/feeds/volumes/"+m[2], parseXML);
} else {
var items = getItemArrayGB(doc, doc, 'google\\.' + suffix + '/books\\?id=([^&]+)', '^(?:All matching pages|About this Book|Table of Contents|Index)');
- //Zotero.debug(items);
// Drop " - Page" thing
for(var i in items) {
items[i] = items[i].replace(/- Page [0-9]+\s*$/, "");
@@ -254,10 +253,10 @@
}
}
else {
- var links = inHere[j].getElementsByTagName("img");//search for <img>-elements, scrape title from alt-attribute, href-link from parent <a>-element
+ var links = inHere[j].querySelectorAll("h3.r a");
for(var i=0; i<links.length; i++) {
- if(!urlRe || urlRegexp.test(links[i].parentNode.href)) {
- var text = links[i].alt;
+ if(!urlRe || urlRegexp.test(links[i].href)) {
+ var text = links[i].parentNode.textContent;
//Z.debug(text)
if(text) {
text = Zotero.Utilities.trimInternal(text);
@@ -267,7 +266,7 @@
availableItems[links[i].href] += " "+text;
}
} else {
- availableItems[links[i].parentNode.href] = text;
+ availableItems[links[i].href] = text;
}
}
}
@@ -497,4 +496,4 @@
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/HAL Archives Ouvertes.js b/HAL Archives Ouvertes.js
index a625fcb..5e315dd 100644
--- a/HAL Archives Ouvertes.js
+++ b/HAL Archives Ouvertes.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2016-11-02 21:46:36"
+ "lastUpdated": "2017-12-21 03:11:03"
}

/*
@@ -91,7 +91,13 @@
Zotero.Utilities.processDocuments(articles, scrape)
});
} else {
- scrape(doc, url);
+ //work on PDF pages
+ if (url.search(/\/document$/) != -1 ) {
+ var articleURL = url.replace(/\/document$/, "")
+ //Z.debug(articleURL)
+ ZU.processDocuments(articleURL, scrape);
+ }
+ else scrape(doc, url);
}
}

@@ -99,7 +105,7 @@
var bibtexUrl = url.replace(/#.+|\/$/, "") + "/bibtex";
var abstract = ZU.xpathText(doc, '//div[@class="abstract-content"]');
var pdfUrl = ZU.xpathText(doc, '//meta[@name="citation_pdf_url"]/@content');
- //Z.debug(pdfUrl)
+ //Z.debug("pdfURL " + pdfUrl)
ZU.doGet(bibtexUrl, function (bibtex) {
//Z.debug(bibtex)
var translator = Zotero.loadTranslator("import");
diff --git a/HighBeam.js b/HighBeam.js
index 70d168f..ad7fdab 100644
--- a/HighBeam.js
+++ b/HighBeam.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2016-08-27 15:17:28"
+ "lastUpdated": "2018-01-07 09:32:09"
}

/*
@@ -142,6 +142,7 @@
],
"date": "2000-12-10",
"abstractNote": "In the years leading up to the bacteria poisoning of thousands of\nresidents of Walkerton, Ont., who drank contaminated drinking water,\nthose responsible for water safety were routinely falsifying water\ntests and were drinking beer on the job, according to testimony at\nan inquiry.\nIn May, seven people died and more than 2,000 people became\nviolently ill when a deadly strain of E. coli bacteria from cow\nmanure made its way into the town's drinking water system.\nLast week, at the judicial inquiry into the disaster, Frank\nKoebel, the town's public utilities foreman, testified that water\nsamples he labeled as coming from various locations actually came\nfrom just one source: the Walkerton pump house. …",
+ "language": "en",
"libraryCatalog": "www.highbeam.com",
"publicationTitle": "The Buffalo News (Buffalo, NY)",
"url": "https://www.highbeam.com/doc/1P2-23197647.html",
@@ -172,6 +173,7 @@
],
"date": "2016-03-01",
"abstractNote": "INTRODUCTION Kenya has an estimated population of over 41 million people who are made up of about 42 distinct communities [1]. Its population is made up of about 47.7% Protestants, 28.4% Roman Catholics, 9% of Indigenous beliefs, 11.2% Muslims, 1% Bahais, 0.04% Hindu and about 2.6% of other faiths [2]. More than 80% of the country's land mass is made up of what is often referred to as the arid and semi-arid lands (ASAL), which is where about 30% of the country's population lives [2]). The ASAL regions are characterized by a sparse human population distribution, low and unpredictable rainfall, usually 5-300 mm/year [3]. More than 70% of the country's livestock population is in the ASAL and most are reared by nomadic pastoralist communities including the Boran, Gabbra, Rendille, various Somali subgroups, the Samburu, Turkana, Maasai, Pokot, and the Orma. The country's livestock population is composed mainly of goats, sheep, cattle, camels, chicken, pigs and donkeys. Pigs are reared for commerce by a small number of farmers and usually within a 100-km radius of the major cities. To meet the food acceptability and religious requirements of the Kenya Muslims, the animal for food must be slaughtered by a Muslim to make its meat Halal. Poultry are mainly the traditional breeds of chicken that are kept using low-cost range management systems to supply subsistence food needs. However, commercial poultry keeping based on exotic breeds is an important economic activity in the country. Chicken eggs are an important item of commerce and food in Kenya. The population of geese, ducks and ostriches is insignificant. The beef cattle kept on private ranches in the ASAL zones, supply a significant amount of beef for consumers in major urban centres in the country. In the 2009 National Population and Household Census, Kenya was reported to have 3,355,407 exotic cattle, 14,112,367 indigenous cattle, 17,129,606 sheep, 27,740,153 goats and 2,971,111camels [2]. Other animals counted in the 2009 Population and Household Census included 334,689 pigs, 25,756,487 indigenous chicken, 6,071,042 commercial chicken, and 1,832,519 donkeys. The former Western Province with 16% of the total national population of chicken (both indigenous and commercial), leads in this livestock category. The Rift Valley region, where the Turkana, Maasai, Pokot and Samburu pastoralists live had 42.8% of the total national cattle population, 28.8% of the national indigenous cattle population and 54.6% of the Rift Valley region's total cattle population. The two regions of Rift Valley and Northeastern had 58.7, 70.5, 77.9, and 89.8% of the total national cattle, goat, sheep, and camel population, respectively [2]. Northeastern Province had the lowest pig population which stood at only 68 pigs, representing 0.02% of Kenya's pig population according to the 2009 Population and Household census, as it has the second highest Muslim population after Kenya's Coastal strip [2]. The production of total meat, mutton and goat meat, poultry, pork, milk and eggs in Kenya in 2002 stood at 452.6x103 metric tons (mT), 5.7x103 mT, 54x103 MT, 2841x106 litres and 60.6 million eggs [4], respectively, with most of the beef, goat meat and mutton coming from the ASAL. The per capita production of total meat, beef, mutton and goat meat, poultry and milk stood at 14.3 kg/yr, 10 kg, 1.0 kg and 90 liters/yr in 2002 [4]. For the purpose of this article, small stock refers to goats, and sheep, while large slaughter stock refers to donkeys, cattle, and camels. In this article also, no discussion will be made specifically on chicken or other poultry, fish and related sources of meat. The text focuses on meats in general and without emphasis on the white or red type. It is a mini-review of the literature on animal welfare requirements, animal handling and meat quality as it applies to the Kenyan situation. METHODS AND PROCEDURES A semi-structured questionnaire to establish the manner of animal slaughter in 10 Kenyan communities was administered to groups of 10-15 members of a community as focus groups. The communities surveyed were: nomadic pastoralists-the Turkana, Boran, Samburu, Pokot, Somali, and the Maasai, while the farming communities surveyed were the Kuria, Luo, Kalenjin, and Kikuyu. The total number of respondents who took part in the survey was 124. A few individual interviews were also conducted with a few members of some of the communities. The questionnaire and focus group discussions also set out to establish the extent of knowledge of the relationship of animal welfare and handling procedures, and slaughter practices as they would influence meat quality. Limitations of the study 1. A small sample of communities was surveyed for their slaughter practices (10 out of a possible 42), although the author believes the slaughter and animal handling practices of those communities who were not surveyed would not have been different from the findings of the study. 2. The influence of religion on slaughter practices was documented only for the Muslims as it proved difficult to interview believers of other faiths. 3. More nomadic communities were surveyed than the farmer-communities; this was because the nomadic pastoralists provide most of the slaughter stock and keep most of the livestock population of Kenya, except for pigs and poultry. RESULTS 1. For the Turkana and Pokot communities, the spear is reserved for use by adult, initiated and circumcised males, while the knife is mandatorily used by females and young uncircumcised males for animal slaughter. Where a Muslim has to share the meat, they let the male Muslim slaughter the animal. The Turkana and Pokot males slaughter the animal for public feasts while females can use the kitchen knife to slaughter small stock for domestic consumption. However, for large stock such as cattle, donkey and the camel, males slaughter them due to their sizes which females may find difficult to manage. …",
+ "language": "en",
"libraryCatalog": "www.highbeam.com",
"publicationTitle": "African Journal of Food, Agriculture, Nutrition and Development",
"shortTitle": "A Preliminary Survey of Animal Handling and Cultural Slaughter Practices among Kenyan Communities",
@@ -193,4 +195,4 @@
"items": "multiple"
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/Integrum.js b/Integrum.js
new file mode 100644
index 0000000..a841316
--- /dev/null
+++ b/Integrum.js
@@ -0,0 +1,173 @@
+{
+ "translatorID": "570d4c35-a16d-48f9-aa73-6161d067da79",
+ "label": "Integrum",
+ "creator": "Sebastian Karcher",
+ "target": "^https?://aafnet\\.integrum\\.ru/",
+ "minVersion": "3",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-05 03:14:12"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 Sebastian Karcher
+
+ 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ if (ZU.xpath(doc, '//td[dt[a[@class="aftitle"]]]').length) {
+ return "multiple";
+ } else {
+ var articleframe = ZU.xpath(doc, '//frame[@name="fb"]');
+ if (articleframe.length) {
+ return "magazineArticle";
+ }
+ }
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ var rows = ZU.xpath(doc, '//td[dt[a[@class="aftitle"]]]');
+ var items = {};
+ for (let i = 0; i < rows.length; i++) {
+ var infoArray = [];
+
+ var title = ZU.xpathText(rows[i], './dt/a[@class="aftitle"]');
+ infoArray.push("Title: " + title);
+ // Z.debug(title);
+ var info = ZU.xpathText(rows[i], './dd/div[@class="docs"]/text()');
+ infoArray.push("\nInfo: " + ZU.trimInternal(info));
+ // Z.debug(info);
+ var link = ZU.xpathText(rows[i], './dt/a[@class="aftitle"]/@href');
+ // Z.debug(link)
+ infoArray.push("\nLink: " + link);
+ // Z.debug(infoArray);
+ items[infoArray] = title;
+
+ }
+
+ Zotero.selectItems(items, function(items) {
+ // Z.debug(items)
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ // Z.debug(i)
+ articles.push(i);
+ }
+ for (let i = 0; i < articles.length; i++) {
+ scrapeMultiples(articles[i]);
+ }
+ });
+ } else {
+ scrapeFrames(doc, url);
+ }
+}
+
+function scrapeMultiples(article) {
+ // Z.debug(articles)
+ var item = new Z.Item('magazineArticle');
+ var title = article.match(/Title: (.+?),\n/)[1];
+ // Z.debug(title)
+ item.title = fixCasing(title);
+ var info = article.match(/Info: (.+?),\n/)[1];
+ // Z.debug(info);
+ item.publicationTitle = info.match(/^(.+?);/)[1].trim();
+ var date = info.match(/;(.+);/)[1];
+ item.date = ISOdate(date);
+ item.issue = info.match(/;.+?;(.+)$/)[1];
+ var link = article.match(/Link: (.+)/)[1];
+ // Z.debug(link);
+ ZU.processDocuments(link, function(doc) {
+ var frameurl = ZU.xpathText(doc, '//frame[@name="fb"]/@src');
+ // Z.debug(frameurl)
+ item.attachments.push({
+ url: frameurl,
+ title: "Integrum Snapshot",
+ mimeType: "text/html"
+ })
+ item.complete()
+ })
+
+}
+
+function ISOdate(date) {
+ if (date) {
+ return date.replace(/(\d+)\.(\d+)\.(\d+)/, "$3-$2-$1");
+ } else return null;
+}
+
+function fixCasing(string) {
+ if (string && string.toUpperCase() == string) {
+ return ZU.capitalizeTitle(string.toLowerCase(), true);
+ } else return string;
+}
+
+function scrapeFrames(doc, url) {
+ var framedoc = ZU.xpath(doc, '//frame[@name="fb"]')[0].contentDocument;
+ var frametitle = ZU.xpath(doc, '//frame[@name="ft"]')[0].contentDocument;
+ var item = new Z.Item('magazineArticle');
+ item.title = fixCasing(text(framedoc, 'title'));
+ item.date = ISOdate(attr(framedoc, 'meta[name="_YR"]', 'content'));
+ item.publicationTitle = attr(framedoc, 'meta[name="_SO"]', 'content');
+ item.issue = attr(framedoc, 'meta[name="_NR"]', 'content');
+ if (!item.date || !item.publicationTitle || !item.issue) {
+ var info = ZU.xpath(frametitle, '//body/table/tbody/tr[4]//tr[@class="maintxt"]//td[a[contains(@href, "ia5.aspx?")]]');
+
+ var date = ZU.xpathText(info, './a[contains(@href, "dis=")]/@href');
+ if (date && !item.date) {
+ date = date.match(/dis=(\d+)/)[1];
+ item.date = date.replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3");
+ }
+ infoParts = info[0].textContent.split(/\n\s*:\s*/);
+ // Z.debug(infoParts)
+ if (infoParts.length == 4) {
+ if (!item.publicationTitle) {
+ item.publicationTitle = infoParts[1];
+ }
+ if (!item.issue) {
+ item.issue = infoParts[3].match(/\d+$/)[0];
+ }
+ if (!item.date) {
+ item.date = infoParts[2];
+ }
+ }
+ }
+ item.attachments.push({
+ document: framedoc,
+ title: "Integrum Snapshot"
+ });
+ item.complete();
+}
+
+/** BEGIN TEST CASES **/
+var testCases = []
+/** END TEST CASES **/
diff --git a/KStudy.js b/KStudy.js
new file mode 100644
index 0000000..4829528
--- /dev/null
+++ b/KStudy.js
@@ -0,0 +1,632 @@
+{
+ "translatorID": "b298ca93-0010-48f5-97fb-e9923519a380",
+ "label": "KStudy",
+ "creator": "Yunwoo Song, Frank Bennett, Philipp Zumstein",
+ "target": "^https?://[^/]+\\.kstudy\\.com",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2018-01-03 13:10:00"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ KISS (Korean Studies Information Service System) Translator
+ Copyright © 2017-2018 Yunwoo Song, Frank Bennett, and 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 detectWeb(doc, url) {
+ if (/\bkey=(\d+)\b/.test(url)) {
+ if (url.includes('/thesis/thesis-view.asp')) {
+ return "journalArticle";
+ } else if (url.includes('/public2-article.asp')) {
+ // these are reports and working paper series but with publicaton name,
+ // volume, issue numbers; thus handled as journal articles as well
+ return "journalArticle";
+ } else if (url.includes('/public3-article.asp')) {
+ return "report";
+ }
+ }
+ if (getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = ZU.xpath(doc, '//div[contains(@class, "thesis-info")]/h5/a');
+ for (var i=0; i<rows.length; i++) {
+ var href = rows[i].href;
+ var title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ // exclude no real links
+ if (href=="#") continue;
+ // exclude links to overview of journal
+ if (href.includes("/journal/journal-view")) continue;
+ // make sure we have a key to make the risURL
+ if (!(/\bkey=(\d+)\b/.test(href))) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+
+function scrape(doc, url) {
+ var key = url.match(/\bkey=(\d+)\b/)[1];
+ var risURL = "/p-common/export_endnote.asp";
+ var postData = "atcl_data=" + key + "&export_gubun=EndNote";
+ ZU.doPost(risURL, postData, function(text) {
+ // Z.debug(text);
+ var translator = Zotero.loadTranslator("import");
+ translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
+ translator.setString(text);
+ translator.setHandler("itemDone", function(obj, item) {
+ if (url.includes('/public/public3-article')) {
+ item.itemType = "report";
+ }
+ var latin = item.title.match(/[\u{0000}-\u{00FF}]/ug);
+ if (latin.length > item.title.length/2 && item.title.toUpperCase() == item.title) {
+ item.title = ZU.capitalizeTitle(item.title, true);
+ }
+ //remove space before colon in title
+ item.title = item.title.replace(/\s+:/, ":");
+ // sometimes the author tags in RIS are empty and therefore we
+ // try to scrape author names also directly
+ if (item.creators.length == 0) {
+ item.creators = scrapeAuthorsDirectly(doc, url);
+ } else {
+ // romanized Korean names with first and last name are splitted
+ // wrongly into two AU tags in RIS and therefore we scrape
+ // author names directly here
+ let firstName = item.creators[0].lastName;
+ let latinCharacters = firstName.match(/[\u{0000}-\u{00FF}]/ug);
+ if (!item.creators[0].firstName && latinCharacters && latinCharacters.length == firstName.length) {
+ item.creators = scrapeAuthorsDirectly(doc, url);
+ }
+ }
+ if (item.issue && item.issue == "0") {
+ delete item.issue;
+ }
+ item.language = "ko-KR";
+ item.complete();
+ });
+ translator.translate();
+ });
+}
+
+
+function scrapeAuthorsDirectly(doc, url) {
+ var creators = [];
+ var writers = ZU.xpathText(doc, '//div[@class="writers"]');
+ if (writers) {
+ var creatorsList = writers.split(',');
+ for (var i=0; i<creatorsList.length; i++) {
+ let author = creatorsList[i].replace(/^\s*\(\s*/, '').replace(/\s*\)\s*$/, '');
+ if (author.includes(' ')) {
+ creators.push(ZU.cleanAuthor(author, "author"));
+ } else {
+ creators.push({
+ lastName: author,
+ fieldMode: true,
+ creatorType: "author"
+ });
+ }
+ }
+ } else {
+ var authors = ZU.xpathText(doc, '//li[label[text()="??"]]');
+ // e.g. authors = ?? : Kim, Yoon Tae, Park, Hyun Suk
+ // e.g. authors = ?? : ???, ???, ???, ???
+ if (authors && authors.includes(':')) {
+ var authorsValue = authors.split(':')[1];
+ if (authorsValue.includes(', ')) {
+ // two spaces after comma are important here
+ var authorsList = authorsValue.split(', ');
+ } else {
+ var authorsList = authorsValue.split(',');
+ }
+ for (let i=0; i<authorsList.length; i++) {
+ let author = authorsList[i].trim();
+ if (author.includes(',')) {
+ creators.push(ZU.cleanAuthor(author, "author", true));
+ } else {
+ creators.push({
+ lastName: author,
+ fieldMode: true,
+ creatorType: "author"
+ });
+ }
+ }
+ }
+ }
+ return creators;
+}
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3297333",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "????: ??(??)? ????(????)? ?? ???? ??",
+ "creators": [.
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ }
+ ],
+ "date": "2014",
+ "ISSN": "1738-2629",
+ "abstractNote": "? ??? ??? ??? ????(????)? ???? ? ??(??) ???(???)? ??? ???? ???? ??? ??? ????? ??. ??? ??? ???? ???? ?? ??? ????? ??. ???? ??? ????? ???? ??? ??? ??, ??? ????, ???(???)? ??, ????? ??, ?(?)? ??? ?? ?? ???? ?????. ?? ?? ??? ??? ??? ???? ?? ????? ????? ???? ??. ???? ???? ??? ??? ????? ??? ???? ??? ??? ?? ??? ? ?? ???, ??(??)? ????? ?? ??? ?? ??? ????. ???? ??? ????? ???? ??? ?? ??? ?????, ?? ???? ?? ?(?)? ????. ????? ????? ????(????)? ????? ?? ??? ?(?)? ????? ???? ??? ?? ?? ???. ??? ???? ??? ????? ???? ?? ??? ??(??)? ??? ???? ????? ‘????(????)’? ????.",
+ "journalAbbreviation": "???",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "179-210",
+ "publicationTitle": "???",
+ "shortTitle": "????",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3297333",
+ "volume": "27",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "Gua"
+ },
+ {
+ "tag": "Jiayibeifa"
+ },
+ {
+ "tag": "Sunchentu"
+ },
+ {
+ "tag": "Sunchenyeokhak"
+ },
+ {
+ "tag": "Xiangshuyi"
+ },
+ {
+ "tag": "Zhan"
+ },
+ {
+ "tag": "Zhanxueyili"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "?"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "?"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "?"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "?"
+ },
+ {
+ "tag": "????"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3500796",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "???? ??? · ?? · ?? · ??? ?? ??? ?? ?? ??",
+ "creators": [.
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ }
+ ],
+ "date": "2012",
+ "ISSN": "1225-1216",
+ "abstractNote": "? ??? ?? ???? ?? ??? ?? ??? ???? ?? ??? ??? ????? ??? ?? ? ??? ??. ? ??? ?? ??? ?? ?? ??? ?? ? ??? ?? ??, ???, ??, ??? ??? ?? ???. ?? ??? ? ????? ?? 6? ??(??, ??, ??, ??, ??, ??)? ? · ? · ???? ?? 6,053?? ???? ?? ??? ????, ??? ?? ????? ?? ??, ?? ?? ?? ??, ?? ?? ?? ?? ?????. ? ??, ???? ?? ?? ????? ???? ???? ??·???? ?? ??? ?? ?? ?? ??? ?? ???? ??? ????. ???? ??? ????? ??? ?? ??? ?? ?? ??? ??? ??? ??? ???. ??, ???? ??? ?, ?? ?? ??, ?? ??, ?????, ???? ?? ???? ??? ?? ?? ??? ?????? ??? ??? ??? ?????. ?? · ?? · ?? ?? ????? `?? ? ???? ??`? ??? ??? ?? ???? ??? ???? `??? ?????? ?? ????`? ?? ???? ??? ???? ??? ????.",
+ "journalAbbreviation": "????",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "43-93",
+ "publicationTitle": "????",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3500796",
+ "volume": "54",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "aggressive language expression"
+ },
+ {
+ "tag": "buzz-word"
+ },
+ {
+ "tag": "curse"
+ },
+ {
+ "tag": "expletive"
+ },
+ {
+ "tag": "language attitude"
+ },
+ {
+ "tag": "language destruction"
+ },
+ {
+ "tag": "language use"
+ },
+ {
+ "tag": "questionnaire survey"
+ },
+ {
+ "tag": "teenage slang"
+ },
+ {
+ "tag": "teenager`s language"
+ },
+ {
+ "tag": "??? ?? ??"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "?? ??"
+ },
+ {
+ "tag": "?? ??"
+ },
+ {
+ "tag": "?? ??"
+ },
+ {
+ "tag": "?? ??"
+ },
+ {
+ "tag": "??"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "??"
+ },
+ {
+ "tag": "??? ??"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/journal/journal-view.asp?key1=25169&key2=2201",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/public/public2-article.asp?key=50064290",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "??? ?? CT? ??? ?? ?????? 3?? ??",
+ "creators": [.
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ }
+ ],
+ "date": "2010",
+ "ISSN": "1229-8212",
+ "abstractNote": "Purpose : This study was performed to analyze the position, pattern of impacted mesiodens, and their relationship to the adjacent teeth using Dental cone-beam CT. Materials and Methods : Sixty-two dental cone-beam CT images with 81 impacted mesiodenses were selected from about 2,298 cone-beam CT images at Chonnam National University Dental Hospital from June 2006 to March 2009. The position, pattern, shape of impacted mesiodenses and their complications were analyzed in cone-beam CT including 3D images. Results : The sex ratio (M : F) was 2.9 : 1. Most of the mesiodenses (87.7%) were located at palatal side to the incisors. 79% of the mesiodenses were conical in shape. 60.5% of the mesiodenses were inverted, 21% normal erupting direction, and 18.5% transverse direction. The complications due to the presence of mesiodenses were none in 43.5%, diastema in 19.4%, tooth displacement in 17.7%, delayed eruption or impaction in 12.9%, tooth rotation in 4.8%, and dentigerous cyst in 1.7%. Conclusions : Dental cone-beam CT images with 3D provided 3-dimensional perception of mesiodens to the neighboring teeth. This results would be helpful for management of the impacted mesiodens.",
+ "issue": "3",
+ "journalAbbreviation": "????????????? (????????????)",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "109-114",
+ "publicationTitle": "????????????? (????????????)",
+ "url": "http://kiss.kstudy.com/public/public2-article.asp?key=50064290",
+ "volume": "40",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "Cone-Beam Computed Tomograpahy"
+ },
+ {
+ "tag": "Incisor"
+ },
+ {
+ "tag": "Supernumerary"
+ },
+ {
+ "tag": "Tooth"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/public/public2-article.asp?key=50789039",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Kolmogorov Distance for Multivariate Normal Approximation",
+ "creators": [.
+ {
+ "firstName": "Yoon Tae",
+ "lastName": "Kim",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Hyun Suk",
+ "lastName": "Park",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2015",
+ "ISSN": "1976-8605",
+ "abstractNote": "This paper concerns the rate of convergence in the multidimensional normal approximation of functional of Gaussian fields. The aim of the present work is to derive explicit upper bounds of the Kolmogorov distance for the rate of convergence instead of Wasserstein distance studied by Nourdin et al. [Ann. Inst. H. Poincar$\\acute{e}$(B) Probab.Statist. 46(1) (2010) 45-98].",
+ "issue": "1",
+ "journalAbbreviation": "Korean Journal of mathematics (???????)",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "1-10",
+ "publicationTitle": "Korean Journal of mathematics (???????)",
+ "url": "http://kiss.kstudy.com/public/public2-article.asp?key=50789039",
+ "volume": "23",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "Kolmogorov distance"
+ },
+ {
+ "tag": "Malliavin calculus"
+ },
+ {
+ "tag": "Stein`s method"
+ },
+ {
+ "tag": "Wasserstein distance"
+ },
+ {
+ "tag": "fractional Brownian motion"
+ },
+ {
+ "tag": "multidimensional normal approximation"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/public/public3-article.asp?key=60023584",
+ "items": [.
+ {
+ "itemType": "report",
+ "title": "??? ?? ???? ?? ?? ??",
+ "creators": [.
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ }
+ ],
+ "date": "2013",
+ "institution": "???",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "url": "http://kiss.kstudy.com/public/public3-article.asp?key=60023584",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3480580",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Analysis of Enzymes related to Lignin Modification of Phanerochaete chrysosporium ATCC20696 through the Transcriptomic and Proteomic Approaches",
+ "creators": [.
+ {
+ "firstName": "Chang-young",
+ "lastName": "Hong",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Su-yeon",
+ "lastName": "Lee",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Myungkil",
+ "lastName": "Kim",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "In-gyu",
+ "lastName": "Choi",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2016",
+ "ISSN": "2288-257x",
+ "abstractNote": "Phanerochaete chrysosporium (ATCC20696) is one of the most intensively studied basidiomycetes, and is well-known to degrade lignin with ligninolytic enzymes system. In general, ligninolytic enzymes catalyze lignin by oxidation in multi-step electron transfers with other accessory enzymes. Our previous work indicated that P. chrysosporium (ATCC20696) degraded lignin polymer and produced lignin derived-acid compound under the addition of reducing agents. Accordingly, in this study, we investigated various enzymes related to lignin modification by transcriptomic and proteomic analysis. In transcriptomic analysis, lignin peroxidase, copper radical oxidase and multicopper oxidase as extracellular enzymes were highly expressed that exposed to synthetic lignin with reducing agents. In addition, cytochrome P450 monooxygenase, 1,4-benzoquinone reductase and aryl alcohol dehydrogenase as intracellular enzymes were also over-expressed. In the proteomic analysis, it was confirmed to identify these enzymes highly secreted from P. chrysospo-rium (ATCC20696) and obtained the protein sequences by liquid chromatography mass spectroscopy. These results supported that both extracellular enzymes and intracellular enzymes were involved in lignin degradation and production of lignin derived compounds.",
+ "issue": "2",
+ "journalAbbreviation": "?????",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "84-84",
+ "publicationTitle": "?????",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3480580",
+ "volume": "28",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "Enzyme system"
+ },
+ {
+ "tag": "Phanerochaete chrysosporium"
+ },
+ {
+ "tag": "lignin degradation"
+ },
+ {
+ "tag": "proteomic analysis"
+ },
+ {
+ "tag": "transcriptomic analysis"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ }
+]
+/** END TEST CASES **/
diff --git a/KitapYurdu.com.js b/KitapYurdu.com.js
index e63826f..475519c 100644
--- a/KitapYurdu.com.js
+++ b/KitapYurdu.com.js
@@ -349,4 +349,4 @@
]
}
]
-/** END TEST CASES **/
+/** END TEST CASES **/
\ No newline at end of file
diff --git a/Le Monde.js b/Le Monde.js
index 736da0f..9bf62ea 100644
--- a/Le Monde.js
+++ b/Le Monde.js
@@ -2,14 +2,14 @@
"translatorID": "6bc635a4-6823-4f95-acaf-b43e8a158144",
"label": "Le Monde",
"creator": "Philipp Zumstein",
- "target": "^https?://(www\\.)?lemonde\\.fr/",
+ "target": "^https?://(www\\.)?(abonnes\\.)?lemonde\\.fr/",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2015-06-09 20:21:01"
+ "lastUpdated": "2018-01-13 11:53:25"
}

/*
@@ -35,13 +35,15 @@
***** END LICENSE BLOCK *****
*/

+
function detectWeb(doc, url) {
- if (url.indexOf('/article/')>-1) {
+ if (url.includes('/article/')) {
return "newspaperArticle";
} else if (getSearchResults(doc, true)) {
return "multiple";
}
}
+

function getSearchResults(doc, checkOnly) {
var items = {};
@@ -65,7 +67,7 @@
if (!items) {
return true;
}
- var articles = new Array();
+ var articles = [];
for (var i in items) {
articles.push(i);
}
@@ -106,7 +108,7 @@
item.creators.push( ZU.cleanAuthor(author, "author") );
}

- item.section = ZU.xpathText(doc, '//nav[@id="nav"]/ul/li[contains(@class,"actif")]/a/@data-rubrique-title');
+ item.section = ZU.xpathText(doc, '//nav[@id="navigation-generale"]/ul/li[contains(@class,"alt")]/a/@data-rubrique-title');

item.complete();
});
@@ -115,7 +117,9 @@
trans.itemType = "newspaperArticle";
trans.doWeb(doc, url);
});
-}/** BEGIN TEST CASES **/
+}
+
+/** BEGIN TEST CASES **/
var testCases = [
{
"type": "web",
@@ -251,4 +255,4 @@
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/MODS.js b/MODS.js
index 01e2f38..9f0ec57 100644
--- a/MODS.js
+++ b/MODS.js
@@ -14,8 +14,8 @@
},
"inRepository": true,
"translatorType": 3,
- "browserSupport": "gcsv",
- "lastUpdated": "2015-02-11 01:24:19"
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-25 13:29:42"
}

var fromMarcGenre = {
@@ -25,7 +25,7 @@
"art reproduction":"artwork",
"article":"journalArticle",
"autobiography":"book",
- "bibliography":"bookSection",
+ "bibliography":"book",
"biography":"book",
"book":"book",
// "calendar":XXX,
@@ -628,6 +628,11 @@
if(subtitle) title = title.replace(/:$/,'') + ": "+ subtitle.trim();
var nonSort = ZU.xpathText(titleInfo, "m:nonSort[1]", xns);
if(nonSort) title = nonSort.trim() + " " + title;
+ var partNumber = ZU.xpathText(titleInfo, "m:partNumber[1]", xns);
+ var partName = ZU.xpathText(titleInfo, "m:partName[1]", xns);
+ if(partNumber && partName) title = title.replace(/\.$/,'') + ". "+ partNumber.trim() + ": " + partName.trim()
+ else if(partNumber) title = title.replace(/\.$/,'') + ". " + partNumber.trim()
+ else if(partName) title = title.replace(/\.$/,'') + ". " + partName.trim();
return title;
}

@@ -1008,8 +1013,10 @@
}
}

- // creators (might be editors)
- processCreators(host, newItem, "editor");
+ // creators of host item will be evaluated by their role info
+ // and only if this is missing then they are connected by a generic
+ // contributor role
+ processCreators(host, newItem, "contributor");

// identifiers
processIdentifiers(host, newItem);
@@ -1363,7 +1370,7 @@
"input": "<?xml version='1.0' encoding='UTF-8' ?>\n<mods xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"3.4\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.loc.gov/mods/v3\"\n xsi:schemaLocation=\"http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-4.xsd\">\n\n <titleInfo>\n <title>Sound and fury</title>\n <subTitle>the making of the punditocracy</subTitle>\n </titleInfo>\n\n <name type=\"personal\" authorityURI=\"http://id.loc.gov/authorities/names\"\n valueURI=\"http://id.loc.gov/authorities/names/n92101908\">\n <namePart>Alterman, Eric</namePart>\n\n <role>\n <roleTerm type=\"text\">creator</roleTerm>\n </role>\n </name>\n\n <typeOfResource>text</typeOfResource>\n\n <genre authority=\"marcgt\">bibliography</genre>\n\n <originInfo>\n <place>\n <placeTerm authority=\"marccountry\" type=\"code\"\n authorityURI=\"http://id.loc.gov/vocabulary/countries\"\n valueURI=\"http://id.loc.gov/vocabulary/countries/nyu\">nyu</placeTerm>\n </place>\n <place>\n <placeTerm type=\"text\">Ithaca, N.Y</placeTerm>\n </place>\n\n <publisher>Cornell University Press</publisher>\n <dateIssued>c1999</dateIssued>\n <dateIssued encoding=\"marc\">1999</dateIssued>\n <issuance>monographic</issuance>\n </originInfo>\n\n <language>\n\n <languageTerm authority=\"iso639-2b\" type=\"code\"\n authorityURI=\"http://id.loc.gov/vocabulary/iso639-2\"\n valueURI=\"http://id.loc.gov/vocabulary/iso639-2/eng\">eng</languageTerm>\n </language>\n\n <physicalDescription>\n <form authority=\"marcform\">print</form>\n <extent>vii, 322 p. ; 23 cm.</extent>\n </physicalDescription>\n\n <note type=\"statement of responsibility\">Eric Alterman.</note>\n <note>Includes bibliographical references (p. 291-312) and index.</note>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\">\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh85070736\">Journalism</topic>\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh00005651\">Political aspects</topic>\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\">\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh2002011436\">Politics and\n government</topic>\n <temporal valueURI=\"http://id.loc.gov/authorities/subjects/sh2002012476\">20th century</temporal>\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\"\n valueURI=\"http://id.loc.gov/authorities/subjects/sh2008107507\">\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh85081863\">Mass media</topic>\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh00005651\">Political aspects</topic>\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\"\n valueURI=\"http://id.loc.gov/authorities/subjects/sh2010115992\">\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh85133490\">Television and\n politics</topic>\n\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\"\n valueURI=\"http://id.loc.gov/authorities/subjects/sh2008109555\">\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh85106514\">Press and politics</topic>\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\">\n <topic>Talk shows</topic>\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n </subject>\n\n <classification authority=\"lcc\">PN4888.P6 A48 1999</classification>\n <classification edition=\"21\" authority=\"ddc\">071/.3</classification>\n\n <identifier type=\"isbn\">0801486394 (pbk. : acid-free, recycled paper)</identifier>\n <identifier type=\"lccn\">99042030</identifier>\n\n <recordInfo>\n <descriptionStandard>aacr</descriptionStandard>\n <recordContentSource>DLC</recordContentSource>\n <recordCreationDate encoding=\"marc\">990730</recordCreationDate>\n\n <recordChangeDate encoding=\"iso8601\">20000406144503.0</recordChangeDate>\n <recordIdentifier>11761548</recordIdentifier>\n <recordOrigin>Converted from MARCXML to MODS version 3.4 using MARC21slim2MODS3-4.xsl (Revision\n 1.74), valueURIs and authorityURIs added by hand 20120123</recordOrigin>\n </recordInfo>\n</mods>\n",
"items": [.
{
- "itemType": "bookSection",
+ "itemType": "book",
"title": "Sound and fury: the making of the punditocracy",
"creators": [.
{
@@ -1376,6 +1383,7 @@
"ISBN": "0801486394",
"callNumber": "PN4888.P6 A48 1999, 071/.3",
"language": "eng",
+ "numPages": "322",
"place": "Ithaca, N.Y",
"publisher": "Cornell University Press",
"attachments": [],
@@ -1689,7 +1697,7 @@
"input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<mods xmlns=\"http://www.loc.gov/mods/v3\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-4.xsd\" version=\"3.4\">\n <titleInfo>\n <title>Papers from the First International Workshop on Plasma-Based Ion Implantation</title>\n <subTitle>4-6 August 1993, University of Wisconsin--Madison, Madison, Wisconsin</subTitle>\n </titleInfo>\n <name type=\"conference\">\n <namePart>International Workshop on Plasma-Based Ion Implantation 1993 : University of Wisconsin--Madison)</namePart>\n </name>\n <name type=\"personal\">\n <namePart>Conrad, John R.</namePart>\n </name>\n <name type=\"personal\">\n <namePart>Sridharan, Kumar.</namePart>\n </name>\n <name type=\"corporate\">\n <namePart>Applied Science and Technology (ASTeX), Inc</namePart>\n </name>\n <typeOfResource>text</typeOfResource>\n <genre authority=\"marcgt\">bibliography</genre>\n <genre authority=\"marcgt\">conference publication</genre>\n <originInfo>\n <place>\n <placeTerm type=\"code\" authority=\"marccountry\">nyu</placeTerm>\n </place>\n <place>\n <placeTerm type=\"text\">New York</placeTerm>\n </place>\n <publisher>Published for the American Vacuum Society by the American Institute of Physics</publisher>\n <dateIssued>1994</dateIssued>\n <issuance>monographic</issuance>\n </originInfo>\n <language>\n <languageTerm type=\"code\" authority=\"iso639-2b\">eng</languageTerm>\n </language>\n <physicalDescription>\n <form authority=\"marcform\">print</form>\n <extent>p. 813-998 : ill. ; 30 cm.</extent>\n </physicalDescription>\n <note>\"Published in both 1994 March/April issue of the Journal of vacuum science and technology B, vol. 12, no. 2\"--T.p. verso.</note>\n <note type=\"bibliography\">Includes bibliographical references and index.</note>\n <subject authority=\"lcsh\">\n <topic>Ion implantation</topic>\n <topic>Congresses</topic>\n </subject>\n <classification authority=\"lcc\">TS695.25 .I57 1993</classification>\n <classification authority=\"ddc\" edition=\"21\">621.3815/2</classification>\n <relatedItem type=\"host\">\n <titleInfo>\n <title>Journal of vacuum science &amp; technology. B, Microelectronics and nanometer structures processing, measurement and phenomena</title>\n </titleInfo>\n <identifier type=\"issn\">1071-1023</identifier>\n <identifier type=\"local\">(OCoLC)23276603</identifier>\n <identifier type=\"local\">(DLC)sn 92021098</identifier>\n <part>\n <text>2nd ser., v. 12, no. 2</text>\n </part>\n </relatedItem>\n <identifier type=\"isbn\">1563963442</identifier>\n <identifier type=\"lccn\">97129132</identifier>\n <identifier type=\"oclc\">35547175</identifier>\n <recordInfo>\n <descriptionStandard>aacr</descriptionStandard>\n <recordContentSource authority=\"marcorg\">DLC</recordContentSource>\n <recordCreationDate encoding=\"marc\">940504</recordCreationDate>\n <recordChangeDate encoding=\"iso8601\">19970618142736.9</recordChangeDate>\n <recordIdentifier>4968605</recordIdentifier>\n <recordOrigin>Converted from MARCXML to MODS version 3.4 using MARC21slim2MODS3-4.xsl\n \t\t(Revision 1.76 2012/02/01)</recordOrigin>\n </recordInfo>\n</mods>",
"items": [.
{
- "itemType": "bookSection",
+ "itemType": "book",
"title": "Papers from the First International Workshop on Plasma-Based Ion Implantation: 4-6 August 1993, University of Wisconsin--Madison, Madison, Wisconsin",
"creators": [
{
@@ -1909,6 +1917,47 @@
"seeAlso": []
}
]
+ },
+ {
+ "type": "import",
+ "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<mods version=\"3.6\" xmlns=\"http://www.loc.gov/mods/v3\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd\">\n <titleInfo>\n <title>Ludvig Holbergs udvalgte Skrifter</title>\n <partNumber>D. 1-6 B. 4</partNumber>\n <partName>Holbergs Comedier</partName>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Den honette Ambition</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Den Stundesløse</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>De Usynlige</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Pernilles korte Frøkenstand</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Erasmus Montanus</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Det lykkelige Skibbrud</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Den pantsatte Bondedreng</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Comedier</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Udvalgte Skrifter</title>\n </titleInfo>\n <name type=\"personal\" usage=\"primary\">\n <namePart>Holberg, Ludvig</namePart>\n <namePart type=\"date\">1684-1754</namePart>\n <nameIdentifier>bibsys.no:authority:90073658</nameIdentifier>\n </name>\n <name type=\"personal\">\n <namePart>Rahbek, K.L.</namePart>\n <nameIdentifier>bibsys.no:authority:90253663</nameIdentifier>\n </name>\n <typeOfResource>text</typeOfResource>\n <genre type=\"literaryform\">fiction</genre>\n <genre authority=\"marcgt\">fiction</genre>\n <originInfo>\n <place>\n <placeTerm authority=\"marccountry\" type=\"code\">dk</placeTerm>\n </place>\n <place>\n <placeTerm authority=\"iso3166\" type=\"code\">dk</placeTerm>\n </place>\n <place>\n <placeTerm type=\"text\">Kjøbenhavn</placeTerm>\n </place>\n <publisher>Schultz</publisher>\n <dateIssued>1805</dateIssued>\n <issuance>monographic</issuance>\n </originInfo>\n <language>\n <languageTerm authority=\"iso639-2b\" type=\"code\">dan</languageTerm>\n </language>\n <physicalDescription>\n <form authority=\"marcform\">print</form>\n <form authority=\"marccategory\">electronic resource</form>\n <form authority=\"marcsmd\">remote</form>\n <form authority=\"marccategory\">text</form>\n <form authority=\"marcsmd\">regular print</form>\n <extent>XII, 532 s.</extent>\n </physicalDescription>\n <accessCondition type=\"restriction on access\"/>\n <note type=\"reproduction\">Elektronisk reproduksjon [Norge] Nasjonalbiblioteket Digital 2014-02-07</note>\n <subject>\n <name type=\"personal\">\n <namePart>Holberg, Ludvig</namePart>\n <namePart type=\"date\">1684-1754</namePart>\n </name>\n </subject>\n <location>\n <url displayLabel=\"Fulltekst NB digitalisert\" note=\"Elektronisk reproduksjon. Gratis\" usage=\"primary display\">http://urn.nb.no/URN:NBN:no-nb_digibok_2012051624006</url>\n </location>\n <location>\n <url displayLabel=\"Fulltekst NB digitalisert\" note=\"Elektronisk reproduksjon. Gratis\">http://urn.nb.no/URN:NBN:no-nb_digibok_2014012024006</url>\n </location>\n <location>\n <url displayLabel=\"electronic resource\" note=\"Elektronisk reproduksjon. Gratis\" usage=\"primary display\">http://urn.nb.no/URN:NBN:no-nb_digibok_2012051624006</url>\n </location>\n <identifier type=\"urn\">URN:NBN:no-nb_digibok_2012051624006</identifier>\n <location>\n <url displayLabel=\"electronic resource\" note=\"Elektronisk reproduksjon. Gratis\">http://urn.nb.no/URN:NBN:no-nb_digibok_2014012024006</url>\n </location>\n <identifier type=\"urn\">URN:NBN:no-nb_digibok_2014012024006</identifier>\n <location>\n <physicalLocation authority=\"isil\">NO-0183300</physicalLocation>\n <holdingSimple>\n <copyInformation>\n <subLocation>0183300</subLocation>\n </copyInformation>\n </holdingSimple>\n </location>\n <location>\n <physicalLocation authority=\"isil\">NO-0030100</physicalLocation>\n <holdingSimple>\n <copyInformation>\n <subLocation>0030100</subLocation>\n <note>(ib.) (Proveniens Johan Schweigaard) (Til bruk på NB Oslos lesesal)</note>\n </copyInformation>\n </holdingSimple>\n </location>\n <location>\n <physicalLocation authority=\"isil\">NO-0030100</physicalLocation>\n <holdingSimple>\n <copyInformation>\n <subLocation>0030100</subLocation>\n <note>(ib.) (Til bruk på Spesiallesesalen)</note>\n </copyInformation>\n </holdingSimple>\n </location>\n <location>\n <physicalLocation authority=\"isil\">NO-0030100</physicalLocation>\n <holdingSimple>\n <copyInformation>\n <subLocation>0030100</subLocation>\n <note>(ib.) (Til bruk på Spesiallesesalen)</note>\n </copyInformation>\n </holdingSimple>\n </location>\n <relatedItem displayLabel=\"Inkludert i\" type=\"host\">\n <titleInfo>\n <title>Ludvig Holbergs udvalgte Skrifter. D. 1-6, Holbergs Comedier</title>\n </titleInfo>\n <name>\n <namePart>Holberg, Ludvig, 1684-1754</namePart>\n </name>\n <originInfo>\n <publisher>Kjøbenhavn : Schultz, 1804-1806</publisher>\n </originInfo>\n <identifier type=\"local\">999417135394702201</identifier>\n <part>\n <text>B. 4</text>\n </part>\n </relatedItem>\n <identifier type=\"oldoaiid\">oai:bibsys.no:biblio:941621081</identifier>\n <identifier type=\"oldoaiid\">oai:bibsys.no:biblio:121586413</identifier>\n <identifier type=\"uri\">http://urn.nb.no/URN:NBN:no-nb_digibok_2012051624006</identifier>\n <identifier type=\"uri\">http://urn.nb.no/URN:NBN:no-nb_digibok_2014012024006</identifier>\n <recordInfo>\n <descriptionStandard>katreg</descriptionStandard>\n <recordContentSource authority=\"marcorg\">NO-TrBIB</recordContentSource>\n <recordCreationDate encoding=\"marc\">120621</recordCreationDate>\n <recordChangeDate encoding=\"iso8601\">20170126171829.0</recordChangeDate>\n <recordIdentifier source=\"nb.bibsys.no\">999416210814702202</recordIdentifier>\n <recordOrigin>Converted from MARCXML to MODS version 3.6 using a customized MARC21slim2MODS3-5.xsl\n (based on 3.5 Revision 1.106 2014/12/19)</recordOrigin>\n <languageOfCataloging>\n <languageTerm authority=\"iso639-2b\" type=\"code\">nob</languageTerm>\n </languageOfCataloging>\n </recordInfo>\n <relatedItem displayLabel=\"Del av Bibliografien\" type=\"host\">\n <titleInfo>\n <title>Schweigaardsamlingen</title>\n </titleInfo>\n <genre authority=\"marcgt\">bibliography</genre>\n </relatedItem>\n <identifier type=\"sesamid\">4c8b333d27a2eb37c35f99ce42a679bf</identifier>\n <identifier type=\"oaiid\">oai:nb.bibsys.no:999416210814702202</identifier>\n</mods>",
+ "items": [.
+ {
+ "itemType": "book",
+ "title": "Ludvig Holbergs udvalgte Skrifter. D. 1-6 B. 4: Holbergs Comedier",
+ "creators": [.
+ {
+ "firstName": "Ludvig",
+ "lastName": "Holberg",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "K. L.",
+ "lastName": "Rahbek",
+ "creatorType": "author"
+ },
+ {
+ "lastName": "Holberg, Ludvig, 1684-1754",
+ "fieldMode": 1,
+ "creatorType": "contributor"
+ }
+ ],
+ "date": "1805",
+ "archiveLocation": "NO-0183300; NO-0030100; NO-0030100; NO-0030100",
+ "language": "dan",
+ "place": "Kjøbenhavn",
+ "publisher": "Kjøbenhavn : Schultz, 1804-1806",
+ "url": "http://urn.nb.no/URN:NBN:no-nb_digibok_2012051624006",
+ "attachments": [],
+ "tags": [],
+ "notes": [
+ {
+ "note": "reproduction: Elektronisk reproduksjon [Norge] Nasjonalbiblioteket Digital 2014-02-07"
+ }
+ ],
+ "seeAlso": []
+ }
+ ]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/National Library of Norway.js b/National Library of Norway.js
index ef51dfb..63d6e33 100644
--- a/National Library of Norway.js
+++ b/National Library of Norway.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2016-12-28 12:25:50"
+ "lastUpdated": "2017-11-29 23:36:00"
}

/*
@@ -35,40 +35,87 @@

***** END LICENSE BLOCK *****
*/
-
function detectWeb(doc, url) {
- if (url.indexOf("/nbsok/search?") != -1) {
- return "multiple";
- } else if (url.indexOf("/nbsok/nb/") != -1) {
- var mediaTypes = {
- 'Bøker': 'book',
- 'Tidsskrift': 'book', // complete issues or volumes, not articles
- 'Aviser': 'newspaperArticle',
- 'Film': 'videoRecording',
- 'Fjernsyn': 'videoRecording',
- 'Radio': 'radioBroadcast',
- 'Kart': 'map',
- };
- var nodes = ZU.xpath(doc, '//input[@id="mediaType"]');
- if (nodes.length && mediaTypes[nodes[0].value]) {
- return mediaTypes[nodes[0].value];
+ // The page can change from a search page to a single item page
+ // without loading the whole content as a new website, so we
+ // need to monitor for DOM changes.
+ Z.monitorDOMChanges(ZU.xpath(doc, '//div[contains(@class, "layout-content")]')[0], {childList: true});
+
+ // New UI - search page
+ if (url.includes('nb.no/search?')){
+ return 'multiple';
+ }
+
+ // Old UI – item (these URLs are not yet redirected to the new UI)
+ if (url.includes('nb.no/nbsok/nb/')){
+ var nodes = ZU.xpath(doc, '//meta[@name="dc:type"]');
+ if (nodes.length) {
+ var dcType = nodes[0].getAttribute('content');
+ return mapMediaType(dcType);
}
+ }
+
+ // New UI - item
+ if (url.includes('nb.no/items/')){
+ // There is a dc:type meta tag, but it contains values like
+ // "nonfiction" or "Text", so not helpful like before when it contained
+ // material type.
+ return 'book';
}
}

function doWeb(doc, url) {
- if (detectWeb(doc, url) == "multiple") {
- var items = ZU.getItemArray(doc, doc, '/nbsok/nb/');
+ if (detectWeb(doc, url) == 'multiple') {
+ var linkItems = ZU.xpath(doc, '//a[contains(@href, "items")]');
+ var items = {};
+ linkItems.forEach(function(linkItem) {
+ var link = linkItem.getAttribute('href');
+
+ // The search result list has two different layouts: 'grid' and 'list'.
+ // The first xpath is for the grid view, the second for the list view.
+ var title = ZU.xpathText(linkItem, './/label[@class="title" or @class="subtitle"]')
+ || ZU.xpathText(linkItem, './/dd[position() < 4]');
+
+ if (title) {
+ items[link] = title;
+ }
+ });
Zotero.selectItems(items, function(items) {
if(!items) {
return true;
}
var urls = Object.keys(items);
- ZU.processDocuments(urls, scrape);
+ ZU.processDocuments(urls, processUrl);
});
} else {
- scrape(doc, url);
+ processUrl(doc, url);
}
+}
+
+function getIdentifierFromUrl(url) {
+ // New-style URL
+ var matches = url.match(/nb\.no\/items\/([^#?;]+)/);
+ if (matches) {
+ return matches[1];
+ }
+ // Old-style URL
+ matches = url.match(/nb\.no\/nbsok\/nb\/([^#?;]+)/);
+ if (matches) {
+ return matches[1];
+ }
+}
+
+function mapMediaType(mediaType) {
+ var mediaTypes = {
+ 'Bøker': 'book',
+ 'Tidsskrift': 'book', // complete issues or volumes, not articles
+ 'Aviser': 'newspaperArticle',
+ 'Film': 'videoRecording',
+ 'Fjernsyn': 'videoRecording',
+ 'Radio': 'radioBroadcast',
+ 'Kart': 'map',
+ };
+ return mediaTypes[mediaType] || 'book'; // default to 'book'
}

function trimBrackets(obj) {
@@ -98,71 +145,131 @@
return numPages.join('; ');
}

-function getRIS(url, cb) {
+function getMODS(url, cb) {
ZU.doGet(url, function(text){
- var translator = Zotero.loadTranslator("import");
- translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
+ var translator = Zotero.loadTranslator('import');
+ translator.setTranslator('0e2235e7-babf-413c-9acf-f27cce5f059c');
translator.setString(text);
- translator.setHandler("itemDone", function(obj, item) {
+ translator.setHandler('itemDone', function(obj, item) {
cb(item);
});
translator.translate();
});
}

-function scrape(doc, url) {
- var endNote = ZU.xpath(doc, '//a[text()="EndNote"]');
- getRIS(endNote[0].href, function(item) {
+
+function apiRequest(url, cb) {
+ ZU.doGet(url, function(text){
+ var obj;
+ try {
+ obj = JSON.parse(text);
+ } catch (e) {
+ throw('Failed parsing JSON from ' + url + '.json');
+ }
+ cb(obj);
+ });
+}
+
+function processUrl(doc, url) {
+ var identifier = getIdentifierFromUrl(url);
+ // Note to self: the identifier can be a URN, but also sesamid or other kind of identifier
+ var modsUrl = 'https://api.nb.no/catalog/v1/metadata/' + identifier + '/mods';
+ var apiUrl = 'https://api.nb.no/catalog/v1/items/' + identifier ;
+
+ // Utilize the RIS importer to prepare a mostly complete record
+ getMODS(modsUrl, function(item) {
item = trimBrackets(item);

- // Normalize notes
- item.notes.forEach(function(note) {
- note.note = note.note
- .replace(/^<p>/, '').replace(/<\/p>$/, '') // paragraph tags
- .replace(/&nbsp;/g, ' ') // hard spaces
- .replace(/ +/g, ' ') // multiple spaces
- ;
- });
-
- if (item.numPages) {
- item.numPages = extractNumPages(item.numPages);
+ // Concat and normalize notes
+ var note = item.notes.map(function(note) { return note.note; })
+ .join('.\n')
+ .replace(/<\/?p>/g, '') // paragraph tags
+ .replace(/&nbsp;/g, ' ') // hard spaces
+ .replace(/ +/g, ' ') // multiple spaces
+ if (note) {
+ item.notes = [{ note: note }];
}
-
+
item.date = ZU.strToISO(item.date);

- // Add permalink
- var container = doc.getElementById('preview_metadata');
- if (container) {
- item.url = ZU.xpathText(container, './/a[contains(@href, "urn.nb.no")]');
+ if (item.archiveLocation) {
+ delete item.archiveLocation;
}
+ if (item.callNumber) {
+ delete item.callNumber;
+ }
+ item.tags = [];

- item.complete();
+ // Use the (undocumented) JSON api to add some data missing in the RIS export
+ apiRequest(apiUrl, function(apiResponse) {
+
+ var m = apiResponse.metadata;
+
+ item = trimBrackets(item);
+
+ item.numPages = extractNumPages(m.physicalDescription.extent);
+
+
+ if (item.accessDate) {
+ // Better leave this to Zotero
+ delete item.accessDate;
+ }
+
+ if (m.identifiers.urn) {
+ item.url = 'https://urn.nb.no/' + apiResponse.metadata.identifiers.urn;
+ }
+
+ if (m.series && m.series.length) {
+ item.series = m.series[0];
+ }
+
+ if (m.mediaTypes && m.mediaTypes.length) {
+ item.type = mapMediaType(m.mediaTypes[0]);
+ }
+
+ item.complete();
+ });
+
});
}
/** BEGIN TEST CASES **/
var testCases = [
{
"type": "web",
- "url": "http://www.nb.no/nbsok/nb/b0426ebe3f16cd56d81959510d52b05b",
+ "url": "https://www.nb.no/items/URN:NBN:no-nb_digibok_2013022624011",
"items": [.
{
- "itemType": "videoRecording",
- "title": "Sammenslåing av BP og Amoco - Dagsrevyen 1998.12.31 (6: 9)",
- "creators": [],
- "date": "1996-12-31",
+ "itemType": "book",
+ "title": "Memoirs of Lewis Holberg",
+ "creators": [.
+ {
+ "lastName": "Holberg",
+ "firstName": "Ludvig",
+ "creatorType": "author"
+ }
+ ],
+ "date": "1827",
"libraryCatalog": "National Library of Norway",
- "shortTitle": "Sammenslåing av BP og Amoco - Dagsrevyen 1998.12.31 (6",
- "url": "http://urn.nb.no/URN:NBN:no-nb_video_11201",
+ "numPages": "vii+289",
+ "place": "London",
+ "publisher": "Hunt and Clarke",
+ "language": "eng; lat",
+ "series": "Autobiography : a collection of the most instructive and amusing lives ever published vol. 12",
+ "url": "https://urn.nb.no/URN:NBN:no-nb_digibok_2013022624011",
"attachments": [],
+ "notes": [
+ {
+ "note": "statement of responsibility: written by himself in Latin : and now first translated into English.\nreproduction: Elektronisk reproduksjon [Norge] Nasjonalbiblioteket Digital 2013-03-01"
+ }
+ ],
"tags": [],
- "notes": [],
"seeAlso": []
}
]
},
{
"type": "web",
- "url": "http://www.nb.no/nbsok/nb/a4cd69796dd3312c9780f5982a4a31f1",
+ "url": "https://www.nb.no/items/URN:NBN:no-nb_digibok_2008030304011",
"items": [.
{
"itemType": "book",
@@ -172,36 +279,32 @@
"lastName": "Nordset",
"firstName": "Bjørg",
"creatorType": "author"
+ },
+ {
+ "lastName": "Lesja bondekvinnelag",
+ "fieldMode": 1,
+ "creatorType": "author"
}
],
"date": "1995",
"ISBN": "9788291375052",
"libraryCatalog": "National Library of Norway",
"numPages": "176",
- "place": "Lesja",
- "publisher": "Bondekvinnelaget",
+ "publisher": "Snøhetta forl.",
"shortTitle": "Mat frå gard og grend",
- "url": "http://urn.nb.no/URN:NBN:no-nb_digibok_2008030304011",
+ "url": "https://urn.nb.no/URN:NBN:no-nb_digibok_2008030304011",
"attachments": [],
- "tags": [.
- "Foods",
- "Gudbrandsdalen",
- "History",
- "Kokebøker",
- "Lesja",
- "Mattradisjoner",
- "Merkedager",
- "Preservation",
- "Religiøse fester"
- ],
"notes": [
{
- "note": "Opplagshistorikk: 2. oppl. 1995; 3. oppl. 2001"
+ "note": "statement of responsibility: Lesja bondekvinnelag ; red.: Bjørg Nordset ; [foto: [hovedsakelig] Bjarne Fossøy].\nOpplagshistorikk: 2. oppl. 1995; 3. oppl. 2001.\nreproduction: Elektronisk reproduksjon [Norge] Nasjonalbiblioteket Digital 2009-04-09"
}
],
- "seeAlso": []
+ "seeAlso": [],
+ "tags": [],
+ "place": "Lesja",
+ "language": "nob"
}
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/SAGE Journals.js b/SAGE Journals.js
index e340973..0bd39c7 100644
--- a/SAGE Journals.js
+++ b/SAGE Journals.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-03-02 21:10:56"
+ "lastUpdated": "2018-01-14 20:53:20"
}

/*
@@ -94,6 +94,7 @@
//appeared online is in Y1. Thus, we want to prefer DA over T1
//and will therefore simply delete the later in cases both
//dates are present.
+ //Z.debug(text);
if (text.indexOf("DA - ")>-1) {
text = text.replace(/Y1 - .*\r?\n/, '');
}
@@ -119,6 +120,16 @@
if (abstract) {
item.abstractNote = abstract;
}
+
+ //Workaround while Sage hopefully fixes RIS for authors
+ for (let i = 0; i<item.creators.length; i++) {
+ if (!item.creators[i].firstName) {
+ let type = item.creators[i].creatorType;
+ let comma = item.creators[i].lastName.includes(",");
+ item.creators[i] = ZU.cleanAuthor(item.creators[i].lastName, type, comma);
+ }
+ }
+
item.notes = [];
item.language = ZU.xpathText(doc, '//meta[@name="dc.Language"]/@content');
item.attachments.push({
@@ -143,8 +154,8 @@
"title": "Emotion and Regulation are One!",
"creators": [.
{
- "lastName": "Kappas",
"firstName": "Arvid",
+ "lastName": "Kappas",
"creatorType": "author"
}
],
@@ -158,7 +169,7 @@
"libraryCatalog": "SAGE Journals",
"pages": "17-25",
"publicationTitle": "Emotion Review",
- "url": "http://dx.doi.org/10.1177/1754073910380971",
+ "url": "https://doi.org/10.1177/1754073910380971",
"volume": "3",
"attachments": [.
{
@@ -186,18 +197,18 @@
"title": "Brookfield powder flow tester – Results of round robin tests with CRM-116 limestone powder",
"creators": [.
{
+ "firstName": "R. J.",
"lastName": "Berry",
- "firstName": "RJ",
"creatorType": "author"
},
{
+ "firstName": "M. S. A.",
"lastName": "Bradley",
- "firstName": "MSA",
"creatorType": "author"
},
{
+ "firstName": "R. G.",
"lastName": "McGregor",
- "firstName": "RG",
"creatorType": "author"
}
],
@@ -210,7 +221,7 @@
"libraryCatalog": "SAGE Journals",
"pages": "215-230",
"publicationTitle": "Proceedings of the Institution of Mechanical Engineers, Part E: Journal of Process Mechanical Engineering",
- "url": "http://journals.sagepub.com/doi/abs/10.1177/0954408914525387",
+ "url": "https://doi.org/10.1177/0954408914525387",
"volume": "229",
"attachments": [.
{
@@ -238,23 +249,23 @@
"title": "Moffitt’s Developmental Taxonomy and Gang Membership: An Alternative Test of the Snares Hypothesis",
"creators": [.
{
- "lastName": "Petkovsek",
"firstName": "Melissa A.",
+ "lastName": "Petkovsek",
"creatorType": "author"
},
{
- "lastName": "Boutwell",
"firstName": "Brian B.",
+ "lastName": "Boutwell",
"creatorType": "author"
},
{
- "lastName": "Barnes",
"firstName": "J. C.",
+ "lastName": "Barnes",
"creatorType": "author"
},
{
- "lastName": "Beaver",
"firstName": "Kevin M.",
+ "lastName": "Beaver",
"creatorType": "author"
}
],
@@ -268,7 +279,7 @@
"pages": "335-349",
"publicationTitle": "Youth Violence and Juvenile Justice",
"shortTitle": "Moffitt’s Developmental Taxonomy and Gang Membership",
- "url": "http://journals.sagepub.com/doi/abs/10.1177/1541204015581389",
+ "url": "https://doi.org/10.1177/1541204015581389",
"volume": "14",
"attachments": [
{
@@ -283,4 +294,4 @@
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/ScienceDirect.js b/ScienceDirect.js
index 6dbf821..ceddfdf 100644
--- a/ScienceDirect.js
+++ b/ScienceDirect.js
@@ -2,46 +2,46 @@
"translatorID": "b6d0a7a-d076-48ae-b2f0-b6de28b194e",
"label": "ScienceDirect",
"creator": "Michael Berkowitz and Aurimas Vinckevicius",
- "target": "^https?://[^/]*science-?direct\\.com[^/]*/(science(/article/|\\?.*\\b_ob=ArticleListURL|/(journal|bookseries|book|handbooks|referenceworks)/\\d)|search\\?)",
+ "target": "^https?://[^/]*science-?direct\\.com[^/]*/(science(/article/|/(journal|bookseries|book|handbooks|referenceworks)/\\d)|search\\?|journal/[^/]+/vol)",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-10-21 08:47:21"
+ "lastUpdated": "2018-01-07 22:17:42"
}

// attr()/text() v2
-function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null}
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}

function detectWeb(doc, url) {
if (!doc.body.textContent.trim()) return;

- if ((url.indexOf("_ob=DownloadURL") !== -1) ||
+ if ((url.includes("_ob=DownloadURL")) ||
doc.title == "ScienceDirect Login" ||
doc.title == "ScienceDirect - Dummy" ||
- (url.indexOf("/science/advertisement/") !== -1)) {
+ (url.includes("/science/advertisement/"))) {
return false;
}

- if ((url.indexOf("pdf") !== -1 &&
- url.indexOf("_ob=ArticleURL") === -1 &&
- url.indexOf("/article/") === -1) ||
- url.search(/\/(?:journal|bookseries|book|handbooks|referenceworks)\//) !== -1 ||
- url.indexOf("_ob=ArticleListURL") !== -1) {
+ if ((url.includes("pdf") &&
+ !url.includes("_ob=ArticleURL") &&
+ !url.includes("/article/")) ||
+ url.search(/\/(?:journal|bookseries|book|handbooks|referenceworks)\//) !== -1) {
if (getArticleList(doc).length > 0) {
return "multiple";
} else {
return false;
}
}
+
if (url.includes('/search?') && getArticleList(doc).length > 0) {
return "multiple";
}
- if (url.indexOf("pdf") === -1) {
+ if (!url.includes("pdf")) {
// Book sections have the ISBN in the URL
- if (url.indexOf("/B978") !== -1) {
+ if (url.includes("/B978")) {
return "bookSection";
} else if (getISBN(doc)) {
if (getArticleList(doc).length) {
@@ -135,7 +135,7 @@
} else {
//Sometimes we are already on the PDF page here and therefore
//can simply use the original url as pdfURL.
- if (url.indexOf('.pdf') > -1) {
+ if (url.includes('.pdf')) {
pdfURL = url;
}
}
@@ -296,7 +296,7 @@
// e.g. http://www.sciencedirect.com/science/article/pii/S0065260108602506
text = text.replace(/^((?:A[U\d]|ED)\s+-\s+)(?:Editor-in-Chief:\s+)?(.+)/mg,
function(m, pre, name) {
- if (name.indexOf(',') == -1) {
+ if (!name.includes(',')) {
name = name.trim().replace(/^(.+?)\s+(\S+)$/, '$2, $1');
}

@@ -399,6 +399,7 @@
|//td[@class="nonSerialResultsList"]/h3/a\
|//div[@id="bodyMainResults"]//li[contains(@class,"title")]//a\
|//h2/a[contains(@class, "result-list-title-link")]\
+ |//ol[@class="article-list"]//a[contains(@class, "article-content-title")]\
)\[not(contains(text(),"PDF (") or contains(text(), "Related Articles"))]');
}

@@ -880,12 +881,6 @@
},
{
"type": "web",
- "url": "http://www.sciencedirect.com/science/journal/22126716",
- "defer": true,
- "items": "multiple"
- },
- {
- "type": "web",
"url": "http://www.sciencedirect.com/science/handbooks/18745709",
"defer": true,
"items": "multiple"
@@ -1051,6 +1046,11 @@
"type": "web",
"url": "http://www.sciencedirect.com/search?qs=zotero&show=25&sortBy=relevance",
"items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "https://www.sciencedirect.com/journal/le-pharmacien-hospitalier-et-clinicien/vol/52/issue/4",
+ "items": "multiple"
}
]
/** END TEST CASES **/
diff --git a/Semantic Scholar.js b/Semantic Scholar.js
new file mode 100644
index 0000000..e89ecc0
--- /dev/null
+++ b/Semantic Scholar.js
@@ -0,0 +1,617 @@
+{
+ "translatorID": "276cb34c-6861-4de7-a11d-c2e46fb8af28",
+ "label": "Semantic Scholar",
+ "creator": "Guy Aglionby",
+ "target": "^https?://(www[.])?semanticscholar\\.org/(search|paper|author)",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-26 22:39:31"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 Guy Aglionby
+
+ 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 *****
+*/
+
+// See also https://github.com/zotero/translators/blob/master/BibTeX.js
+var bibtex2zoteroTypeMap = {
+ "inproceedings": "conferencePaper",
+ "conference" : "conferencePaper",
+ "article" : "journalArticle"
+};
+
+function detectWeb(doc, url) {
+ if (url.includes('/search') || url.includes('/author/')) {
+ return 'multiple';
+ } else {
+ var citationElement = ZU.xpath(doc, '//cite[contains(@class,"formatted-citation--style-bibtex")]')[0];
+ if (citationElement) {
+ var type = citationElement.textContent.split("{")[0].replace("@", "");
+ return bibtex2zoteroTypeMap[type];
+ }
+ }
+}
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) === 'multiple') {
+ Zotero.selectItems(getSearchResults(doc), function (selected) {
+ if (selected) {
+ ZU.processDocuments(Object.keys(selected), parseDocument);
+ }
+ });
+ } else {
+ parseDocument(doc, url);
+ }
+}
+
+function getSearchResults(doc) {
+ var titles = ZU.xpath(doc, '//a[@data-selenium-selector="title-link"]');
+ var results = {};
+ titles.forEach(function(linkElement) {
+ results[linkElement.href] = linkElement.textContent;
+ });
+ return results;
+}
+
+function parseDocument(doc, url) {
+ var citationElement = ZU.xpath(doc, '//cite[contains(@class, "formatted-citation--style-bibtex")]');
+
+ if (!citationElement.length) {
+ return;
+ }
+
+ var citation = citationElement[0].textContent;
+ citation = fixBibtex(citation);
+
+ var translator = Zotero.loadTranslator("import");
+ translator.setTranslator("9cb70025-a888-4a29-a210-93ec52da40d4");
+ translator.setString(citation);
+ translator.setHandler("itemDone", function (obj, item) {
+ // Add the link to Semantic Scholar
+ item.attachments.push({
+ url: url,
+ title: "Semantic Scholar Link",
+ mimeType: "text/html",
+ snapshot: false
+ });
+
+ // Attach the PDF
+ var scripts = ZU.xpath(doc, '//script');
+ var rawData = {};
+ const DATA_INDICATOR = 'var DATA =';
+ for (let i = 0; i < scripts.length; i++) {
+ if (scripts[i].innerHTML.startsWith(DATA_INDICATOR)) {
+ let dataText = scripts[i].innerHTML.replace(DATA_INDICATOR, '').slice(0, -1);
+ rawData = JSON.parse(dataText)[0].resultData.paper;
+ break;
+ }
+ }
+
+ if (item.pages) {
+ item.pages = fixPageRange(item.pages);
+ }
+
+ if (item.volume && item.volume.includes(' ')) {
+ let volumeAndIssue = item.volume.split(' ');
+ item.volume = volumeAndIssue[0];
+ item.issue = volumeAndIssue[1];
+ }
+
+ if (rawData.hasPdf) {
+ let paperLink = rawData.links.filter(function(link) { return link.linkType === 's2'; })[0].url;
+ item.attachments.push({
+ url: paperLink,
+ title: "Full Text PDF",
+ mimeType: 'application/pdf'
+ });
+ }
+
+ if (rawData.paperAbstract && rawData.paperAbstract.text) {
+ item.abstractNote = ZU.unescapeHTML(rawData.paperAbstract.text);
+ }
+
+ if (rawData.doiInfo && rawData.doiInfo.doi) {
+ item.DOI = rawData.doiInfo.doi;
+ }
+
+ if (rawData.keyPhrases) {
+ item.tags = rawData.keyPhrases;
+ }
+
+ item.complete();
+ });
+ translator.translate();
+}
+
+// Some page ranges are given as e.g. 575-84. Expand these to e.g. 575-584
+function fixPageRange(pageRange) {
+ let numbers = pageRange.split('-');
+ if (numbers.length !== 2) {
+ return pageRange;
+ }
+
+ numbers = numbers.map(function(x) { return parseInt(x); });
+
+ // No change is needed if they're already correctly formatted
+ if (numbers[0] < numbers[1]) {
+ return pageRange;
+ } else {
+ let digitsInSecond = Math.floor(Math.log10(numbers[1])) + 1;
+ let baseNumber = numbers[0];
+ let difference = 0;
+
+ for (let i = 1; i <= digitsInSecond; i++) {
+ let mod = baseNumber % (10 ** i);
+ baseNumber -= mod;
+ difference += mod;
+ }
+
+ // If the given pageRange doesn't make sense, just leave it as it has been given
+ // e.g. '95-10'
+ if(difference > numbers[1]) {
+ return pageRange;
+ }
+
+ numbers[1] = baseNumber + numbers[1];
+
+ return numbers[0] + '-' + numbers[1];
+ }
+}
+
+function fixBibtex(bibtex) {
+ // There's this issue where some characters with umlauts have unbalanced
+ // braces in the Semantic Scholar BibTeX, which kills the Zotero translator.
+ return bibtex.replace(/{\\\"{([A-Za-z])}[^}]/g, '\{\\"$1\}');
+}
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/TectoMT-Modular-NLP-Framework-Popel-Zabokrtsk%C3%BD/89fbfabca6b605e2b00a9d57880c241c17e84001",
+ "defer": true,
+ "items": [.
+ {
+ "itemType": "conferencePaper",
+ "title": "TectoMT: Modular NLP Framework",
+ "creators": [.
+ {
+ "firstName": "Martin",
+ "lastName": "Popel",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Zdenek",
+ "lastName": "Zabokrtský",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2010",
+ "DOI": "10.1007/978-3-642-14770-8_33",
+ "abstractNote": "In the present paper we describe TectoMT, a multi-purpose open-source NLP framework. It allows for fast and efficient development of NLP applications by exploiting a wide range of software modules already integrated in TectoMT, such as tools for sentence segmentation, tokenization, morphological analysis, POS tagging, shallow and deep syntax parsing, named entity recognition, anaphora resolution, tree-to-tree translation, natural language generation, word-level alignment of parallel corpora, and other tasks. One of the most complex applications of TectoMT is the English-Czech machine translation system with transfer on deep syntactic (tectogrammatical) layer. Several modules are available also for other languages (German, Russian, Arabic). Where possible, modules are implemented in a language-independent way, so they can be reused in many applications.",
+ "itemID": "Popel2010TectoMTMN",
+ "libraryCatalog": "Semantic Scholar",
+ "proceedingsTitle": "IceTAL",
+ "shortTitle": "TectoMT",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ },
+ {
+ "title": "TectoMT: Modular NLP Framework",
+ "mimeType": "application/pdf"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Abokrtsk"
+ },
+ {
+ "tag": "Machine Translation"
+ },
+ {
+ "tag": "Pipeline"
+ },
+ {
+ "tag": "Tectomt"
+ },
+ {
+ "tag": "Treex"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/The-spring-in-the-arch-of-the-human-foot-Ker-Bennett/d37500a6a58fd55f0998ad0394bf076484e08fe8",
+ "defer": true,
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "The spring in the arch of the human foot.",
+ "creators": [.
+ {
+ "firstName": "Robert F.",
+ "lastName": "Ker",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Michael Brian",
+ "lastName": "Bennett",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Susan R. S.",
+ "lastName": "Bibby",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Ralph C.",
+ "lastName": "Kester",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "R. McNeill",
+ "lastName": "Alexander",
+ "creatorType": "author"
+ }
+ ],
+ "date": "1987",
+ "abstractNote": "Large mammals, including humans, save much of the energy needed for running by means of elastic structures in their legs and feet. Kinetic and potential energy removed from the body in the first half of the stance phase is stored briefly as elastic strain energy and then returned in the second half by elastic recoil. Thus the animal runs in an analogous fashion to a rubber ball bouncing along. Among the elastic structures involved, the tendons of distal leg muscles have been shown to be important. Here we show that the elastic properties of the arch of the human foot are also important.",
+ "issue": "7000",
+ "itemID": "Ker1987TheSI",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "147-149",
+ "publicationTitle": "Nature",
+ "volume": "325",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/Foundations-of-Statistical-Natural-Language-Proces-Manning-Sch%C3%BCtze/06fd7d924d499fbc62ccbcc2e458fb6c187bcf6f",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Foundations of Statistical Natural Language Processing",
+ "creators": [.
+ {
+ "firstName": "Christopher D.",
+ "lastName": "Manning",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Hinrich",
+ "lastName": "Schüze",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2001",
+ "DOI": "10.1023/A:1011424425034",
+ "abstractNote": "In 1993, Eugene Charniak published a slim volume entitled Statistical Language Learning. At the time, empirical techniques to natural language processing were on the rise — in that year, Computational Linguistics published a special issue on such methods — and Charniak’s text was the first to treat the emerging field. Nowadays, the revolution has become the establishment; for instance, in 1998, nearly half the papers in Computational Linguistics concerned empirical methods (Hirschberg, 1998). Indeed, Christopher Manning and Hinrich Schütze’s new, by-no-means slim textbook on statistical NLP — strangely, the first since Charniak’s — begins, “The need for a thorough textbook for Statistical Natural Language Processing hardly needs to be argued for”. Indubitably so; the question is, is this it? Foundations of Statistical Natural Language Processing (henceforth FSNLP) is certainly ambitious in scope. True to its name, it contains a great deal of preparatory material, including: gentle introductions to probability and information theory; a chapter on linguistic concepts; and (a most welcome addition) discussion of the nitty-gritty of doing empirical work, ranging from lists of available corpora to indepth discussion of the critical issue of smoothing. Scattered throughout are also topics fundamental to doing good experimental work in general, such as hypothesis testing, cross-validation, and baselines. Along with these preliminaries, FSNLP covers traditional tools of the trade: Markov models, probabilistic grammars, supervised and unsupervised classification, and the vector-space model. Finally, several chapters are devoted to specific problems, among them lexicon acquisition, word sense disambiguation, parsing, machine translation, and information retrieval. (The companion website contains further useful material, including links to programs and a list of errata.) In short, this is a Big Book, and this fact alone already confers some benefits. For the researcher, FSNLP offers the convenience of one-stop shopping: at present, there is no other NLP reference in which standard empirical techniques, statistical tables, definitions of linguistics terms, and elements of information retrieval appear together; furthermore, the text also summarizes and critiques many individual research papers. Similarly, someone teaching a course on statistical NLP will appreciate the large number of topics FSNLP covers, allowing the tailoring of a syllabus to individual interests. And for those entering the field, the book records “folklore” knowledge that is typically acquired only by word of mouth",
+ "itemID": "Manning2001FoundationsOS",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "80-81",
+ "publicationTitle": "Information Retrieval",
+ "volume": "4",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ },
+ {
+ "title": "Foundations of Statistical Natural Language Processing",
+ "mimeType": "application/pdf"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "CFG"
+ },
+ {
+ "tag": "F Measure"
+ },
+ {
+ "tag": "N-gram"
+ },
+ {
+ "tag": "PCFG"
+ },
+ {
+ "tag": "POS"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/Interleukin-7-mediates-the-homeostasis-of-na%C3%AFve-an-Schluns-Kieper/aee7b854bed51120fe356a5792dfb22fec7cf2ae",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Interleukin-7 mediates the homeostasis of naïe and memory CD8 T cells in vivo",
+ "creators": [.
+ {
+ "firstName": "Kimberly S.",
+ "lastName": "Schluns",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "William C.",
+ "lastName": "Kieper",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Stephen C.",
+ "lastName": "Jameson",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Leo",
+ "lastName": "Lefrançois",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2000",
+ "DOI": "10.1038/80868",
+ "abstractNote": "The naïve and memory T lymphocyte pools are maintained through poorly understood homeostatic mechanisms that may include signaling via cytokine receptors. We show that interleukin-7 (IL-7) plays multiple roles in regulating homeostasis of CD8+ T cells. We found that IL-7 was required for homeostatic expansion of naïve CD8+ and CD4+ T cells in lymphopenic hosts and for CD8+ T cell survival in normal hosts. In contrast, IL- 7 was not necessary for growth of CD8+ T cells in response to a virus infection but was critical for generating T cell memory. Up-regulation of Bcl-2 in the absence of IL-7 signaling was impaired after activation in vivo. Homeostatic proliferation of memory cells was also partially dependent on IL-7. These results point to IL-7 as a pivotal cytokine in T cell homeostasis.",
+ "itemID": "Schluns2000Interleukin7MT",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "426-432",
+ "publicationTitle": "Nature Immunology",
+ "volume": "1",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/Prim%C3%A4re-Ziliendyskinesie-in-%C3%96sterreich-Lesic-Maurer/13c67d45a9919f44bbd07fde9bdf5f4a0e9ecc8d",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Primäre Ziliendyskinesie in Öterreich",
+ "creators": [.
+ {
+ "firstName": "Irena",
+ "lastName": "Lesic",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Elisabeth",
+ "lastName": "Maurer",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Marie-Pierre F.",
+ "lastName": "Strippoli",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Claudia E.",
+ "lastName": "Kuehni",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Angelo",
+ "lastName": "Barbato",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Thomas",
+ "lastName": "Frischer",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2009",
+ "DOI": "10.1007/s00508-009-1197-4",
+ "abstractNote": "INTRODUCTION: Primary ciliary dyskinesia (PCD) is a rare hereditary recessive disease with symptoms of recurrent pneumonia, chronic bronchitis, bronchiectasis, and chronic sinusitis. Chronic rhinitis is often the presenting symptom in newborns and infants. Approximately half of the patients show visceral mirror image arrangements (situs inversus). In this study, we aimed 1) to determine the number of paediatric PCD patients in Austria, 2) to show the diagnostic and therapeutic modalities used in the clinical centres and 3) to describe symptoms of children with PCD. PATIENTS, MATERIAL AND METHODS: For the first two aims, we analysed data from a questionnaire survey of the European Respiratory Society (ERS) task force on Primary Ciliary Dyskinesia in children. All paediatric respiratory units in Austria received a questionnaire. Symptoms of PCD patients from Vienna Children's University Hospital (aim 3) were extracted from case histories. RESULTS: In 13 Austrian clinics 48 patients with PCD (36 aged from 0–19 years) were identified. The prevalence of reported cases (aged 0–19 yrs) in Austria was 1:48000. Median age at diagnosis was 4.8 years (IQR 0.3–8.2), lower in children with situs inversus compared to those without (3.1 vs. 8.1 yrs, p = 0.067). In 2005–2006, the saccharine test was still the most commonly used screening test for PCD in Austria (45%). Confirmation of the diagnosis was usually by electron microscopy (73%). All clinics treated exacerbations immediately with antibiotics, 73% prescribed airway clearance therapy routinely to all patients. Other therapies and diagnostic tests were applied very inconsistently across Austrian hospitals. All PCD patients from Vienna (n = 13) had increased upper and lower respiratory secretions, most had recurring airway infections (n = 12), bronchiectasis (n = 7) and bronchitis (n = 7). CONCLUSION: Diagnosis and therapy of PCD in Austria are inhomogeneous. Prospective studies are needed to learn more about the course of the disease and to evaluate benefits and harms of different treatment strategies. EINLEITUNG: Die primäre Ziliendyskinesie (Primary Ciliary Dykinesia, PCD) ist eine seltene, meist autosomal-rezessiv vererbte Erkrankung, mit den typischen Manifestationen rezidivierende Pneumonien, chronische Bronchitis, Bronchiektasien, chronische Sinusitis und, insbesondere bei Neugeborenen und Säuglingen, chronischer Rhinitis. Die Hälfte der Patienten haben einen Situs inversus. Die Ziele dieser Studie waren, 1) die Anzahl pädiatrischer PCD-Patienten in Österreich zu erfassen, 2) die diagnostischen und therapeutischen Modalitäten der behandelnden Zentren darzustellen und 3) die Symptomatik der Patienten zu beschreiben. PATIENTEN, MATERIAL UND METHODEN: Zur Beantwortung der ersten zwei Fragen analysierten wir die österreichischen Resultate einer Fragebogenuntersuchung der pädiatrischen PCD Taskforce der European Respiratory Society (ERS). Die klinischen Charakteristika der PCD-Patienten an der Universitätsklinik für Kinder- und Jugendheilkunde in Wien stellten wir anhand der Krankengeschichten zusammen. ERGEBNISSE: In 13 österreichischen Krankenhäusern wurden 48 Patienten identifiziert (36 im Alter von 0–19 Jahre). Dies ergibt für Österreich eine Prävalenz diagnostizierter PCD-Patienten (0–19 Jahre) von 1:48000. Das mediane Alter bei Diagnose war 4,8 Jahre (IQR 0,3–8,2 Jahre). Patienten mit Situs inversus wurden früher diagsnotiziert (3,1 Jahre versus 8,1 Jahre; p = 0,067). Das gebräuchlichste screening-Verfahren (2005–2006) war der Saccharintest (45%), zur Diagnosesicherung wurde meist die Elektronenmikroskopie eingesetzt (73%). Alle Kliniken behandelten Exazerbationen sofort antibiotisch, Atemphysiotherapie wurde in 73% der Zentren eingesetzt. Insgesamt waren Diagnostik und Therapie der PCD in Österreich uneinheitlich. Alle Patienten der Universitätsklinik Wien (n = 13) hatten eine verstärkte Sekretproduktion, die meisten rezidivierende Atemwegsinfekte (n = 12), Bronchiektasen (n = 7) und Bronchitis (n = 7). KONKLUSION: Diagnostik und Therapie der PCD in Österreich sind uneinheitlich. Prospektive Studien sind notwendig, den Verlauf der Erkrankung zu erforschen sowie Nutzen und Schaden unterschiedlicher Therapie-konzepte darzustellen.",
+ "itemID": "Lesic2009PrimreZI",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "616-622",
+ "publicationTitle": "Wiener klinische Wochenschrift",
+ "volume": "121",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/The-German-hospital-malnutrition-study-Pirlich-Schuetz/b59a79b2194f5f6d82b06593c23f25f67fbef512",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "The German hospital malnutrition study.",
+ "creators": [.
+ {
+ "firstName": "Matthias",
+ "lastName": "Pirlich",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Tatjana",
+ "lastName": "Schuetz",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Kristina",
+ "lastName": "Norman",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Sylvia",
+ "lastName": "Gastell",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Heinrich Josef",
+ "lastName": "Lüke",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Stephan",
+ "lastName": "Bischoff",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Ulrich",
+ "lastName": "Bolder",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "T. M.",
+ "lastName": "Frieling",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Helge",
+ "lastName": "Güdenzoph",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Kristian",
+ "lastName": "Hahn",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "K. W.",
+ "lastName": "Jauch",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Karin",
+ "lastName": "Schindler",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Jügen",
+ "lastName": "Stein",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Dorothee",
+ "lastName": "Volkert",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Arved",
+ "lastName": "Weimann",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Hansjög",
+ "lastName": "Werner",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Christiane",
+ "lastName": "Wolf",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Gudrun",
+ "lastName": "Zücher",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Peter",
+ "lastName": "Bauer",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Herbert",
+ "lastName": "Lochs",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2006",
+ "abstractNote": "BACKGROUND & AIMS\nMalnutrition is frequently observed in chronic and severe diseases and associated with impaired outcome. In Germany general data on prevalence and impact of hospital malnutrition are missing.\n\n\nMETHODS\nNutritional state was assessed by subjective global assessment (SGA) and by anthropometric measurements in 1,886 consecutively admitted patients in 13 hospitals (n=1,073, university hospitals; n=813, community or teaching hospitals). Risk factors for malnutrition and the impact of nutritional status on length of hospital stay were analyzed.\n\n\nRESULTS\nMalnutrition was diagnosed in 27.4% of patients according to SGA. A low arm muscle area and arm fat area were observed in 11.3% and 17.1%, respectively. Forty-three % of patients 70 years old were malnourished compared to only 7.8% of patients <30 years. The highest prevalence of malnutrition was observed in geriatric (56.2%), oncology (37.6%), and gastroenterology (32.6%) departments. Multivariate analysis revealed three independent risk factors: higher age, polypharmacy, and malignant disease (all P<0.01). Malnutrition was associated with an 43% increase of hospital stay (P<0.001).\n\n\nCONCLUSIONS\nIn German hospitals every fourth patient is malnourished. Malnutrition is associated with increased length of hospital stay. Higher age, malignant disease and major comorbidity were found to be the main contributors to malnutrition. Adequate nutritional support should be initiated in order to optimize the clinical outcome of these patients.",
+ "issue": "4",
+ "itemID": "Pirlich2006TheGH",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "563-572",
+ "publicationTitle": "Clinical nutrition",
+ "volume": "25",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ },
+ {
+ "title": "The German hospital malnutrition study.",
+ "mimeType": "application/pdf"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/author/Josie-Holmes/27569076",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
+
diff --git a/beck-online.js b/beck-online.js
index f1d5911..8e69e48 100644
--- a/beck-online.js
+++ b/beck-online.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcs",
- "lastUpdated": "2016-09-09 13:18:27"
+ "lastUpdated": "2018-01-08 17:17:11"
}

/*
@@ -46,7 +46,8 @@
'LSK' : 'journalArticle', // Artikel in Leitsatzkartei
'ZINHALTVERZ' : 'multiple',//Inhaltsverzeichnis
'KOMMENTAR' : 'encyclopediaArticle',
- 'ALTEVERSION' : 'encyclopediaArticle'
+ 'ALTEVERSION' : 'encyclopediaArticle',
+ 'ALTEVERSION KOMMENTAR' : 'encyclopediaArticle'
}

// build a regular expression for author cleanup in authorRemoveTitlesEtc()
@@ -179,7 +180,7 @@
// description example 1: "Marco Ganzhorn: Ist ein E-Book ein Buch?"
// description example 2: "Michael Fricke/Dr. Martin Gerecke: Informantenschutz und Informantenhaftung"
// description example 3: "Sara Sun Beale: Die Entwicklung des US-amerikanischen Rechts der strafrechtlichen Verantwortlichkeit von Unternehmen"
- var description = ZU.xpathText(doc, "//*[@id='doktoccontent']/h1");
+ var description = ZU.xpathText(doc, "//*[@id='dokcontent']/h1");
var descriptionItems = description.split(':');

//authors
@@ -286,14 +287,14 @@
item.extra += "{:jurisdiction: de}";
}

- var decisionDateStr = ZU.xpathText(doc, '//span[@class="edat"] | //span[@class="EDAT"] | //span[@class="datum"]');
+ var decisionDateStr = ZU.xpathText(doc, '(//span[@class="edat"] | //span[@class="EDAT"] | //span[@class="datum"])[1]');
if (decisionDateStr == null) {
decisionDateStr = alternativeData[3];
}
//e.g. 24. 9. 2001 or 24-9-1990
item.dateDecided = decisionDateStr.replace(/(\d\d?)[\.-]\s*(\d\d?)[\.-]\s*(\d\d\d\d)/, "$3-$2-$1");

- item.docketNumber = ZU.xpathText(doc, '//span[@class="az"]');
+ item.docketNumber = ZU.xpathText(doc, '(//span[@class="az"])[1]');
if (item.docketNumber == null) {
item.docketNumber = alternativeData[4];
}
@@ -341,7 +342,7 @@
item.pages = beckRSsrc[3];*/
}

- var otherCitations = ZU.xpath(doc, '//li[a[@title="Parallelfundstellen"]]')[0];
+ var otherCitations = ZU.xpath(doc, '//div[@id="verweiszettel-top"]//li[a[contains(text(), "Parallelfundstellen")]]')[0];
if (otherCitations) {
var otherCitationsText = ZU.xpathText(otherCitations, './following-sibling::li/ul/li', null, " ; ");
if (otherCitationsText) {
@@ -361,14 +362,14 @@
// there is additional information if the case is published in a journal
if (documentClassName == 'ZRSPR') {
// short title of publication
- item.reporter = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/a[2]');
+ item.reporter = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/a[2]');
// long title of publication
var publicationTitle = ZU.xpathText(doc, '//li[@class="breadcurmbelemenfirst"]');
if (publicationTitle) {
note = addNote(note, "<h3>Zeitschrift Titel</h3><p>" + ZU.trimInternal(publicationTitle) + "</p>");
}

- item.date = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/ul/li/a[2]');
+ item.date = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/ul/li/a[2]');

//e.g. ArbrAktuell 2014, 150
var shortCitation = ZU.xpathText(doc, '//div[@class="dk2"]//span[@class="citation"]');
@@ -470,12 +471,12 @@
}

item.publicationTitle = ZU.xpathText(doc, '//li[@class="breadcurmbelemenfirst"]');
- item.journalAbbreviation = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/a[2]');
+ item.journalAbbreviation = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/a[2]');

- item.date = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/ul/li/a[2]');
+ item.date = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/ul/li/a[2]');

//e.g. Heft 6 (Seite 141-162)
- var issueText = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/ul/li/ul/li/a[2]');
+ var issueText = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/ul/li/ul/li/a[2]');

if (issueText) {
item.issue = issueText.replace(/\([^\)]*\)/,"");
@@ -573,7 +574,7 @@
"tags": [],
"notes": [
{
- "note": "Additional Metadata: <h3>Beschreibung</h3><p>Schadensersatz wegen fehlerhafter Ad-hoc-Mitteilungen („Infomatec”)</p><h3>Parallelfundstellen</h3><p>BB 2001 Heft 42, 2130 ; BeckRS 9998, 03964 ; NJOZ 2001, 1878 ; NJW-RR 2001, 1705 ; NZG 2002, 429 ; WuB I G 7. - 8.01 Schäfer... ; FHZivR 47 Nr. 2816 (Ls.) ; FHZivR 47 Nr. 6449 (Ls.) ; FHZivR 48 Nr. 2514 (Ls.) ; FHZivR 48 Nr. 6053 (Ls.) ; LSK 2001, 520032 (Ls.) ; NJW-RR 2003, 216 (Ls.) ; DB 2001, 2334 ; WPM 2001, 1944 ; WuB 2001, 1269 ; ZIP 2001, 1881</p><h3>Normen</h3><p>§ WPHG § 15 WpHG; § BOERSG § 88 BörsG; §§ BGB § 823, BGB § 826 BGB</p><h3>Zeitschrift Titel</h3><p>Zeitschrift für Bank- und Kapitalmarktrecht</p>"
+ "note": "Additional Metadata: <h3>Beschreibung</h3><p>Schadensersatz wegen fehlerhafter Ad-hoc-Mitteilungen („Infomatec”)</p><h3>Parallelfundstellen</h3><p>BeckRS 9998, 03964 ; EWiR 2001, 1049 (m. Anm. … ; NJOZ 2001, 1878 ; NJW-RR 2001, 1705 ; NZG 2002, 429 ; WM 2001 Heft 41, 1944 ; WuB I G 7. - 8.01 Schäfer… ; ZIP 2001, 1881 (m. Anm.) ; FHZivR 47 Nr. 2816 (Ls.) ; FHZivR 47 Nr. 6449 (Ls.) ; FHZivR 48 Nr. 2514 (Ls.) ; FHZivR 48 Nr. 6053 (Ls.) ; LSK 2001, 520032 (Ls.) ; NJW-RR 2003, 216 (Ls.) ; DB 2001, 2334 ; WuB 2001, 1269</p><h3>Normen</h3><p>§ WPHG § 15 WpHG; § BOERSG § 88 BörsG; §§ BGB § 823, BGB § 826 BGB</p><h3>Zeitschrift Titel</h3><p>Zeitschrift für Bank- und Kapitalmarktrecht</p>"
}
],
"seeAlso": []
@@ -647,7 +648,7 @@
}
],
"date": "2014",
- "abstractNote": "Die Durchführung von Beweisverfahren ist mit Duldungs- und Mitwirkungspflichten von Beweisgegnern und Dritten verbunden, die nur über begrenzte Weigerungsrechte verfügen. Einen Sonderfall bildet der bei „Wohnungsbetroffenheit“ eingreifende letzte Halbsatz des § ZPO § 144 ZPO § 144 Absatz I 3 ZPO. Dessen Voraussetzungen und Reichweite bedürfen der Klärung. Ferner gibt die neuere Rechtsprechung Anlass zu untersuchen, inwieweit auch der Eigentumsschutz einer Beweisaufnahme entgegenstehen kann.",
+ "abstractNote": "Die Durchführung von Beweisverfahren ist mit Duldungs- und Mitwirkungspflichten von Beweisgegnern und Dritten verbunden, die nur über begrenzte Weigerungsrechte verfügen. Einen Sonderfall bildet der bei „Wohnungsbetroffenheit“ eingreifende letzte Halbsatz des § ZPO § 144 ZPO § 144 Absatz I 3 ZPO. Dessen Voraussetzungen und Reichweite bedürfen der Klärung. Ferner gibt die neuere Rechtsprechung Anlass zu untersuchen, inwieweit auch der Eigentumsschutz einer Beweisaufnahme entgegenstehen kann.",
"issue": "46",
"journalAbbreviation": "NJW",
"libraryCatalog": "beck-online",
@@ -716,7 +717,7 @@
}
],
"date": "2014",
- "abstractNote": "Nachdem die Selbstanzeige nach § AO § 371 AO bereits im Frühjahr 2011 nur knapp einer Abschaffung entging und (lediglich) verschärft wurde, plant der Gesetzgeber nun eine weitere Einschränkung. Dabei unterscheiden sich der Referentenentwurf vom 27.8.2014 und der Regierungsentwurf vom 26.9.2014 scheinbar kaum; Details legen aber die Vermutung nahe, dass dort noch einmal jemand „gebremst“ hat. zur Fussnote 1",
+ "abstractNote": "Nachdem die Selbstanzeige nach § AO § 371 AO bereits im Frühjahr 2011 nur knapp einer Abschaffung entging und (lediglich) verschärft wurde, plant der Gesetzgeber nun eine weitere Einschränkung. Dabei unterscheiden sich der Referentenentwurf vom 27.8.2014 und der Regierungsentwurf vom 26.9.2014 scheinbar kaum; Details legen aber die Vermutung nahe, dass dort noch einmal jemand „gebremst“ hat. zur Fussnote 1",
"issue": "46",
"journalAbbreviation": "DStR",
"libraryCatalog": "beck-online",
@@ -784,7 +785,7 @@
}
],
"date": "2014",
- "abstractNote": "Die Durchführung von Beweisverfahren ist mit Duldungs- und Mitwirkungspflichten von Beweisgegnern und Dritten verbunden, die nur über begrenzte Weigerungsrechte verfügen. Einen Sonderfall bildet der bei „Wohnungsbetroffenheit“ eingreifende letzte Halbsatz des § ZPO § 144 ZPO § 144 Absatz I 3 ZPO. Dessen Voraussetzungen und Reichweite bedürfen der Klärung. Ferner gibt die neuere Rechtsprechung Anlass zu untersuchen, inwieweit auch der Eigentumsschutz einer Beweisaufnahme entgegenstehen kann.",
+ "abstractNote": "Die Durchführung von Beweisverfahren ist mit Duldungs- und Mitwirkungspflichten von Beweisgegnern und Dritten verbunden, die nur über begrenzte Weigerungsrechte verfügen. Einen Sonderfall bildet der bei „Wohnungsbetroffenheit“ eingreifende letzte Halbsatz des § ZPO § 144 ZPO § 144 Absatz I 3 ZPO. Dessen Voraussetzungen und Reichweite bedürfen der Klärung. Ferner gibt die neuere Rechtsprechung Anlass zu untersuchen, inwieweit auch der Eigentumsschutz einer Beweisaufnahme entgegenstehen kann.",
"issue": "46",
"journalAbbreviation": "NJW",
"libraryCatalog": "beck-online",
@@ -875,13 +876,14 @@
},
{
"type": "web",
- "url": "https://beck-online.beck.de/?vpath=bibdata%2fents%2furteile%2f2012%2fcont%2fbeckrs_2012_09546.htm",
+ "url": "https://beck-online.beck.de/Dokument?vpath=bibdata%2Fents%2Fbeckrs%2F2012%2Fcont%2Fbeckrs.2012.09546.htm&anchor=Y-300-Z-BECKRS-B-2012-N-09546",
"items": [.
{
"itemType": "case",
"caseName": "OLG Köln, 23.03.2012 - 6 U 67/11",
"creators": [],
"dateDecided": "2012-03-23",
+ "abstractNote": "Leitsätze:\n\t\t\t\t\t1. Die Eltern eines 13-jährigen Sohnes, dem sie einen PC mit Internetanschluss überlassen haben, können ihrer aus § BGB § 832 BGB § 832 Absatz I BGB resultierenden Aufsichtspflicht zur Verhinderung der Teilnahme des Kindes an illegalen sog. Tauschbörsen durch die Installation einer Firewall und eines Passwortes sowie monatliche stichprobenmäßige Kontrollen genügen. Diese Kontrollen sind aber nicht hinreichend durchgeführt worden, wenn die Eltern über Monate das trotz der installierten Schutzmaßnahmen erfolgte Herunterladen zweier Filesharingprogramme nicht entdecken, für die Ikons auf dem Desktop sichtbar waren.\n\t\t\t\t\t2. Die Höhe des dem Rechteinhaber durch die Teilnahme an einer sog. Tauschbörse entstandenen, im Wege der Lizenzanalogie berechneten Schadens ist mangels besser geeigneter Grundlagen an dem GEMA Tarif zu orientieren, der dem zu beurteilenden Sachverhalt am nächsten kommt. Das ist nicht der Tarif VR W 1, sondern der (frühere) Tarif VR-OD 5. Es sind weiter alle in Betracht kommenden Umstände wie die Länge des Zeitraumes, in dem der Titel in die \"Tauschbörse\" eingestellt war, und die Höhe des Lizenzbetrages zu berücksichtigen, der für vergleichbare Titel nach Lizenzierung gezahlt wird. Sind gängige Titel über Monate durch die Tauschbörse öffentlich zugänglichgemacht worden, so kann ein Betrag von 200 € für jeden Titel geschuldet sein.",
"court": "OLG Köln",
"docketNumber": "6 U 67/11",
"extra": "{:jurisdiction: de}\n{:genre: Urt.}",
@@ -893,7 +895,7 @@
"tags": [],
"notes": [
{
- "note": "Additional Metadata: <h3>Fundstelle</h3><p>BeckRS 2012, 09546</p><h3>Parallelfundstellen</h3><p>GRUR-Prax 2012, 238 (m. A... ; MMR 2012, 387 (m. Anm. Ho... ; NJOZ 2013, 365 ; ZUM 2012, 697 ; LSK 2012, 250148 (Ls.) ; CR 2012, 397 ; K & R 2012, 437 L ; MD 2012, 621 ; WRP 2012, 1007</p>"
+ "note": "Additional Metadata: <h3>Fundstelle</h3><p>BeckRS 2012, 09546</p><h3>Parallelfundstellen</h3><p>GRUR-Prax 2012, 238 (m. A… ; MMR 2012, 387 (m. Anm. Ho… ; NJOZ 2013, 365 ; ZUM 2012, 697 ; LSK 2012, 250148 (Ls.) ; CR 2012, 397 ; K & R 2012, 437 ; MD 2012, 621 ; WRP 2012, 1007</p><h3>Normen</h3><p>Normenketten: BGB § BGB § 683 S. 1, § 670, § 832 Abs. 1 UrhG § URHG § 19a, § 97 Abs. 2</p>"
}
],
"seeAlso": []
@@ -924,7 +926,7 @@
"tags": [],
"notes": [
{
- "note": "Additional Metadata: <h3>Beschreibung</h3><p>EU-konforme unbestimmte Sperrverfügung gegen Internetprovider - UPC Telekabel/Constantin Film ua [kino.to]</p><h3>Parallelfundstellen</h3><p>BeckEuRS 2014, 417030 ; BeckEuRS 2014, 754042 ; BeckRS 2014, 80615 ; EuZW 2014, 388 (m. Anm. K... ; GRUR 2014, 468 (m. Anm. M... ; GRUR Int. 2014, 469 ; GRUR-Prax 2014, 157 (m. A... ; MMR 2014, 397 (m. Anm. Ro... ; NJW 2014, 1577 ; ZUM 2014, 494 ; LSK 2014, 160153 (Ls.) ; EuGRZ 2014, 301 ; EWS 2014, 225 ; K & R 2014, 329 ; MittdtPatA 2014, 335 L ; WRP 2014, 540</p><h3>Normen</h3><p>AEUV Art. AEUV Artikel 267; Richtlinie 2001/29/EG Art. EWG_RL_2001_29 Artikel 3 EWG_RL_2001_29 Artikel 3 Absatz II, EWG_RL_2001_29 Artikel 8 EWG_RL_2001_29 Artikel 3 Absatz III</p><h3>Zeitschrift Titel</h3><p>Gewerblicher Rechtsschutz und Urheberrecht</p>"
+ "note": "Additional Metadata: <h3>Beschreibung</h3><p>EU-konforme unbestimmte Sperrverfügung gegen Internetprovider - UPC Telekabel/Constantin Film ua [kino.to]</p><h3>Parallelfundstellen</h3><p>BeckEuRS 2014, 417030 ; BeckRS 2014, 80615 ; EuZW 2014, 388 (m. Anm. K… ; GRUR Int. 2014, 469 ; GRUR-Prax 2014, 157 (m. A… ; MMR 2014, 397 (m. Anm. Ro… ; NJW 2014, 1577 ; ZUM 2014, 494 ; LSK 2014, 160153 (Ls.) ; EuGRZ 2014, 301 ; EWS 2014, 225 ; GRUR-Prax 2014, 157 ; K & R 2014, 329 ; MittdtPatA 2014, 335 ; MittdtPatA 2014, 335 L ; WRP 2014, 540 ; MMR-Aktuell 2014, 356790 ; MMR-Aktuell 2014, 356900</p><h3>Normen</h3><p>AEUV Art. AEUV Artikel 267; Richtlinie 2001/29/EG Art. EWG_RL_2001_29 Artikel 3 EWG_RL_2001_29 Artikel 3 Absatz II, EWG_RL_2001_29 Artikel 8 EWG_RL_2001_29 Artikel 3 Absatz III</p><h3>Zeitschrift Titel</h3><p>Gewerblicher Rechtsschutz und Urheberrecht</p>"
}
],
"seeAlso": []
@@ -956,7 +958,7 @@
"tags": [],
"notes": [.
{
- "note": "Additional Metadata: <h3>Beschreibung</h3><p>Indizierung eines pornographischen Romans (\"Josefine Mutzenbacher\") zur Fussnote †</p><h3>Parallelfundstellen</h3><p>BeckRS 9998, 165476 ; BeckRS 9998, 169076 ; NStZ 1991, 188 ; BeckRS 9998, 170068 (Ls.) ; FHOeffR 42 Nr. 13711 (Ls.... ; FHOeffR 42 Nr. 13713 (Ls.... ; FHOeffR 42 Nr. 6327 (Ls.) ; FHOeffR 42 Nr. 7072 (Ls.) ; LSK 1991, 230089 (Ls.) ; NVwZ 1991, 663 (Ls.) ; AfP 1991, 379 ; AfP 1991, 384 ; Bespr.: , JZ 1991, 470 ; BVerfGE 83, 130 ; DVBl 1991, 261 ; EuGRZ 1991, 33 ; JZ 1991, 465</p><h3>Normen</h3><p>GG Art. GG Artikel 1 GG Artikel 1 Absatz I, GG Artikel 2 GG Artikel 2 Absatz I, GG Artikel 5 GG Artikel 5 Absatz III 1, GG Artikel 6 GG Artikel 6 Absatz II, GG Artikel 19 GG Artikel 19 Absatz I 2, GG Artikel 19 Absatz IV, GG Artikel 20 GG Artikel 20 Absatz III, GG Artikel 103 GG Artikel 103 Absatz I; GjS §§ 1, 6, 9 II</p><h3>Zeitschrift Titel</h3><p>Neue Juristische Wochenschrift</p>"
+ "note": "Additional Metadata: <h3>Beschreibung</h3><p>Indizierung eines pornographischen Romans (\"Josefine Mutzenbacher\") zur Fussnote †</p><h3>Parallelfundstellen</h3><p>BeckRS 9998, 165476 ; NStZ 1991, 188 ; FHOeffR 42 Nr. 13711 (Ls.) ; FHOeffR 42 Nr. 13713 (Ls.) ; FHOeffR 42 Nr. 6327 (Ls.) ; FHOeffR 42 Nr. 7072 (Ls.) ; LSK 1991, 230089 (Ls.) ; NVwZ 1991, 663 (Ls.) ; AfP 1991, 379 ; AfP 1991, 384 ; Bespr.: , JZ 1991, 470 ; BVerfGE 83, 130 ; DVBl 1991, 261 ; EuGRZ 1991, 33 ; JZ 1991, 465 ; ZUM 1991, 310</p><h3>Normen</h3><p>GG Art. GG Artikel 1 GG Artikel 1 Absatz I, GG Artikel 2 GG Artikel 2 Absatz I, GG Artikel 5 GG Artikel 5 Absatz III 1, GG Artikel 6 GG Artikel 6 Absatz II, GG Artikel 19 GG Artikel 19 Absatz I 2, GG Artikel 19 Absatz IV, GG Artikel 20 GG Artikel 20 Absatz III, GG Artikel 103 GG Artikel 103 Absatz I; GjS §§ 1, 6, 9 II</p><h3>Zeitschrift Titel</h3><p>Neue Juristische Wochenschrift</p>"
}
],
"seeAlso": []
@@ -1047,4 +1049,4 @@
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/

--
To view, visit https://gerrit.wikimedia.org/r/405702
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic2bc6e1facba2d5b88e4e749bf088f28a3b7ef0c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/zotero/translators
Gerrit-Branch: master
Gerrit-Owner: Mvolz <mvolz@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
[MediaWiki-commits] [Gerrit] mediawiki...translators[master]: Update to 528296d on github.com/zotero/translators [ In reply to ]
Mobrovac has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/405702 )

Change subject: Update to 528296d on github.com/zotero/translators
......................................................................


Update to 528296d on github.com/zotero/translators

Squashed commit of the following:

commit 528296d74cd2ce66641d5be581f9af178bf46d9e
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Sat Jan 20 18:01:06 2018 +0100

[ACM Digital Library]: Handle also classification pages (#1523)

Fix also abstract for multiples and some small cleaning thing.

commit ff6a38cf675cda1cce6afcb31240514f6226a5ba
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Sun Jan 14 17:07:21 2018 -0500

Fix Sage authors after they broke RIS (#1522)

commit c7111bae317a876ae3cf4b194c223b8d674e7e46
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Sun Jan 14 21:59:44 2018 +0100

[Le Monde] Add abonnes subdomain, fix section title (#1521)

This relates to #1520.

commit c7ce0da1a64686484466e910dd5f4f8b06cf3946
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Fri Jan 12 17:43:44 2018 +0100

Update beck-online.js (#1516)

They changed the HTML slightly, such that some elements (date, number)
were not anymore extracted. Moreover, some cases did not work anymore,
e.g. Leitsatzkartei. This commit should fix all of these.

commit 18f8d6a2f3d7727c2acfd42f021f0adbd2abd9df
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Sun Jan 7 17:25:43 2018 -0500

Fix multiples in ScienceDirect (#1513)

* Fix multiples in ScienceDirect for new format.
* Remove format "ArticleListURL" no longer used
* replace indexOf with includes

commit a6b2412c75d70698f98efb004cbde92fc4a00e02
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Sun Jan 7 13:29:59 2018 -0500

Add El Pais Translator (#1514)

* Add El Pais Translator
* Update following review
* Update tests after #1515

commit 7081d6b524772e408189266e83dd1ed069e99a6f
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Sun Jan 7 16:06:08 2018 +0100

[EM] Extend possibilities to extract the language (#1515)

commit f4a0d8e39d730bdb6f6fb757b9a171bd8eb44bcf
Author: yunusong <yunusong@yahoo.co.kr>
Date: Thu Jan 4 07:59:56 2018 -0500

Kstudy translator (#1308)

Using RIS data and author tweaks

commit 2e9eaba1ebe83b28a2368cfead4718b575331c07
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Thu Jan 4 04:00:20 2018 +0100

Denik CZ translator contd (#1508)

* Rewrite Denik CZ.js by using EM translator

commit 0fec46275fdb8256cc0ec471ddd6e8f84cb20ca1
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Wed Jan 3 04:42:21 2018 +0100

Add new translator Erudit.js (#1509)

Closes #981

commit 089a17832291cd61c367ccfe902f17ac0fdaabc9
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Mon Jan 1 23:35:02 2018 +0100

Citavi 5 XML: Distinguish between local paths and URLs (#1507)

The local files (e.g. PDFs) have to be moved manually to
the same folder beforehand.

commit f20c44dfedee6b0583f9e9eaf56850facb724a42
Author: Dan Michael O. Heggø <danmichaelo@gmail.com>
Date: Mon Jan 1 10:46:46 2018 +0100

Rewrite National Library of Norway for new site (#1486)

commit 71a55e808983d1f6007fbd550f032265c9423042
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Mon Jan 1 10:30:58 2018 +0100

Handle phdthesis and mastersthesis in BibTeX import/export (#1505)

* Discriminates phdthesis and mastersthesis BibTeX types.

See
https://forums.zotero.org/discussion/6276/support-for-masters-thesis-type-and-full-bibtex-format/
for a discussion of the pros and cons to this approach.

* If the BibTeX type carries all relevant information, then the Zotero
field "Type" is redundant and should be suppressed.

* Add new tests for theses

commit 4d76b89f152668ae93bfaecea3f2f81a86cb65a8
Author: Guy Aglionby <GuyAglionby@users.noreply.github.com>
Date: Wed Dec 27 17:30:03 2017 +0000

Add Semantic Scholar translator (#1497)

commit d1e0a252d779134cf603b55db5afa22b541b9a99
Author: Dan Michael O. Heggø <danmichaelo@gmail.com>
Date: Wed Dec 27 16:04:10 2017 +0100

MODS: Two changes (#1488)

* MODS: Change genre mapping

Change mapping for 'bibliography'.

* MODS: Include part number and title

Include part number and title in title.

commit 7cc5ecbf0da8301920ffd225a6f71572f62fcacf
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Wed Dec 27 15:59:27 2017 +0100

Import also BibLaTeX in BibTeX.js (#1504)

Closes #1400.

commit 3119643f1ded3705a2abb7307ec5ce42d914866d
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Wed Dec 27 15:54:20 2017 +0100

Add new translator for EUR-Lex (#1502)

Closes #1499.

commit 42b4f2320011c6d56b57a176ca9dede1e475e153
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Thu Dec 21 09:42:10 2017 -0500

[HAL] Fix saving from PDF view (#1501)

commit ce38a083bd6a8f6e5eef0a5c6a0394de5e79ee9f
Author: Chetan Kushwaha <chetankushwaha0@gmail.com>
Date: Sat Dec 16 02:13:34 2017 +0530

Fixed Bookmarks.js HTML character references in title. (#1496)

As discussed here: https://github.com/zotero/translators/issues/1485

commit 8c58a9e5fbffb503f18b2fb9e6f86b283e1b46a3
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Mon Dec 11 17:30:36 2017 -0500

Add Air University Journals (#1494)

* Add Air University

ASJP and SSQ -- lot's of scraping, and authors and abstract can be
inconsisten, but rest should be solid.

commit dfd53381ee4ed734657fc3b0074593e6fcfde915
Author: Philipp Zumstein <zuphilip@users.noreply.github.com>
Date: Sat Dec 9 17:04:09 2017 +0100

[Citavi 5 XML] Handle wrongly sorted collection relations (#1495)

This is a simple fix which solves the problem that the relactions
between categories are not always ordered correctly. More precisely
it will ignore the hierarchical number in these cases.

commit 021e9abf7afd613e41c1049e00d9f3937af57c4c
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Mon Dec 4 23:31:01 2017 -0500

Integrum (#1492)

No tests since this is all session IDs
Lot's of different formats & frames to handle

commit 1baa02669ee8b7f4969a95f02ae23d66b36c0c79
Author: Sebastian Karcher <karcher@u.northwestern.edu>
Date: Sat Dec 2 23:41:55 2017 -0500

Quick fix for Google Books Multiples (#1491)

This might be due for a re-write -- lots of legacy code here, but that
requires checking lots of cases as translator accommodates lots of
different views&errors

Change-Id: Ic2bc6e1facba2d5b88e4e749bf088f28a3b7ef0c
---
M ACM Digital Library.js
A Air University Journals.js
M BibTeX.js
M Bookmarks.js
M Citavi 5 XML.js
A Denik CZ.js
M DigiZeitschriften.js
A EUR-Lex.js
A El Pais.js
M Embedded Metadata.js
A Erudit.js
M Google Books.js
M HAL Archives Ouvertes.js
M HighBeam.js
A Integrum.js
A KStudy.js
M KitapYurdu.com.js
M Le Monde.js
M MODS.js
M National Library of Norway.js
M SAGE Journals.js
M ScienceDirect.js
A Semantic Scholar.js
M beck-online.js
24 files changed, 3,231 insertions(+), 198 deletions(-)

Approvals:
Mobrovac: Verified; Looks good to me, approved
Mine0901: Looks good to me, but someone else must approve



diff --git a/ACM Digital Library.js b/ACM Digital Library.js
index d310805..aa99878 100644
--- a/ACM Digital Library.js
+++ b/ACM Digital Library.js
@@ -2,14 +2,14 @@
"translatorID": "f3f092bf-ae09-4be6-8855-a22ddd817925",
"label": "ACM Digital Library",
"creator": "Simon Kornblith, Michael Berkowitz, John McCaffery, and Sebastian Karcher",
- "target": "^https?://([^/]+\\.)?dl\\.acm\\.org/(results|citation|author_page)\\.cfm",
+ "target": "^https?://([^/]+\\.)?dl\\.acm\\.org/(results|citation|author_page|ccs/ccs)\\.cfm",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-10-29 04:47:45"
+ "lastUpdated": "2018-01-16 21:49:57"
}

/*
@@ -29,10 +29,16 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
function detectWeb(doc, url) {
- if (url.indexOf("/results.cfm") != -1 || url.indexOf("/author_page.cfm") != -1) {
+ if (url.includes("/results.cfm") || url.includes("/author_page.cfm") || url.includes("/ccs/ccs.cfm")) {
return getSearchResults(doc, true) ? 'multiple' : false;
- } else if (url.indexOf("/citation.cfm") != -1) {
+ } else if (url.includes("/citation.cfm")) {
return getArticleType(doc);
}
}
@@ -55,10 +61,12 @@
}
}

+
function getSearchResults(doc, checkOnly) {
- var results = ZU.xpath(doc, '//div[@id="results"]//div[@class="title"]/a[@target="_self"]'),
- items = {},
- found = false;
+ var items = {};
+ var found = false;
+ var results = doc.querySelectorAll('div#results div.title>a[target="_self"], #toShowTop10 li>a');
+
for (var i=0; i<results.length; i++) {
var url = results[i].href;
var title = ZU.trimInternal(results[i].textContent);
@@ -76,8 +84,9 @@
return found ? items : false;
}

+
function scrape(doc) {
- var abs = ZU.xpath(doc, '//div/div[@style="display:inline"]')[0];
+ var abs = text(doc, '#abstract');

// Get genric URL, preferring the conference version.
var url = ZU.xpath(doc, '//meta[@name="citation_conference"]\
@@ -119,9 +128,6 @@
//fix DOIs if they're in URL form
if (item.DOI) item.DOI = item.DOI.replace(/^.*\/(10\.\d+\/)/, '$1');

- //The Abstract from above - may or may not work
- if (abs) item.abstractNote = abs.textContent;
-
//Conference Locations shouldn't go int Loc in Archive (nor should anything else)
delete item.archiveLocation;

@@ -131,7 +137,7 @@
}

//full issues of journals/magazines don't have a title
- if (!item.title && text.indexOf("issue_date")>-1) {
+ if (!item.title && text.includes("issue_date")) {
var m = text.match(/issue_date\s*=\s*{(.*)},?/);
item.itemType = "book";
item.title = item.publicationTitle;
@@ -140,7 +146,23 @@
}
}

- item.complete();
+ //The abstract from above or we try to make an individual request
+ //e.g. for multiples
+ if (!item.abstractNote) {
+ if (abs && abs.trim()) {
+ item.abstractNote = abs;
+ item.complete();
+ } else {
+ ZU.doGet("https://dl.acm.org/tab_abstract.cfm?id="+itemID, function(abstract) {
+ item.abstractNote = ZU.unescapeHTML(abstract);
+ if (item.abstractNote.trim() == "An abstract is not available.") delete item.abstractNote;
+ item.complete();
+ });
+ }
+ } else {
+ item.complete();
+ }
+
});
translator.translate();
});
@@ -243,7 +265,7 @@
},
{
"type": "web",
- "url": "http://dl.acm.org/citation.cfm?id=254650.257486&coll=DL&dl=GUIDE",
+ "url": "https://dl.acm.org/citation.cfm?id=254650.257486&coll=DL&dl=GUIDE",
"defer": true,
"items": [.
{
@@ -270,18 +292,34 @@
"libraryCatalog": "ACM Digital Library",
"pages": "137–149",
"publicationTitle": "J. Electron. Test.",
- "url": "http://dx.doi.org/10.1023/A:1008286901817",
+ "url": "https://doi.org/10.1023/A:1008286901817",
"volume": "10",
"attachments": [],
"tags": [.
- "DFM",
- "DFT",
- "MCM",
- "SMT",
- "board",
- "simulation",
- "test",
- "yield"
+ {
+ "tag": "DFM"
+ },
+ {
+ "tag": "DFT"
+ },
+ {
+ "tag": "MCM"
+ },
+ {
+ "tag": "SMT"
+ },
+ {
+ "tag": "board"
+ },
+ {
+ "tag": "simulation"
+ },
+ {
+ "tag": "test"
+ },
+ {
+ "tag": "yield"
+ }
],
"notes": [],
"seeAlso": []
@@ -422,6 +460,11 @@
"seeAlso": []
}
]
+ },
+ {
+ "type": "web",
+ "url": "https://dl.acm.org/ccs/ccs.cfm?id=10010343&lid=0.10010147.10010341.10010342.10010343",
+ "items": "multiple"
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/Air University Journals.js b/Air University Journals.js
new file mode 100644
index 0000000..a8eba0d
--- /dev/null
+++ b/Air University Journals.js
@@ -0,0 +1,172 @@
+{
+ "translatorID": "e317b4d4-03cf-4356-aa3c-defadc6fd10e",
+ "label": "Air University Journals",
+ "creator": "Sebastian Karcher",
+ "target": "https?://www\\.airuniversity\\.af\\.mil/(ASPJ|SSQ)",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-11 22:06:13"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 Sebastian Karcher
+
+ 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ if (text(doc, 'a[title="View Article"]', 1)) {
+ return "multiple";
+ }
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ var rows = ZU.xpath(doc, '//div[@class="da_black"]/table[tbody//a[@title="View Article"]]');
+ if (rows.length < 3) {
+ rows = ZU.xpath(doc, '//div[@class="da_black"]//p[span//a[@title="View Article"]]');
+ }
+ // Z.debug(rows.length);
+ var items = {};
+ if (url.includes("/ASPJ/")) {
+ var journal = "Air & Space Power Journal";
+ var abbr = "ASPJ";
+ var ISSN = "1554-2505";
+ }
+ else if (url.includes("/SSQ/")) {
+ var journal = "Strategic Studies Quarterly";
+ var abbr = "SSQ";
+ var ISSN = "1936-1815";
+ }
+ var voliss = text(doc, 'h1.title');
+ var date = text(doc, 'p.da_story_info');
+ for (let i = 0; i < rows.length; i++) {
+ var infoArray = [];
+
+ var title = text(rows[i], 'span > a[title="View Article"]');
+ var id = attr(rows[i], 'span > a[title="View Article"]', "id");
+ if (!title) {
+ title = text(rows[i], 'strong > a[title="View Article"]');
+ id = attr(rows[i], 'strong > a[title="View Article"]', "id");
+ }
+
+ if (title !== null) {
+ items[id] = title;
+ }
+ }
+
+ Zotero.selectItems(items, function(items) {
+ // Z.debug(items);
+ if (!items) {
+ return true;
+ }
+ for (let id in items) {
+ scrapeMultiples(doc, id, date, voliss, journal, abbr, ISSN);
+ }
+ });
+ }
+}
+
+
+function scrapeMultiples(doc, id, date, voliss, journal, abbr, ISSN) {
+ // Z.debug(id)
+ var item = new Z.Item('journalArticle');
+ var title = text(doc, 'span > a#' + id);
+ var link = attr(doc, 'span > a#' + id, "href");
+ if (!title) {
+ title = text(doc, 'strong > a#' + id);
+ link = attr(doc, 'strong > a#' + id, "href");
+ }
+ item.title = ZU.trimInternal(title.trim());
+ var section = ZU.xpath(doc, '//div[@class="da_black"]/table[tbody//a[@id="' + id + '"]]');
+ if (!section.length) {
+ section = ZU.xpath(doc, '//div[@class="da_black"]/p[span//a[@id="' + id + '"]]');
+ }
+ if (section.length) {
+ var authors = text(section[0], 'p>span>strong');
+ if (!authors) authors = text(section[0], 'p>strong>span');
+ if (authors) {
+ authors = ZU.trimInternal(authors.trim());
+ // delete name suffixes
+ authors = authors.replace(/, (USAF|USN|Retired|PE|LMFT)\b/g, "");
+ authorsList = authors.split(/\/|,?\sand\s|,\s/);
+ var rank = /^(By:|Adm|Rear Adm|Col|Lt Col|Brig Gen|Gen|Maj Gen \(sel\)|Maj|Capt|Maj Gen|2nd Lt|W(in)?g Cdr|Mr?s\.|Mr\.|Dr\.)\s/;
+
+ for (i = 0; i < authorsList.length; i++) {
+ // Z.debug(authorsList[i]);
+ var author = authorsList[i].trim().replace(rank, "");
+ item.creators.push(ZU.cleanAuthor(author, "author"));
+ }
+ }
+ var abstract = text(section[0], 'p > span', 2);
+ if (!abstract) abstract = text(section[0], 'p > span', 1);
+ if (abstract) {
+ item.abstractNote = ZU.trimInternal(abstract.trim());
+ }
+ }
+
+ if (date && date.includes("Published ")) {
+ item.date = date.match(/Published (.+)/)[1];
+ }
+
+
+ if (voliss && voliss.includes("Volume")) {
+ item.volume = voliss.match(/Volume (\d+)/)[1];
+ }
+ if (voliss && voliss.includes("Issue")) {
+ item.issue = voliss.match(/Issue (\d+)/)[1];
+ }
+
+ item.publicationTitle = journal;
+ item.journalAbbreviation = abbr;
+ item.ISSN = ISSN;
+
+ item.attachments.push({
+ url: link,
+ title: "Full Text PDF",
+ mimeType: "application/pdf"
+ });
+ item.complete();
+}
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "http://www.airuniversity.af.mil/SSQ/Display/Article/1261066/volume-11-issue-3-fall-2017/",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "http://www.airuniversity.af.mil/ASPJ/Display/Article/1151902/volume-30-issue-2-summer-2016/",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/BibTeX.js b/BibTeX.js
index 1143fa0..b19e623 100644
--- a/BibTeX.js
+++ b/BibTeX.js
@@ -19,7 +19,7 @@
"inRepository": true,
"translatorType": 3,
"browserSupport": "gcsv",
- "lastUpdated": "2017-07-05 19:32:38"
+ "lastUpdated": "2017-12-27 22:23:20"
}

function detectImport() {
@@ -170,7 +170,13 @@
institution:"publisher",
publisher:"publisher",
issue:"issue",
- location:"place"
+ location:"place",
+ // import also BibLaTeX fields:
+ journaltitle:"publicationTitle",
+ shortjournal:"journalAbbreviation",
+ eventtitle:"conferenceName",
+ pagetotal:"numPages",
+ version:"version"
};

var zotero2bibtexTypeMap = {
@@ -207,7 +213,21 @@
"mastersthesis":"thesis",
"misc":"book",
"proceedings":"book",
- "online":"webpage"
+ "online":"webpage",
+ // from BibLaTeX translator:
+ "thesis":"thesis",
+ "letter":"letter",
+ "movie":"film",
+ "artwork":"artwork",
+ "report":"report",
+ "legislation":"bill",
+ "jurisdiction":"case",
+ "audio":"audioRecording",
+ "video":"videoRecording",
+ "software":"computerProgram",
+ "inreference":"encyclopediaArticle",
+ "collection":"book",
+ "mvbook":"book"
};

/*
@@ -821,6 +841,10 @@
item._extraFields = [];
}

+ // For theses write the thesisType determined by the BibTeX type.
+ if (type == "mastersthesis" && item) item.type = "Master's Thesis";
+ if (type == "phdthesis" && item) item.type = "PhD Thesis";
+
var field = "";

// by setting dontRead to true, we can skip a read on the next iteration
@@ -1227,6 +1251,22 @@
// determine type
var type = zotero2bibtexTypeMap[item.itemType];
if (typeof(type) == "function") { type = type(item); }
+
+ // For theses BibTeX distinguish between @mastersthesis and @phdthesis
+ // and the default mapping will map all Zotero thesis items to a
+ // BibTeX phdthesis item. Here we try to fix this by examining the
+ // Zotero thesisType field.
+ if (type == "phdthesis") {
+ // In practice, we just want to separate out masters theses,
+ // and will assume everything else maps to @phdthesis. Better to
+ // err on the side of caution.
+ var thesisType = item.type && item.type.toLowerCase().replace(/[\s.]+|thesis|unpublished/g, '');
+ if (thesisType && (thesisType == 'master' || thesisType == 'masters' || thesisType == "master's" || thesisType == 'ms' || thesisType == 'msc' || thesisType == 'ma')) {
+ type = "mastersthesis";
+ item["type"] = "";
+ }
+ }
+
if(!type) type = "misc";

// create a unique citation key
@@ -3549,6 +3589,52 @@
"seeAlso": []
}
]
+ },
+ {
+ "type": "import",
+ "input": "@mastersthesis{DBLP:ms/Hoffmann2008,\n author = {Oliver Hoffmann},\n title = {Regelbasierte Extraktion und asymmetrische Fusion bibliographischer\n Informationen},\n school = {Diplomarbeit, Universit{\\\"{a}}t Trier, {FB} IV, {DBIS/DBLP}},\n year = {2009},\n url = {http://dblp.uni-trier.de/papers/DiplomarbeitOliverHoffmann.pdf},\n timestamp = {Wed, 03 Aug 2011 15:40:21 +0200},\n biburl = {http://dblp.org/rec/bib/ms/Hoffmann2008},\n bibsource = {dblp computer science bibliography, http://dblp.org}\n}\n\n@phdthesis{DBLP:phd/Ackermann2009,\n author = {Marcel R. Ackermann},\n title = {Algorithms for the Bregman k-Median problem},\n school = {University of Paderborn},\n year = {2009},\n url = {http://digital.ub.uni-paderborn.de/hs/content/titleinfo/1561},\n urn = {urn:nbn:de:hbz:466-20100407029},\n timestamp = {Thu, 01 Dec 2016 16:33:49 +0100},\n biburl = {http://dblp.org/rec/bib/phd/Ackermann2009},\n bibsource = {dblp computer science bibliography, http://dblp.org}\n}",
+ "items": [.
+ {
+ "itemType": "thesis",
+ "title": "Regelbasierte Extraktion und asymmetrische Fusion bibliographischer Informationen",
+ "creators": [.
+ {
+ "firstName": "Oliver",
+ "lastName": "Hoffmann",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2009",
+ "itemID": "DBLP:ms/Hoffmann2008",
+ "thesisType": "Master's Thesis",
+ "university": "Diplomarbeit, Universität Trier, FB IV, DBIS/DBLP",
+ "url": "http://dblp.uni-trier.de/papers/DiplomarbeitOliverHoffmann.pdf",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ },
+ {
+ "itemType": "thesis",
+ "title": "Algorithms for the Bregman k-Median problem",
+ "creators": [.
+ {
+ "firstName": "Marcel R.",
+ "lastName": "Ackermann",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2009",
+ "itemID": "DBLP:phd/Ackermann2009",
+ "thesisType": "PhD Thesis",
+ "university": "University of Paderborn",
+ "url": "http://digital.ub.uni-paderborn.de/hs/content/titleinfo/1561",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
}
]
/** END TEST CASES **/
diff --git a/Bookmarks.js b/Bookmarks.js
index 3a6dd84..1dec4d0 100644
--- a/Bookmarks.js
+++ b/Bookmarks.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 3,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-06-03 11:41:00"
+ "lastUpdated": "2017-12-17 17:43:00"
}

/*
@@ -126,7 +126,7 @@
}

openItem = new Zotero.Item("webpage");
- openItem.title = title;
+ openItem.title = ZU.unescapeHTML(title);
openItem.itemID = openItem.id = itemID++;
if(collection) collection.children.push(openItem);

diff --git a/Citavi 5 XML.js b/Citavi 5 XML.js
index c539e80..7239a47 100644
--- a/Citavi 5 XML.js
+++ b/Citavi 5 XML.js
@@ -12,7 +12,7 @@
"inRepository": true,
"translatorType": 1,
"browserSupport": "gcsi",
- "lastUpdated": "2016-12-29 13:57:06"
+ "lastUpdated": "2018-01-01 10:43:28"
}

/*
@@ -43,6 +43,7 @@
TEST DATA can be found here:
- Single reference (162 KB) text: https://gist.github.com/zuphilip/02d6478ace4636e4e090e348443c551e
- Larger project (1221 KB): https://gist.github.com/zuphilip/76ce89ebbdac0386507b36cff3fd499a
+ - Other project (1,11 MB): https://gist.github.com/anonymous/10fc363b6d79dae897e296a4327aa707
*/


@@ -246,10 +247,19 @@
} else if (addressType == "PubMedId" && item.extra.indexOf("PMID") == -1) {
addExtraLine(item, "PMID", address);
} else {
- item.attachments.push({
- url: address,
- title:"Location"
- });
+ // distinguish between local paths and internet addresses
+ // (maybe also encoded in AddressInfo subfield?)
+ if (address.indexOf('http://')==0 || address.indexOf('https://')==0) {
+ item.attachments.push({
+ url: address,
+ title: "Online"
+ });
+ } else {
+ item.attachments.push({
+ path: address,
+ title: "Full Text"
+ });
+ }
}
}
var callNumber = ZU.xpathText(locations[j], 'CallNumber');
@@ -336,6 +346,7 @@
var categoryLists = hierarchy[i].textContent.split(";");
var referencePoint = categoryLists[0];
if (!numbering[referencePoint]) {
+ //in some cases the ordering of these relations is different
Z.debug("Warning: Reference point for categorization hierarchy not yet found");
Z.debug(categoryLists);
continue;
@@ -348,7 +359,11 @@
for (var i=0, n=categories.length; i<n; i++) {
var collection = new Zotero.Collection();
collection.id = ZU.xpathText(categories[i], './@id');
- collection.name = numbering[collection.id].substr(2) + ' ' + ZU.xpathText(categories[i], './Name');
+ collection.name = ZU.xpathText(categories[i], './Name');
+ if (numbering[collection.id]) {
+ //add the hierarchy number whenever possible
+ collection.name = numbering[collection.id].substr(2) + ' ' + collection.name;
+ }
collection.type = 'collection';
collection.children = [];
var referenceCategories = ZU.xpath(doc, '//ReferenceCategories/OnetoN[contains(text(), "'+collection.id+'")]');
@@ -443,4 +458,4 @@
}
}/** BEGIN TEST CASES **/
var testCases = []
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/Denik CZ.js b/Denik CZ.js
new file mode 100644
index 0000000..5283548
--- /dev/null
+++ b/Denik CZ.js
@@ -0,0 +1,273 @@
+{
+ "translatorID": "4ed446ca-b480-43ee-a8fb-5f9730915edc",
+ "label": "Denik CZ",
+ "creator": "Ji?í Sedlá?ek, Philipp Zumstein",
+ "target": "^https?://[^/]*denik\\.cz",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2018-01-07 09:27:42"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 Ji?í Sedlá?ek, 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ var type = ZU.xpathText(doc, '//meta[@property="og:type"]/@content');
+ if (type == "article") {
+ return "newspaperArticle";
+ } else if (getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = doc.querySelectorAll('.right h2 a');
+ for (let i=0; i<rows.length; i++) {
+ let href = rows[i].href;
+ let title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+
+function scrape(doc, url) {
+ var authorsMeta = ZU.xpathText(doc, '//meta[@property="author"]/@content');
+
+ var translator = Zotero.loadTranslator('web');
+ // Embedded Metadata
+ translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48');
+ // translator.setDocument(doc);
+
+ translator.setHandler('itemDone', function (obj, item) {
+ if (authorsMeta) {
+ // multiple authors are not handled correctly by EM and
+ // we want to exclude generic names like "Redakce"
+ item.creators = [];
+ let authorsList = authorsMeta.split(/\s*,\s*/);
+ for (let i=0; i<authorsList.length; i++) {
+ let author = authorsList[i];
+ if (author!= "Redakce") {
+ item.creators.push(ZU.cleanAuthor(authorsList[i], "author"));
+ }
+ }
+ }
+
+ item.complete();
+ });
+
+ translator.getTranslatorObject(function(trans) {
+ trans.itemType = "newspaperArticle";
+ trans.doWeb(doc, url);
+ });
+}
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "https://trebicsky.denik.cz/zpravy_region/podivejte-se-dalsi-na-miminka-narozena-na-trebicsku-20170123.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Podívejte se další na miminka narozená na T?ebí?sku",
+ "creators": [],
+ "date": "2017-01-23T08:20:00+01:00",
+ "abstractNote": "T?ebí?sko - Díky vst?ícnosti t?ebí?ské porodnice Vám p?inášíme fotografie nejmladších obyvatel. Každý týden naši spolupracovníci objíždí porodnice a fotí nov? narozená miminka.",
+ "language": "cs",
+ "libraryCatalog": "trebicsky.denik.cz",
+ "publicationTitle": "T?ebí?ský deník",
+ "url": "https://trebicsky.denik.cz/zpravy_region/podivejte-se-dalsi-na-miminka-narozena-na-trebicsku-20170123.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://trebicsky.denik.cz/zpravy_region/pyrotechniku-pouzivejte-ohleduplne-a-bezpecne-doporucuji-hasici-20171231.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Pyrotechniku používejte ohledupln? a bezpe?n?, doporu?ují hasi?i",
+ "creators": [.
+ {
+ "firstName": "Lud?k",
+ "lastName": "Mahel",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2017-12-31T10:08:00+01:00",
+ "abstractNote": "T?ebí?sko - P?ivítání nového roku se neobejde bez petard a rachejtlí. Jak pyrotechniku správn? používat? Zde jsou n?která doporu?ení.",
+ "language": "cs",
+ "libraryCatalog": "trebicsky.denik.cz",
+ "publicationTitle": "T?ebí?ský deník",
+ "url": "https://trebicsky.denik.cz/zpravy_region/pyrotechniku-pouzivejte-ohleduplne-a-bezpecne-doporucuji-hasici-20171231.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.denik.cz/z_domova/silvestr-se-zachrankou-ustrelena-ruka-agrese-i-slzy-zoufalstvi-20180101.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Silvestr se záchrankou: Ust?elená ruka, agrese i slzy zoufalství",
+ "creators": [.
+ {
+ "firstName": "Ji?í",
+ "lastName": "Sejkora",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2018-01-01T14:22:00+01:00",
+ "abstractNote": "/FOTOGALERIE, VIDEO/ Silvestrovská no?ní služba se záchraná?i v Pardubicích o?ima redaktora Deníku. Podívejte se, ?ím vším si musí projít první den nového roku.",
+ "language": "cs",
+ "libraryCatalog": "www.denik.cz",
+ "publicationTitle": "Deník.cz",
+ "shortTitle": "Silvestr se záchrankou",
+ "url": "https://www.denik.cz/z_domova/silvestr-se-zachrankou-ustrelena-ruka-agrese-i-slzy-zoufalstvi-20180101.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Pardubice"
+ },
+ {
+ "tag": "silvestr"
+ },
+ {
+ "tag": "záchranná služba"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.denik.cz/ze_sveta/co-nas-ceka-v-breznu-prezidentske-volby-v-rusku-sanci-uspet-ma-jen-putin-20180101.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Co nás ?eká v b?eznu? Prezidentské volby v Rusku. Šanci usp?t má jen Putin",
+ "creators": [.
+ {
+ "firstName": "Michal",
+ "lastName": "Bystrov",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Vojt?ch",
+ "lastName": "Žižka",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2018-01-02T00:30:00+01:00",
+ "abstractNote": "Na nedávné bilan?ní konferenci v Moskv? potvrdil v?dce Ruské federace Vladimir Putin, že v b?eznu 2018 hodlá znovu kandidovat na prezidenta. Poprvé tuto informaci sd?lil ve?ejnosti v první polovin? prosince p?i setkání s pracovníky automobilky GAZ v Nižním Novgorodu.",
+ "language": "cs",
+ "libraryCatalog": "www.denik.cz",
+ "publicationTitle": "Deník.cz",
+ "shortTitle": "Co nás ?eká v b?eznu?",
+ "url": "https://www.denik.cz/ze_sveta/co-nas-ceka-v-breznu-prezidentske-volby-v-rusku-sanci-uspet-ma-jen-putin-20180101.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Putin"
+ },
+ {
+ "tag": "Rusko"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.denik.cz/hledani/?q=praha&s=all",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "https://www.denik.cz/ze_sveta/",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/DigiZeitschriften.js b/DigiZeitschriften.js
index c42883e..4e80c94 100644
--- a/DigiZeitschriften.js
+++ b/DigiZeitschriften.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsv",
- "lastUpdated": "2016-09-12 20:57:07"
+ "lastUpdated": "2018-01-07 09:28:38"
}

/*
@@ -139,9 +139,10 @@
}
],
"date": "1997",
+ "ISSN": "0001-9054",
+ "language": "de",
"libraryCatalog": "DigiZeitschriften",
"pages": "117-143",
- "ISSN": "0001-9054",
"publicationTitle": "Aequationes Mathematicae",
"url": "http://www.digizeitschriften.de/dms/img/?PPN=PPN356261603_0054&DMDID=dmdlog15",
"volume": "54",
@@ -171,9 +172,10 @@
}
],
"date": "1997",
+ "ISSN": "0001-9054",
+ "language": "de",
"libraryCatalog": "DigiZeitschriften",
"pages": "117-143",
- "ISSN": "0001-9054",
"publicationTitle": "Aequationes Mathematicae",
"url": "http://www.digizeitschriften.de/en/dms/img/?PPN=GDZPPN002612097",
"volume": "54",
@@ -207,9 +209,10 @@
"creatorType": "author"
}
],
+ "ISSN": "0003-9268",
+ "language": "de",
"libraryCatalog": "DigiZeitschriften",
"pages": "68-77",
- "ISSN": "0003-9268",
"publicationTitle": "Archiv für mathematische Logik und Grundlagenforschung",
"url": "http://www.digizeitschriften.de/dms/img/?PPN=PPN379931524_0002&DMDID=dmdlog10",
"volume": "2",
@@ -239,9 +242,10 @@
}
],
"date": "1997",
+ "ISSN": "0001-9054",
+ "language": "de",
"libraryCatalog": "DigiZeitschriften",
"pages": "117-143",
- "ISSN": "0001-9054",
"publicationTitle": "Aequationes Mathematicae",
"url": "http://www.digizeitschriften.de/dms/img/?PPN=GDZPPN002612097",
"volume": "54",
diff --git a/EUR-Lex.js b/EUR-Lex.js
new file mode 100644
index 0000000..44b3c0b
--- /dev/null
+++ b/EUR-Lex.js
@@ -0,0 +1,291 @@
+{
+ "translatorID": "bf053edc-a8c3-458c-93db-6d04ead2e636",
+ "label": "EUR-Lex",
+ "creator": "Philipp Zumstein",
+ "target": "^https?://(www\\.)?eur-lex\\.europa\\.eu/(legal-content/[A-Z][A-Z]/TXT/|search.html\\?)",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-21 20:27:07"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+// the eli resource types are described at:
+// http://publications.europa.eu/mdr/resource/authority/resource-type/html/resourcetypes-eng.html
+var typeMapping = {
+ 'DIR': 'bill', // directive
+ 'REG': 'statute', // regulation
+ 'DEC': 'statute', // decision
+ 'RECO': 'report', // recommodation
+ 'OPI': 'report' // opinion
+};
+
+
+function detectWeb(doc, url) {
+ var eliTypeURI = attr(doc, 'meta[property="eli:type_document"]', 'resource');
+ if (eliTypeURI) {
+ var eliType = eliTypeURI.split('/').pop();
+ var eliCategory = eliType.split('_')[0];
+ var type = typeMapping[eliCategory];
+ if (type) {
+ return type;
+ } else {
+ Z.debug("Unknown eliType: " + eliType);
+ }
+ } else if (getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = doc.querySelectorAll('a.title');
+ for (let i=0; i<rows.length; i++) {
+ let href = rows[i].href;
+ let title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+// we need to remember the language in search page to use the same for
+// individual entry page
+var autoLanguage;
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ var m = url.match(/\blocale=([a-z][a-z])/);
+ if (m) {
+ autoLanguage = m[1];
+ }
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+
+// this maps language codes from ISO 639-1 to 639-3
+var languageMapping = {
+ 'BG': 'bul',
+ 'CS': 'ces',
+ 'DA': 'dan',
+ 'DE': 'deu',
+ 'EL': 'ell',
+ 'EN': 'eng',
+ 'ES': 'spa',
+ 'ET': 'est',
+ 'FI': 'fin',
+ 'FR': 'fra',
+ 'GA': 'gle',
+ 'HR': 'hrv',
+ 'HU': 'hun',
+ 'IT': 'ita',
+ 'LV': 'lav',
+ 'LT': 'lit',
+ 'MT': 'mlt',
+ 'NL': 'nld',
+ 'PL': 'pol',
+ 'PT': 'por',
+ 'RO': 'ron',
+ 'SK': 'slk',
+ 'SL': 'slv',
+ 'SV': 'swe'
+};
+
+
+function scrape(doc, url) {
+ var type = detectWeb(doc, url);
+ var item = new Zotero.Item(type);
+
+ // determine the language we are currently looking the document at
+ var languageUrl = url.split('/')[4];
+ if (languageUrl=="AUTO") {
+ languageUrl = autoLanguage || "EN";
+ }
+ var language = languageMapping[languageUrl] || "eng";
+
+ item.title = attr(doc, 'meta[property="eli:title"][lang=' + languageUrl.toLowerCase() + ']', 'content');
+ item.language = languageUrl.toLowerCase();
+
+ var uri = attr(doc, '#format_language_table_digital_sign_act_' + languageUrl.toUpperCase(), 'href');
+ if (uri) {
+ var uriParts = uri.split('/').pop().replace('?uri=', '').split(':');
+ // e.g. uriParts = ["OJ", "L", "1995", "281", "TOC"]
+ // e.g. uriParts = ["DD", "03", "061", "TOC", "FI"]
+ if (uriParts.length>=4) {
+ if (/\d+/.test(uriParts[1])) {
+ item.code = uriParts[0];
+ item.codeNumber = uriParts[1] + ', ' + uriParts[2];
+ } else {
+ item.code = uriParts[0] + ' ' + uriParts[1];
+ item.codeNumber = uriParts[3];
+ }
+ if (type=="bill") {
+ item.codeVolume = item.code;
+ item.code = item.codeNumber;
+ }
+ }
+ }
+
+ item.number = attr(doc, 'meta[property="eli:id_local"]', 'content');
+
+ item.date = attr(doc, 'meta[property="eli:date_publication"]', 'content');
+ // attr(doc, 'meta[property="eli:date_document"]', 'content');
+
+ var passedBy = doc.querySelectorAll('meta[property="eli:passed_by"]');
+ var passedByArray = [];
+ for (let i=0; i<passedBy.length; i++) {
+ passedByArray.push(passedBy[i].getAttribute('resource').split('/').pop());
+ }
+ item.legislativeBody = passedByArray.join(', ');
+
+ item.url = attr(doc, 'meta[typeOf="eli:LegalResource"]', 'about') + '/' + language;
+
+ // eli:is_about -> eurovoc -> tags
+
+ item.complete();
+}
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:31995L0046",
+ "items": [.
+ {
+ "itemType": "bill",
+ "title": "Directive 95/46/EC of the European Parliament and of the Council of 24 October 1995 on the protection of individuals with regard to the processing of personal data and on the free movement of such data",
+ "creators": [],
+ "date": "1995-11-23",
+ "billNumber": "31995L0046",
+ "code": "281",
+ "codeVolume": "OJ L",
+ "language": "en",
+ "legislativeBody": "EP, CONSIL",
+ "url": "http://data.europa.eu/eli/dir/1995/46/oj/eng",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/legal-content/CS/TXT/?uri=CELEX:31995L0046&from=DE",
+ "items": [.
+ {
+ "itemType": "bill",
+ "title": "Sm?rnice Evropského parlamentu a Rady 95/46/ES ze dne 24. ?íjna 1995 o ochran? fyzických osob v souvislosti se zpracováním osobních údaj? a o volném pohybu t?chto údaj?",
+ "creators": [],
+ "date": "1995-11-23",
+ "billNumber": "31995L0046",
+ "code": "13, 015",
+ "codeVolume": "DD",
+ "language": "cs",
+ "legislativeBody": "EP, CONSIL",
+ "url": "http://data.europa.eu/eli/dir/1995/46/oj/ces",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:31995L0046",
+ "items": [.
+ {
+ "itemType": "bill",
+ "title": "Richtlinie 95/46/EG des Europäischen Parlaments und des Rates vom 24. Oktober 1995 zum Schutz natürlicher Personen bei der Verarbeitung personenbezogener Daten und zum freien Datenverkehr",
+ "creators": [],
+ "date": "1995-11-23",
+ "billNumber": "31995L0046",
+ "code": "281",
+ "codeVolume": "OJ L",
+ "language": "de",
+ "legislativeBody": "EP, CONSIL",
+ "url": "http://data.europa.eu/eli/dir/1995/46/oj/deu",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/legal-content/FR/TXT/?uri=CELEX:31994R2257",
+ "items": [.
+ {
+ "itemType": "statute",
+ "nameOfAct": "Règlement (CE) n° 2257/94 de la Commission, du 16 septembre 1994, fixant des normes de qualité pour les bananes (Texte présentant de l'intérêt pour l'EEE)",
+ "creators": [],
+ "dateEnacted": "1994-09-20",
+ "code": "OJ L",
+ "codeNumber": "245",
+ "language": "fr",
+ "publicLawNumber": "31994R2257",
+ "url": "http://data.europa.eu/eli/reg/1994/2257/oj/fra",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://eur-lex.europa.eu/search.html?lang=en&text=%22open+access%22&qid=1513887127793&type=quick&scope=EURLEX&locale=nl",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/El Pais.js b/El Pais.js
new file mode 100644
index 0000000..ac5c208
--- /dev/null
+++ b/El Pais.js
@@ -0,0 +1,262 @@
+{
+ "translatorID": "c3b97a6e-4879-4f77-9dbb-18a3fa2b2b81",
+ "label": "El Pais",
+ "creator": "Sebastian Karcher",
+ "target": "^https?://([^.]\\.)?elpais\\.com/",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2018-01-07 16:59:34"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2018 Sebastian Karchger
+
+ 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ if (url.search(/\d+_\d+\.html/) !== -1) {
+ return "newspaperArticle";
+ } else if ((url.includes("/buscador") || url.includes("/tag/")) && getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = doc.querySelectorAll('h2>a[href*=".html"]');
+ for (let i=0; i<rows.length; i++) {
+ let href = rows[i].href;
+ let title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+function scrape(doc, url) {
+ var translator = Zotero.loadTranslator('web');
+ // Embedded Metadata
+ translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48');
+ // translator.setDocument(doc);
+
+ translator.setHandler('itemDone', function (obj, item) {
+ //improve author parsing
+ item.creators = [];
+ var authors = attr(doc, 'meta[name=author]', 'content');
+ authors = authors.split(/\s*,\s/);
+ //Z.debug(authors)
+ for (let author of authors) {
+ if (author !== "Agencias") {
+ item.creators.push(ZU.cleanAuthor(author, "author"));
+ }
+ }
+ item.publicationTitle = "El País";
+ item.ISSN = "1134-6582";
+ item.place = "Madrid";
+ if (item.section) {
+ item.section = ZU.capitalizeTitle(item.section.replace(/_/, " "), true);
+ }
+ item.complete();
+ });
+
+ translator.getTranslatorObject(function(trans) {
+ trans.itemType = "newspaperArticle";
+ trans.addCustomFields({
+ "article:section" : "section"
+ });
+ trans.doWeb(doc, url);
+ });
+}
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "https://elpais.com/tag/estados_unidos/a/",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "https://politica.elpais.com/politica/2018/01/05/actualidad/1515170264_027943.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Juan Carlos I celebra su 80º cumpleaños en La Zarzuela junto a 70 invitados",
+ "creators": [.
+ {
+ "firstName": "Francesco",
+ "lastName": "Rodella",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Alejandro",
+ "lastName": "Romero",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2018-01-05",
+ "ISSN": "1134-6582",
+ "abstractNote": "El rey emérito acudirá este sábado con Felipe VI a la conmemoración de la Pascua militar en el Palacio Real",
+ "language": "es",
+ "libraryCatalog": "politica.elpais.com",
+ "place": "Madrid",
+ "publicationTitle": "El País",
+ "section": "Politica",
+ "url": "https://politica.elpais.com/politica/2018/01/05/actualidad/1515170264_027943.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Aniversarios"
+ },
+ {
+ "tag": "Casa Real"
+ },
+ {
+ "tag": "Celebraciones"
+ },
+ {
+ "tag": "Cumpleaños"
+ },
+ {
+ "tag": "Eventos"
+ },
+ {
+ "tag": "Familia Real"
+ },
+ {
+ "tag": "Felipe VI"
+ },
+ {
+ "tag": "Jefe de Estado"
+ },
+ {
+ "tag": "Juan Carlos I"
+ },
+ {
+ "tag": "Política"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://elpais.com/internacional/2018/01/06/mundo_global/1515256305_575545.html",
+ "items": [.
+ {
+ "itemType": "newspaperArticle",
+ "title": "Hallada vacía la botella de vodka valorada en 1,1 millones de euros robada en Copenhague",
+ "creators": [],
+ "date": "2018-01-06",
+ "ISSN": "1134-6582",
+ "abstractNote": "Un obrero encontró el recipiente, hecho de oro y plata, y está aparentemente intacto y en poder de la policía",
+ "language": "es",
+ "libraryCatalog": "elpais.com",
+ "place": "Madrid",
+ "publicationTitle": "El País",
+ "section": "Mundo Global",
+ "url": "https://elpais.com/internacional/2018/01/06/mundo_global/1515256305_575545.html",
+ "attachments": [
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Aguardiente"
+ },
+ {
+ "tag": "Bebidas"
+ },
+ {
+ "tag": "Bebidas alcohólicas"
+ },
+ {
+ "tag": "Copenhague"
+ },
+ {
+ "tag": "Dinamarca"
+ },
+ {
+ "tag": "Escandinavia"
+ },
+ {
+ "tag": "Fuerzas seguridad"
+ },
+ {
+ "tag": "Policía"
+ },
+ {
+ "tag": "Robos"
+ },
+ {
+ "tag": "Vodka"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://elpais.com/buscador/?qt=carlos",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/Embedded Metadata.js b/Embedded Metadata.js
index fd9981b..e6e64f1 100644
--- a/Embedded Metadata.js
+++ b/Embedded Metadata.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-11-25 17:49:05"
+ "lastUpdated": "2018-01-07 09:42:13"
}

/*
@@ -616,10 +616,15 @@
}

if(!newItem.url) {
- newItem.url = ZU.xpathText(doc, '//head/link[@rel="canonical"]/@href');
+ newItem.url = ZU.xpathText(doc, '//head/link[@rel="canonical"]/@href') || doc.location.href;
}
- if(!newItem.url) {
- newItem.url = doc.location.href;
+
+ if (!newItem.language) {
+ newItem.language = ZU.xpathText(doc, '//x:meta[@name="language"]/@content', namespaces) ||
+ ZU.xpathText(doc, '//x:meta[@name="lang"]/@content', namespaces) ||
+ ZU.xpathText(doc, '//x:meta[@http-equiv="content-language"]/@content', namespaces) ||
+ ZU.xpathText(doc, '//html/@lang') ||
+ doc.documentElement.getAttribute('xml:lang');
}


@@ -932,6 +937,7 @@
"date": "2011",
"abstractNote": "Why wait for federal action on incentives to reduce energy use and address Greenhouse Gas (GHG) reductions (e.g. CO2), when we can take personal actions right now in our private lives and in our communities? One such initiative by private citizens working with Portsmouth NH officials resulted in the installation of energy reducing lighting products on Court St. and the benefits to taxpayers are still coming after over 4 years of operation. This citizen initiative to save money and reduce CO2 emissions, while only one small effort, could easily be duplicated in many towns and cities. Replacing old lamps in just one street fixture with a more energy efficient (Non-LED) lamp has resulted after 4 years of operation ($\\sim $15,000 hr. life of product) in real electrical energy savings of $>$ {\\$}43. and CO2 emission reduction of $>$ 465 lbs. The return on investment (ROI) was less than 2 years. This is much better than any financial investment available today and far safer. Our street only had 30 such lamps installed; however, the rest of Portsmouth (population 22,000) has at least another 150 street lamp fixtures that are candidates for such an upgrade. The talk will also address other energy reduction measures that green the planet and also put more green in the pockets of citizens and municipalities.",
"conferenceName": "Climate Change and the Future of Nuclear Power",
+ "language": "en",
"libraryCatalog": "scholarworks.umass.edu",
"shortTitle": "Session F",
"url": "http://scholarworks.umass.edu/climate_nuclearpower/2011/nov19/34",
@@ -970,6 +976,7 @@
"ISSN": "1947-508X",
"abstractNote": "The purpose of this paper is to examine the contemporary role of an eighteenth century bounty proclamation issued on the Penobscot Indians of Maine. We focus specifically on how the changing cultural context of the 1755 Spencer Phips Bounty Proclamation has transformed the document from serving as a tool for sanctioned violence to a tool of decolonization for the Indigenous peoples of Maine. We explore examples of the ways indigenous and non-indigenous people use the Phips Proclamation to illustrate past violence directed against Indigenous peoples. This exploration is enhanced with an analysis of the re-introduction of the Phips Proclamation using concepts of decolonization theory.",
"issue": "1",
+ "language": "en",
"libraryCatalog": "scholarworks.umass.edu",
"pages": "2",
"publicationTitle": "Landscapes of Violence",
@@ -1007,6 +1014,7 @@
],
"date": "2012",
"abstractNote": "This thesis examines decentralized meta-reasoning. For a single agent or multiple agents, it may not be enough for agents to compute correct decisions if they do not do so in a timely or resource efficient fashion. The utility of agent decisions typically increases with decision quality, but decreases with computation time. The reasoning about one's computation process is referred to as meta-reasoning. Aspects of meta-reasoning considered in this thesis include the reasoning about how to allocate computational resources, including when to stop one type of computation and begin another, and when to stop all computation and report an answer. Given a computational model, this translates into computing how to schedule the basic computations that solve a problem. This thesis constructs meta-reasoning strategies for the purposes of monitoring and control in multi-agent settings, specifically settings that can be modeled by the Decentralized Partially Observable Markov Decision Process (Dec-POMDP). It uses decision theory to optimize computation for efficiency in time and space in communicative and non-communicative decentralized settings. Whereas base-level reasoning describes the optimization of actual agent behaviors, the meta-reasoning strategies produced by this thesis dynamically optimize the computational resources which lead to the selection of base-level behaviors.",
+ "language": "en",
"libraryCatalog": "scholarworks.umass.edu",
"university": "University of Massachusetts Amherst",
"url": "http://scholarworks.umass.edu/open_access_dissertations/508",
@@ -1135,9 +1143,16 @@
{
"itemType": "webpage",
"title": "Junot Díaz: My stories come from trauma",
- "creators": [],
+ "creators": [.
+ {
+ "firstName": "Gregg",
+ "lastName": "Barrios",
+ "creatorType": "author"
+ }
+ ],
"date": "2012-10-10 15:36:00",
"abstractNote": "The effervescent author of \"This is How You Lose Her\" explains the darkness coursing through his fiction",
+ "language": "en",
"shortTitle": "Junot Díaz",
"url": "https://www.salon.com/2012/10/10/junot_diaz_my_stories_come_from_trauma/",
"websiteTitle": "Salon",
@@ -1169,6 +1184,7 @@
"date": "2013-12-22T11:58:34+00:00",
"abstractNote": "Northwestern University recently condemned the American Studies Association boycott of Israel. Unlike some other schools that quit their institutional membership in the ASA over the boycott, Northwestern has not. Many of my Northwestern colleagues were about to start urging a similar withdrawal.\nThen we learned from our administration that despite being listed as in institutional member by the ASA, the university has, after checking, concluded it has no such membership, does not plan to get one, and is unclear why the ASA would list us as institutional member.\nApparently, at least several other schools listed by the ASA as institutional members say they have no such relationship.\nThe ASA has been spending a great deal of energy on political activism far from its mission, but apparently cannot keep its books in order. The association has yet to explain how it has come to list as institutional members so many schools that know nothing about such a membership. The ASA’s membership rolls may get much shorter in the coming weeks even without any quitting.\nHow this confusion came to arise is unclear. ASA membership, like that of many academic organizations, comes with a subscription to their journal. Some have suggested that perhaps the ASA also counts as members any institution whose library happened to subscribe to the journal, ie tacking on membership to a subscription, rather than vice versa. This would not be fair on their part. A library may subscribe to all sorts of journals for academic research purposes (ie Pravda), without endorsing the organization that publishes it. That is the difference between subscription and membership.\nI eagerly await the ASA’s explanation of the situation. [...]",
"blogTitle": "The Volokh Conspiracy",
+ "language": "en-US",
"url": "http://volokh.com/2013/12/22/northwestern-cant-quit-asa-boycott-member/",
"attachments": [.
{
@@ -1480,6 +1496,7 @@
"DOI": "10.1353/kri.2008.0061",
"ISSN": "1538-5000",
"issue": "4",
+ "language": "en",
"libraryCatalog": "muse.jhu.edu",
"pages": "627-656",
"publicationTitle": "Kritika: Explorations in Russian and Eurasian History",
diff --git a/Erudit.js b/Erudit.js
new file mode 100644
index 0000000..ebeb9c7
--- /dev/null
+++ b/Erudit.js
@@ -0,0 +1,272 @@
+{
+ "translatorID": "daad5868-6e6a-414e-b2da-14fa013879fc",
+ "label": "Erudit",
+ "creator": "Philipp Zumstein",
+ "target": "^https?://(www\\.)?erudit\\.org/",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2018-01-02 22:48:58"
+}
+
+/*
+ ***** 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ var type = attr(doc, 'meta[property="og:type"]', 'content');
+ if ((url.includes('/revues/') || url.includes('/journals/')) && type == "article") {
+ return "journalArticle";
+ } else if (getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = doc.querySelectorAll('.result h3 a, .article-item h6 a');
+ for (let i=0; i<rows.length; i++) {
+ let href = rows[i].href;
+ let title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+
+function scrape(doc, url) {
+ var abstractFR = text(doc, '#resume-fr>p');
+ var abstractEN = text(doc, '#resume-en>p');
+ var abstract;
+ if (url.includes('/en/')) {
+ abstract = abstractEN || abstractFR;
+ } else {
+ abstract = abstractFR || abstractEN;
+ }
+ var translator = Zotero.loadTranslator('web');
+ // Embedded Metadata
+ translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48');
+ translator.setDocument(doc);
+
+ translator.setHandler('itemDone', function (obj, item) {
+ if (abstract) {
+ item.abstractNote = abstract.replace(/^\s*/mg, '').replace(/\n/g, ' ');
+ }
+ if (item.publicationTitle) {
+ item.publicationTitle = ZU.unescapeHTML(item.publicationTitle);
+ }
+ item.complete();
+ });
+
+ translator.translate();
+}
+
+
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/fr/revues/ri/1989-v44-n2-ri1155/050499ar/",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Employee Performance as a Function of Job Orientation and Job Design",
+ "creators": [.
+ {
+ "firstName": "Carol",
+ "lastName": "Sales",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Eliahu",
+ "lastName": "Levanoni",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Robert",
+ "lastName": "Knoop",
+ "creatorType": "author"
+ }
+ ],
+ "date": "1989",
+ "DOI": "10.7202/050499ar",
+ "ISSN": "0034-379X, 1703-8138",
+ "abstractNote": "Les approches contemporaines à l'étude de la structuration des tâches ont démontré la nécessité d'un ajustement approprié entre l'individu et le poste qu'il occupe. À l'occasion d'un examen récent de la complexité des tâches, un auteur concluait qu'il fallait considérer à la fois les caractéristiques de la tâche et celles de la personne pour apprécier le rendement au travail.De nombreux auteurs ont exprimé des doutes à propos de la justesse de la méthodologie utilisée pour mesurer simultanément les différences individuelles et les caractéristiques d'un poste. Essentiellement, la méthodologie recourt à des moyens qui se fondent sur l'appréciation propre du salarié pour déterminer les caractéristiques d'une tâche. Un auteur distingue entre la complexité objective d'une tâche et la complexité subjective que le titulaire en perçoit. En conséquence, des employés différents définissent d'une façon différente les caractéristiques d'un même poste. Quelques recherchistes estiment que les individus ont tendance à s'accorder dans leurs appréciations en général. Selon ce point de vue, si les travailleurs affirment que leur poste comporte les caractéristiques cotées, il est fort probable qu'ils décriront leurs attitudes touchant celui-ci d'une manière positive. De plus, certains chercheurs soutiennent que les corrélations substantielles souvent notées dans les études en matière de conception des tâches ne peuvent pas indiquer les rapports réels, mais être plutôt le produit de l'ordre des échelles utilisées dans une étude particulière. De façon à surmonter ces déficiences, les caractéristiques des tâches ont été évaluées dans la présente étude par les supérieurs immédiats des employés.On a beaucoup appuyé sur le rôle des différences entre les individus dans les recherches en matière de structuration des tâches. La force du désir de progrès (FDP), notion abstraite traduisant l'aspiration innée de l'individu de se réaliser et de se développer, est l'une des variables relatives aux différences individuelles qui est la plus fréquemment vérifiée. Cependant, l'utilité de cette formule comme variable régulatrice dans la recherche sur la structuration des tâches a été mise en doute dans des travaux récents. La présente étude examine l'orientation des tâches en tant que substitut à la FDP comme modérateur entre les exigences de l'emploi, le rendement, la satisfaction au travail et le degré de motivation de l'employé. L'adaptation au poste d'orientation des tâches est une tendance individuelle, un attribut relativement stable fondé sur le système des valeurs d'un individu. On peut identifier deux catégories principales d'orientation : l'une intrinsèque, où l'employé recherche les responsabilités, le défi, le progrès; l'autre, extrinsèque, lui fait préférer les bonnes conditions de travail, un salaire équitable et des relations amicales avec les contremaîtres.L'échantillonnage de cette enquête comprenait 333 salariés appartenant à 47 groupes de travail différents et leurs contremaîtres dans 18 organisations diversifiées. Pour chaque employé, les contremaîtres ont rempli les formulaires suivants : le formulaire de notation des emplois (lesquels évaluaient cinq caractéristiques du poste) et les neuf points de l'échelle de rendement. Pour leur part, les employés ont rempli l'échelle des comportements au travail (mesure de l'orientation des tâches), l'échelle de satisfaction au travail de l'index descriptif du poste et un court formulaire portant sur la motivation au travail.Le processus statistique principal comprenait une régression hiérarchique. Les résultats ont indiqué que l'orientation des tâches atténuait dans une certaine mesure le rapport entre les caractéristiques du poste et le rendement en général (qualité du rendement et non-quantité). On n'a remarqué aucun effet de modération en ce qui a trait au travail même et à la motivation. En ce qui touche la performance, on peut estimer que les travailleurs qui aiment les responsabilités, les défis et l'avancement réagissent d'une façon plus positive à des postes dont les exigences sont plus considérables, parce que ces individus cherchent à combler les aspirations plus hautes qu'ils découvrent dans le contenu de la tâche. Les emplois dont les exigences sont plus élevées offrent en conséquence l'occasion voulue de satisfaire leurs ambitions professionnelles, compte tenu des connaissances du titulaire.Le manque d'orientation des tâches comme agent modérateur du rapport entre les cinq caractéristiques, d'une part, la satisfaction au travail et la motivation, d'autre part, peuvent s'expliquer parce que les contremaîtres ont évalué les caractéristiques de la tâche de leurs subordonnés, tandis que ce sont les employés eux-mêmes qui ont estimé leur degré de satisfaction et de motivation au travail. Il est normal que des divergences de perception existent entre contremaîtres et subordonnés.À l'avenir, la recherche devrait scruter les comparaisons qu'il y a lieu d'établir entre les réactions des contremaîtres et celles de leurs subordonnés et le rôle joué par le type de direction en plus de l'orientation des tâches en tant que variable modératrice dans les études en matière de structuration des tâches.",
+ "issue": "2",
+ "journalAbbreviation": "ri",
+ "language": "en",
+ "libraryCatalog": "www.erudit.org",
+ "pages": "409-420",
+ "publicationTitle": "Relations industrielles / Industrial Relations",
+ "url": "http://www.erudit.org/fr/revues/ri/1989-v44-n2-ri1155/050499ar/",
+ "volume": "44",
+ "attachments": [.
+ {
+ "title": "Full Text PDF",
+ "mimeType": "application/pdf"
+ },
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/en/journals/ri/1989-v44-n2-ri1155/050499ar/",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Employee Performance as a Function of Job Orientation and Job Design",
+ "creators": [.
+ {
+ "firstName": "Carol",
+ "lastName": "Sales",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Eliahu",
+ "lastName": "Levanoni",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Robert",
+ "lastName": "Knoop",
+ "creatorType": "author"
+ }
+ ],
+ "date": "1989",
+ "DOI": "10.7202/050499ar",
+ "ISSN": "0034-379X, 1703-8138",
+ "abstractNote": "Two weaknesses in previous job design research were examined: the overuse of self-report measurements and the questionable use of Growth Need Strength as a moderator between job characteristics and employee performance. Job orientation was hypothesized to moderate the relationship between job characteristics and employee performance. Results indicated that job orientation moderated the relationship between job characteristics and quality of performance but not between job characteristics and quantity of performance, job involvement and satisfaction with work.",
+ "issue": "2",
+ "journalAbbreviation": "ri",
+ "language": "en",
+ "libraryCatalog": "www.erudit.org",
+ "pages": "409-420",
+ "publicationTitle": "Relations industrielles / Industrial Relations",
+ "url": "http://www.erudit.org/en/journals/ri/1989-v44-n2-ri1155/050499ar/",
+ "volume": "44",
+ "attachments": [.
+ {
+ "title": "Full Text PDF",
+ "mimeType": "application/pdf"
+ },
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/en/journals/documentation/2015-v61-n2-3-documentation02049/1032808ar/",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Les techniques de la documentation : un programme de formation collégiale en évolution",
+ "creators": [.
+ {
+ "firstName": "Stéphane",
+ "lastName": "Ratté",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2015",
+ "DOI": "10.7202/1032808ar",
+ "ISSN": "0315-2340, 2291-8949",
+ "abstractNote": "In order to maintain the relevance of the curriculum and to ensure current labour market requirements, a revision of the library technology programme of the Collège de Maisonneuve was launched in 2014. The department identified a number of challenges that were assembled around seven themes: cataloguing, public services, records management, automated information systems, project management, professional attitudes and field experience. This article presents an overview of these challenges and establishes a portrait of the library technology programme. It also enables a better understanding of the competencies expected of a library technician.",
+ "issue": "2-3",
+ "journalAbbreviation": "documentation",
+ "language": "fr",
+ "libraryCatalog": "www.erudit.org",
+ "pages": "45-52",
+ "publicationTitle": "Documentation et bibliothèques",
+ "shortTitle": "Les techniques de la documentation",
+ "url": "http://www.erudit.org/en/journals/documentation/2015-v61-n2-3-documentation02049/1032808ar/",
+ "volume": "61",
+ "attachments": [.
+ {
+ "title": "Full Text PDF",
+ "mimeType": "application/pdf"
+ },
+ {
+ "title": "Snapshot"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/fr/recherche/?basic_search_term=zotero&basic_search_field=all&advanced_search_operator1=AND&advanced_search_term1=&advanced_search_field1=all&advanced_search_operator2=AND&advanced_search_term2=&advanced_search_field2=all&advanced_search_operator3=AND&advanced_search_term3=&advanced_search_field3=all&advanced_search_operator4=AND&advanced_search_term4=&advanced_search_field4=all&advanced_search_operator5=AND&advanced_search_term5=&advanced_search_field5=all&pub_year_start=1900&pub_year_end=2017",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "https://www.erudit.org/fr/revues/memoires/2016-v8-n1-memoires02805/",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
diff --git a/Google Books.js b/Google Books.js
index 4715fd5..8bdc56f 100644
--- a/Google Books.js
+++ b/Google Books.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsbv",
- "lastUpdated": "2017-01-01 16:11:33"
+ "lastUpdated": "2017-12-03 04:20:33"
}

/*
@@ -68,7 +68,6 @@
ZU.doGet("//books.google.com/books/feeds/volumes/"+m[2], parseXML);
} else {
var items = getItemArrayGB(doc, doc, 'google\\.' + suffix + '/books\\?id=([^&]+)', '^(?:All matching pages|About this Book|Table of Contents|Index)');
- //Zotero.debug(items);
// Drop " - Page" thing
for(var i in items) {
items[i] = items[i].replace(/- Page [0-9]+\s*$/, "");
@@ -254,10 +253,10 @@
}
}
else {
- var links = inHere[j].getElementsByTagName("img");//search for <img>-elements, scrape title from alt-attribute, href-link from parent <a>-element
+ var links = inHere[j].querySelectorAll("h3.r a");
for(var i=0; i<links.length; i++) {
- if(!urlRe || urlRegexp.test(links[i].parentNode.href)) {
- var text = links[i].alt;
+ if(!urlRe || urlRegexp.test(links[i].href)) {
+ var text = links[i].parentNode.textContent;
//Z.debug(text)
if(text) {
text = Zotero.Utilities.trimInternal(text);
@@ -267,7 +266,7 @@
availableItems[links[i].href] += " "+text;
}
} else {
- availableItems[links[i].parentNode.href] = text;
+ availableItems[links[i].href] = text;
}
}
}
@@ -497,4 +496,4 @@
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/HAL Archives Ouvertes.js b/HAL Archives Ouvertes.js
index a625fcb..5e315dd 100644
--- a/HAL Archives Ouvertes.js
+++ b/HAL Archives Ouvertes.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2016-11-02 21:46:36"
+ "lastUpdated": "2017-12-21 03:11:03"
}

/*
@@ -91,7 +91,13 @@
Zotero.Utilities.processDocuments(articles, scrape)
});
} else {
- scrape(doc, url);
+ //work on PDF pages
+ if (url.search(/\/document$/) != -1 ) {
+ var articleURL = url.replace(/\/document$/, "")
+ //Z.debug(articleURL)
+ ZU.processDocuments(articleURL, scrape);
+ }
+ else scrape(doc, url);
}
}

@@ -99,7 +105,7 @@
var bibtexUrl = url.replace(/#.+|\/$/, "") + "/bibtex";
var abstract = ZU.xpathText(doc, '//div[@class="abstract-content"]');
var pdfUrl = ZU.xpathText(doc, '//meta[@name="citation_pdf_url"]/@content');
- //Z.debug(pdfUrl)
+ //Z.debug("pdfURL " + pdfUrl)
ZU.doGet(bibtexUrl, function (bibtex) {
//Z.debug(bibtex)
var translator = Zotero.loadTranslator("import");
diff --git a/HighBeam.js b/HighBeam.js
index 70d168f..ad7fdab 100644
--- a/HighBeam.js
+++ b/HighBeam.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2016-08-27 15:17:28"
+ "lastUpdated": "2018-01-07 09:32:09"
}

/*
@@ -142,6 +142,7 @@
],
"date": "2000-12-10",
"abstractNote": "In the years leading up to the bacteria poisoning of thousands of\nresidents of Walkerton, Ont., who drank contaminated drinking water,\nthose responsible for water safety were routinely falsifying water\ntests and were drinking beer on the job, according to testimony at\nan inquiry.\nIn May, seven people died and more than 2,000 people became\nviolently ill when a deadly strain of E. coli bacteria from cow\nmanure made its way into the town's drinking water system.\nLast week, at the judicial inquiry into the disaster, Frank\nKoebel, the town's public utilities foreman, testified that water\nsamples he labeled as coming from various locations actually came\nfrom just one source: the Walkerton pump house. …",
+ "language": "en",
"libraryCatalog": "www.highbeam.com",
"publicationTitle": "The Buffalo News (Buffalo, NY)",
"url": "https://www.highbeam.com/doc/1P2-23197647.html",
@@ -172,6 +173,7 @@
],
"date": "2016-03-01",
"abstractNote": "INTRODUCTION Kenya has an estimated population of over 41 million people who are made up of about 42 distinct communities [1]. Its population is made up of about 47.7% Protestants, 28.4% Roman Catholics, 9% of Indigenous beliefs, 11.2% Muslims, 1% Bahais, 0.04% Hindu and about 2.6% of other faiths [2]. More than 80% of the country's land mass is made up of what is often referred to as the arid and semi-arid lands (ASAL), which is where about 30% of the country's population lives [2]). The ASAL regions are characterized by a sparse human population distribution, low and unpredictable rainfall, usually 5-300 mm/year [3]. More than 70% of the country's livestock population is in the ASAL and most are reared by nomadic pastoralist communities including the Boran, Gabbra, Rendille, various Somali subgroups, the Samburu, Turkana, Maasai, Pokot, and the Orma. The country's livestock population is composed mainly of goats, sheep, cattle, camels, chicken, pigs and donkeys. Pigs are reared for commerce by a small number of farmers and usually within a 100-km radius of the major cities. To meet the food acceptability and religious requirements of the Kenya Muslims, the animal for food must be slaughtered by a Muslim to make its meat Halal. Poultry are mainly the traditional breeds of chicken that are kept using low-cost range management systems to supply subsistence food needs. However, commercial poultry keeping based on exotic breeds is an important economic activity in the country. Chicken eggs are an important item of commerce and food in Kenya. The population of geese, ducks and ostriches is insignificant. The beef cattle kept on private ranches in the ASAL zones, supply a significant amount of beef for consumers in major urban centres in the country. In the 2009 National Population and Household Census, Kenya was reported to have 3,355,407 exotic cattle, 14,112,367 indigenous cattle, 17,129,606 sheep, 27,740,153 goats and 2,971,111camels [2]. Other animals counted in the 2009 Population and Household Census included 334,689 pigs, 25,756,487 indigenous chicken, 6,071,042 commercial chicken, and 1,832,519 donkeys. The former Western Province with 16% of the total national population of chicken (both indigenous and commercial), leads in this livestock category. The Rift Valley region, where the Turkana, Maasai, Pokot and Samburu pastoralists live had 42.8% of the total national cattle population, 28.8% of the national indigenous cattle population and 54.6% of the Rift Valley region's total cattle population. The two regions of Rift Valley and Northeastern had 58.7, 70.5, 77.9, and 89.8% of the total national cattle, goat, sheep, and camel population, respectively [2]. Northeastern Province had the lowest pig population which stood at only 68 pigs, representing 0.02% of Kenya's pig population according to the 2009 Population and Household census, as it has the second highest Muslim population after Kenya's Coastal strip [2]. The production of total meat, mutton and goat meat, poultry, pork, milk and eggs in Kenya in 2002 stood at 452.6x103 metric tons (mT), 5.7x103 mT, 54x103 MT, 2841x106 litres and 60.6 million eggs [4], respectively, with most of the beef, goat meat and mutton coming from the ASAL. The per capita production of total meat, beef, mutton and goat meat, poultry and milk stood at 14.3 kg/yr, 10 kg, 1.0 kg and 90 liters/yr in 2002 [4]. For the purpose of this article, small stock refers to goats, and sheep, while large slaughter stock refers to donkeys, cattle, and camels. In this article also, no discussion will be made specifically on chicken or other poultry, fish and related sources of meat. The text focuses on meats in general and without emphasis on the white or red type. It is a mini-review of the literature on animal welfare requirements, animal handling and meat quality as it applies to the Kenyan situation. METHODS AND PROCEDURES A semi-structured questionnaire to establish the manner of animal slaughter in 10 Kenyan communities was administered to groups of 10-15 members of a community as focus groups. The communities surveyed were: nomadic pastoralists-the Turkana, Boran, Samburu, Pokot, Somali, and the Maasai, while the farming communities surveyed were the Kuria, Luo, Kalenjin, and Kikuyu. The total number of respondents who took part in the survey was 124. A few individual interviews were also conducted with a few members of some of the communities. The questionnaire and focus group discussions also set out to establish the extent of knowledge of the relationship of animal welfare and handling procedures, and slaughter practices as they would influence meat quality. Limitations of the study 1. A small sample of communities was surveyed for their slaughter practices (10 out of a possible 42), although the author believes the slaughter and animal handling practices of those communities who were not surveyed would not have been different from the findings of the study. 2. The influence of religion on slaughter practices was documented only for the Muslims as it proved difficult to interview believers of other faiths. 3. More nomadic communities were surveyed than the farmer-communities; this was because the nomadic pastoralists provide most of the slaughter stock and keep most of the livestock population of Kenya, except for pigs and poultry. RESULTS 1. For the Turkana and Pokot communities, the spear is reserved for use by adult, initiated and circumcised males, while the knife is mandatorily used by females and young uncircumcised males for animal slaughter. Where a Muslim has to share the meat, they let the male Muslim slaughter the animal. The Turkana and Pokot males slaughter the animal for public feasts while females can use the kitchen knife to slaughter small stock for domestic consumption. However, for large stock such as cattle, donkey and the camel, males slaughter them due to their sizes which females may find difficult to manage. …",
+ "language": "en",
"libraryCatalog": "www.highbeam.com",
"publicationTitle": "African Journal of Food, Agriculture, Nutrition and Development",
"shortTitle": "A Preliminary Survey of Animal Handling and Cultural Slaughter Practices among Kenyan Communities",
@@ -193,4 +195,4 @@
"items": "multiple"
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/Integrum.js b/Integrum.js
new file mode 100644
index 0000000..a841316
--- /dev/null
+++ b/Integrum.js
@@ -0,0 +1,173 @@
+{
+ "translatorID": "570d4c35-a16d-48f9-aa73-6161d067da79",
+ "label": "Integrum",
+ "creator": "Sebastian Karcher",
+ "target": "^https?://aafnet\\.integrum\\.ru/",
+ "minVersion": "3",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-05 03:14:12"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 Sebastian Karcher
+
+ 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 *****
+*/
+
+
+// attr()/text() v2
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
+
+
+function detectWeb(doc, url) {
+ if (ZU.xpath(doc, '//td[dt[a[@class="aftitle"]]]').length) {
+ return "multiple";
+ } else {
+ var articleframe = ZU.xpath(doc, '//frame[@name="fb"]');
+ if (articleframe.length) {
+ return "magazineArticle";
+ }
+ }
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ var rows = ZU.xpath(doc, '//td[dt[a[@class="aftitle"]]]');
+ var items = {};
+ for (let i = 0; i < rows.length; i++) {
+ var infoArray = [];
+
+ var title = ZU.xpathText(rows[i], './dt/a[@class="aftitle"]');
+ infoArray.push("Title: " + title);
+ // Z.debug(title);
+ var info = ZU.xpathText(rows[i], './dd/div[@class="docs"]/text()');
+ infoArray.push("\nInfo: " + ZU.trimInternal(info));
+ // Z.debug(info);
+ var link = ZU.xpathText(rows[i], './dt/a[@class="aftitle"]/@href');
+ // Z.debug(link)
+ infoArray.push("\nLink: " + link);
+ // Z.debug(infoArray);
+ items[infoArray] = title;
+
+ }
+
+ Zotero.selectItems(items, function(items) {
+ // Z.debug(items)
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ // Z.debug(i)
+ articles.push(i);
+ }
+ for (let i = 0; i < articles.length; i++) {
+ scrapeMultiples(articles[i]);
+ }
+ });
+ } else {
+ scrapeFrames(doc, url);
+ }
+}
+
+function scrapeMultiples(article) {
+ // Z.debug(articles)
+ var item = new Z.Item('magazineArticle');
+ var title = article.match(/Title: (.+?),\n/)[1];
+ // Z.debug(title)
+ item.title = fixCasing(title);
+ var info = article.match(/Info: (.+?),\n/)[1];
+ // Z.debug(info);
+ item.publicationTitle = info.match(/^(.+?);/)[1].trim();
+ var date = info.match(/;(.+);/)[1];
+ item.date = ISOdate(date);
+ item.issue = info.match(/;.+?;(.+)$/)[1];
+ var link = article.match(/Link: (.+)/)[1];
+ // Z.debug(link);
+ ZU.processDocuments(link, function(doc) {
+ var frameurl = ZU.xpathText(doc, '//frame[@name="fb"]/@src');
+ // Z.debug(frameurl)
+ item.attachments.push({
+ url: frameurl,
+ title: "Integrum Snapshot",
+ mimeType: "text/html"
+ })
+ item.complete()
+ })
+
+}
+
+function ISOdate(date) {
+ if (date) {
+ return date.replace(/(\d+)\.(\d+)\.(\d+)/, "$3-$2-$1");
+ } else return null;
+}
+
+function fixCasing(string) {
+ if (string && string.toUpperCase() == string) {
+ return ZU.capitalizeTitle(string.toLowerCase(), true);
+ } else return string;
+}
+
+function scrapeFrames(doc, url) {
+ var framedoc = ZU.xpath(doc, '//frame[@name="fb"]')[0].contentDocument;
+ var frametitle = ZU.xpath(doc, '//frame[@name="ft"]')[0].contentDocument;
+ var item = new Z.Item('magazineArticle');
+ item.title = fixCasing(text(framedoc, 'title'));
+ item.date = ISOdate(attr(framedoc, 'meta[name="_YR"]', 'content'));
+ item.publicationTitle = attr(framedoc, 'meta[name="_SO"]', 'content');
+ item.issue = attr(framedoc, 'meta[name="_NR"]', 'content');
+ if (!item.date || !item.publicationTitle || !item.issue) {
+ var info = ZU.xpath(frametitle, '//body/table/tbody/tr[4]//tr[@class="maintxt"]//td[a[contains(@href, "ia5.aspx?")]]');
+
+ var date = ZU.xpathText(info, './a[contains(@href, "dis=")]/@href');
+ if (date && !item.date) {
+ date = date.match(/dis=(\d+)/)[1];
+ item.date = date.replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3");
+ }
+ infoParts = info[0].textContent.split(/\n\s*:\s*/);
+ // Z.debug(infoParts)
+ if (infoParts.length == 4) {
+ if (!item.publicationTitle) {
+ item.publicationTitle = infoParts[1];
+ }
+ if (!item.issue) {
+ item.issue = infoParts[3].match(/\d+$/)[0];
+ }
+ if (!item.date) {
+ item.date = infoParts[2];
+ }
+ }
+ }
+ item.attachments.push({
+ document: framedoc,
+ title: "Integrum Snapshot"
+ });
+ item.complete();
+}
+
+/** BEGIN TEST CASES **/
+var testCases = []
+/** END TEST CASES **/
diff --git a/KStudy.js b/KStudy.js
new file mode 100644
index 0000000..4829528
--- /dev/null
+++ b/KStudy.js
@@ -0,0 +1,632 @@
+{
+ "translatorID": "b298ca93-0010-48f5-97fb-e9923519a380",
+ "label": "KStudy",
+ "creator": "Yunwoo Song, Frank Bennett, Philipp Zumstein",
+ "target": "^https?://[^/]+\\.kstudy\\.com",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2018-01-03 13:10:00"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ KISS (Korean Studies Information Service System) Translator
+ Copyright © 2017-2018 Yunwoo Song, Frank Bennett, and 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 detectWeb(doc, url) {
+ if (/\bkey=(\d+)\b/.test(url)) {
+ if (url.includes('/thesis/thesis-view.asp')) {
+ return "journalArticle";
+ } else if (url.includes('/public2-article.asp')) {
+ // these are reports and working paper series but with publicaton name,
+ // volume, issue numbers; thus handled as journal articles as well
+ return "journalArticle";
+ } else if (url.includes('/public3-article.asp')) {
+ return "report";
+ }
+ }
+ if (getSearchResults(doc, true)) {
+ return "multiple";
+ }
+}
+
+function getSearchResults(doc, checkOnly) {
+ var items = {};
+ var found = false;
+ var rows = ZU.xpath(doc, '//div[contains(@class, "thesis-info")]/h5/a');
+ for (var i=0; i<rows.length; i++) {
+ var href = rows[i].href;
+ var title = ZU.trimInternal(rows[i].textContent);
+ if (!href || !title) continue;
+ // exclude no real links
+ if (href=="#") continue;
+ // exclude links to overview of journal
+ if (href.includes("/journal/journal-view")) continue;
+ // make sure we have a key to make the risURL
+ if (!(/\bkey=(\d+)\b/.test(href))) continue;
+ if (checkOnly) return true;
+ found = true;
+ items[href] = title;
+ }
+ return found ? items : false;
+}
+
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) == "multiple") {
+ Zotero.selectItems(getSearchResults(doc, false), function (items) {
+ if (!items) {
+ return true;
+ }
+ var articles = [];
+ for (var i in items) {
+ articles.push(i);
+ }
+ ZU.processDocuments(articles, scrape);
+ });
+ } else {
+ scrape(doc, url);
+ }
+}
+
+
+function scrape(doc, url) {
+ var key = url.match(/\bkey=(\d+)\b/)[1];
+ var risURL = "/p-common/export_endnote.asp";
+ var postData = "atcl_data=" + key + "&export_gubun=EndNote";
+ ZU.doPost(risURL, postData, function(text) {
+ // Z.debug(text);
+ var translator = Zotero.loadTranslator("import");
+ translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
+ translator.setString(text);
+ translator.setHandler("itemDone", function(obj, item) {
+ if (url.includes('/public/public3-article')) {
+ item.itemType = "report";
+ }
+ var latin = item.title.match(/[\u{0000}-\u{00FF}]/ug);
+ if (latin.length > item.title.length/2 && item.title.toUpperCase() == item.title) {
+ item.title = ZU.capitalizeTitle(item.title, true);
+ }
+ //remove space before colon in title
+ item.title = item.title.replace(/\s+:/, ":");
+ // sometimes the author tags in RIS are empty and therefore we
+ // try to scrape author names also directly
+ if (item.creators.length == 0) {
+ item.creators = scrapeAuthorsDirectly(doc, url);
+ } else {
+ // romanized Korean names with first and last name are splitted
+ // wrongly into two AU tags in RIS and therefore we scrape
+ // author names directly here
+ let firstName = item.creators[0].lastName;
+ let latinCharacters = firstName.match(/[\u{0000}-\u{00FF}]/ug);
+ if (!item.creators[0].firstName && latinCharacters && latinCharacters.length == firstName.length) {
+ item.creators = scrapeAuthorsDirectly(doc, url);
+ }
+ }
+ if (item.issue && item.issue == "0") {
+ delete item.issue;
+ }
+ item.language = "ko-KR";
+ item.complete();
+ });
+ translator.translate();
+ });
+}
+
+
+function scrapeAuthorsDirectly(doc, url) {
+ var creators = [];
+ var writers = ZU.xpathText(doc, '//div[@class="writers"]');
+ if (writers) {
+ var creatorsList = writers.split(',');
+ for (var i=0; i<creatorsList.length; i++) {
+ let author = creatorsList[i].replace(/^\s*\(\s*/, '').replace(/\s*\)\s*$/, '');
+ if (author.includes(' ')) {
+ creators.push(ZU.cleanAuthor(author, "author"));
+ } else {
+ creators.push({
+ lastName: author,
+ fieldMode: true,
+ creatorType: "author"
+ });
+ }
+ }
+ } else {
+ var authors = ZU.xpathText(doc, '//li[label[text()="??"]]');
+ // e.g. authors = ?? : Kim, Yoon Tae, Park, Hyun Suk
+ // e.g. authors = ?? : ???, ???, ???, ???
+ if (authors && authors.includes(':')) {
+ var authorsValue = authors.split(':')[1];
+ if (authorsValue.includes(', ')) {
+ // two spaces after comma are important here
+ var authorsList = authorsValue.split(', ');
+ } else {
+ var authorsList = authorsValue.split(',');
+ }
+ for (let i=0; i<authorsList.length; i++) {
+ let author = authorsList[i].trim();
+ if (author.includes(',')) {
+ creators.push(ZU.cleanAuthor(author, "author", true));
+ } else {
+ creators.push({
+ lastName: author,
+ fieldMode: true,
+ creatorType: "author"
+ });
+ }
+ }
+ }
+ }
+ return creators;
+}
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3297333",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "????: ??(??)? ????(????)? ?? ???? ??",
+ "creators": [.
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ }
+ ],
+ "date": "2014",
+ "ISSN": "1738-2629",
+ "abstractNote": "? ??? ??? ??? ????(????)? ???? ? ??(??) ???(???)? ??? ???? ???? ??? ??? ????? ??. ??? ??? ???? ???? ?? ??? ????? ??. ???? ??? ????? ???? ??? ??? ??, ??? ????, ???(???)? ??, ????? ??, ?(?)? ??? ?? ?? ???? ?????. ?? ?? ??? ??? ??? ???? ?? ????? ????? ???? ??. ???? ???? ??? ??? ????? ??? ???? ??? ??? ?? ??? ? ?? ???, ??(??)? ????? ?? ??? ?? ??? ????. ???? ??? ????? ???? ??? ?? ??? ?????, ?? ???? ?? ?(?)? ????. ????? ????? ????(????)? ????? ?? ??? ?(?)? ????? ???? ??? ?? ?? ???. ??? ???? ??? ????? ???? ?? ??? ??(??)? ??? ???? ????? ‘????(????)’? ????.",
+ "journalAbbreviation": "???",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "179-210",
+ "publicationTitle": "???",
+ "shortTitle": "????",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3297333",
+ "volume": "27",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "Gua"
+ },
+ {
+ "tag": "Jiayibeifa"
+ },
+ {
+ "tag": "Sunchentu"
+ },
+ {
+ "tag": "Sunchenyeokhak"
+ },
+ {
+ "tag": "Xiangshuyi"
+ },
+ {
+ "tag": "Zhan"
+ },
+ {
+ "tag": "Zhanxueyili"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "?"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "?"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "?"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "????"
+ },
+ {
+ "tag": "?"
+ },
+ {
+ "tag": "????"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3500796",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "???? ??? · ?? · ?? · ??? ?? ??? ?? ?? ??",
+ "creators": [.
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ }
+ ],
+ "date": "2012",
+ "ISSN": "1225-1216",
+ "abstractNote": "? ??? ?? ???? ?? ??? ?? ??? ???? ?? ??? ??? ????? ??? ?? ? ??? ??. ? ??? ?? ??? ?? ?? ??? ?? ? ??? ?? ??, ???, ??, ??? ??? ?? ???. ?? ??? ? ????? ?? 6? ??(??, ??, ??, ??, ??, ??)? ? · ? · ???? ?? 6,053?? ???? ?? ??? ????, ??? ?? ????? ?? ??, ?? ?? ?? ??, ?? ?? ?? ?? ?????. ? ??, ???? ?? ?? ????? ???? ???? ??·???? ?? ??? ?? ?? ?? ??? ?? ???? ??? ????. ???? ??? ????? ??? ?? ??? ?? ?? ??? ??? ??? ??? ???. ??, ???? ??? ?, ?? ?? ??, ?? ??, ?????, ???? ?? ???? ??? ?? ?? ??? ?????? ??? ??? ??? ?????. ?? · ?? · ?? ?? ????? `?? ? ???? ??`? ??? ??? ?? ???? ??? ???? `??? ?????? ?? ????`? ?? ???? ??? ???? ??? ????.",
+ "journalAbbreviation": "????",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "43-93",
+ "publicationTitle": "????",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3500796",
+ "volume": "54",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "aggressive language expression"
+ },
+ {
+ "tag": "buzz-word"
+ },
+ {
+ "tag": "curse"
+ },
+ {
+ "tag": "expletive"
+ },
+ {
+ "tag": "language attitude"
+ },
+ {
+ "tag": "language destruction"
+ },
+ {
+ "tag": "language use"
+ },
+ {
+ "tag": "questionnaire survey"
+ },
+ {
+ "tag": "teenage slang"
+ },
+ {
+ "tag": "teenager`s language"
+ },
+ {
+ "tag": "??? ?? ??"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "?? ??"
+ },
+ {
+ "tag": "?? ??"
+ },
+ {
+ "tag": "?? ??"
+ },
+ {
+ "tag": "?? ??"
+ },
+ {
+ "tag": "??"
+ },
+ {
+ "tag": "???"
+ },
+ {
+ "tag": "??"
+ },
+ {
+ "tag": "??? ??"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/journal/journal-view.asp?key1=25169&key2=2201",
+ "items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/public/public2-article.asp?key=50064290",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "??? ?? CT? ??? ?? ?????? 3?? ??",
+ "creators": [.
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ }
+ ],
+ "date": "2010",
+ "ISSN": "1229-8212",
+ "abstractNote": "Purpose : This study was performed to analyze the position, pattern of impacted mesiodens, and their relationship to the adjacent teeth using Dental cone-beam CT. Materials and Methods : Sixty-two dental cone-beam CT images with 81 impacted mesiodenses were selected from about 2,298 cone-beam CT images at Chonnam National University Dental Hospital from June 2006 to March 2009. The position, pattern, shape of impacted mesiodenses and their complications were analyzed in cone-beam CT including 3D images. Results : The sex ratio (M : F) was 2.9 : 1. Most of the mesiodenses (87.7%) were located at palatal side to the incisors. 79% of the mesiodenses were conical in shape. 60.5% of the mesiodenses were inverted, 21% normal erupting direction, and 18.5% transverse direction. The complications due to the presence of mesiodenses were none in 43.5%, diastema in 19.4%, tooth displacement in 17.7%, delayed eruption or impaction in 12.9%, tooth rotation in 4.8%, and dentigerous cyst in 1.7%. Conclusions : Dental cone-beam CT images with 3D provided 3-dimensional perception of mesiodens to the neighboring teeth. This results would be helpful for management of the impacted mesiodens.",
+ "issue": "3",
+ "journalAbbreviation": "????????????? (????????????)",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "109-114",
+ "publicationTitle": "????????????? (????????????)",
+ "url": "http://kiss.kstudy.com/public/public2-article.asp?key=50064290",
+ "volume": "40",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "Cone-Beam Computed Tomograpahy"
+ },
+ {
+ "tag": "Incisor"
+ },
+ {
+ "tag": "Supernumerary"
+ },
+ {
+ "tag": "Tooth"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/public/public2-article.asp?key=50789039",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Kolmogorov Distance for Multivariate Normal Approximation",
+ "creators": [.
+ {
+ "firstName": "Yoon Tae",
+ "lastName": "Kim",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Hyun Suk",
+ "lastName": "Park",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2015",
+ "ISSN": "1976-8605",
+ "abstractNote": "This paper concerns the rate of convergence in the multidimensional normal approximation of functional of Gaussian fields. The aim of the present work is to derive explicit upper bounds of the Kolmogorov distance for the rate of convergence instead of Wasserstein distance studied by Nourdin et al. [Ann. Inst. H. Poincar$\\acute{e}$(B) Probab.Statist. 46(1) (2010) 45-98].",
+ "issue": "1",
+ "journalAbbreviation": "Korean Journal of mathematics (???????)",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "1-10",
+ "publicationTitle": "Korean Journal of mathematics (???????)",
+ "url": "http://kiss.kstudy.com/public/public2-article.asp?key=50789039",
+ "volume": "23",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "Kolmogorov distance"
+ },
+ {
+ "tag": "Malliavin calculus"
+ },
+ {
+ "tag": "Stein`s method"
+ },
+ {
+ "tag": "Wasserstein distance"
+ },
+ {
+ "tag": "fractional Brownian motion"
+ },
+ {
+ "tag": "multidimensional normal approximation"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/public/public3-article.asp?key=60023584",
+ "items": [.
+ {
+ "itemType": "report",
+ "title": "??? ?? ???? ?? ?? ??",
+ "creators": [.
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ },
+ {
+ "lastName": "???",
+ "creatorType": "author",
+ "fieldMode": 1
+ }
+ ],
+ "date": "2013",
+ "institution": "???",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "url": "http://kiss.kstudy.com/public/public3-article.asp?key=60023584",
+ "attachments": [],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3480580",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Analysis of Enzymes related to Lignin Modification of Phanerochaete chrysosporium ATCC20696 through the Transcriptomic and Proteomic Approaches",
+ "creators": [.
+ {
+ "firstName": "Chang-young",
+ "lastName": "Hong",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Su-yeon",
+ "lastName": "Lee",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Myungkil",
+ "lastName": "Kim",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "In-gyu",
+ "lastName": "Choi",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2016",
+ "ISSN": "2288-257x",
+ "abstractNote": "Phanerochaete chrysosporium (ATCC20696) is one of the most intensively studied basidiomycetes, and is well-known to degrade lignin with ligninolytic enzymes system. In general, ligninolytic enzymes catalyze lignin by oxidation in multi-step electron transfers with other accessory enzymes. Our previous work indicated that P. chrysosporium (ATCC20696) degraded lignin polymer and produced lignin derived-acid compound under the addition of reducing agents. Accordingly, in this study, we investigated various enzymes related to lignin modification by transcriptomic and proteomic analysis. In transcriptomic analysis, lignin peroxidase, copper radical oxidase and multicopper oxidase as extracellular enzymes were highly expressed that exposed to synthetic lignin with reducing agents. In addition, cytochrome P450 monooxygenase, 1,4-benzoquinone reductase and aryl alcohol dehydrogenase as intracellular enzymes were also over-expressed. In the proteomic analysis, it was confirmed to identify these enzymes highly secreted from P. chrysospo-rium (ATCC20696) and obtained the protein sequences by liquid chromatography mass spectroscopy. These results supported that both extracellular enzymes and intracellular enzymes were involved in lignin degradation and production of lignin derived compounds.",
+ "issue": "2",
+ "journalAbbreviation": "?????",
+ "language": "ko-KR",
+ "libraryCatalog": "KStudy",
+ "pages": "84-84",
+ "publicationTitle": "?????",
+ "url": "http://kiss.kstudy.com/thesis/thesis-view.asp?key=3480580",
+ "volume": "28",
+ "attachments": [],
+ "tags": [.
+ {
+ "tag": "Enzyme system"
+ },
+ {
+ "tag": "Phanerochaete chrysosporium"
+ },
+ {
+ "tag": "lignin degradation"
+ },
+ {
+ "tag": "proteomic analysis"
+ },
+ {
+ "tag": "transcriptomic analysis"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ }
+]
+/** END TEST CASES **/
diff --git a/KitapYurdu.com.js b/KitapYurdu.com.js
index e63826f..475519c 100644
--- a/KitapYurdu.com.js
+++ b/KitapYurdu.com.js
@@ -349,4 +349,4 @@
]
}
]
-/** END TEST CASES **/
+/** END TEST CASES **/
\ No newline at end of file
diff --git a/Le Monde.js b/Le Monde.js
index 736da0f..9bf62ea 100644
--- a/Le Monde.js
+++ b/Le Monde.js
@@ -2,14 +2,14 @@
"translatorID": "6bc635a4-6823-4f95-acaf-b43e8a158144",
"label": "Le Monde",
"creator": "Philipp Zumstein",
- "target": "^https?://(www\\.)?lemonde\\.fr/",
+ "target": "^https?://(www\\.)?(abonnes\\.)?lemonde\\.fr/",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2015-06-09 20:21:01"
+ "lastUpdated": "2018-01-13 11:53:25"
}

/*
@@ -35,13 +35,15 @@
***** END LICENSE BLOCK *****
*/

+
function detectWeb(doc, url) {
- if (url.indexOf('/article/')>-1) {
+ if (url.includes('/article/')) {
return "newspaperArticle";
} else if (getSearchResults(doc, true)) {
return "multiple";
}
}
+

function getSearchResults(doc, checkOnly) {
var items = {};
@@ -65,7 +67,7 @@
if (!items) {
return true;
}
- var articles = new Array();
+ var articles = [];
for (var i in items) {
articles.push(i);
}
@@ -106,7 +108,7 @@
item.creators.push( ZU.cleanAuthor(author, "author") );
}

- item.section = ZU.xpathText(doc, '//nav[@id="nav"]/ul/li[contains(@class,"actif")]/a/@data-rubrique-title');
+ item.section = ZU.xpathText(doc, '//nav[@id="navigation-generale"]/ul/li[contains(@class,"alt")]/a/@data-rubrique-title');

item.complete();
});
@@ -115,7 +117,9 @@
trans.itemType = "newspaperArticle";
trans.doWeb(doc, url);
});
-}/** BEGIN TEST CASES **/
+}
+
+/** BEGIN TEST CASES **/
var testCases = [
{
"type": "web",
@@ -251,4 +255,4 @@
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/MODS.js b/MODS.js
index 01e2f38..9f0ec57 100644
--- a/MODS.js
+++ b/MODS.js
@@ -14,8 +14,8 @@
},
"inRepository": true,
"translatorType": 3,
- "browserSupport": "gcsv",
- "lastUpdated": "2015-02-11 01:24:19"
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-25 13:29:42"
}

var fromMarcGenre = {
@@ -25,7 +25,7 @@
"art reproduction":"artwork",
"article":"journalArticle",
"autobiography":"book",
- "bibliography":"bookSection",
+ "bibliography":"book",
"biography":"book",
"book":"book",
// "calendar":XXX,
@@ -628,6 +628,11 @@
if(subtitle) title = title.replace(/:$/,'') + ": "+ subtitle.trim();
var nonSort = ZU.xpathText(titleInfo, "m:nonSort[1]", xns);
if(nonSort) title = nonSort.trim() + " " + title;
+ var partNumber = ZU.xpathText(titleInfo, "m:partNumber[1]", xns);
+ var partName = ZU.xpathText(titleInfo, "m:partName[1]", xns);
+ if(partNumber && partName) title = title.replace(/\.$/,'') + ". "+ partNumber.trim() + ": " + partName.trim()
+ else if(partNumber) title = title.replace(/\.$/,'') + ". " + partNumber.trim()
+ else if(partName) title = title.replace(/\.$/,'') + ". " + partName.trim();
return title;
}

@@ -1008,8 +1013,10 @@
}
}

- // creators (might be editors)
- processCreators(host, newItem, "editor");
+ // creators of host item will be evaluated by their role info
+ // and only if this is missing then they are connected by a generic
+ // contributor role
+ processCreators(host, newItem, "contributor");

// identifiers
processIdentifiers(host, newItem);
@@ -1363,7 +1370,7 @@
"input": "<?xml version='1.0' encoding='UTF-8' ?>\n<mods xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"3.4\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.loc.gov/mods/v3\"\n xsi:schemaLocation=\"http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-4.xsd\">\n\n <titleInfo>\n <title>Sound and fury</title>\n <subTitle>the making of the punditocracy</subTitle>\n </titleInfo>\n\n <name type=\"personal\" authorityURI=\"http://id.loc.gov/authorities/names\"\n valueURI=\"http://id.loc.gov/authorities/names/n92101908\">\n <namePart>Alterman, Eric</namePart>\n\n <role>\n <roleTerm type=\"text\">creator</roleTerm>\n </role>\n </name>\n\n <typeOfResource>text</typeOfResource>\n\n <genre authority=\"marcgt\">bibliography</genre>\n\n <originInfo>\n <place>\n <placeTerm authority=\"marccountry\" type=\"code\"\n authorityURI=\"http://id.loc.gov/vocabulary/countries\"\n valueURI=\"http://id.loc.gov/vocabulary/countries/nyu\">nyu</placeTerm>\n </place>\n <place>\n <placeTerm type=\"text\">Ithaca, N.Y</placeTerm>\n </place>\n\n <publisher>Cornell University Press</publisher>\n <dateIssued>c1999</dateIssued>\n <dateIssued encoding=\"marc\">1999</dateIssued>\n <issuance>monographic</issuance>\n </originInfo>\n\n <language>\n\n <languageTerm authority=\"iso639-2b\" type=\"code\"\n authorityURI=\"http://id.loc.gov/vocabulary/iso639-2\"\n valueURI=\"http://id.loc.gov/vocabulary/iso639-2/eng\">eng</languageTerm>\n </language>\n\n <physicalDescription>\n <form authority=\"marcform\">print</form>\n <extent>vii, 322 p. ; 23 cm.</extent>\n </physicalDescription>\n\n <note type=\"statement of responsibility\">Eric Alterman.</note>\n <note>Includes bibliographical references (p. 291-312) and index.</note>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\">\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh85070736\">Journalism</topic>\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh00005651\">Political aspects</topic>\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\">\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh2002011436\">Politics and\n government</topic>\n <temporal valueURI=\"http://id.loc.gov/authorities/subjects/sh2002012476\">20th century</temporal>\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\"\n valueURI=\"http://id.loc.gov/authorities/subjects/sh2008107507\">\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh85081863\">Mass media</topic>\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh00005651\">Political aspects</topic>\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\"\n valueURI=\"http://id.loc.gov/authorities/subjects/sh2010115992\">\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh85133490\">Television and\n politics</topic>\n\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\"\n valueURI=\"http://id.loc.gov/authorities/subjects/sh2008109555\">\n <topic valueURI=\"http://id.loc.gov/authorities/subjects/sh85106514\">Press and politics</topic>\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n </subject>\n\n <subject authority=\"lcsh\" authorityURI=\"http://id.loc.gov/authorities/subjects\">\n <topic>Talk shows</topic>\n <geographic valueURI=\"http://id.loc.gov/authorities/names/n78095330\">United States</geographic>\n </subject>\n\n <classification authority=\"lcc\">PN4888.P6 A48 1999</classification>\n <classification edition=\"21\" authority=\"ddc\">071/.3</classification>\n\n <identifier type=\"isbn\">0801486394 (pbk. : acid-free, recycled paper)</identifier>\n <identifier type=\"lccn\">99042030</identifier>\n\n <recordInfo>\n <descriptionStandard>aacr</descriptionStandard>\n <recordContentSource>DLC</recordContentSource>\n <recordCreationDate encoding=\"marc\">990730</recordCreationDate>\n\n <recordChangeDate encoding=\"iso8601\">20000406144503.0</recordChangeDate>\n <recordIdentifier>11761548</recordIdentifier>\n <recordOrigin>Converted from MARCXML to MODS version 3.4 using MARC21slim2MODS3-4.xsl (Revision\n 1.74), valueURIs and authorityURIs added by hand 20120123</recordOrigin>\n </recordInfo>\n</mods>\n",
"items": [.
{
- "itemType": "bookSection",
+ "itemType": "book",
"title": "Sound and fury: the making of the punditocracy",
"creators": [.
{
@@ -1376,6 +1383,7 @@
"ISBN": "0801486394",
"callNumber": "PN4888.P6 A48 1999, 071/.3",
"language": "eng",
+ "numPages": "322",
"place": "Ithaca, N.Y",
"publisher": "Cornell University Press",
"attachments": [],
@@ -1689,7 +1697,7 @@
"input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<mods xmlns=\"http://www.loc.gov/mods/v3\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-4.xsd\" version=\"3.4\">\n <titleInfo>\n <title>Papers from the First International Workshop on Plasma-Based Ion Implantation</title>\n <subTitle>4-6 August 1993, University of Wisconsin--Madison, Madison, Wisconsin</subTitle>\n </titleInfo>\n <name type=\"conference\">\n <namePart>International Workshop on Plasma-Based Ion Implantation 1993 : University of Wisconsin--Madison)</namePart>\n </name>\n <name type=\"personal\">\n <namePart>Conrad, John R.</namePart>\n </name>\n <name type=\"personal\">\n <namePart>Sridharan, Kumar.</namePart>\n </name>\n <name type=\"corporate\">\n <namePart>Applied Science and Technology (ASTeX), Inc</namePart>\n </name>\n <typeOfResource>text</typeOfResource>\n <genre authority=\"marcgt\">bibliography</genre>\n <genre authority=\"marcgt\">conference publication</genre>\n <originInfo>\n <place>\n <placeTerm type=\"code\" authority=\"marccountry\">nyu</placeTerm>\n </place>\n <place>\n <placeTerm type=\"text\">New York</placeTerm>\n </place>\n <publisher>Published for the American Vacuum Society by the American Institute of Physics</publisher>\n <dateIssued>1994</dateIssued>\n <issuance>monographic</issuance>\n </originInfo>\n <language>\n <languageTerm type=\"code\" authority=\"iso639-2b\">eng</languageTerm>\n </language>\n <physicalDescription>\n <form authority=\"marcform\">print</form>\n <extent>p. 813-998 : ill. ; 30 cm.</extent>\n </physicalDescription>\n <note>\"Published in both 1994 March/April issue of the Journal of vacuum science and technology B, vol. 12, no. 2\"--T.p. verso.</note>\n <note type=\"bibliography\">Includes bibliographical references and index.</note>\n <subject authority=\"lcsh\">\n <topic>Ion implantation</topic>\n <topic>Congresses</topic>\n </subject>\n <classification authority=\"lcc\">TS695.25 .I57 1993</classification>\n <classification authority=\"ddc\" edition=\"21\">621.3815/2</classification>\n <relatedItem type=\"host\">\n <titleInfo>\n <title>Journal of vacuum science &amp; technology. B, Microelectronics and nanometer structures processing, measurement and phenomena</title>\n </titleInfo>\n <identifier type=\"issn\">1071-1023</identifier>\n <identifier type=\"local\">(OCoLC)23276603</identifier>\n <identifier type=\"local\">(DLC)sn 92021098</identifier>\n <part>\n <text>2nd ser., v. 12, no. 2</text>\n </part>\n </relatedItem>\n <identifier type=\"isbn\">1563963442</identifier>\n <identifier type=\"lccn\">97129132</identifier>\n <identifier type=\"oclc\">35547175</identifier>\n <recordInfo>\n <descriptionStandard>aacr</descriptionStandard>\n <recordContentSource authority=\"marcorg\">DLC</recordContentSource>\n <recordCreationDate encoding=\"marc\">940504</recordCreationDate>\n <recordChangeDate encoding=\"iso8601\">19970618142736.9</recordChangeDate>\n <recordIdentifier>4968605</recordIdentifier>\n <recordOrigin>Converted from MARCXML to MODS version 3.4 using MARC21slim2MODS3-4.xsl\n \t\t(Revision 1.76 2012/02/01)</recordOrigin>\n </recordInfo>\n</mods>",
"items": [.
{
- "itemType": "bookSection",
+ "itemType": "book",
"title": "Papers from the First International Workshop on Plasma-Based Ion Implantation: 4-6 August 1993, University of Wisconsin--Madison, Madison, Wisconsin",
"creators": [
{
@@ -1909,6 +1917,47 @@
"seeAlso": []
}
]
+ },
+ {
+ "type": "import",
+ "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<mods version=\"3.6\" xmlns=\"http://www.loc.gov/mods/v3\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd\">\n <titleInfo>\n <title>Ludvig Holbergs udvalgte Skrifter</title>\n <partNumber>D. 1-6 B. 4</partNumber>\n <partName>Holbergs Comedier</partName>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Den honette Ambition</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Den Stundesløse</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>De Usynlige</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Pernilles korte Frøkenstand</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Erasmus Montanus</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Det lykkelige Skibbrud</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Den pantsatte Bondedreng</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Comedier</title>\n </titleInfo>\n <titleInfo type=\"alternative\">\n <title>Udvalgte Skrifter</title>\n </titleInfo>\n <name type=\"personal\" usage=\"primary\">\n <namePart>Holberg, Ludvig</namePart>\n <namePart type=\"date\">1684-1754</namePart>\n <nameIdentifier>bibsys.no:authority:90073658</nameIdentifier>\n </name>\n <name type=\"personal\">\n <namePart>Rahbek, K.L.</namePart>\n <nameIdentifier>bibsys.no:authority:90253663</nameIdentifier>\n </name>\n <typeOfResource>text</typeOfResource>\n <genre type=\"literaryform\">fiction</genre>\n <genre authority=\"marcgt\">fiction</genre>\n <originInfo>\n <place>\n <placeTerm authority=\"marccountry\" type=\"code\">dk</placeTerm>\n </place>\n <place>\n <placeTerm authority=\"iso3166\" type=\"code\">dk</placeTerm>\n </place>\n <place>\n <placeTerm type=\"text\">Kjøbenhavn</placeTerm>\n </place>\n <publisher>Schultz</publisher>\n <dateIssued>1805</dateIssued>\n <issuance>monographic</issuance>\n </originInfo>\n <language>\n <languageTerm authority=\"iso639-2b\" type=\"code\">dan</languageTerm>\n </language>\n <physicalDescription>\n <form authority=\"marcform\">print</form>\n <form authority=\"marccategory\">electronic resource</form>\n <form authority=\"marcsmd\">remote</form>\n <form authority=\"marccategory\">text</form>\n <form authority=\"marcsmd\">regular print</form>\n <extent>XII, 532 s.</extent>\n </physicalDescription>\n <accessCondition type=\"restriction on access\"/>\n <note type=\"reproduction\">Elektronisk reproduksjon [Norge] Nasjonalbiblioteket Digital 2014-02-07</note>\n <subject>\n <name type=\"personal\">\n <namePart>Holberg, Ludvig</namePart>\n <namePart type=\"date\">1684-1754</namePart>\n </name>\n </subject>\n <location>\n <url displayLabel=\"Fulltekst NB digitalisert\" note=\"Elektronisk reproduksjon. Gratis\" usage=\"primary display\">http://urn.nb.no/URN:NBN:no-nb_digibok_2012051624006</url>\n </location>\n <location>\n <url displayLabel=\"Fulltekst NB digitalisert\" note=\"Elektronisk reproduksjon. Gratis\">http://urn.nb.no/URN:NBN:no-nb_digibok_2014012024006</url>\n </location>\n <location>\n <url displayLabel=\"electronic resource\" note=\"Elektronisk reproduksjon. Gratis\" usage=\"primary display\">http://urn.nb.no/URN:NBN:no-nb_digibok_2012051624006</url>\n </location>\n <identifier type=\"urn\">URN:NBN:no-nb_digibok_2012051624006</identifier>\n <location>\n <url displayLabel=\"electronic resource\" note=\"Elektronisk reproduksjon. Gratis\">http://urn.nb.no/URN:NBN:no-nb_digibok_2014012024006</url>\n </location>\n <identifier type=\"urn\">URN:NBN:no-nb_digibok_2014012024006</identifier>\n <location>\n <physicalLocation authority=\"isil\">NO-0183300</physicalLocation>\n <holdingSimple>\n <copyInformation>\n <subLocation>0183300</subLocation>\n </copyInformation>\n </holdingSimple>\n </location>\n <location>\n <physicalLocation authority=\"isil\">NO-0030100</physicalLocation>\n <holdingSimple>\n <copyInformation>\n <subLocation>0030100</subLocation>\n <note>(ib.) (Proveniens Johan Schweigaard) (Til bruk på NB Oslos lesesal)</note>\n </copyInformation>\n </holdingSimple>\n </location>\n <location>\n <physicalLocation authority=\"isil\">NO-0030100</physicalLocation>\n <holdingSimple>\n <copyInformation>\n <subLocation>0030100</subLocation>\n <note>(ib.) (Til bruk på Spesiallesesalen)</note>\n </copyInformation>\n </holdingSimple>\n </location>\n <location>\n <physicalLocation authority=\"isil\">NO-0030100</physicalLocation>\n <holdingSimple>\n <copyInformation>\n <subLocation>0030100</subLocation>\n <note>(ib.) (Til bruk på Spesiallesesalen)</note>\n </copyInformation>\n </holdingSimple>\n </location>\n <relatedItem displayLabel=\"Inkludert i\" type=\"host\">\n <titleInfo>\n <title>Ludvig Holbergs udvalgte Skrifter. D. 1-6, Holbergs Comedier</title>\n </titleInfo>\n <name>\n <namePart>Holberg, Ludvig, 1684-1754</namePart>\n </name>\n <originInfo>\n <publisher>Kjøbenhavn : Schultz, 1804-1806</publisher>\n </originInfo>\n <identifier type=\"local\">999417135394702201</identifier>\n <part>\n <text>B. 4</text>\n </part>\n </relatedItem>\n <identifier type=\"oldoaiid\">oai:bibsys.no:biblio:941621081</identifier>\n <identifier type=\"oldoaiid\">oai:bibsys.no:biblio:121586413</identifier>\n <identifier type=\"uri\">http://urn.nb.no/URN:NBN:no-nb_digibok_2012051624006</identifier>\n <identifier type=\"uri\">http://urn.nb.no/URN:NBN:no-nb_digibok_2014012024006</identifier>\n <recordInfo>\n <descriptionStandard>katreg</descriptionStandard>\n <recordContentSource authority=\"marcorg\">NO-TrBIB</recordContentSource>\n <recordCreationDate encoding=\"marc\">120621</recordCreationDate>\n <recordChangeDate encoding=\"iso8601\">20170126171829.0</recordChangeDate>\n <recordIdentifier source=\"nb.bibsys.no\">999416210814702202</recordIdentifier>\n <recordOrigin>Converted from MARCXML to MODS version 3.6 using a customized MARC21slim2MODS3-5.xsl\n (based on 3.5 Revision 1.106 2014/12/19)</recordOrigin>\n <languageOfCataloging>\n <languageTerm authority=\"iso639-2b\" type=\"code\">nob</languageTerm>\n </languageOfCataloging>\n </recordInfo>\n <relatedItem displayLabel=\"Del av Bibliografien\" type=\"host\">\n <titleInfo>\n <title>Schweigaardsamlingen</title>\n </titleInfo>\n <genre authority=\"marcgt\">bibliography</genre>\n </relatedItem>\n <identifier type=\"sesamid\">4c8b333d27a2eb37c35f99ce42a679bf</identifier>\n <identifier type=\"oaiid\">oai:nb.bibsys.no:999416210814702202</identifier>\n</mods>",
+ "items": [.
+ {
+ "itemType": "book",
+ "title": "Ludvig Holbergs udvalgte Skrifter. D. 1-6 B. 4: Holbergs Comedier",
+ "creators": [.
+ {
+ "firstName": "Ludvig",
+ "lastName": "Holberg",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "K. L.",
+ "lastName": "Rahbek",
+ "creatorType": "author"
+ },
+ {
+ "lastName": "Holberg, Ludvig, 1684-1754",
+ "fieldMode": 1,
+ "creatorType": "contributor"
+ }
+ ],
+ "date": "1805",
+ "archiveLocation": "NO-0183300; NO-0030100; NO-0030100; NO-0030100",
+ "language": "dan",
+ "place": "Kjøbenhavn",
+ "publisher": "Kjøbenhavn : Schultz, 1804-1806",
+ "url": "http://urn.nb.no/URN:NBN:no-nb_digibok_2012051624006",
+ "attachments": [],
+ "tags": [],
+ "notes": [
+ {
+ "note": "reproduction: Elektronisk reproduksjon [Norge] Nasjonalbiblioteket Digital 2014-02-07"
+ }
+ ],
+ "seeAlso": []
+ }
+ ]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/National Library of Norway.js b/National Library of Norway.js
index ef51dfb..63d6e33 100644
--- a/National Library of Norway.js
+++ b/National Library of Norway.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2016-12-28 12:25:50"
+ "lastUpdated": "2017-11-29 23:36:00"
}

/*
@@ -35,40 +35,87 @@

***** END LICENSE BLOCK *****
*/
-
function detectWeb(doc, url) {
- if (url.indexOf("/nbsok/search?") != -1) {
- return "multiple";
- } else if (url.indexOf("/nbsok/nb/") != -1) {
- var mediaTypes = {
- 'Bøker': 'book',
- 'Tidsskrift': 'book', // complete issues or volumes, not articles
- 'Aviser': 'newspaperArticle',
- 'Film': 'videoRecording',
- 'Fjernsyn': 'videoRecording',
- 'Radio': 'radioBroadcast',
- 'Kart': 'map',
- };
- var nodes = ZU.xpath(doc, '//input[@id="mediaType"]');
- if (nodes.length && mediaTypes[nodes[0].value]) {
- return mediaTypes[nodes[0].value];
+ // The page can change from a search page to a single item page
+ // without loading the whole content as a new website, so we
+ // need to monitor for DOM changes.
+ Z.monitorDOMChanges(ZU.xpath(doc, '//div[contains(@class, "layout-content")]')[0], {childList: true});
+
+ // New UI - search page
+ if (url.includes('nb.no/search?')){
+ return 'multiple';
+ }
+
+ // Old UI – item (these URLs are not yet redirected to the new UI)
+ if (url.includes('nb.no/nbsok/nb/')){
+ var nodes = ZU.xpath(doc, '//meta[@name="dc:type"]');
+ if (nodes.length) {
+ var dcType = nodes[0].getAttribute('content');
+ return mapMediaType(dcType);
}
+ }
+
+ // New UI - item
+ if (url.includes('nb.no/items/')){
+ // There is a dc:type meta tag, but it contains values like
+ // "nonfiction" or "Text", so not helpful like before when it contained
+ // material type.
+ return 'book';
}
}

function doWeb(doc, url) {
- if (detectWeb(doc, url) == "multiple") {
- var items = ZU.getItemArray(doc, doc, '/nbsok/nb/');
+ if (detectWeb(doc, url) == 'multiple') {
+ var linkItems = ZU.xpath(doc, '//a[contains(@href, "items")]');
+ var items = {};
+ linkItems.forEach(function(linkItem) {
+ var link = linkItem.getAttribute('href');
+
+ // The search result list has two different layouts: 'grid' and 'list'.
+ // The first xpath is for the grid view, the second for the list view.
+ var title = ZU.xpathText(linkItem, './/label[@class="title" or @class="subtitle"]')
+ || ZU.xpathText(linkItem, './/dd[position() < 4]');
+
+ if (title) {
+ items[link] = title;
+ }
+ });
Zotero.selectItems(items, function(items) {
if(!items) {
return true;
}
var urls = Object.keys(items);
- ZU.processDocuments(urls, scrape);
+ ZU.processDocuments(urls, processUrl);
});
} else {
- scrape(doc, url);
+ processUrl(doc, url);
}
+}
+
+function getIdentifierFromUrl(url) {
+ // New-style URL
+ var matches = url.match(/nb\.no\/items\/([^#?;]+)/);
+ if (matches) {
+ return matches[1];
+ }
+ // Old-style URL
+ matches = url.match(/nb\.no\/nbsok\/nb\/([^#?;]+)/);
+ if (matches) {
+ return matches[1];
+ }
+}
+
+function mapMediaType(mediaType) {
+ var mediaTypes = {
+ 'Bøker': 'book',
+ 'Tidsskrift': 'book', // complete issues or volumes, not articles
+ 'Aviser': 'newspaperArticle',
+ 'Film': 'videoRecording',
+ 'Fjernsyn': 'videoRecording',
+ 'Radio': 'radioBroadcast',
+ 'Kart': 'map',
+ };
+ return mediaTypes[mediaType] || 'book'; // default to 'book'
}

function trimBrackets(obj) {
@@ -98,71 +145,131 @@
return numPages.join('; ');
}

-function getRIS(url, cb) {
+function getMODS(url, cb) {
ZU.doGet(url, function(text){
- var translator = Zotero.loadTranslator("import");
- translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
+ var translator = Zotero.loadTranslator('import');
+ translator.setTranslator('0e2235e7-babf-413c-9acf-f27cce5f059c');
translator.setString(text);
- translator.setHandler("itemDone", function(obj, item) {
+ translator.setHandler('itemDone', function(obj, item) {
cb(item);
});
translator.translate();
});
}

-function scrape(doc, url) {
- var endNote = ZU.xpath(doc, '//a[text()="EndNote"]');
- getRIS(endNote[0].href, function(item) {
+
+function apiRequest(url, cb) {
+ ZU.doGet(url, function(text){
+ var obj;
+ try {
+ obj = JSON.parse(text);
+ } catch (e) {
+ throw('Failed parsing JSON from ' + url + '.json');
+ }
+ cb(obj);
+ });
+}
+
+function processUrl(doc, url) {
+ var identifier = getIdentifierFromUrl(url);
+ // Note to self: the identifier can be a URN, but also sesamid or other kind of identifier
+ var modsUrl = 'https://api.nb.no/catalog/v1/metadata/' + identifier + '/mods';
+ var apiUrl = 'https://api.nb.no/catalog/v1/items/' + identifier ;
+
+ // Utilize the RIS importer to prepare a mostly complete record
+ getMODS(modsUrl, function(item) {
item = trimBrackets(item);

- // Normalize notes
- item.notes.forEach(function(note) {
- note.note = note.note
- .replace(/^<p>/, '').replace(/<\/p>$/, '') // paragraph tags
- .replace(/&nbsp;/g, ' ') // hard spaces
- .replace(/ +/g, ' ') // multiple spaces
- ;
- });
-
- if (item.numPages) {
- item.numPages = extractNumPages(item.numPages);
+ // Concat and normalize notes
+ var note = item.notes.map(function(note) { return note.note; })
+ .join('.\n')
+ .replace(/<\/?p>/g, '') // paragraph tags
+ .replace(/&nbsp;/g, ' ') // hard spaces
+ .replace(/ +/g, ' ') // multiple spaces
+ if (note) {
+ item.notes = [{ note: note }];
}
-
+
item.date = ZU.strToISO(item.date);

- // Add permalink
- var container = doc.getElementById('preview_metadata');
- if (container) {
- item.url = ZU.xpathText(container, './/a[contains(@href, "urn.nb.no")]');
+ if (item.archiveLocation) {
+ delete item.archiveLocation;
}
+ if (item.callNumber) {
+ delete item.callNumber;
+ }
+ item.tags = [];

- item.complete();
+ // Use the (undocumented) JSON api to add some data missing in the RIS export
+ apiRequest(apiUrl, function(apiResponse) {
+
+ var m = apiResponse.metadata;
+
+ item = trimBrackets(item);
+
+ item.numPages = extractNumPages(m.physicalDescription.extent);
+
+
+ if (item.accessDate) {
+ // Better leave this to Zotero
+ delete item.accessDate;
+ }
+
+ if (m.identifiers.urn) {
+ item.url = 'https://urn.nb.no/' + apiResponse.metadata.identifiers.urn;
+ }
+
+ if (m.series && m.series.length) {
+ item.series = m.series[0];
+ }
+
+ if (m.mediaTypes && m.mediaTypes.length) {
+ item.type = mapMediaType(m.mediaTypes[0]);
+ }
+
+ item.complete();
+ });
+
});
}
/** BEGIN TEST CASES **/
var testCases = [
{
"type": "web",
- "url": "http://www.nb.no/nbsok/nb/b0426ebe3f16cd56d81959510d52b05b",
+ "url": "https://www.nb.no/items/URN:NBN:no-nb_digibok_2013022624011",
"items": [.
{
- "itemType": "videoRecording",
- "title": "Sammenslåing av BP og Amoco - Dagsrevyen 1998.12.31 (6: 9)",
- "creators": [],
- "date": "1996-12-31",
+ "itemType": "book",
+ "title": "Memoirs of Lewis Holberg",
+ "creators": [.
+ {
+ "lastName": "Holberg",
+ "firstName": "Ludvig",
+ "creatorType": "author"
+ }
+ ],
+ "date": "1827",
"libraryCatalog": "National Library of Norway",
- "shortTitle": "Sammenslåing av BP og Amoco - Dagsrevyen 1998.12.31 (6",
- "url": "http://urn.nb.no/URN:NBN:no-nb_video_11201",
+ "numPages": "vii+289",
+ "place": "London",
+ "publisher": "Hunt and Clarke",
+ "language": "eng; lat",
+ "series": "Autobiography : a collection of the most instructive and amusing lives ever published vol. 12",
+ "url": "https://urn.nb.no/URN:NBN:no-nb_digibok_2013022624011",
"attachments": [],
+ "notes": [
+ {
+ "note": "statement of responsibility: written by himself in Latin : and now first translated into English.\nreproduction: Elektronisk reproduksjon [Norge] Nasjonalbiblioteket Digital 2013-03-01"
+ }
+ ],
"tags": [],
- "notes": [],
"seeAlso": []
}
]
},
{
"type": "web",
- "url": "http://www.nb.no/nbsok/nb/a4cd69796dd3312c9780f5982a4a31f1",
+ "url": "https://www.nb.no/items/URN:NBN:no-nb_digibok_2008030304011",
"items": [.
{
"itemType": "book",
@@ -172,36 +279,32 @@
"lastName": "Nordset",
"firstName": "Bjørg",
"creatorType": "author"
+ },
+ {
+ "lastName": "Lesja bondekvinnelag",
+ "fieldMode": 1,
+ "creatorType": "author"
}
],
"date": "1995",
"ISBN": "9788291375052",
"libraryCatalog": "National Library of Norway",
"numPages": "176",
- "place": "Lesja",
- "publisher": "Bondekvinnelaget",
+ "publisher": "Snøhetta forl.",
"shortTitle": "Mat frå gard og grend",
- "url": "http://urn.nb.no/URN:NBN:no-nb_digibok_2008030304011",
+ "url": "https://urn.nb.no/URN:NBN:no-nb_digibok_2008030304011",
"attachments": [],
- "tags": [.
- "Foods",
- "Gudbrandsdalen",
- "History",
- "Kokebøker",
- "Lesja",
- "Mattradisjoner",
- "Merkedager",
- "Preservation",
- "Religiøse fester"
- ],
"notes": [
{
- "note": "Opplagshistorikk: 2. oppl. 1995; 3. oppl. 2001"
+ "note": "statement of responsibility: Lesja bondekvinnelag ; red.: Bjørg Nordset ; [foto: [hovedsakelig] Bjarne Fossøy].\nOpplagshistorikk: 2. oppl. 1995; 3. oppl. 2001.\nreproduction: Elektronisk reproduksjon [Norge] Nasjonalbiblioteket Digital 2009-04-09"
}
],
- "seeAlso": []
+ "seeAlso": [],
+ "tags": [],
+ "place": "Lesja",
+ "language": "nob"
}
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/SAGE Journals.js b/SAGE Journals.js
index e340973..0bd39c7 100644
--- a/SAGE Journals.js
+++ b/SAGE Journals.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-03-02 21:10:56"
+ "lastUpdated": "2018-01-14 20:53:20"
}

/*
@@ -94,6 +94,7 @@
//appeared online is in Y1. Thus, we want to prefer DA over T1
//and will therefore simply delete the later in cases both
//dates are present.
+ //Z.debug(text);
if (text.indexOf("DA - ")>-1) {
text = text.replace(/Y1 - .*\r?\n/, '');
}
@@ -119,6 +120,16 @@
if (abstract) {
item.abstractNote = abstract;
}
+
+ //Workaround while Sage hopefully fixes RIS for authors
+ for (let i = 0; i<item.creators.length; i++) {
+ if (!item.creators[i].firstName) {
+ let type = item.creators[i].creatorType;
+ let comma = item.creators[i].lastName.includes(",");
+ item.creators[i] = ZU.cleanAuthor(item.creators[i].lastName, type, comma);
+ }
+ }
+
item.notes = [];
item.language = ZU.xpathText(doc, '//meta[@name="dc.Language"]/@content');
item.attachments.push({
@@ -143,8 +154,8 @@
"title": "Emotion and Regulation are One!",
"creators": [.
{
- "lastName": "Kappas",
"firstName": "Arvid",
+ "lastName": "Kappas",
"creatorType": "author"
}
],
@@ -158,7 +169,7 @@
"libraryCatalog": "SAGE Journals",
"pages": "17-25",
"publicationTitle": "Emotion Review",
- "url": "http://dx.doi.org/10.1177/1754073910380971",
+ "url": "https://doi.org/10.1177/1754073910380971",
"volume": "3",
"attachments": [.
{
@@ -186,18 +197,18 @@
"title": "Brookfield powder flow tester – Results of round robin tests with CRM-116 limestone powder",
"creators": [.
{
+ "firstName": "R. J.",
"lastName": "Berry",
- "firstName": "RJ",
"creatorType": "author"
},
{
+ "firstName": "M. S. A.",
"lastName": "Bradley",
- "firstName": "MSA",
"creatorType": "author"
},
{
+ "firstName": "R. G.",
"lastName": "McGregor",
- "firstName": "RG",
"creatorType": "author"
}
],
@@ -210,7 +221,7 @@
"libraryCatalog": "SAGE Journals",
"pages": "215-230",
"publicationTitle": "Proceedings of the Institution of Mechanical Engineers, Part E: Journal of Process Mechanical Engineering",
- "url": "http://journals.sagepub.com/doi/abs/10.1177/0954408914525387",
+ "url": "https://doi.org/10.1177/0954408914525387",
"volume": "229",
"attachments": [.
{
@@ -238,23 +249,23 @@
"title": "Moffitt’s Developmental Taxonomy and Gang Membership: An Alternative Test of the Snares Hypothesis",
"creators": [.
{
- "lastName": "Petkovsek",
"firstName": "Melissa A.",
+ "lastName": "Petkovsek",
"creatorType": "author"
},
{
- "lastName": "Boutwell",
"firstName": "Brian B.",
+ "lastName": "Boutwell",
"creatorType": "author"
},
{
- "lastName": "Barnes",
"firstName": "J. C.",
+ "lastName": "Barnes",
"creatorType": "author"
},
{
- "lastName": "Beaver",
"firstName": "Kevin M.",
+ "lastName": "Beaver",
"creatorType": "author"
}
],
@@ -268,7 +279,7 @@
"pages": "335-349",
"publicationTitle": "Youth Violence and Juvenile Justice",
"shortTitle": "Moffitt’s Developmental Taxonomy and Gang Membership",
- "url": "http://journals.sagepub.com/doi/abs/10.1177/1541204015581389",
+ "url": "https://doi.org/10.1177/1541204015581389",
"volume": "14",
"attachments": [
{
@@ -283,4 +294,4 @@
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/
diff --git a/ScienceDirect.js b/ScienceDirect.js
index 6dbf821..ceddfdf 100644
--- a/ScienceDirect.js
+++ b/ScienceDirect.js
@@ -2,46 +2,46 @@
"translatorID": "b6d0a7a-d076-48ae-b2f0-b6de28b194e",
"label": "ScienceDirect",
"creator": "Michael Berkowitz and Aurimas Vinckevicius",
- "target": "^https?://[^/]*science-?direct\\.com[^/]*/(science(/article/|\\?.*\\b_ob=ArticleListURL|/(journal|bookseries|book|handbooks|referenceworks)/\\d)|search\\?)",
+ "target": "^https?://[^/]*science-?direct\\.com[^/]*/(science(/article/|/(journal|bookseries|book|handbooks|referenceworks)/\\d)|search\\?|journal/[^/]+/vol)",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
- "lastUpdated": "2017-10-21 08:47:21"
+ "lastUpdated": "2018-01-07 22:17:42"
}

// attr()/text() v2
-function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null}
+function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}

function detectWeb(doc, url) {
if (!doc.body.textContent.trim()) return;

- if ((url.indexOf("_ob=DownloadURL") !== -1) ||
+ if ((url.includes("_ob=DownloadURL")) ||
doc.title == "ScienceDirect Login" ||
doc.title == "ScienceDirect - Dummy" ||
- (url.indexOf("/science/advertisement/") !== -1)) {
+ (url.includes("/science/advertisement/"))) {
return false;
}

- if ((url.indexOf("pdf") !== -1 &&
- url.indexOf("_ob=ArticleURL") === -1 &&
- url.indexOf("/article/") === -1) ||
- url.search(/\/(?:journal|bookseries|book|handbooks|referenceworks)\//) !== -1 ||
- url.indexOf("_ob=ArticleListURL") !== -1) {
+ if ((url.includes("pdf") &&
+ !url.includes("_ob=ArticleURL") &&
+ !url.includes("/article/")) ||
+ url.search(/\/(?:journal|bookseries|book|handbooks|referenceworks)\//) !== -1) {
if (getArticleList(doc).length > 0) {
return "multiple";
} else {
return false;
}
}
+
if (url.includes('/search?') && getArticleList(doc).length > 0) {
return "multiple";
}
- if (url.indexOf("pdf") === -1) {
+ if (!url.includes("pdf")) {
// Book sections have the ISBN in the URL
- if (url.indexOf("/B978") !== -1) {
+ if (url.includes("/B978")) {
return "bookSection";
} else if (getISBN(doc)) {
if (getArticleList(doc).length) {
@@ -135,7 +135,7 @@
} else {
//Sometimes we are already on the PDF page here and therefore
//can simply use the original url as pdfURL.
- if (url.indexOf('.pdf') > -1) {
+ if (url.includes('.pdf')) {
pdfURL = url;
}
}
@@ -296,7 +296,7 @@
// e.g. http://www.sciencedirect.com/science/article/pii/S0065260108602506
text = text.replace(/^((?:A[U\d]|ED)\s+-\s+)(?:Editor-in-Chief:\s+)?(.+)/mg,
function(m, pre, name) {
- if (name.indexOf(',') == -1) {
+ if (!name.includes(',')) {
name = name.trim().replace(/^(.+?)\s+(\S+)$/, '$2, $1');
}

@@ -399,6 +399,7 @@
|//td[@class="nonSerialResultsList"]/h3/a\
|//div[@id="bodyMainResults"]//li[contains(@class,"title")]//a\
|//h2/a[contains(@class, "result-list-title-link")]\
+ |//ol[@class="article-list"]//a[contains(@class, "article-content-title")]\
)\[not(contains(text(),"PDF (") or contains(text(), "Related Articles"))]');
}

@@ -880,12 +881,6 @@
},
{
"type": "web",
- "url": "http://www.sciencedirect.com/science/journal/22126716",
- "defer": true,
- "items": "multiple"
- },
- {
- "type": "web",
"url": "http://www.sciencedirect.com/science/handbooks/18745709",
"defer": true,
"items": "multiple"
@@ -1051,6 +1046,11 @@
"type": "web",
"url": "http://www.sciencedirect.com/search?qs=zotero&show=25&sortBy=relevance",
"items": "multiple"
+ },
+ {
+ "type": "web",
+ "url": "https://www.sciencedirect.com/journal/le-pharmacien-hospitalier-et-clinicien/vol/52/issue/4",
+ "items": "multiple"
}
]
/** END TEST CASES **/
diff --git a/Semantic Scholar.js b/Semantic Scholar.js
new file mode 100644
index 0000000..e89ecc0
--- /dev/null
+++ b/Semantic Scholar.js
@@ -0,0 +1,617 @@
+{
+ "translatorID": "276cb34c-6861-4de7-a11d-c2e46fb8af28",
+ "label": "Semantic Scholar",
+ "creator": "Guy Aglionby",
+ "target": "^https?://(www[.])?semanticscholar\\.org/(search|paper|author)",
+ "minVersion": "3.0",
+ "maxVersion": "",
+ "priority": 100,
+ "inRepository": true,
+ "translatorType": 4,
+ "browserSupport": "gcsibv",
+ "lastUpdated": "2017-12-26 22:39:31"
+}
+
+/*
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright © 2017 Guy Aglionby
+
+ 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 *****
+*/
+
+// See also https://github.com/zotero/translators/blob/master/BibTeX.js
+var bibtex2zoteroTypeMap = {
+ "inproceedings": "conferencePaper",
+ "conference" : "conferencePaper",
+ "article" : "journalArticle"
+};
+
+function detectWeb(doc, url) {
+ if (url.includes('/search') || url.includes('/author/')) {
+ return 'multiple';
+ } else {
+ var citationElement = ZU.xpath(doc, '//cite[contains(@class,"formatted-citation--style-bibtex")]')[0];
+ if (citationElement) {
+ var type = citationElement.textContent.split("{")[0].replace("@", "");
+ return bibtex2zoteroTypeMap[type];
+ }
+ }
+}
+
+function doWeb(doc, url) {
+ if (detectWeb(doc, url) === 'multiple') {
+ Zotero.selectItems(getSearchResults(doc), function (selected) {
+ if (selected) {
+ ZU.processDocuments(Object.keys(selected), parseDocument);
+ }
+ });
+ } else {
+ parseDocument(doc, url);
+ }
+}
+
+function getSearchResults(doc) {
+ var titles = ZU.xpath(doc, '//a[@data-selenium-selector="title-link"]');
+ var results = {};
+ titles.forEach(function(linkElement) {
+ results[linkElement.href] = linkElement.textContent;
+ });
+ return results;
+}
+
+function parseDocument(doc, url) {
+ var citationElement = ZU.xpath(doc, '//cite[contains(@class, "formatted-citation--style-bibtex")]');
+
+ if (!citationElement.length) {
+ return;
+ }
+
+ var citation = citationElement[0].textContent;
+ citation = fixBibtex(citation);
+
+ var translator = Zotero.loadTranslator("import");
+ translator.setTranslator("9cb70025-a888-4a29-a210-93ec52da40d4");
+ translator.setString(citation);
+ translator.setHandler("itemDone", function (obj, item) {
+ // Add the link to Semantic Scholar
+ item.attachments.push({
+ url: url,
+ title: "Semantic Scholar Link",
+ mimeType: "text/html",
+ snapshot: false
+ });
+
+ // Attach the PDF
+ var scripts = ZU.xpath(doc, '//script');
+ var rawData = {};
+ const DATA_INDICATOR = 'var DATA =';
+ for (let i = 0; i < scripts.length; i++) {
+ if (scripts[i].innerHTML.startsWith(DATA_INDICATOR)) {
+ let dataText = scripts[i].innerHTML.replace(DATA_INDICATOR, '').slice(0, -1);
+ rawData = JSON.parse(dataText)[0].resultData.paper;
+ break;
+ }
+ }
+
+ if (item.pages) {
+ item.pages = fixPageRange(item.pages);
+ }
+
+ if (item.volume && item.volume.includes(' ')) {
+ let volumeAndIssue = item.volume.split(' ');
+ item.volume = volumeAndIssue[0];
+ item.issue = volumeAndIssue[1];
+ }
+
+ if (rawData.hasPdf) {
+ let paperLink = rawData.links.filter(function(link) { return link.linkType === 's2'; })[0].url;
+ item.attachments.push({
+ url: paperLink,
+ title: "Full Text PDF",
+ mimeType: 'application/pdf'
+ });
+ }
+
+ if (rawData.paperAbstract && rawData.paperAbstract.text) {
+ item.abstractNote = ZU.unescapeHTML(rawData.paperAbstract.text);
+ }
+
+ if (rawData.doiInfo && rawData.doiInfo.doi) {
+ item.DOI = rawData.doiInfo.doi;
+ }
+
+ if (rawData.keyPhrases) {
+ item.tags = rawData.keyPhrases;
+ }
+
+ item.complete();
+ });
+ translator.translate();
+}
+
+// Some page ranges are given as e.g. 575-84. Expand these to e.g. 575-584
+function fixPageRange(pageRange) {
+ let numbers = pageRange.split('-');
+ if (numbers.length !== 2) {
+ return pageRange;
+ }
+
+ numbers = numbers.map(function(x) { return parseInt(x); });
+
+ // No change is needed if they're already correctly formatted
+ if (numbers[0] < numbers[1]) {
+ return pageRange;
+ } else {
+ let digitsInSecond = Math.floor(Math.log10(numbers[1])) + 1;
+ let baseNumber = numbers[0];
+ let difference = 0;
+
+ for (let i = 1; i <= digitsInSecond; i++) {
+ let mod = baseNumber % (10 ** i);
+ baseNumber -= mod;
+ difference += mod;
+ }
+
+ // If the given pageRange doesn't make sense, just leave it as it has been given
+ // e.g. '95-10'
+ if(difference > numbers[1]) {
+ return pageRange;
+ }
+
+ numbers[1] = baseNumber + numbers[1];
+
+ return numbers[0] + '-' + numbers[1];
+ }
+}
+
+function fixBibtex(bibtex) {
+ // There's this issue where some characters with umlauts have unbalanced
+ // braces in the Semantic Scholar BibTeX, which kills the Zotero translator.
+ return bibtex.replace(/{\\\"{([A-Za-z])}[^}]/g, '\{\\"$1\}');
+}
+/** BEGIN TEST CASES **/
+var testCases = [
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/TectoMT-Modular-NLP-Framework-Popel-Zabokrtsk%C3%BD/89fbfabca6b605e2b00a9d57880c241c17e84001",
+ "defer": true,
+ "items": [.
+ {
+ "itemType": "conferencePaper",
+ "title": "TectoMT: Modular NLP Framework",
+ "creators": [.
+ {
+ "firstName": "Martin",
+ "lastName": "Popel",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Zdenek",
+ "lastName": "Zabokrtský",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2010",
+ "DOI": "10.1007/978-3-642-14770-8_33",
+ "abstractNote": "In the present paper we describe TectoMT, a multi-purpose open-source NLP framework. It allows for fast and efficient development of NLP applications by exploiting a wide range of software modules already integrated in TectoMT, such as tools for sentence segmentation, tokenization, morphological analysis, POS tagging, shallow and deep syntax parsing, named entity recognition, anaphora resolution, tree-to-tree translation, natural language generation, word-level alignment of parallel corpora, and other tasks. One of the most complex applications of TectoMT is the English-Czech machine translation system with transfer on deep syntactic (tectogrammatical) layer. Several modules are available also for other languages (German, Russian, Arabic). Where possible, modules are implemented in a language-independent way, so they can be reused in many applications.",
+ "itemID": "Popel2010TectoMTMN",
+ "libraryCatalog": "Semantic Scholar",
+ "proceedingsTitle": "IceTAL",
+ "shortTitle": "TectoMT",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ },
+ {
+ "title": "TectoMT: Modular NLP Framework",
+ "mimeType": "application/pdf"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "Abokrtsk"
+ },
+ {
+ "tag": "Machine Translation"
+ },
+ {
+ "tag": "Pipeline"
+ },
+ {
+ "tag": "Tectomt"
+ },
+ {
+ "tag": "Treex"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/The-spring-in-the-arch-of-the-human-foot-Ker-Bennett/d37500a6a58fd55f0998ad0394bf076484e08fe8",
+ "defer": true,
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "The spring in the arch of the human foot.",
+ "creators": [.
+ {
+ "firstName": "Robert F.",
+ "lastName": "Ker",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Michael Brian",
+ "lastName": "Bennett",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Susan R. S.",
+ "lastName": "Bibby",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Ralph C.",
+ "lastName": "Kester",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "R. McNeill",
+ "lastName": "Alexander",
+ "creatorType": "author"
+ }
+ ],
+ "date": "1987",
+ "abstractNote": "Large mammals, including humans, save much of the energy needed for running by means of elastic structures in their legs and feet. Kinetic and potential energy removed from the body in the first half of the stance phase is stored briefly as elastic strain energy and then returned in the second half by elastic recoil. Thus the animal runs in an analogous fashion to a rubber ball bouncing along. Among the elastic structures involved, the tendons of distal leg muscles have been shown to be important. Here we show that the elastic properties of the arch of the human foot are also important.",
+ "issue": "7000",
+ "itemID": "Ker1987TheSI",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "147-149",
+ "publicationTitle": "Nature",
+ "volume": "325",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/Foundations-of-Statistical-Natural-Language-Proces-Manning-Sch%C3%BCtze/06fd7d924d499fbc62ccbcc2e458fb6c187bcf6f",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Foundations of Statistical Natural Language Processing",
+ "creators": [.
+ {
+ "firstName": "Christopher D.",
+ "lastName": "Manning",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Hinrich",
+ "lastName": "Schüze",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2001",
+ "DOI": "10.1023/A:1011424425034",
+ "abstractNote": "In 1993, Eugene Charniak published a slim volume entitled Statistical Language Learning. At the time, empirical techniques to natural language processing were on the rise — in that year, Computational Linguistics published a special issue on such methods — and Charniak’s text was the first to treat the emerging field. Nowadays, the revolution has become the establishment; for instance, in 1998, nearly half the papers in Computational Linguistics concerned empirical methods (Hirschberg, 1998). Indeed, Christopher Manning and Hinrich Schütze’s new, by-no-means slim textbook on statistical NLP — strangely, the first since Charniak’s — begins, “The need for a thorough textbook for Statistical Natural Language Processing hardly needs to be argued for”. Indubitably so; the question is, is this it? Foundations of Statistical Natural Language Processing (henceforth FSNLP) is certainly ambitious in scope. True to its name, it contains a great deal of preparatory material, including: gentle introductions to probability and information theory; a chapter on linguistic concepts; and (a most welcome addition) discussion of the nitty-gritty of doing empirical work, ranging from lists of available corpora to indepth discussion of the critical issue of smoothing. Scattered throughout are also topics fundamental to doing good experimental work in general, such as hypothesis testing, cross-validation, and baselines. Along with these preliminaries, FSNLP covers traditional tools of the trade: Markov models, probabilistic grammars, supervised and unsupervised classification, and the vector-space model. Finally, several chapters are devoted to specific problems, among them lexicon acquisition, word sense disambiguation, parsing, machine translation, and information retrieval. (The companion website contains further useful material, including links to programs and a list of errata.) In short, this is a Big Book, and this fact alone already confers some benefits. For the researcher, FSNLP offers the convenience of one-stop shopping: at present, there is no other NLP reference in which standard empirical techniques, statistical tables, definitions of linguistics terms, and elements of information retrieval appear together; furthermore, the text also summarizes and critiques many individual research papers. Similarly, someone teaching a course on statistical NLP will appreciate the large number of topics FSNLP covers, allowing the tailoring of a syllabus to individual interests. And for those entering the field, the book records “folklore” knowledge that is typically acquired only by word of mouth",
+ "itemID": "Manning2001FoundationsOS",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "80-81",
+ "publicationTitle": "Information Retrieval",
+ "volume": "4",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ },
+ {
+ "title": "Foundations of Statistical Natural Language Processing",
+ "mimeType": "application/pdf"
+ }
+ ],
+ "tags": [.
+ {
+ "tag": "CFG"
+ },
+ {
+ "tag": "F Measure"
+ },
+ {
+ "tag": "N-gram"
+ },
+ {
+ "tag": "PCFG"
+ },
+ {
+ "tag": "POS"
+ }
+ ],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/Interleukin-7-mediates-the-homeostasis-of-na%C3%AFve-an-Schluns-Kieper/aee7b854bed51120fe356a5792dfb22fec7cf2ae",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Interleukin-7 mediates the homeostasis of naïe and memory CD8 T cells in vivo",
+ "creators": [.
+ {
+ "firstName": "Kimberly S.",
+ "lastName": "Schluns",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "William C.",
+ "lastName": "Kieper",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Stephen C.",
+ "lastName": "Jameson",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Leo",
+ "lastName": "Lefrançois",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2000",
+ "DOI": "10.1038/80868",
+ "abstractNote": "The naïve and memory T lymphocyte pools are maintained through poorly understood homeostatic mechanisms that may include signaling via cytokine receptors. We show that interleukin-7 (IL-7) plays multiple roles in regulating homeostasis of CD8+ T cells. We found that IL-7 was required for homeostatic expansion of naïve CD8+ and CD4+ T cells in lymphopenic hosts and for CD8+ T cell survival in normal hosts. In contrast, IL- 7 was not necessary for growth of CD8+ T cells in response to a virus infection but was critical for generating T cell memory. Up-regulation of Bcl-2 in the absence of IL-7 signaling was impaired after activation in vivo. Homeostatic proliferation of memory cells was also partially dependent on IL-7. These results point to IL-7 as a pivotal cytokine in T cell homeostasis.",
+ "itemID": "Schluns2000Interleukin7MT",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "426-432",
+ "publicationTitle": "Nature Immunology",
+ "volume": "1",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/Prim%C3%A4re-Ziliendyskinesie-in-%C3%96sterreich-Lesic-Maurer/13c67d45a9919f44bbd07fde9bdf5f4a0e9ecc8d",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "Primäre Ziliendyskinesie in Öterreich",
+ "creators": [.
+ {
+ "firstName": "Irena",
+ "lastName": "Lesic",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Elisabeth",
+ "lastName": "Maurer",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Marie-Pierre F.",
+ "lastName": "Strippoli",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Claudia E.",
+ "lastName": "Kuehni",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Angelo",
+ "lastName": "Barbato",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Thomas",
+ "lastName": "Frischer",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2009",
+ "DOI": "10.1007/s00508-009-1197-4",
+ "abstractNote": "INTRODUCTION: Primary ciliary dyskinesia (PCD) is a rare hereditary recessive disease with symptoms of recurrent pneumonia, chronic bronchitis, bronchiectasis, and chronic sinusitis. Chronic rhinitis is often the presenting symptom in newborns and infants. Approximately half of the patients show visceral mirror image arrangements (situs inversus). In this study, we aimed 1) to determine the number of paediatric PCD patients in Austria, 2) to show the diagnostic and therapeutic modalities used in the clinical centres and 3) to describe symptoms of children with PCD. PATIENTS, MATERIAL AND METHODS: For the first two aims, we analysed data from a questionnaire survey of the European Respiratory Society (ERS) task force on Primary Ciliary Dyskinesia in children. All paediatric respiratory units in Austria received a questionnaire. Symptoms of PCD patients from Vienna Children's University Hospital (aim 3) were extracted from case histories. RESULTS: In 13 Austrian clinics 48 patients with PCD (36 aged from 0–19 years) were identified. The prevalence of reported cases (aged 0–19 yrs) in Austria was 1:48000. Median age at diagnosis was 4.8 years (IQR 0.3–8.2), lower in children with situs inversus compared to those without (3.1 vs. 8.1 yrs, p = 0.067). In 2005–2006, the saccharine test was still the most commonly used screening test for PCD in Austria (45%). Confirmation of the diagnosis was usually by electron microscopy (73%). All clinics treated exacerbations immediately with antibiotics, 73% prescribed airway clearance therapy routinely to all patients. Other therapies and diagnostic tests were applied very inconsistently across Austrian hospitals. All PCD patients from Vienna (n = 13) had increased upper and lower respiratory secretions, most had recurring airway infections (n = 12), bronchiectasis (n = 7) and bronchitis (n = 7). CONCLUSION: Diagnosis and therapy of PCD in Austria are inhomogeneous. Prospective studies are needed to learn more about the course of the disease and to evaluate benefits and harms of different treatment strategies. EINLEITUNG: Die primäre Ziliendyskinesie (Primary Ciliary Dykinesia, PCD) ist eine seltene, meist autosomal-rezessiv vererbte Erkrankung, mit den typischen Manifestationen rezidivierende Pneumonien, chronische Bronchitis, Bronchiektasien, chronische Sinusitis und, insbesondere bei Neugeborenen und Säuglingen, chronischer Rhinitis. Die Hälfte der Patienten haben einen Situs inversus. Die Ziele dieser Studie waren, 1) die Anzahl pädiatrischer PCD-Patienten in Österreich zu erfassen, 2) die diagnostischen und therapeutischen Modalitäten der behandelnden Zentren darzustellen und 3) die Symptomatik der Patienten zu beschreiben. PATIENTEN, MATERIAL UND METHODEN: Zur Beantwortung der ersten zwei Fragen analysierten wir die österreichischen Resultate einer Fragebogenuntersuchung der pädiatrischen PCD Taskforce der European Respiratory Society (ERS). Die klinischen Charakteristika der PCD-Patienten an der Universitätsklinik für Kinder- und Jugendheilkunde in Wien stellten wir anhand der Krankengeschichten zusammen. ERGEBNISSE: In 13 österreichischen Krankenhäusern wurden 48 Patienten identifiziert (36 im Alter von 0–19 Jahre). Dies ergibt für Österreich eine Prävalenz diagnostizierter PCD-Patienten (0–19 Jahre) von 1:48000. Das mediane Alter bei Diagnose war 4,8 Jahre (IQR 0,3–8,2 Jahre). Patienten mit Situs inversus wurden früher diagsnotiziert (3,1 Jahre versus 8,1 Jahre; p = 0,067). Das gebräuchlichste screening-Verfahren (2005–2006) war der Saccharintest (45%), zur Diagnosesicherung wurde meist die Elektronenmikroskopie eingesetzt (73%). Alle Kliniken behandelten Exazerbationen sofort antibiotisch, Atemphysiotherapie wurde in 73% der Zentren eingesetzt. Insgesamt waren Diagnostik und Therapie der PCD in Österreich uneinheitlich. Alle Patienten der Universitätsklinik Wien (n = 13) hatten eine verstärkte Sekretproduktion, die meisten rezidivierende Atemwegsinfekte (n = 12), Bronchiektasen (n = 7) und Bronchitis (n = 7). KONKLUSION: Diagnostik und Therapie der PCD in Österreich sind uneinheitlich. Prospektive Studien sind notwendig, den Verlauf der Erkrankung zu erforschen sowie Nutzen und Schaden unterschiedlicher Therapie-konzepte darzustellen.",
+ "itemID": "Lesic2009PrimreZI",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "616-622",
+ "publicationTitle": "Wiener klinische Wochenschrift",
+ "volume": "121",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/paper/The-German-hospital-malnutrition-study-Pirlich-Schuetz/b59a79b2194f5f6d82b06593c23f25f67fbef512",
+ "items": [.
+ {
+ "itemType": "journalArticle",
+ "title": "The German hospital malnutrition study.",
+ "creators": [.
+ {
+ "firstName": "Matthias",
+ "lastName": "Pirlich",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Tatjana",
+ "lastName": "Schuetz",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Kristina",
+ "lastName": "Norman",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Sylvia",
+ "lastName": "Gastell",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Heinrich Josef",
+ "lastName": "Lüke",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Stephan",
+ "lastName": "Bischoff",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Ulrich",
+ "lastName": "Bolder",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "T. M.",
+ "lastName": "Frieling",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Helge",
+ "lastName": "Güdenzoph",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Kristian",
+ "lastName": "Hahn",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "K. W.",
+ "lastName": "Jauch",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Karin",
+ "lastName": "Schindler",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Jügen",
+ "lastName": "Stein",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Dorothee",
+ "lastName": "Volkert",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Arved",
+ "lastName": "Weimann",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Hansjög",
+ "lastName": "Werner",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Christiane",
+ "lastName": "Wolf",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Gudrun",
+ "lastName": "Zücher",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Peter",
+ "lastName": "Bauer",
+ "creatorType": "author"
+ },
+ {
+ "firstName": "Herbert",
+ "lastName": "Lochs",
+ "creatorType": "author"
+ }
+ ],
+ "date": "2006",
+ "abstractNote": "BACKGROUND & AIMS\nMalnutrition is frequently observed in chronic and severe diseases and associated with impaired outcome. In Germany general data on prevalence and impact of hospital malnutrition are missing.\n\n\nMETHODS\nNutritional state was assessed by subjective global assessment (SGA) and by anthropometric measurements in 1,886 consecutively admitted patients in 13 hospitals (n=1,073, university hospitals; n=813, community or teaching hospitals). Risk factors for malnutrition and the impact of nutritional status on length of hospital stay were analyzed.\n\n\nRESULTS\nMalnutrition was diagnosed in 27.4% of patients according to SGA. A low arm muscle area and arm fat area were observed in 11.3% and 17.1%, respectively. Forty-three % of patients 70 years old were malnourished compared to only 7.8% of patients <30 years. The highest prevalence of malnutrition was observed in geriatric (56.2%), oncology (37.6%), and gastroenterology (32.6%) departments. Multivariate analysis revealed three independent risk factors: higher age, polypharmacy, and malignant disease (all P<0.01). Malnutrition was associated with an 43% increase of hospital stay (P<0.001).\n\n\nCONCLUSIONS\nIn German hospitals every fourth patient is malnourished. Malnutrition is associated with increased length of hospital stay. Higher age, malignant disease and major comorbidity were found to be the main contributors to malnutrition. Adequate nutritional support should be initiated in order to optimize the clinical outcome of these patients.",
+ "issue": "4",
+ "itemID": "Pirlich2006TheGH",
+ "libraryCatalog": "Semantic Scholar",
+ "pages": "563-572",
+ "publicationTitle": "Clinical nutrition",
+ "volume": "25",
+ "attachments": [.
+ {
+ "title": "Semantic Scholar Link",
+ "mimeType": "text/html",
+ "snapshot": false
+ },
+ {
+ "title": "The German hospital malnutrition study.",
+ "mimeType": "application/pdf"
+ }
+ ],
+ "tags": [],
+ "notes": [],
+ "seeAlso": []
+ }
+ ]
+ },
+ {
+ "type": "web",
+ "url": "https://www.semanticscholar.org/author/Josie-Holmes/27569076",
+ "items": "multiple"
+ }
+]
+/** END TEST CASES **/
+
diff --git a/beck-online.js b/beck-online.js
index f1d5911..8e69e48 100644
--- a/beck-online.js
+++ b/beck-online.js
@@ -9,7 +9,7 @@
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcs",
- "lastUpdated": "2016-09-09 13:18:27"
+ "lastUpdated": "2018-01-08 17:17:11"
}

/*
@@ -46,7 +46,8 @@
'LSK' : 'journalArticle', // Artikel in Leitsatzkartei
'ZINHALTVERZ' : 'multiple',//Inhaltsverzeichnis
'KOMMENTAR' : 'encyclopediaArticle',
- 'ALTEVERSION' : 'encyclopediaArticle'
+ 'ALTEVERSION' : 'encyclopediaArticle',
+ 'ALTEVERSION KOMMENTAR' : 'encyclopediaArticle'
}

// build a regular expression for author cleanup in authorRemoveTitlesEtc()
@@ -179,7 +180,7 @@
// description example 1: "Marco Ganzhorn: Ist ein E-Book ein Buch?"
// description example 2: "Michael Fricke/Dr. Martin Gerecke: Informantenschutz und Informantenhaftung"
// description example 3: "Sara Sun Beale: Die Entwicklung des US-amerikanischen Rechts der strafrechtlichen Verantwortlichkeit von Unternehmen"
- var description = ZU.xpathText(doc, "//*[@id='doktoccontent']/h1");
+ var description = ZU.xpathText(doc, "//*[@id='dokcontent']/h1");
var descriptionItems = description.split(':');

//authors
@@ -286,14 +287,14 @@
item.extra += "{:jurisdiction: de}";
}

- var decisionDateStr = ZU.xpathText(doc, '//span[@class="edat"] | //span[@class="EDAT"] | //span[@class="datum"]');
+ var decisionDateStr = ZU.xpathText(doc, '(//span[@class="edat"] | //span[@class="EDAT"] | //span[@class="datum"])[1]');
if (decisionDateStr == null) {
decisionDateStr = alternativeData[3];
}
//e.g. 24. 9. 2001 or 24-9-1990
item.dateDecided = decisionDateStr.replace(/(\d\d?)[\.-]\s*(\d\d?)[\.-]\s*(\d\d\d\d)/, "$3-$2-$1");

- item.docketNumber = ZU.xpathText(doc, '//span[@class="az"]');
+ item.docketNumber = ZU.xpathText(doc, '(//span[@class="az"])[1]');
if (item.docketNumber == null) {
item.docketNumber = alternativeData[4];
}
@@ -341,7 +342,7 @@
item.pages = beckRSsrc[3];*/
}

- var otherCitations = ZU.xpath(doc, '//li[a[@title="Parallelfundstellen"]]')[0];
+ var otherCitations = ZU.xpath(doc, '//div[@id="verweiszettel-top"]//li[a[contains(text(), "Parallelfundstellen")]]')[0];
if (otherCitations) {
var otherCitationsText = ZU.xpathText(otherCitations, './following-sibling::li/ul/li', null, " ; ");
if (otherCitationsText) {
@@ -361,14 +362,14 @@
// there is additional information if the case is published in a journal
if (documentClassName == 'ZRSPR') {
// short title of publication
- item.reporter = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/a[2]');
+ item.reporter = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/a[2]');
// long title of publication
var publicationTitle = ZU.xpathText(doc, '//li[@class="breadcurmbelemenfirst"]');
if (publicationTitle) {
note = addNote(note, "<h3>Zeitschrift Titel</h3><p>" + ZU.trimInternal(publicationTitle) + "</p>");
}

- item.date = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/ul/li/a[2]');
+ item.date = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/ul/li/a[2]');

//e.g. ArbrAktuell 2014, 150
var shortCitation = ZU.xpathText(doc, '//div[@class="dk2"]//span[@class="citation"]');
@@ -470,12 +471,12 @@
}

item.publicationTitle = ZU.xpathText(doc, '//li[@class="breadcurmbelemenfirst"]');
- item.journalAbbreviation = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/a[2]');
+ item.journalAbbreviation = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/a[2]');

- item.date = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/ul/li/a[2]');
+ item.date = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/ul/li/a[2]');

//e.g. Heft 6 (Seite 141-162)
- var issueText = ZU.xpathText(doc, '//div[@id="doktoccontent"]/ul/li/ul/li/ul/li/a[2]');
+ var issueText = ZU.xpathText(doc, '//div[@id="toccontent"]/ul/li/ul/li/ul/li/a[2]');

if (issueText) {
item.issue = issueText.replace(/\([^\)]*\)/,"");
@@ -573,7 +574,7 @@
"tags": [],
"notes": [
{
- "note": "Additional Metadata: <h3>Beschreibung</h3><p>Schadensersatz wegen fehlerhafter Ad-hoc-Mitteilungen („Infomatec”)</p><h3>Parallelfundstellen</h3><p>BB 2001 Heft 42, 2130 ; BeckRS 9998, 03964 ; NJOZ 2001, 1878 ; NJW-RR 2001, 1705 ; NZG 2002, 429 ; WuB I G 7. - 8.01 Schäfer... ; FHZivR 47 Nr. 2816 (Ls.) ; FHZivR 47 Nr. 6449 (Ls.) ; FHZivR 48 Nr. 2514 (Ls.) ; FHZivR 48 Nr. 6053 (Ls.) ; LSK 2001, 520032 (Ls.) ; NJW-RR 2003, 216 (Ls.) ; DB 2001, 2334 ; WPM 2001, 1944 ; WuB 2001, 1269 ; ZIP 2001, 1881</p><h3>Normen</h3><p>§ WPHG § 15 WpHG; § BOERSG § 88 BörsG; §§ BGB § 823, BGB § 826 BGB</p><h3>Zeitschrift Titel</h3><p>Zeitschrift für Bank- und Kapitalmarktrecht</p>"
+ "note": "Additional Metadata: <h3>Beschreibung</h3><p>Schadensersatz wegen fehlerhafter Ad-hoc-Mitteilungen („Infomatec”)</p><h3>Parallelfundstellen</h3><p>BeckRS 9998, 03964 ; EWiR 2001, 1049 (m. Anm. … ; NJOZ 2001, 1878 ; NJW-RR 2001, 1705 ; NZG 2002, 429 ; WM 2001 Heft 41, 1944 ; WuB I G 7. - 8.01 Schäfer… ; ZIP 2001, 1881 (m. Anm.) ; FHZivR 47 Nr. 2816 (Ls.) ; FHZivR 47 Nr. 6449 (Ls.) ; FHZivR 48 Nr. 2514 (Ls.) ; FHZivR 48 Nr. 6053 (Ls.) ; LSK 2001, 520032 (Ls.) ; NJW-RR 2003, 216 (Ls.) ; DB 2001, 2334 ; WuB 2001, 1269</p><h3>Normen</h3><p>§ WPHG § 15 WpHG; § BOERSG § 88 BörsG; §§ BGB § 823, BGB § 826 BGB</p><h3>Zeitschrift Titel</h3><p>Zeitschrift für Bank- und Kapitalmarktrecht</p>"
}
],
"seeAlso": []
@@ -647,7 +648,7 @@
}
],
"date": "2014",
- "abstractNote": "Die Durchführung von Beweisverfahren ist mit Duldungs- und Mitwirkungspflichten von Beweisgegnern und Dritten verbunden, die nur über begrenzte Weigerungsrechte verfügen. Einen Sonderfall bildet der bei „Wohnungsbetroffenheit“ eingreifende letzte Halbsatz des § ZPO § 144 ZPO § 144 Absatz I 3 ZPO. Dessen Voraussetzungen und Reichweite bedürfen der Klärung. Ferner gibt die neuere Rechtsprechung Anlass zu untersuchen, inwieweit auch der Eigentumsschutz einer Beweisaufnahme entgegenstehen kann.",
+ "abstractNote": "Die Durchführung von Beweisverfahren ist mit Duldungs- und Mitwirkungspflichten von Beweisgegnern und Dritten verbunden, die nur über begrenzte Weigerungsrechte verfügen. Einen Sonderfall bildet der bei „Wohnungsbetroffenheit“ eingreifende letzte Halbsatz des § ZPO § 144 ZPO § 144 Absatz I 3 ZPO. Dessen Voraussetzungen und Reichweite bedürfen der Klärung. Ferner gibt die neuere Rechtsprechung Anlass zu untersuchen, inwieweit auch der Eigentumsschutz einer Beweisaufnahme entgegenstehen kann.",
"issue": "46",
"journalAbbreviation": "NJW",
"libraryCatalog": "beck-online",
@@ -716,7 +717,7 @@
}
],
"date": "2014",
- "abstractNote": "Nachdem die Selbstanzeige nach § AO § 371 AO bereits im Frühjahr 2011 nur knapp einer Abschaffung entging und (lediglich) verschärft wurde, plant der Gesetzgeber nun eine weitere Einschränkung. Dabei unterscheiden sich der Referentenentwurf vom 27.8.2014 und der Regierungsentwurf vom 26.9.2014 scheinbar kaum; Details legen aber die Vermutung nahe, dass dort noch einmal jemand „gebremst“ hat. zur Fussnote 1",
+ "abstractNote": "Nachdem die Selbstanzeige nach § AO § 371 AO bereits im Frühjahr 2011 nur knapp einer Abschaffung entging und (lediglich) verschärft wurde, plant der Gesetzgeber nun eine weitere Einschränkung. Dabei unterscheiden sich der Referentenentwurf vom 27.8.2014 und der Regierungsentwurf vom 26.9.2014 scheinbar kaum; Details legen aber die Vermutung nahe, dass dort noch einmal jemand „gebremst“ hat. zur Fussnote 1",
"issue": "46",
"journalAbbreviation": "DStR",
"libraryCatalog": "beck-online",
@@ -784,7 +785,7 @@
}
],
"date": "2014",
- "abstractNote": "Die Durchführung von Beweisverfahren ist mit Duldungs- und Mitwirkungspflichten von Beweisgegnern und Dritten verbunden, die nur über begrenzte Weigerungsrechte verfügen. Einen Sonderfall bildet der bei „Wohnungsbetroffenheit“ eingreifende letzte Halbsatz des § ZPO § 144 ZPO § 144 Absatz I 3 ZPO. Dessen Voraussetzungen und Reichweite bedürfen der Klärung. Ferner gibt die neuere Rechtsprechung Anlass zu untersuchen, inwieweit auch der Eigentumsschutz einer Beweisaufnahme entgegenstehen kann.",
+ "abstractNote": "Die Durchführung von Beweisverfahren ist mit Duldungs- und Mitwirkungspflichten von Beweisgegnern und Dritten verbunden, die nur über begrenzte Weigerungsrechte verfügen. Einen Sonderfall bildet der bei „Wohnungsbetroffenheit“ eingreifende letzte Halbsatz des § ZPO § 144 ZPO § 144 Absatz I 3 ZPO. Dessen Voraussetzungen und Reichweite bedürfen der Klärung. Ferner gibt die neuere Rechtsprechung Anlass zu untersuchen, inwieweit auch der Eigentumsschutz einer Beweisaufnahme entgegenstehen kann.",
"issue": "46",
"journalAbbreviation": "NJW",
"libraryCatalog": "beck-online",
@@ -875,13 +876,14 @@
},
{
"type": "web",
- "url": "https://beck-online.beck.de/?vpath=bibdata%2fents%2furteile%2f2012%2fcont%2fbeckrs_2012_09546.htm",
+ "url": "https://beck-online.beck.de/Dokument?vpath=bibdata%2Fents%2Fbeckrs%2F2012%2Fcont%2Fbeckrs.2012.09546.htm&anchor=Y-300-Z-BECKRS-B-2012-N-09546",
"items": [.
{
"itemType": "case",
"caseName": "OLG Köln, 23.03.2012 - 6 U 67/11",
"creators": [],
"dateDecided": "2012-03-23",
+ "abstractNote": "Leitsätze:\n\t\t\t\t\t1. Die Eltern eines 13-jährigen Sohnes, dem sie einen PC mit Internetanschluss überlassen haben, können ihrer aus § BGB § 832 BGB § 832 Absatz I BGB resultierenden Aufsichtspflicht zur Verhinderung der Teilnahme des Kindes an illegalen sog. Tauschbörsen durch die Installation einer Firewall und eines Passwortes sowie monatliche stichprobenmäßige Kontrollen genügen. Diese Kontrollen sind aber nicht hinreichend durchgeführt worden, wenn die Eltern über Monate das trotz der installierten Schutzmaßnahmen erfolgte Herunterladen zweier Filesharingprogramme nicht entdecken, für die Ikons auf dem Desktop sichtbar waren.\n\t\t\t\t\t2. Die Höhe des dem Rechteinhaber durch die Teilnahme an einer sog. Tauschbörse entstandenen, im Wege der Lizenzanalogie berechneten Schadens ist mangels besser geeigneter Grundlagen an dem GEMA Tarif zu orientieren, der dem zu beurteilenden Sachverhalt am nächsten kommt. Das ist nicht der Tarif VR W 1, sondern der (frühere) Tarif VR-OD 5. Es sind weiter alle in Betracht kommenden Umstände wie die Länge des Zeitraumes, in dem der Titel in die \"Tauschbörse\" eingestellt war, und die Höhe des Lizenzbetrages zu berücksichtigen, der für vergleichbare Titel nach Lizenzierung gezahlt wird. Sind gängige Titel über Monate durch die Tauschbörse öffentlich zugänglichgemacht worden, so kann ein Betrag von 200 € für jeden Titel geschuldet sein.",
"court": "OLG Köln",
"docketNumber": "6 U 67/11",
"extra": "{:jurisdiction: de}\n{:genre: Urt.}",
@@ -893,7 +895,7 @@
"tags": [],
"notes": [
{
- "note": "Additional Metadata: <h3>Fundstelle</h3><p>BeckRS 2012, 09546</p><h3>Parallelfundstellen</h3><p>GRUR-Prax 2012, 238 (m. A... ; MMR 2012, 387 (m. Anm. Ho... ; NJOZ 2013, 365 ; ZUM 2012, 697 ; LSK 2012, 250148 (Ls.) ; CR 2012, 397 ; K & R 2012, 437 L ; MD 2012, 621 ; WRP 2012, 1007</p>"
+ "note": "Additional Metadata: <h3>Fundstelle</h3><p>BeckRS 2012, 09546</p><h3>Parallelfundstellen</h3><p>GRUR-Prax 2012, 238 (m. A… ; MMR 2012, 387 (m. Anm. Ho… ; NJOZ 2013, 365 ; ZUM 2012, 697 ; LSK 2012, 250148 (Ls.) ; CR 2012, 397 ; K & R 2012, 437 ; MD 2012, 621 ; WRP 2012, 1007</p><h3>Normen</h3><p>Normenketten: BGB § BGB § 683 S. 1, § 670, § 832 Abs. 1 UrhG § URHG § 19a, § 97 Abs. 2</p>"
}
],
"seeAlso": []
@@ -924,7 +926,7 @@
"tags": [],
"notes": [
{
- "note": "Additional Metadata: <h3>Beschreibung</h3><p>EU-konforme unbestimmte Sperrverfügung gegen Internetprovider - UPC Telekabel/Constantin Film ua [kino.to]</p><h3>Parallelfundstellen</h3><p>BeckEuRS 2014, 417030 ; BeckEuRS 2014, 754042 ; BeckRS 2014, 80615 ; EuZW 2014, 388 (m. Anm. K... ; GRUR 2014, 468 (m. Anm. M... ; GRUR Int. 2014, 469 ; GRUR-Prax 2014, 157 (m. A... ; MMR 2014, 397 (m. Anm. Ro... ; NJW 2014, 1577 ; ZUM 2014, 494 ; LSK 2014, 160153 (Ls.) ; EuGRZ 2014, 301 ; EWS 2014, 225 ; K & R 2014, 329 ; MittdtPatA 2014, 335 L ; WRP 2014, 540</p><h3>Normen</h3><p>AEUV Art. AEUV Artikel 267; Richtlinie 2001/29/EG Art. EWG_RL_2001_29 Artikel 3 EWG_RL_2001_29 Artikel 3 Absatz II, EWG_RL_2001_29 Artikel 8 EWG_RL_2001_29 Artikel 3 Absatz III</p><h3>Zeitschrift Titel</h3><p>Gewerblicher Rechtsschutz und Urheberrecht</p>"
+ "note": "Additional Metadata: <h3>Beschreibung</h3><p>EU-konforme unbestimmte Sperrverfügung gegen Internetprovider - UPC Telekabel/Constantin Film ua [kino.to]</p><h3>Parallelfundstellen</h3><p>BeckEuRS 2014, 417030 ; BeckRS 2014, 80615 ; EuZW 2014, 388 (m. Anm. K… ; GRUR Int. 2014, 469 ; GRUR-Prax 2014, 157 (m. A… ; MMR 2014, 397 (m. Anm. Ro… ; NJW 2014, 1577 ; ZUM 2014, 494 ; LSK 2014, 160153 (Ls.) ; EuGRZ 2014, 301 ; EWS 2014, 225 ; GRUR-Prax 2014, 157 ; K & R 2014, 329 ; MittdtPatA 2014, 335 ; MittdtPatA 2014, 335 L ; WRP 2014, 540 ; MMR-Aktuell 2014, 356790 ; MMR-Aktuell 2014, 356900</p><h3>Normen</h3><p>AEUV Art. AEUV Artikel 267; Richtlinie 2001/29/EG Art. EWG_RL_2001_29 Artikel 3 EWG_RL_2001_29 Artikel 3 Absatz II, EWG_RL_2001_29 Artikel 8 EWG_RL_2001_29 Artikel 3 Absatz III</p><h3>Zeitschrift Titel</h3><p>Gewerblicher Rechtsschutz und Urheberrecht</p>"
}
],
"seeAlso": []
@@ -956,7 +958,7 @@
"tags": [],
"notes": [.
{
- "note": "Additional Metadata: <h3>Beschreibung</h3><p>Indizierung eines pornographischen Romans (\"Josefine Mutzenbacher\") zur Fussnote †</p><h3>Parallelfundstellen</h3><p>BeckRS 9998, 165476 ; BeckRS 9998, 169076 ; NStZ 1991, 188 ; BeckRS 9998, 170068 (Ls.) ; FHOeffR 42 Nr. 13711 (Ls.... ; FHOeffR 42 Nr. 13713 (Ls.... ; FHOeffR 42 Nr. 6327 (Ls.) ; FHOeffR 42 Nr. 7072 (Ls.) ; LSK 1991, 230089 (Ls.) ; NVwZ 1991, 663 (Ls.) ; AfP 1991, 379 ; AfP 1991, 384 ; Bespr.: , JZ 1991, 470 ; BVerfGE 83, 130 ; DVBl 1991, 261 ; EuGRZ 1991, 33 ; JZ 1991, 465</p><h3>Normen</h3><p>GG Art. GG Artikel 1 GG Artikel 1 Absatz I, GG Artikel 2 GG Artikel 2 Absatz I, GG Artikel 5 GG Artikel 5 Absatz III 1, GG Artikel 6 GG Artikel 6 Absatz II, GG Artikel 19 GG Artikel 19 Absatz I 2, GG Artikel 19 Absatz IV, GG Artikel 20 GG Artikel 20 Absatz III, GG Artikel 103 GG Artikel 103 Absatz I; GjS §§ 1, 6, 9 II</p><h3>Zeitschrift Titel</h3><p>Neue Juristische Wochenschrift</p>"
+ "note": "Additional Metadata: <h3>Beschreibung</h3><p>Indizierung eines pornographischen Romans (\"Josefine Mutzenbacher\") zur Fussnote †</p><h3>Parallelfundstellen</h3><p>BeckRS 9998, 165476 ; NStZ 1991, 188 ; FHOeffR 42 Nr. 13711 (Ls.) ; FHOeffR 42 Nr. 13713 (Ls.) ; FHOeffR 42 Nr. 6327 (Ls.) ; FHOeffR 42 Nr. 7072 (Ls.) ; LSK 1991, 230089 (Ls.) ; NVwZ 1991, 663 (Ls.) ; AfP 1991, 379 ; AfP 1991, 384 ; Bespr.: , JZ 1991, 470 ; BVerfGE 83, 130 ; DVBl 1991, 261 ; EuGRZ 1991, 33 ; JZ 1991, 465 ; ZUM 1991, 310</p><h3>Normen</h3><p>GG Art. GG Artikel 1 GG Artikel 1 Absatz I, GG Artikel 2 GG Artikel 2 Absatz I, GG Artikel 5 GG Artikel 5 Absatz III 1, GG Artikel 6 GG Artikel 6 Absatz II, GG Artikel 19 GG Artikel 19 Absatz I 2, GG Artikel 19 Absatz IV, GG Artikel 20 GG Artikel 20 Absatz III, GG Artikel 103 GG Artikel 103 Absatz I; GjS §§ 1, 6, 9 II</p><h3>Zeitschrift Titel</h3><p>Neue Juristische Wochenschrift</p>"
}
],
"seeAlso": []
@@ -1047,4 +1049,4 @@
]
}
]
-/** END TEST CASES **/
\ No newline at end of file
+/** END TEST CASES **/

--
To view, visit https://gerrit.wikimedia.org/r/405702
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic2bc6e1facba2d5b88e4e749bf088f28a3b7ef0c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/zotero/translators
Gerrit-Branch: master
Gerrit-Owner: Mvolz <mvolz@wikimedia.org>
Gerrit-Reviewer: Mine0901 <sonaligpt0@gmail.com>
Gerrit-Reviewer: Mobrovac <mobrovac@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits