Project

General

Profile

« Previous | Next » 

Revision 55522

Added by Enrico Ottonello almost 5 years ago

generate actionset for orcid works and unit tests

View differences:

modules/dnet-mapreduce-jobs/trunk/src/test/java/eu/dnetlib/data/mapreduce/actions/OrcidToActionsTest.java
1
package eu.dnetlib.data.mapreduce.actions;
2

  
3
import java.io.BufferedReader;
4
import java.io.IOException;
5
import java.io.InputStream;
6
import java.io.InputStreamReader;
7

  
8
import org.apache.commons.lang3.StringUtils;
9
import org.junit.Before;
10
import org.junit.Test;
11

  
12
import com.google.gson.JsonObject;
13
import com.google.gson.JsonParser;
14

  
15
import eu.dnetlib.actionmanager.actions.ActionFactory;
16
import eu.dnetlib.actionmanager.common.Agent;
17
import eu.dnetlib.data.mapreduce.hbase.Reporter;
18
import eu.dnetlib.data.mapreduce.hbase.dataimport.OrcidToActions;
19

  
20
public class OrcidToActionsTest {
21

  
22
	private String setName;
23
	private Agent agent;
24
	private Reporter reporter;
25

  
26
	@Before
27
	public void setup() {
28
		setName = "DLI";
29
		agent = new Agent("agentId", "agentName", Agent.AGENT_TYPE.service);
30
		reporter =
31
				(Reporter) (counterGroup, counterName, delta) -> System.out.println(String.format("COUNTER: %s - %s : %d", counterGroup, counterName, delta));
32
	}
33

  
34
	@Test
35
	public void testUnicodeAction() throws IOException {
36
		doTestSingleAction("/eu/dnetlib/data/mapreduce/actions/OrcidAction_1.json");
37

  
38
	}
39

  
40
	@Test
41
	public void testSourceWorkIdAction() throws IOException {
42
		doTestSingleAction("/eu/dnetlib/data/mapreduce/actions/OrcidAction_2.json");
43

  
44
	}
45

  
46
	@Test
47
	public void testAuthorsRank() throws IOException {
48
		doTestSingleAction("/eu/dnetlib/data/mapreduce/actions/OrcidAction_3.json");
49
		doTestSingleAction("/eu/dnetlib/data/mapreduce/actions/OrcidAction_4.json");
50
		doTestSingleAction("/eu/dnetlib/data/mapreduce/actions/OrcidAction_5.json");
51

  
52
	}
53

  
54
	@Test
55
	public void testUrl() throws IOException {
56
		doTestSingleAction("/eu/dnetlib/data/mapreduce/actions/OrcidAction_6.json");
57

  
58
	}
59

  
60
	@Test
61
	public void testNullUrlAction() throws IOException {
62
		doTestSingleAction("/eu/dnetlib/data/mapreduce/actions/OrcidAction_7.json");
63

  
64
	}
65

  
66
	@Test
67
	public void testMassiveOrcidAction() throws IOException {
68
		doTestAllOrcidAction("/eu/dnetlib/data/mapreduce/actions/part-100");
69
	}
70

  
71
	private void doTestSingleAction(final String filePath) throws IOException {
72
		final InputStream is = this.getClass().getResourceAsStream(filePath);
73
		final BufferedReader in = new BufferedReader(new InputStreamReader(is));
74

  
75
		final String line = in.readLine();
76

  
77
		final JsonParser parser = new JsonParser();
78
		final JsonObject root = parser.parse(line).getAsJsonObject();
79
		OrcidToActions.generatePublicationActionsFromDump(root, new ActionFactory(), setName, agent, reporter);
80

  
81
	}
82

  
83
	private void doTestAllOrcidAction(final String filePath) throws IOException {
84
		final InputStream is = this.getClass().getResourceAsStream(filePath);
85
		final BufferedReader in = new BufferedReader(new InputStreamReader(is));
86
		String line = in.readLine();
87
		int i = 0;
88
		while (StringUtils.isNotBlank(line)) {
89
			final JsonParser parser = new JsonParser();
90
			final JsonObject root = parser.parse(line).getAsJsonObject();
91
			try {
92
				OrcidToActions.generatePublicationActionsFromDump(root, new ActionFactory(), setName, agent, reporter);
93
			} catch (final Throwable e) {
94
				System.out.println("Exception parsing: " + line);
95
				throw new RuntimeException(e);
96
			}
97
			line = in.readLine();
98
			i += 1;
99
		}
100
		System.out.println("parsed: " + i);
101
	}
102
}
modules/dnet-mapreduce-jobs/trunk/src/test/resources/eu/dnetlib/data/mapreduce/actions/OrcidAction_1.json
1
{"source": "\u4e16\u754c\u4e2d\u5fc3\u603b\u90e8\u4e16\u754c\u79d1\u5b66\u6280\u672f\u6587\u5316\u4e2d\u5fc3\u4e16\u754c\u7edf\u4e00\u79d1\u5b66\u8054\u5408\u4f1a\u4e16\u754c\u4e2d\u592e\u6613\u5b66\u9886\u8896\u603b\u9662\u4e16\u754c\u4e2d\u592e\u6613\u5b66\u9886\u8896\u603b\u9662\u56fd\u9645\u6613\u5b66\u8054\u5408\u4f1a\u7edf\u4e00\u4e3b\u529e\u672c\u7f51\u4e2d\u592e\u8054\u5408\u56fd\u7edf\u4e00\u8ba4\u8bc1\u53d1\u5e03\u4e16\u754c\u901a\u7528\u767e\u79d1\u8f9e\u5178\u9707\u60ca\u4e2d\u5916\u9707\u64bc\u5b87\u5b99\u7684\u91cd\u5927\u65b0\u95fb", "titles": ["\u56fd\u9645\u6613\u5b66\u8054\u5408\u4f1a"], "urls": ["http://yhxz.16789.net/index.asp?ActionX=Readart&NewsID=2083695"], "authors": [{"oid": "0000-0002-7526-345X", "surname": "\u4e16\u754c\u4e2d\u5fc3\u603b\u90e8\u4e16\u754c\u79d1\u5b66\u6280\u672f\u6587\u5316\u4e2d\u5fc3\u4e16\u754c\u7edf\u4e00\u79d1\u5b66\u8054\u5408\u4f1a\u4e16\u754c\u4e2d\u592e\u6613\u5b66\u9886\u8896\u603b\u9662\u4e16\u754c\u4e2d\u592e\u6613\u5b66\u9886\u8896\u603b\u9662\u56fd\u9645\u6613\u5b66\u8054\u5408\u4f1a\u7edf\u4e00\u4e3b\u529e\u672c\u7f51\u4e2d\u592e\u8054\u5408\u56fd\u7edf\u4e00\u8ba4\u8bc1\u53d1\u5e03\u4e16\u754c\u901a\u7528\u767e\u79d1\u8f9e\u5178\u9707\u60ca\u4e2d\u5916\u9707\u64bc\u5b87\u5b99\u7684\u91cd\u5927\u65b0\u95fb", "name": "\u4e16\u754c\u4e2d\u5fc3\u603b\u90e8\u4e16\u754c\u79d1\u5b66\u6280\u672f\u6587\u5316\u4e2d\u5fc3\u4e16\u754c\u7edf\u4e00\u79d1\u5b66\u8054\u5408\u4f1a\u4e16\u754c\u4e2d\u592e\u6613\u5b66\u9886\u8896\u603b\u9662\u4e16\u754c\u4e2d\u592e\u6613\u5b66\u9886\u8896\u603b\u9662\u56fd\u9645\u6613\u5b66\u8054\u5408\u4f1a\u7edf\u4e00\u4e3b\u529e\u672c\u7f51\u4e2d\u592e\u8054\u5408\u56fd\u7edf\u4e00\u8ba4\u8bc1\u53d1\u5e03\u4e16\u754c\u901a\u7528\u767e\u79d1\u8f9e\u5178\u9707\u60ca\u4e2d\u5916\u9707\u64bc\u5b87\u5b99\u7684\u91cd\u5927\u65b0\u95fb", "seq": 1, "others": ["\u272b\u5b87\u5b99\u4e2d\u592e\u4e16\u754c\u672c\u539f\u7edf\u4e00\u79d1\u5b66\u9662\u4e2d\u592e\u59d4\u5458\u4f1a\u4e16\u754c\u4e00\u7edf\u56fd\u5bb6\u4e2d\u592e\u59d4\u5458\u4f1a\u4e16\u754c\u5171\u4ea7\u515a\u4e2d\u592e\u59d4\u5458\u4f1a\u4e16\u754c\u7edf\u4e00\u4e2d\u592e\u519b\u59d4\u4e2d\u5171\u4e2d\u592e\u4e2d\u592e\u519b\u59d4\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u4e2d\u592e\u4eba\u6c11\u653f\u5e9c\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u4e2d\u592e\u4eba\u6c11\u653f\u5e9c\u56fd\u52a1\u9662\u4e2d\u56fd\u4eba\u5927\u5e38\u59d4\u4f1a\u5168\u56fd\u653f\u534f\u5e38\u59d4\u4f1a\u4e16\u754c\u5404\u56fd\u653f\u5e9c\u8054\u5408\u56fd\u7edf\u4e00\u8ba4\u8bc1\u53d1\u5e03\u4e16\u754c\u901a\u7528\u767e\u79d1\u8f9e\u5178\u9707\u60ca\u4e2d\u5916\u9707\u64bc\u5b87\u5b99\u7684\u91cd\u5927\u65b0\u95fb", "\u272b\u5b87\u5b99\u4e2d\u592e\u4e16\u754c\u672c\u539f\u7edf\u4e00\u79d1\u5b66\u9662\u4e2d\u592e\u59d4\u5458\u4f1a\u4e16\u754c\u4e00\u7edf\u56fd\u5bb6\u4e2d\u592e\u59d4\u5458\u4f1a\u4e16\u754c\u5171\u4ea7\u515a\u4e2d\u592e\u59d4\u5458\u4f1a\u4e16\u754c\u7edf\u4e00\u4e2d\u592e\u519b\u59d4\u4e2d\u5171\u4e2d\u592e\u4e2d\u592e\u519b\u59d4\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u4e2d\u592e\u4eba\u6c11\u653f\u5e9c\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u4e2d\u592e\u4eba\u6c11\u653f\u5e9c\u56fd\u52a1\u9662\u4e2d\u56fd\u4eba\u5927\u5e38\u59d4\u4f1a\u5168\u56fd\u653f\u534f\u5e38\u59d4\u4f1a\u4e16\u754c\u5404\u56fd\u653f\u5e9c\u8054\u5408\u56fd\u7edf\u4e00\u8ba4\u8bc1\u53d1\u5e03\u4e16\u754c\u901a\u7528\u767e\u79d1\u8f9e\u5178\u9707\u60ca\u4e2d\u5916\u9707\u64bc\u5b87\u5b99\u7684\u91cd\u5927\u65b0\u95fb"]}], "publication_date": {"month": "09", "day": "03", "year": "2018"}, "type": "dictionary-entry", "id": "48779166"}
modules/dnet-mapreduce-jobs/trunk/src/test/resources/eu/dnetlib/data/mapreduce/actions/OrcidAction_2.json
1
{"authors": [{"name": "Thomas Riis", "seq": "first"}, {"oid": "0000-0003-4872-879X", "surname": "Schovsbo", "name": "Jens Hemmingsen", "seq": "additional"}], "source": "University of Copenhagen", "titles": ["Compulsory Licences and Trade Marks"], "urls": ["https://curis.ku.dk/portal/en/publications/compulsory-licences-and-trade-marks(93dc5709-2675-4463-bb27-eb54844c2381).html"], "source-work-id": "93dc5709-2675-4463-bb27-eb54844c2381", "publication_date": {"year": "2012"}, "type": "journal-article", "id": "26376063"}
modules/dnet-mapreduce-jobs/trunk/src/test/resources/eu/dnetlib/data/mapreduce/actions/OrcidAction_3.json
1
{"source": "Europe PubMed Central", "titles": ["Factors influencing accuracy of referral and the likelihood of false positive referral by optometrists in Bradford, United Kingdom."], "urls": ["http://europepmc.org/abstract/med/26614021"], "authors": [{"oid": "0000-0002-9050-379X", "surname": "Davey", "name": "Christopher", "seq": "first"}, {"name": "Scally AJ", "seq": "first"}, {"name": "Green C", "seq": "first"}, {"name": "Mitchell ES", "seq": "first"}, {"name": "Elliott DB", "seq": "first"}], "publication_date": {"month": "11", "year": "2015"}, "pmid": "26614021", "type": "journal-article", "id": "24099977"}
modules/dnet-mapreduce-jobs/trunk/src/test/resources/eu/dnetlib/data/mapreduce/actions/OrcidAction_4.json
1
{"isbn": "978-87-2105-7", "authors": [{"oid": "0000-0003-4872-879X", "surname": "Schovsbo", "name": "Jens Hemmingsen", "seq": "first"}, {"name": "Morten Rosenmeier", "seq": "additional"}, {"name": "Tine Sommer", "seq": "additional"}, {"name": "Jeppe Brinck-Jensen", "seq": "additional"}], "source": "University of Copenhagen", "titles": ["Ansattes immaterialrettigheder"], "urls": ["https://curis.ku.dk/portal/en/publications/ansattes-immaterialrettigheder(38d3a939-037d-40f2-8ab6-5f8635d87630).html"], "source-work-id": "38d3a939-037d-40f2-8ab6-5f8635d87630", "publication_date": {"year": "2013"}, "type": "book", "id": "26376055"}
modules/dnet-mapreduce-jobs/trunk/src/test/resources/eu/dnetlib/data/mapreduce/actions/OrcidAction_5.json
1
{"source": "Scopus - Elsevier", "titles": ["Evaluation of the influence of three different temperatures on microleakage of two self-etch and one total-etch adhesives"], "eid": "2-s2.0-85016649637", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-85016649637&partnerID=MN8TOARS"], "authors": [{"name": "Akbarian, S.", "seq": 1}, {"oid": "0000-0003-2547-079X", "surname": "Sharafeddin", "name": "Farahnaz", "seq": 2}, {"name": "Akbarian, G.", "seq": 3}], "publication_date": {"year": "2015"}, "type": "journal-article", "id": "38779252"}
modules/dnet-mapreduce-jobs/trunk/src/test/resources/eu/dnetlib/data/mapreduce/actions/OrcidAction_6.json
1
{"source": "Scopus - Elsevier", "titles": ["Infestation by Octolasmis lowei (Cirripedia: Poecilasmatidae) in Callinectes danae and Callinectes ornatus (Decapoda: Portunidae) from S\u00e3o Sebasti\u00e3o, Brazil"], "eid": "2-s2.0-0036111754", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0036111754&partnerID=MN8TOARS"], "authors": [{"name": "Santos, C.", "seq": 1}, {"oid": "0000-0002-4434-779X", "surname": "Bueno", "name": "S\u00e9rgio", "seq": 2}], "publication_date": {"year": "2002"}, "type": "journal-article", "id": "42392169"}
modules/dnet-mapreduce-jobs/trunk/src/test/resources/eu/dnetlib/data/mapreduce/actions/OrcidAction_7.json
1
{"source": "Suvasini Ramaswamy", "titles": ["Insulin growth factor-2 binding protein 3 (IGF2BP3) is a glioblastoma-specific marker that activates phosphatidylinositol 3-kinase/mitogen-activated protein kinase (PI3K/MAPK) pathways by modulating IGF-2."], "urls": [null], "authors": [{"oid": "0000-0001-8879-1780", "surname": "Ramaswamy", "name": "Suvasini", "seq": 1, "others": ["Suvasini"]}], "publication_date": {"month": "07", "year": "2011"}, "pmid": "21613208 ", "type": "journal-article", "id": "13288697"}
modules/dnet-mapreduce-jobs/trunk/src/test/resources/eu/dnetlib/data/mapreduce/actions/part-100
1
{"source": "Scopus - Elsevier", "titles": ["Simulation of runoff and erosion on mountainous roads in northern Thailand: A first look"], "eid": "2-s2.0-0030718192", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0030718192&partnerID=MN8TOARS"], "authors": [{"name": "Ziegler, Alan D.", "seq": 1}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 2}], "publication_date": {"year": "1997"}, "type": "conference-paper", "id": "27323976"}
2
{"source": "Scopus - Elsevier", "titles": ["Linking water-balance simulation and multiobjective programming: land-use plan design in Hawaii"], "eid": "2-s2.0-0027066297", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0027066297&partnerID=MN8TOARS"], "authors": [{"name": "Ridgley, M.A.", "seq": 1}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 2}], "publication_date": {"year": "1992"}, "type": "journal-article", "id": "27323972"}
3
{"source": "Scopus - Elsevier", "titles": ["Land-use effects on the water balance of a tropical island ( Oahu, Hawaii)."], "eid": "2-s2.0-0022824646", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0022824646&partnerID=MN8TOARS"], "authors": [{"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 1}], "publication_date": {"year": "1986"}, "type": "journal-article", "id": "27323984"}
4
{"source": "Scopus - Elsevier", "titles": ["Land misuse and hydrologic response: Kaho'olawe, Hawai'i"], "eid": "2-s2.0-0029656626", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0029656626&partnerID=MN8TOARS"], "authors": [{"name": "Loague, K.", "seq": 1}, {"name": "Lloyd, D.", "seq": 2}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 3}, {"name": "Nguyen, A.", "seq": 4}, {"name": "Sakata, B.", "seq": 5}], "publication_date": {"year": "1996"}, "type": "journal-article", "id": "27323975"}
5
{"source": "Scopus - Elsevier", "titles": ["Simulation of runoff and erosion on mountainous roads in northern Thailand: a first look"], "eid": "2-s2.0-0031395635", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0031395635&partnerID=MN8TOARS"], "authors": [{"name": "Ziegler, A.D.", "seq": 1}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 2}], "publication_date": {"year": "1997"}, "type": "journal-article", "id": "27323978"}
6
{"source": "Scopus - Elsevier", "titles": ["Vulnerability of island tropical montane cloud forests to climate change, with special reference to East Maui, Hawaii"], "eid": "2-s2.0-0031853890", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0031853890&partnerID=MN8TOARS"], "authors": [{"name": "Loope, L.L.", "seq": 1}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 2}], "publication_date": {"year": "1998"}, "type": "journal-article", "id": "27323983"}
7
{"source": "Scopus - Elsevier", "titles": ["Latent and sensible energy flux over deforested land surfaces in the eastern Amazon and northern Thailand"], "eid": "2-s2.0-0033887216", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0033887216&partnerID=MN8TOARS"], "authors": [{"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 1}, {"name": "Nullet, M.A.", "seq": 2}, {"name": "Ziegler, A.D.", "seq": 3}, {"name": "Tran, L.", "seq": 4}], "publication_date": {"year": "2000"}, "type": "journal-article", "id": "27323971"}
8
{"source": "Scopus - Elsevier", "titles": ["Soil-vegetation-atmosphere processes: Simulation and field measurement for deforested sites in northern Thailand"], "eid": "2-s2.0-0008470772", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0008470772&partnerID=MN8TOARS"], "authors": [{"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 1}, {"name": "Tran, L.T.", "seq": 2}, {"name": "Ziegler, A.D.", "seq": 3}, {"name": "Menard, T.P.", "seq": 4}, {"name": "Nullet, M.A.", "seq": 5}], "publication_date": {"year": "1996"}, "type": "journal-article", "id": "27323980"}
9
{"source": "Scopus - Elsevier", "titles": ["Influence of the trade-wind inversion on the climate of a leeward mountain slope in Hawaii"], "eid": "2-s2.0-0026299549", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0026299549&partnerID=MN8TOARS"], "authors": [{"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 1}, {"name": "Nullet, D.", "seq": 2}], "publication_date": {"year": "1991"}, "type": "journal-article", "id": "27323979"}
10
{"source": "Scopus - Elsevier", "titles": ["Simulation of organic chemical movement in Hawaii soils with PRZM: 2. Predicting deep penetration of DBCP, EDB and TCP"], "eid": "2-s2.0-0024878029", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0024878029&partnerID=MN8TOARS"], "authors": [{"name": "Loague, K.", "seq": 1}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 2}, {"name": "Green, R.E.", "seq": 3}, {"name": "Liu, C.C.K.", "seq": 4}, {"name": "Liang, T.C.", "seq": 5}, {"name": "Oki, D.S.", "seq": 6}], "publication_date": {"year": "1989"}, "type": "journal-article", "id": "27323987"}
11
{"source": "Scopus - Elsevier", "titles": ["First-order analysis of overland flow buffering in an ungauged fragmented upland basin"], "eid": "2-s2.0-0842327746", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0842327746&partnerID=MN8TOARS"], "authors": [{"name": "Ziegler, A.D.", "seq": 1}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 2}], "publication_date": {"year": "2003"}, "type": "journal-article", "id": "27323985"}
12
{"source": "Scopus - Elsevier", "titles": ["Occurrence of indigenous plant species in a middle-elevation Melaleuca plantation on O'ahu (Hawaiian Islands)"], "eid": "2-s2.0-0032742741", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0032742741&partnerID=MN8TOARS"], "authors": [{"name": "Woodcock, D.W.", "seq": 1}, {"name": "Perry, J.L.", "seq": 2}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 3}], "publication_date": {"year": "1999"}, "type": "journal-article", "id": "27323974"}
13
{"source": "Scopus - Elsevier", "titles": ["Changing land use in the Golden Triangle: Where the rubber meets the road"], "eid": "2-s2.0-84894947946", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-84894947946&partnerID=MN8TOARS"], "authors": [{"name": "Guardiola-Claramonte, M.", "seq": 1}, {"name": "Fox, J.M.", "seq": 2}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 3}, {"name": "Troch, P.A.", "seq": 4}], "publication_date": {"year": "2010"}, "type": "book", "id": "27323981"}
14
{"source": "Scopus - Elsevier", "titles": ["Uncertainty in pesticide leaching potential"], "eid": "2-s2.0-0025867778", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0025867778&partnerID=MN8TOARS"], "authors": [{"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 1}], "publication_date": {"year": "1991"}, "type": "conference-paper", "id": "27323973"}
15
{"source": "Scopus - Elsevier", "titles": ["Observations of albedo and radiation balance over postforest land surfaces in the eastern Amazon Basin"], "eid": "2-s2.0-0031419623", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0031419623&partnerID=MN8TOARS"], "authors": [{"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 1}, {"name": "H\u00f6lscher, D.", "seq": 2}, {"name": "Bastos, T.X.", "seq": 3}, {"name": "Fraz\u00e3o, R.R.", "seq": 4}, {"name": "Nullet, M.A.", "seq": 5}, {"name": "Ziegler, A.D.", "seq": 6}], "publication_date": {"year": "1997"}, "type": "journal-article", "id": "27323988"}
16
{"source": "Scopus - Elsevier", "titles": ["Uncertainty of groundvvater vulnerability assessments for agricultural regions in Hawaii: Review"], "eid": "2-s2.0-0030152268", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0030152268&partnerID=MN8TOARS"], "authors": [{"name": "Loague, K.", "seq": 1}, {"name": "Bernknopf, R.L.", "seq": 2}, {"name": "Green, R.E.", "seq": 3}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 4}], "publication_date": {"year": "1996"}, "type": "journal-article", "id": "27323986"}
17
{"source": "Scopus - Elsevier", "titles": ["Assessment of the Native Hawaiian Plant Society restoration projects on Kaho'olawe Island, Hawai'i"], "eid": "2-s2.0-0040188000", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0040188000&partnerID=MN8TOARS"], "authors": [{"name": "Ziegler, A.D.", "seq": 1}, {"name": "Chun, A.", "seq": 2}, {"name": "Perry, J.L.", "seq": 3}, {"name": "Egan, J.R.", "seq": 4}, {"name": "Garcia, K.", "seq": 5}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 6}, {"name": "Perry, L.", "seq": 7}], "publication_date": {"year": "2000"}, "type": "journal-article", "id": "27323989"}
18
{"source": "Scopus - Elsevier", "titles": ["Photosynthetic gas exchange and temperature-induced damage in seedlings of the tropical alpine species Argyroxiphium sandwicense"], "eid": "2-s2.0-0029790998", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0029790998&partnerID=MN8TOARS"], "authors": [{"name": "Goldstein, G.", "seq": 1}, {"name": "Drake, D.R.", "seq": 2}, {"name": "Melcher, P.", "seq": 3}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 4}, {"name": "Heraux, J.", "seq": 5}], "publication_date": {"year": "1996"}, "type": "journal-article", "id": "27323991"}
19
{"source": "Scopus - Elsevier", "titles": ["Reassessment of revegetation strategies for Kaho'olawe Island, Hawai'i"], "eid": "2-s2.0-0034101283", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0034101283&partnerID=MN8TOARS"], "authors": [{"name": "Ziegler, A.D.", "seq": 1}, {"name": "Warren, S.D.", "seq": 2}, {"name": "Perry, J.L.", "seq": 3}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 4}], "publication_date": {"year": "2000"}, "type": "journal-article", "id": "27323977"}
20
{"source": "Scopus - Elsevier", "titles": ["WATER BALANCE OF THE PEARL HARBOR-HONOLULU BASIN, HAWAII, 1946-1975."], "eid": "2-s2.0-0020746464", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0020746464&partnerID=MN8TOARS"], "authors": [{"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 1}], "publication_date": {"year": "1983"}, "type": "journal-article", "id": "27323970"}
21
{"source": "Scopus - Elsevier", "titles": ["Uncertainty in recharge estimation: Impact on groundwater vulnerability assessments for the Pearl Harbor Basin, O'ahu, Hawai'i, U.S.A"], "eid": "2-s2.0-0029657355", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0029657355&partnerID=MN8TOARS"], "authors": [{"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 1}, {"name": "Loague, K.", "seq": 2}, {"name": "Green, R.E.", "seq": 3}, {"name": "Nullet, M.A.", "seq": 4}], "publication_date": {"year": "1996"}, "type": "journal-article", "id": "27323982"}
22
{"source": "Scopus - Elsevier", "titles": ["Partitioning total erosion on unpaved roads into splash and hydraulic components: The roles of interstorm surface preparation and dynamic erodibility"], "eid": "2-s2.0-0034284913", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-0034284913&partnerID=MN8TOARS"], "authors": [{"name": "Ziegler, A.D.", "seq": 1}, {"name": "Sutherland, R.A.", "seq": 2}, {"oid": "0000-0002-6798-3780", "surname": "Giambelluca", "name": "Thomas", "seq": 3}], "publication_date": {"year": "2000"}, "type": "journal-article", "id": "27323990"}
23
{"source": "Peter Chapman", "titles": ["Visualizing concepts with Euler diagrams"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2014"}, "type": "conference-paper", "id": "30432468"}
24
{"source": "Peter Chapman", "titles": ["Measuring perceived clutter in concept diagrams"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2016"}, "type": "conference-paper", "id": "30432491"}
25
{"source": "Peter Chapman", "titles": ["On the expressiveness of second-order spider diagrams"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2013"}, "type": "journal-article", "id": "30432466"}
26
{"source": "Peter Chapman", "titles": ["On the Relative Expressiveness of Second-Order Spider Diagrams and Regular Expressions."], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2010"}, "type": "conference-paper", "id": "30432474"}
27
{"source": "Peter Chapman", "titles": ["Towards diagrammatic ontology patterns"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2013"}, "type": "conference-paper", "id": "30432461"}
28
{"source": "Peter Chapman", "titles": ["Invertibility in Sequent Calculi"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2009"}, "type": "journal-article", "id": "30432487"}
29
{"source": "Peter Chapman", "titles": ["Creating a second order diagrammatic logic"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2010"}, "type": "book-chapter", "id": "30432470"}
30
{"source": "Peter Chapman", "titles": ["What can concept diagrams say?"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2012"}, "type": "conference-paper", "id": "30432457"}
31
{"source": "Peter Chapman", "titles": ["Visualizing ontologies: A case study"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2011"}, "type": "conference-paper", "id": "30432458"}
32
{"source": "Peter Chapman", "titles": ["PaL diagrams: A linear diagram-based visual language"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2014"}, "type": "journal-article", "id": "30432476"}
33
{"source": "Peter Chapman", "titles": ["Visualizing sets with linear diagrams"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2015"}, "type": "journal-article", "id": "30432463"}
34
{"source": "Peter Chapman", "titles": ["Evaluating the Impact of Clutter in Linear Diagrams"], "type": "journal-article", "id": "30432484", "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}]}
35
{"source": "Peter Chapman", "titles": ["Deriving sound inference rules for concept diagrams"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2011"}, "type": "conference-paper", "id": "30432456"}
36
{"source": "Peter Chapman", "titles": ["Evaluating the impact of clutter in Euler diagrams"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2014"}, "type": "conference-paper", "id": "30432460"}
37
{"source": "Peter Chapman", "titles": ["On the Completeness of Spider Diagrams Augmented with Constants"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2013"}, "type": "book-chapter", "id": "30432483"}
38
{"source": "Peter Chapman", "titles": ["Formalizing concept diagrams"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2013"}, "type": "journal-article", "id": "30432433"}
39
{"source": "Peter Chapman", "titles": ["Visualizing sets: an empirical comparison of diagram types"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2014"}, "type": "conference-paper", "id": "30432459"}
40
{"source": "Peter Chapman", "titles": ["Introducing second-order spider diagrams for defining regular languages"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2010"}, "type": "conference-paper", "id": "30432464"}
41
{"source": "Peter Chapman", "titles": ["The perception of clutter in linear diagrams"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2016"}, "type": "conference-paper", "id": "30432473"}
42
{"source": "Peter Chapman", "titles": ["Antipattern comprehension: An empirical evaluation"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2016"}, "type": "conference-paper", "id": "30432489"}
43
{"source": "Peter Chapman", "titles": ["Tools and techniques for formalising structural proof theory"], "authors": [{"oid": "0000-0002-5524-5780", "surname": "Chapman", "name": "Peter", "seq": 1}], "publication_date": {"year": "2010"}, "type": "dissertation", "id": "30432488"}
44
{"source": "Iryna Stechyshyn", "titles": ["\u0414\u043e\u0441\u043b\u0456\u0434\u0436\u0435\u043d\u043d\u044f \u0433\u043e\u0441\u0442\u0440\u043e\u0457 \u0442\u043e\u043a\u0441\u0438\u0447\u043d\u043e\u0441\u0442\u0456 \u0441\u0443\u0445\u043e\u0433\u043e \u0435\u043a\u0441\u0442\u0440\u0430\u043a\u0442\u0443 \u043b\u0438\u0441\u0442\u044f \u0448\u043e\u0432\u043a\u043e\u0432\u0438\u0446\u0456 \u0431\u0456\u043b\u043e\u0457 (Morus alba L.)"], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2018"}, "type": "conference-abstract", "id": "48373374"}
45
{"source": "Iryna Stechyshyn", "titles": ["\u0412\u043f\u043b\u0438\u0432 \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u043e\u0432\u043c\u0456\u0441\u043d\u0438\u0445 \u0441\u043f\u043e\u043b\u0443\u043a \u043d\u0430 \u0441\u0442\u0430\u043d \u043c\u0456\u043e\u043a\u0430\u0440\u0434\u0430 \u043f\u0440\u0438 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 2 \u0442\u0438\u043f\u0443 "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2014"}, "type": "journal-article", "id": "38048989"}
46
{"source": "Iryna Stechyshyn", "titles": ["\u0410\u043a\u0442\u0438\u0432\u043d\u0456\u0441\u0442\u044c \u043c\u0456\u0442\u043e\u0445\u043e\u043d\u0434\u0440\u0456\u0430\u043b\u044c\u043d\u0438\u0445 \u0444\u0435\u0440\u043c\u0435\u043d\u0442\u0456\u0432 \u0443 \u0441\u0435\u0440\u0446\u0456 \u0449\u0443\u0440\u0456\u0432 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 2 \u0442\u0438\u043f\u0443 \u0437 \u043e\u0436\u0438\u0440\u0456\u043d\u043d\u044f\u043c "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2012"}, "type": "conference-abstract", "id": "38049569"}
47
{"source": "Iryna Stechyshyn", "titles": ["\u041c\u0430\u0441\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u0456 \u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u0456 \u0437\u043c\u0456\u043d\u0438 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 \u0439 \u043a\u043e\u0440\u0435\u043a\u0446\u0456\u0457 \u043f\u0440\u0435\u043f\u0430\u0440\u0430\u0442\u0430\u043c\u0438 \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443"], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2014"}, "type": "conference-abstract", "id": "38050128"}
48
{"source": "Iryna Stechyshyn", "titles": ["\u0410\u043a\u0442\u0438\u0432\u043d\u0456\u0441\u0442\u044c \u0444\u0435\u0440\u043c\u0435\u043d\u0442\u0456\u0432 \u0430\u043d\u0442\u0438\u043e\u043a\u0441\u0438\u0434\u0430\u043d\u0442\u043d\u043e\u0433\u043e \u0437\u0430\u0445\u0438\u0441\u0442\u0443 \u0443 \u0441\u0435\u0440\u0446\u0435\u0432\u043e\u043c\u0443  \u043c\u2019\u044f\u0437\u0456 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 2 \u0442\u0438\u043f\u0443 \u0437  \u043e\u0436\u0438\u0440\u0456\u043d\u043d\u044f\u043c \u0442\u0430 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u0456 \u043a\u043e\u0440\u0432\u0456\u0442\u0438\u043d\u0443 \u0456 \u043b\u0456\u043f\u043e\u0444\u043b\u0430\u0432\u043e\u043d\u0443 "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2013"}, "type": "conference-abstract", "id": "38049844"}
49
{"source": "Iryna Stechyshyn", "titles": ["\u0415\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0456\u0441\u0442\u044c \u043f\u0440\u0435\u043f\u0430\u0440\u0430\u0442\u0456\u0432 \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 \u0442\u0438\u043f\u0443 1 "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2014"}, "type": "journal-article", "id": "38048904"}
50
{"source": "Iryna Stechyshyn", "titles": ["\u0412\u043f\u043b\u0438\u0432 \u043f\u0440\u0435\u043f\u0430\u0440\u0430\u0442\u0456\u0432 \u043a\u043e\u0440\u0432\u0456\u0442\u0438\u043d\u0443 \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u043d\u0438\u043a\u0438 \u043b\u0456\u043f\u0456\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u043c\u0456\u043d\u0443 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 2 \u0442\u0438\u043f\u0443 \u0437 \u043e\u0436\u0438\u0440\u0456\u043d\u043d\u044f\u043c "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2012"}, "type": "conference-abstract", "id": "38049746"}
51
{"source": "Iryna Stechyshyn", "titles": ["\u0421\u043f\u043e\u0441\u0456\u0431 \u043c\u043e\u0434\u0435\u043b\u044e\u0432\u0430\u043d\u043d\u044f \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0436\u0438\u0440\u0456\u043d\u043d\u044f "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2014"}, "type": "patent", "id": "38050154"}
52
{"source": "Iryna Stechyshyn", "titles": ["\u0412\u043f\u043b\u0438\u0432 \u043f\u0440\u0435\u043f\u0430\u0440\u0430\u0442\u0456\u0432 \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443 \u043d\u0430 \u043f\u0435\u0440\u043e\u043a\u0441\u0438\u0434\u043d\u0435 \u043e\u043a\u0438\u0441\u043d\u0435\u043d\u043d\u044f \u043b\u0456\u043f\u0456\u0434\u0456\u0432 \u0443 \u043c\u0456\u043e\u043a\u0430\u0440\u0434\u0456 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 2\u2013\u0433\u043e \u0442\u0438\u043f\u0443 "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2012"}, "type": "journal-article", "id": "38048785"}
53
{"source": "Iryna Stechyshyn", "titles": ["\u0412\u0438\u0432\u0447\u0435\u043d\u043d\u044f \u0433\u0456\u043f\u043e\u043b\u0456\u043f\u0456\u0434\u0435\u043c\u0456\u0447\u043d\u043e\u0457 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0456 \u0441\u0443\u0445\u043e\u0433\u043e \u0435\u043a\u0441\u0442\u0440\u0430\u043a\u0442\u0443 \u0448\u043e\u0432\u043a\u043e\u0432\u0438\u0446\u0456 \u0431\u0456\u043b\u043e\u0457"], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2018"}, "type": "conference-abstract", "id": "48373405"}
54
{"source": "Iryna Stechyshyn", "titles": ["\u0412\u043f\u043b\u0438\u0432 \u043f\u0440\u0435\u043f\u0430\u0440\u0430\u0442\u0456\u0432 \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443 \u043d\u0430 \u043c\u043e\u0440\u0444\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0456 \u0437\u043c\u0456\u043d\u0438 \u0443 \u043c\u0456\u043e\u043a\u0430\u0440\u0434\u0456 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443  \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 \u0442\u0438\u043f\u0443 1 \u0443 \u0449\u0443\u0440\u0456\u0432 "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2016"}, "type": "journal-article", "id": "38049481"}
55
{"source": "Iryna Stechyshyn", "titles": ["\u0412\u043f\u043b\u0438\u0432 \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443 \u043d\u0430 \u0441\u0442\u0430\u043d \u043f\u0435\u0440\u0435\u043a\u0438\u0441\u043d\u043e\u0433\u043e \u043e\u043a\u0438\u0441\u043d\u0435\u043d\u043d\u044f \u043b\u0456\u043f\u0456\u0434\u0456\u0432 \u0443 \u0449\u0443\u0440\u0456\u0432 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 2 \u0442\u0438\u043f\u0443 \u0437 \u043e\u0436\u0438\u0440\u0456\u043d\u043d\u044f\u043c "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2012"}, "type": "conference-abstract", "id": "38049769"}
56
{"source": "Iryna Stechyshyn", "titles": ["\u041f\u043e\u0440\u0456\u0432\u043d\u044f\u043b\u044c\u043d\u0435 \u0434\u043e\u0441\u043b\u0456\u0434\u0436\u0435\u043d\u043d\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0456 \u0440\u0456\u0437\u043d\u0438\u0445 \u0444\u043e\u0440\u043c \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 \u0442\u0438\u043f\u0443 1 "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2014"}, "type": "conference-paper", "id": "38049882"}
57
{"source": "Iryna Stechyshyn", "titles": ["\u0412\u043f\u043b\u0438\u0432 \u043b\u0456\u043f\u043e\u0441\u043e\u043c\u0430\u043b\u044c\u043d\u043e\u0457 \u0444\u043e\u0440\u043c\u0438 \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443 \u043d\u0430 \u0441\u0442\u0430\u043d \u0432\u0443\u0433\u043b\u0435\u0432\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0430 \u043b\u0456\u043f\u0456\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u043c\u0456\u043d\u0456\u0432 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 2 \u0442\u0438\u043f\u0443"], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2013"}, "type": "conference-abstract", "id": "38049858"}
58
{"source": "Iryna Stechyshyn", "titles": ["\u0410\u043d\u0442\u0438\u043e\u043a\u0441\u0438\u0434\u0430\u043d\u0442\u043d\u0430 \u0442\u0430 \u0433\u0456\u043f\u043e\u0433\u043b\u0456\u043a\u0435\u043c\u0456\u0447\u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u0456\u0441\u0442\u044c \u0431\u0456\u043e\u0444\u043b\u0430\u0432\u043e\u043d\u043e\u0457\u0434\u0456\u0432 \u0437\u0430 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u0433\u043e \u0434\u0456\u0430\u0431\u0435\u0442\u0443 II \u0442\u0438\u043f\u0443"], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2017"}, "type": "journal-article", "id": "48373098"}
59
{"source": "Iryna Stechyshyn", "titles": ["\u0415\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0456\u0441\u0442\u044c \u043f\u0440\u0435\u043f\u0430\u0440\u0430\u0442\u0456\u0432 \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443 \u0437\u0430 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u0433\u043e \u0434\u0456\u0430\u0431\u0435\u0442\u0443 "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2014"}, "type": "journal-article", "id": "38049252"}
60
{"source": "Iryna Stechyshyn", "titles": ["\u0417\u043c\u0456\u043d\u0438 \u0440\u0435\u0430\u043a\u0446\u0456\u0457 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0457 \u043d\u0435\u0440\u0432\u043e\u0432\u043e\u0457 \u0441\u0438\u0441\u0442\u0435\u043c\u0438 \u0442\u0430 \u0431\u0456\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u0438\u0445 \u043f\u043e\u043a\u0430\u0437\u043d\u0438\u043a\u0456\u0432 \u043f\u0440\u0438 \u0435\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 \u0442\u0438\u043f\u0443 1 \u0442\u0430 \u0437\u0430 \u0443\u0447\u0430\u0441\u0442\u0456 \u0440\u0456\u0437\u043d\u0438\u0445 \u0444\u043e\u0440\u043c \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443 "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2014"}, "type": "journal-article", "id": "38049451"}
61
{"source": "Iryna Stechyshyn", "titles": ["The effectivenes of quercetin drugs in experimental diabetes type \u0406\u0406 with obesity "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2013"}, "type": "conference-abstract", "id": "38049853"}
62
{"source": "Iryna Stechyshyn", "titles": ["\u041e\u0441\u043e\u0431\u043b\u0438\u0432\u043e\u0441\u0442\u0456 \u0432\u043f\u043b\u0438\u0432\u0443 \u0432\u043e\u0434\u043e\u0440\u043e\u0437\u0447\u0438\u043d\u043d\u043e\u0457 \u0456 \u043b\u0456\u043f\u043e\u0441\u043e\u043c\u0430\u043b\u044c\u043d\u043e\u0457 \u0444\u043e\u0440\u043c \u043a\u0432\u0435\u0440\u0446\u0435\u0442\u0438\u043d\u0443 \u043d\u0430 \u043c\u0430\u0441\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u0456 \u043f\u043e\u043a\u0430\u0437\u043d\u0438\u043a\u0438, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u043a\u0430\u0440\u0434\u0456\u043e\u0456\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u0433\u0440\u0430\u043c\u0438 \u0442\u0430 \u0442\u043e\u043b\u0435\u0440\u0430\u043d\u0442\u043d\u0456\u0441\u0442\u044c \u0434\u043e \u0444\u0456\u0437\u0438\u0447\u043d\u043e\u0433\u043e \u043d\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0442\u0432\u0430\u0440\u0438\u043d \u043f\u0440\u0438 \u0446\u0443\u043a\u0440\u043e\u0432\u043e\u043c\u0443 \u0434\u0456\u0430\u0431\u0435\u0442\u0456 \u0442\u0438\u043f\u0443 2 \u0437 \u043e\u0436\u0438\u0440\u0456\u043d\u043d\u044f\u043c "], "authors": [{"oid": "0000-0002-5360-2780", "surname": "Stechyshyn", "name": "Iryna", "seq": 1}], "publication_date": {"year": "2015"}, "type": "journal-article", "id": "38049461"}
63
{"isbn": "ISBN 978-1-912331-03-1", "source": "James Roberts", "titles": ["Animal Bone and Shell"], "authors": [{"oid": "0000-0002-3967-5780", "surname": "Roberts", "name": "James", "seq": 1}], "publication_date": {"year": "2017"}, "type": "book-chapter", "id": "47430689"}
64
{"source": "ResearcherID", "titles": ["Effects of changing climate on the hydrology of a boreal catchment and lake DOC - probabilistic assessment of a dynamic model chain"], "urls": ["http://gateway.webofknowledge.com/gateway/Gateway.cgi?GWVersion=2&SrcAuth=ORCID&SrcApp=OrcidOrg&DestLinkType=FullRecord&DestApp=WOS_CPL&KeyUT=WOS:000333500500005&KeyUID=WOS:000333500500005"], "authors": [{"oid": "0000-0002-7165-9780", "surname": "Holmberg", "name": "Maria", "seq": 1, "others": ["Dorrit Maria Holmberg"]}, {"name": "Futter, Martyn N.", "seq": 2}, {"name": "Kotamaki, Niina", "seq": 3}, {"name": "Fronzek, Stefan", "seq": 4}, {"name": "Forsius, Martin", "seq": 5}, {"name": "Kiuru, Petri", "seq": 6}, {"name": "Pirttioja, Nina", "seq": 7}, {"name": "Rasmus, Kai", "seq": 8}, {"name": "Starr, Mike", "seq": 9}, {"name": "Vuorenmaa, Jussi", "seq": 10}], "publication_date": {"year": "2014"}, "type": "journal-article", "id": "44849670", "wosuid": "WOS:000333500500005"}
65
{"source": "Paola Pinilla", "titles": ["VizieR Online Data Catalog: SAO 206462 polarised Ks image (Garufi+, 2013)"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "05", "year": "2014"}, "type": "journal-article", "id": "32648815"}
66
{"source": "Paola Pinilla", "titles": [" A likely planet-induced gap in the disc around T Cha"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "03", "day": "01", "year": "2018"}, "type": "journal-article", "id": "42207031"}
67
{"source": "Paola Pinilla", "titles": ["Planet formation in action: Resolved gas and dust images of a transitional disk and its cavity"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "07", "year": "2013"}, "type": "conference-paper", "id": "32648822"}
68
{"source": "Paola Pinilla", "titles": ["VizieR Online Data Catalog: 3mm maps of 4 transition disks (Pinilla+, 2014)"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "03", "year": "2014"}, "type": "journal-article", "id": "32648817"}
69
{"source": "Paola Pinilla", "titles": ["The role of the snow line in the dust distribution of transition disks"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "08", "year": "2015"}, "type": "journal-article", "id": "32648807"}
70
{"source": "Paola Pinilla", "titles": ["\t Investigation of the inner structures around HD 169142 with VLT/SPHERE"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "01", "day": "01", "year": "2018"}, "type": "journal-article", "id": "42207049"}
71
{"source": "Paola Pinilla", "titles": ["VizieR Online Data Catalog: Polarized images of MWC758 (Benisty+, 2015)"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "06", "year": "2015"}, "type": "journal-article", "id": "32648811"}
72
{"source": "Paola Pinilla", "titles": ["First Millimeter Detection of the Disk around a Young, Isolated, Planetary-mass Object"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "05", "year": "2017"}, "type": "journal-article", "id": "33982421"}
73
{"arxiv": "1505.01947", "source": "Paola Pinilla", "titles": ["Quantifying the Gas Inside Dust Cavities in Transitional Disks: Implications for Young Planets"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "12", "year": "2015"}, "type": "conference-paper", "id": "32648795"}
74
{"source": "Paola Pinilla", "titles": ["Imaging diagnostics for Transitional Discs"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "07", "year": "2013"}, "type": "conference-paper", "id": "32648823"}
75
{"source": "Paola Pinilla", "titles": ["Grain growth and dust trapping in circumstellar disks"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "08", "year": "2015"}, "type": "journal-article", "id": "32648808"}
76
{"source": "Paola Pinilla", "titles": ["Sequential planet formation in transition disks: The case of HD 100546"], "authors": [{"oid": "0000-0001-8764-1780", "surname": "Pinilla", "name": "Paola", "seq": 1}], "publication_date": {"month": "08", "year": "2015"}, "type": "journal-article", "id": "32648806"}
77
{"source": "Ahmad Al-juboori", "titles": ["Specialist"], "type": "other", "id": "21917932", "authors": [{"oid": "0000-0002-0688-1780", "surname": "Al-juboori", "name": "Ahmad", "seq": 1}]}
78
{"source": "Aramesh Seif", "titles": ["Equatorial Ionospheric Scintillation During Daytime"], "urls": ["https://www.researchgate.net/publication/327930672_Equatorial_Ionospheric_Scintillation_During_Daytime_httpseosorgresearch-spotlightsequatorial-ionospheric-scintillation-during-daytime"], "authors": [{"oid": "0000-0002-3746-9780", "surname": "Seif", "name": "Aramesh", "seq": 1}], "publication_date": {"month": "09", "day": "27", "year": "2018"}, "type": "journal-article", "id": "48777161"}
79
{"source": "Europe PubMed Central", "titles": ["[Perinatal mortality of puppies after caesarean section caused by intrauterine infection]."], "urls": ["http://europepmc.org/abstract/med/23242226"], "authors": [{"name": "Posival A", "seq": "first"}, {"name": "Althoff G", "seq": "first"}, {"oid": "0000-0002-4327-9780", "surname": "Goericke-Pesch", "name": "Sandra", "seq": "first"}, {"name": "Wehrend A", "seq": "first"}], "publication_date": {"year": "2012"}, "pmid": "23242226", "type": "journal-article", "id": "19156411"}
80
{"source": "Europe PubMed Central", "titles": ["[Exfoliative vaginal cytology in the bitch--indications, procedure, interpretation]."], "urls": ["http://europepmc.org/abstract/med/23958711"], "authors": [{"name": "Wehrend A", "seq": "first"}, {"name": "von Plato K", "seq": "first"}, {"oid": "0000-0002-4327-9780", "surname": "Goericke-Pesch", "name": "Sandra", "seq": "first"}], "publication_date": {"year": "2013"}, "pmid": "23958711", "type": "journal-article", "id": "19156403"}
81
{"source": "Europe PubMed Central", "titles": ["[Luteal insufficicency in the bitch - symptoms, diagnosis, consequences and therapy. A review of the literature]."], "urls": ["http://europepmc.org/abstract/med/22212752"], "authors": [{"name": "Becher A", "seq": "first"}, {"name": "Wehrend A", "seq": "first"}, {"oid": "0000-0002-4327-9780", "surname": "Goericke-Pesch", "name": "Sandra", "seq": "first"}], "publication_date": {"year": "2010"}, "pmid": "22212752", "type": "journal-article", "id": "19156423"}
82
{"source": "Europe PubMed Central", "titles": ["[Uterine torsion in cattle - frequency, clinical symptoms and theories about the pathogenesis]."], "urls": ["http://europepmc.org/abstract/med/22688740"], "authors": [{"name": "Erteld E", "seq": "first"}, {"name": "Wehrend A", "seq": "first"}, {"oid": "0000-0002-4327-9780", "surname": "Goericke-Pesch", "name": "Sandra", "seq": "first"}], "publication_date": {"year": "2012"}, "pmid": "22688740", "type": "journal-article", "id": "19156412"}
83
{"source": "Europe PubMed Central", "titles": ["[Squeezing of the spermatic cord using a Pean clamp is not suitable for elimination of testicular function in the rabbit]."], "urls": ["http://europepmc.org/abstract/med/22134660"], "authors": [{"oid": "0000-0002-4327-9780", "surname": "Goericke-Pesch", "name": "Sandra", "seq": "first"}, {"name": "Sch\u00fctzenhofer G", "seq": "first"}, {"name": "Failing K", "seq": "first"}, {"name": "Wehrend A", "seq": "first"}], "publication_date": {"year": "2011"}, "pmid": "22134660", "type": "journal-article", "id": "19156416"}
84
{"source": "Scopus - Elsevier", "titles": ["Effect of a novel antiinflammatory polyherbal preparation (Sudarshanam Oil) on hematological parameters in Wistar rats"], "eid": "2-s2.0-77950833473", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-77950833473&partnerID=MN8TOARS"], "authors": [{"name": "Patel, C.D.", "seq": 1}, {"name": "Modi, V.D.", "seq": 2}, {"oid": "0000-0002-2130-1780", "surname": "Chakraborty", "name": "Bhaswat", "seq": 3}, {"name": "Mathuria, N.", "seq": 4}, {"name": "Dadhaniya, P.", "seq": 5}, {"name": "Borade, P.A.", "seq": 6}, {"name": "Morankar, P.", "seq": 7}], "publication_date": {"year": "2010"}, "type": "journal-article", "id": "46872683"}
85
{"source": "Scopus - Elsevier", "titles": ["Curcumin ameliorates aflatoxin-induced changes in SDH and ATPase activities in liver and kidney of mice"], "eid": "2-s2.0-49949107149", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-49949107149&partnerID=MN8TOARS"], "authors": [{"name": "Verma, R.J.", "seq": 1}, {"oid": "0000-0002-2130-1780", "surname": "Chakraborty", "name": "Bhaswat", "seq": 2}, {"name": "Patel, C.", "seq": 3}, {"name": "Mathuria, N.", "seq": 4}], "publication_date": {"year": "2008"}, "type": "journal-article", "id": "46872681"}
86
{"source": "Scopus - Elsevier", "titles": ["Biowaiver monograph for immediate release solid oral dosage forms: Ofloxacin"], "eid": "2-s2.0-78649727096", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-78649727096&partnerID=MN8TOARS"], "authors": [{"name": "Sakore, S.", "seq": 1}, {"name": "Choudhari, S.", "seq": 2}, {"oid": "0000-0002-2130-1780", "surname": "Chakraborty", "name": "Bhaswat", "seq": 3}], "publication_date": {"year": "2010"}, "type": "journal-article", "id": "46872682"}
87
{"source": "Scopus - Elsevier", "titles": ["Safety signal detection for platinum compounds in canadian spontaneous adverse event reports"], "eid": "2-s2.0-84930685839", "urls": ["http://www.scopus.com/inward/record.url?eid=2-s2.0-84930685839&partnerID=MN8TOARS"], "authors": [{"name": "Singhal, S.", "seq": 1}, {"oid": "0000-0002-2130-1780", "surname": "Chakraborty", "name": "Bhaswat", "seq": 2}], "publication_date": {"year": "2015"}, "type": "journal-article", "id": "46872684"}
88
{"authors": [{"name": "K Kilde", "seq": "first"}, {"name": "ES Merklin", "seq": "additional"}, {"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Implementation of the Early Warning Score in a recently merged Emergency department"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/implementation-of-the-early-warning-score-in-a-recently-merged-emergency-department(1902e6b4-f1fd-4a0b-a5e2-a617975a9ba3).html"], "source-work-id": "1902e6b4-f1fd-4a0b-a5e2-a617975a9ba3", "publication_date": {"year": "2014"}, "type": "conference-abstract", "id": "29721227"}
89
{"authors": [{"name": "Dorthe Vilstrup Tomsen", "seq": "first"}, {"name": "T Buch", "seq": "additional"}, {"name": "Annette Nissen Gubi", "seq": "additional"}, {"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["100% medication reconciliation \u2013 and then what?"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/100-medication-reconciliation--and-then-what(dd0b531c-f713-4a9b-98ee-9c9c3249e14b).html"], "source-work-id": "dd0b531c-f713-4a9b-98ee-9c9c3249e14b", "publication_date": {"year": "2014"}, "type": "conference-abstract", "id": "29721230"}
90
{"authors": [{"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "first"}, {"name": "Jacob Anh\u00f8j", "seq": "additional"}, {"name": "Bettina Lundgren", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Reducing hospital-acquired infections in the Capital Region of Denmark"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/reducing-hospitalacquired-infections-in-the-capital-region-of-denmark(7bc174b9-9d11-435d-95ac-bd6a643426ea).html"], "source-work-id": "7bc174b9-9d11-435d-95ac-bd6a643426ea", "publication_date": {"month": "04", "year": "2015"}, "type": "conference-poster", "id": "29721223"}
91
{"authors": [{"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "first"}, {"name": "\u00d8 Grinde", "seq": "additional"}, {"name": "A. Gulsvik", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Incidence and prevalence of cryptogenic fibrosing alveolitis"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/incidence-and-prevalence-of-cryptogenic-fibrosing-alveolitis(96093fc1-d30a-4eed-8702-d0cad8ec87c3).html"], "source-work-id": "96093fc1-d30a-4eed-8702-d0cad8ec87c3", "publication_date": {"year": "2000"}, "type": "conference-abstract", "id": "29721245"}
92
{"authors": [{"name": "T.E. Strandberg", "seq": "first"}, {"name": "H Rostad", "seq": "additional"}, {"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Population based evaluation of the 7th edition of the TNM system for lung cancer"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/population-based-evaluation-of-the-7th-edition-of-the-tnm-system-for-lung-cancer(44e0163b-1ff4-4f3b-8894-f89ea8797ec3).html"], "source-work-id": "44e0163b-1ff4-4f3b-8894-f89ea8797ec3", "publication_date": {"year": "2009"}, "type": "conference-abstract", "id": "29721240"}
93
{"authors": [{"name": "B Krogh Rasmussen", "seq": "first"}, {"name": "B. Jacobsen", "seq": "additional"}, {"name": "I Dyrdal", "seq": "additional"}, {"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Implementation of a Brain Cancer Pathway in Clinical Practice"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/implementation-of-a-brain-cancer-pathway-in-clinical-practice(76b6c93e-6a0c-4ef8-8982-14a6b198db7c).html"], "source-work-id": "76b6c93e-6a0c-4ef8-8982-14a6b198db7c", "publication_date": {"year": "2014"}, "type": "conference-abstract", "id": "29721228"}
94
{"authors": [{"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "first"}, {"name": "T.E. Strandberg", "seq": "additional"}, {"name": "T Wentzel-Larsen", "seq": "additional"}, {"name": "E Omenaas", "seq": "additional"}, {"name": "N Wilking", "seq": "additional"}, {"name": "U Aaseb\u00f8", "seq": "additional"}, {"name": "R Bremnes", "seq": "additional"}, {"name": "S S\u00f6renson", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Survival of patients with advanced non-small cell lung cancer before and after the general introduction of palliative chemotherapy in Norway \u2013 a population based study"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/survival-of-patients-with-advanced-nonsmall-cell-lung-cancer-before-and-after-the-general-introduction-of-palliative-chemotherapy-in-norway--a-population-based-study(29d9fce8-ef16-4f19-9269-7496cbfe7980).html"], "source-work-id": "29d9fce8-ef16-4f19-9269-7496cbfe7980", "publication_date": {"year": "2007"}, "type": "conference-abstract", "id": "29721242"}
95
{"authors": [{"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "first"}, {"name": "\u00d8 Grinde", "seq": "additional"}, {"name": "A. Gulsvik", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Cryptogenic fibrosing alveolitis in Bergen Hospital district"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/cryptogenic-fibrosing-alveolitis-in-bergen-hospital-district(14a8eea6-ddf6-4055-9e7e-a82525ae36c2).html"], "source-work-id": "14a8eea6-ddf6-4055-9e7e-a82525ae36c2", "publication_date": {"year": "1999"}, "type": "conference-abstract", "id": "29721246"}
96
{"authors": [{"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "first"}, {"name": "Boel Andersson G\u00e4re", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Der kan skabes patientsikkerhed i kliniske mikrosystemer"], "eid": "2-s2.0-84872467438", "urls": ["http://findresearcher.sdu.dk/portal/en/publications/der-kan-skabes-patientsikkerhed-i-kliniske-mikrosystemer(2315f329-59a3-4b16-97c9-46aaf961f64f).html"], "source-work-id": "2315f329-59a3-4b16-97c9-46aaf961f64f", "publication_date": {"month": "11", "day": "05", "year": "2012"}, "pmid": "23137384", "type": "journal-article", "id": "29721233"}
97
{"authors": [{"name": "\u00d8 Fl\u00f8tten", "seq": "first"}, {"name": "Roy M Bremnes", "seq": "additional"}, {"name": "B H Gr\u00f8nberg", "seq": "additional"}, {"name": "S Sundstrom", "seq": "additional"}, {"name": "T Amundsen", "seq": "additional"}, {"name": "H Rolke", "seq": "additional"}, {"name": "U Aaseb\u00f8", "seq": "additional"}, {"name": "K Hornslien", "seq": "additional"}, {"name": "T Wentzel-Larsen", "seq": "additional"}, {"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Phase III study comparing vinorelbine/gemcitabine with vinorelbine/carboplatin as first-line chemotherapy of advanced NSCLC: A Norwegian Lung Cancer Study Group trial 2009"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/phase-iii-study-comparing-vinorelbinegemcitabine-with-vinorelbinecarboplatin-as-firstline-chemotherapy-of-advanced-nsclc-a-norwegian-lung-cancer-study-group-trial-2009(45325c74-3475-48f3-a76d-501a87dec7b8).html"], "source-work-id": "45325c74-3475-48f3-a76d-501a87dec7b8", "publication_date": {"year": "2009"}, "type": "conference-abstract", "id": "29721241"}
98
{"authors": [{"name": "L Vinkel Hansen", "seq": "first"}, {"name": "K Majgaard", "seq": "additional"}, {"name": "M. \u00d8stergaard", "seq": "additional"}, {"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Checklists \u2013 essential when starting a new ward"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/checklists--essential-when-starting-a-new-ward(3f6ca949-64b3-4333-8d0c-47e3360fe0b5).html"], "source-work-id": "3f6ca949-64b3-4333-8d0c-47e3360fe0b5", "publication_date": {"year": "2014"}, "type": "conference-abstract", "id": "29721229"}
99
{"authors": [{"name": "\u00d8 Grinde", "seq": "first"}, {"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "additional"}, {"name": "A. Gulsvik", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Inter- and Intraphysician reproducibility in the coding of files of patients with cryptogenic fibrosing alveolitis and related diagnoses"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/inter-and-intraphysician-reproducibility-in-the-coding-of-files-of-patients-with-cryptogenic-fibrosing-alveolitis-and-related-diagnoses(1f7a750c-48ea-48c1-9691-8f68effb5c3a).html"], "source-work-id": "1f7a750c-48ea-48c1-9691-8f68effb5c3a", "publication_date": {"year": "2000"}, "type": "conference-abstract", "id": "29721244"}
100
{"authors": [{"oid": "0000-0002-6134-6780", "surname": "von Plessen", "name": "Christian", "seq": "first"}, {"name": "Arne Poulstrup", "seq": "additional"}, {"name": "Jacob Anh\u00f8j", "seq": "additional"}], "source": "University of Southern Denmark", "titles": ["Bliver kvaliteten bedre uden Den Danske Kvalitetsmodel?"], "urls": ["http://findresearcher.sdu.dk/portal/en/publications/bliver-kvaliteten-bedre-uden-den-danske-kvalitetsmodel(dcf71cea-8fef-42ea-b4d5-a05febb67c18).html"], "source-work-id": "dcf71cea-8fef-42ea-b4d5-a05febb67c18", "publication_date": {"month": "06", "day": "05", "year": "2015"}, "type": "newspaper-article", "id": "29721222"}
modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/dataimport/OrcidToActions.java
1
package eu.dnetlib.data.mapreduce.hbase.dataimport;
2

  
3
import static eu.dnetlib.data.mapreduce.hbase.dataimport.DumpToActionsUtility.getArrayValues;
4
import static eu.dnetlib.data.mapreduce.hbase.dataimport.DumpToActionsUtility.getQualifier;
5
import static eu.dnetlib.data.mapreduce.hbase.dataimport.DumpToActionsUtility.getStringValue;
6
import static eu.dnetlib.data.mapreduce.hbase.dataimport.DumpToActionsUtility.isValidDate;
7

  
8
import java.io.IOException;
9
import java.io.InputStream;
10
import java.util.ArrayList;
11
import java.util.HashMap;
12
import java.util.List;
13
import java.util.Map;
14

  
15
import org.apache.commons.io.IOUtils;
16
import org.apache.commons.lang3.StringUtils;
17

  
18
import com.google.gson.Gson;
19
import com.google.gson.JsonArray;
20
import com.google.gson.JsonElement;
21
import com.google.gson.JsonObject;
22

  
23
import eu.dnetlib.actionmanager.actions.ActionFactory;
24
import eu.dnetlib.actionmanager.actions.AtomicAction;
25
import eu.dnetlib.actionmanager.common.Agent;
26
import eu.dnetlib.data.mapreduce.hbase.Reporter;
27
import eu.dnetlib.data.mapreduce.util.StreamUtils;
28
import eu.dnetlib.data.proto.FieldTypeProtos;
29
import eu.dnetlib.data.proto.FieldTypeProtos.Author;
30
import eu.dnetlib.data.proto.FieldTypeProtos.KeyValue;
31
import eu.dnetlib.data.proto.FieldTypeProtos.Qualifier;
32
import eu.dnetlib.data.proto.FieldTypeProtos.StringField;
33
import eu.dnetlib.data.proto.FieldTypeProtos.StructuredProperty;
34
import eu.dnetlib.data.proto.KindProtos;
35
import eu.dnetlib.data.proto.OafProtos;
36
import eu.dnetlib.data.proto.ResultProtos;
37
import eu.dnetlib.data.proto.TypeProtos;
38
import eu.dnetlib.data.transform.xml.AbstractDNetXsltFunctions;
39
import eu.dnetlib.miscutils.collections.Pair;
40

  
41
public class OrcidToActions {
42

  
43
	public static final String ORCID = "ORCID";
44
	public final static String orcidPREFIX = "orcid____";
45
	public static final String OPENAIRE_PREFIX = "openaire____";
46
	public static final String SEPARATOR = "::";
47

  
48
	private static Map<String, Pair<String, String>> datasources = new HashMap<String, Pair<String, String>>() {
49

  
50
		{
51
			put(ORCID.toLowerCase(), new Pair<>(ORCID, OPENAIRE_PREFIX + SEPARATOR + "orcid"));
52

  
53
		}
54
	};
55

  
56
	// json external id will be mapped to oaf:pid/@classid Map to oaf:pid/@classname
57
	private static Map<String, Pair<String, String>> externalIds = new HashMap<String, Pair<String, String>>() {
58

  
59
		{
60
			put("ark".toLowerCase(), new Pair<>("ark", "ark"));
61
			put("arxiv".toLowerCase(), new Pair<>("arxiv", "arXiv"));
62
			put("pmc".toLowerCase(), new Pair<>("pmc", "pmc"));
63
			put("pmid".toLowerCase(), new Pair<>("pmid", "pmid"));
64
			put("source-work-id".toLowerCase(), new Pair<>("orcidworkid", "orcidworkid"));
65
			put("urn".toLowerCase(), new Pair<>("urn", "urn"));
66
		}
67
	};
68

  
69
	static Map<String, Map<String, String>> typologiesMapping;
70

  
71
	static {
72
		try {
73
			final InputStream is = OrcidToActions.class.getResourceAsStream("/eu/dnetlib/data/mapreduce/hbase/dataimport/mapping_typologies.json");
74
			final String tt = IOUtils.toString(is);
75
			typologiesMapping = new Gson().fromJson(tt, Map.class);
76
		} catch (final IOException e) {
77
			e.printStackTrace();
78
		}
79
	}
80

  
81
	public static final String PID_TYPES = "dnet:pid_types";
82

  
83
	public static List<AtomicAction> generatePublicationActionsFromDump(final JsonObject rootElement,
84
			final ActionFactory factory,
85
			final String setName,
86
			final Agent agent,
87
			final Reporter context) {
88

  
89
		if (!isValid(rootElement, context)) { return null; }
90

  
91
		// Create OAF proto
92

  
93
		final OafProtos.Oaf.Builder oaf = OafProtos.Oaf.newBuilder();
94

  
95
		// Adding kind
96
		oaf.setKind(KindProtos.Kind.entity);
97

  
98
		// creating result proto
99
		final OafProtos.OafEntity.Builder entity = OafProtos.OafEntity.newBuilder().setType(TypeProtos.Type.result);
100

  
101
		entity.setDateofcollection("2018-10-22");
102

  
103
		// Adding external ids
104
		StreamUtils.toStream(externalIds.keySet().iterator())
105
				.forEach(jsonExtId -> {
106
					final String classid = externalIds.get(jsonExtId.toLowerCase()).getValue();
107
					final String classname = externalIds.get(jsonExtId.toLowerCase()).getKey();
108
					final String extId = getStringValue(rootElement, jsonExtId);
109
					if (StringUtils.isNotBlank(extId)) {
110
						entity.addPid(StructuredProperty.newBuilder()
111
								.setValue(extId)
112
								.setQualifier(Qualifier.newBuilder().setClassid(classid).setClassname(classname).setSchemeid("dnet:pid_types")
113
										.setSchemename("dnet:pid_types").build())
114
								.build());
115
					}
116
				});
117

  
118
		// Create result field
119
		final ResultProtos.Result.Builder result = ResultProtos.Result.newBuilder();
120

  
121
		// Create metadata proto
122
		final ResultProtos.Result.Metadata.Builder metadata = ResultProtos.Result.Metadata.newBuilder();
123

  
124
		// Adding source
125
		final String source = getStringValue(rootElement, "source");
126
		if (StringUtils.isNotBlank(source)) {
127
			metadata.addSource(StringField.newBuilder().setValue(source).build());
128
		}
129

  
130
		// Adding title
131
		final String title = createRepeatedField(rootElement, "titles");
132
		metadata.addTitle(FieldTypeProtos.StructuredProperty.newBuilder()
133
				.setValue(title)
134
				.setQualifier(getQualifier("main title", "dnet:dataCite_title"))
135
				.build());
136

  
137
		// Adding identifier
138
		final String id = getStringValue(rootElement, "id");
139
		String sourceId = null;
140
		if (id != null) {
141
			sourceId = String.format("50|%s" + SEPARATOR + "%s", orcidPREFIX, AbstractDNetXsltFunctions.md5(id));
142
		} else {
143
			sourceId = String.format("50|%s" + SEPARATOR + "%s", orcidPREFIX, AbstractDNetXsltFunctions.md5(title));
144
		}
145
		entity.setId(sourceId);
146

  
147
		// Adding relevant date
148
		settingRelevantDate(rootElement, metadata, "publication_date", "issued", true);
149

  
150
		// Adding type
151
		final String type = getStringValue(rootElement, "type");
152
		if (StringUtils.isNotBlank(type)) {
153
			final String typeValue = typologiesMapping.get(type).get("value");
154
			final String cobjValue = typologiesMapping.get(type).get("cobj");
155
			final ResultProtos.Result.Instance.Builder instance = ResultProtos.Result.Instance.newBuilder();
156

  
157
			// Adding hostedby
158
			instance.setHostedby(FieldTypeProtos.KeyValue.newBuilder()
159
					.setKey("10|" + OPENAIRE_PREFIX + SEPARATOR + "55045bd2a65019fd8e6741a755395c8c")
160
					.setValue("Unknown Repository")
161
					.build());
162

  
163
			// Adding url
164
			final String url = createRepeatedField(rootElement, "urls");
165
			if (StringUtils.isNotBlank(url)) {
166
				instance.addUrl(url);
167
			}
168

  
169
			final String pubDate = getPublicationDate(rootElement, "publication_date");
170
			if (StringUtils.isNotBlank(pubDate)) {
171
				instance.setDateofacceptance(FieldTypeProtos.StringField.newBuilder().setValue(pubDate).build());
172
			}
173

  
174
			// Adding collectedfrom
175
			final FieldTypeProtos.KeyValue collectedFrom = FieldTypeProtos.KeyValue.newBuilder()
176
					.setValue(ORCID)
177
					.setKey("10|" + OPENAIRE_PREFIX + SEPARATOR + "806360c771262b4d6770e7cdf04b5c5a")
178
					.build();
179
			instance.setCollectedfrom(collectedFrom);
180

  
181
			// Adding accessright
182
			instance.setAccessright(FieldTypeProtos.Qualifier.newBuilder()
183
					.setClassid("UNKNOWN")
184
					.setClassname("UNKNOWN")
185
					.setSchemeid("dnet:access_modes")
186
					.setSchemename("dnet:access_modes")
187
					.build());
188

  
189
			// Adding type
190
			instance.setInstancetype(FieldTypeProtos.Qualifier.newBuilder()
191
					.setClassid(cobjValue)
192
					.setClassname(typeValue)
193
					.setSchemeid("dnet:publication_resource")
194
					.setSchemename("dnet:publication_resource")
195
					.build());
196

  
197
			result.addInstance(instance);
198
		}
199

  
200
		// Adding authors
201
		final List<Author> authors = createAuthors(rootElement);
202
		if (authors != null) {
203
			metadata.addAllAuthor(authors);
204
		}
205

  
206
		result.setMetadata(metadata.build());
207

  
208
		entity.setResult(result.build());
209

  
210
		oaf.setEntity(entity.build());
211

  
212
		// System.out.println("Proto dump: " + com.googlecode.protobuf.format.JsonFormat.printToString(oaf.build()));
213

  
214
		final List<AtomicAction> actionList = new ArrayList<>();
215

  
216
		actionList.add(factory.createAtomicAction(setName, agent, oaf.getEntity().getId(), "result", "body", oaf.build().toByteArray()));
217

  
218
		return actionList;
219

  
220
	}
221

  
222
	public static List<Author> createAuthors(final JsonObject root) {
223

  
224
		final String authorsJSONFieldName = "authors";
225

  
226
		if (root.has(authorsJSONFieldName) && root.get(authorsJSONFieldName).isJsonArray()) {
227

  
228
			final List<Author> authors = new ArrayList<>();
229
			final JsonArray jsonAuthors = root.getAsJsonArray(authorsJSONFieldName);
230
			int firstCounter = 0;
231
			int defaultCounter = 0;
232
			int rank = 1;
233
			int currentRank = 0;
234

  
235
			for (final JsonElement item : jsonAuthors) {
236
				final JsonObject author = item.getAsJsonObject();
237
				final Author.Builder result = Author.newBuilder();
238
				if (item.isJsonObject()) {
239
					final String surname = getStringValue(author, "surname");
240
					final String name = getStringValue(author, "name");
241
					final String oid = getStringValue(author, "oid");
242
					final String seq = getStringValue(author, "seq");
243
					if (StringUtils.isNotBlank(seq)) {
244
						if (seq.equals("first")) {
245
							firstCounter += 1;
246
							rank = firstCounter;
247

  
248
						} else if (seq.equals("additional")) {
249
							rank = currentRank + 1;
250
						} else {
251
							defaultCounter += 1;
252
							rank = defaultCounter;
253
						}
254
					}
255

  
256
					if (StringUtils.isNotBlank(oid)) {
257
						result.addPid(KeyValue.newBuilder()
258
								.setValue(oid)
259
								.setKey("ORCID")
260
								.build());
261
						result.setFullname(name + " " + surname);
262
						if (StringUtils.isNotBlank(name)) {
263
							result.setName(name);
264
						}
265
						if (StringUtils.isNotBlank(surname)) {
266
							result.setSurname(surname);
267
						}
268
					} else {
269
						if (StringUtils.isNotBlank(name)) {
270
							result.setFullname(name);
271
						} else {
272
							if (StringUtils.isNotBlank(surname)) {
273
								result.setFullname(surname);
274
							}
275
						}
276
					}
277
				}
278
				result.setRank(rank);
279
				authors.add(result.build());
280
				currentRank = rank;
281
			}
282
			return authors;
283

  
284
		}
285
		return null;
286
	}
287

  
288
	private static String createRepeatedField(final JsonObject rootElement, final String fieldName) {
289
		String field = "";
290
		if (!rootElement.has(fieldName)) { return null; }
291
		if (rootElement.has(fieldName) && rootElement.get(fieldName).isJsonNull()) { return null; }
292
		if (rootElement.get(fieldName).isJsonArray()) {
293
			if (!isValidJsonArray(rootElement, fieldName)) { return null; }
294
			final StringBuilder ttl = new StringBuilder();
295
			getArrayValues(rootElement, fieldName).forEach(ttl::append);
296
			field = ttl.toString();
297
		} else {
298
			field = getStringValue(rootElement, fieldName);
299
		}
300

  
301
		if (field != null && field.charAt(0) == '"' && field.charAt(field.length() - 1) == '"') {
302
			field = field.substring(1, field.length() - 1);
303
		}
304
		return field;
305
	}
306

  
307
	private static void settingRelevantDate(final JsonObject rootElement,
308
			final ResultProtos.Result.Metadata.Builder metadata,
309
			final String jsonKey,
310
			final String dictionaryKey,
311
			final boolean addToDateOfAcceptance) {
312

  
313
		// final JsonObject pubDateJson = rootElement.getAsJsonObject(jsonKey);
314
		// if (pubDateJson == null) { return; }
315
		// final String year = getStringValue(pubDateJson, "year");
316
		// final String month = getStringValue(pubDateJson, "month");
317
		// final String day = getStringValue(pubDateJson, "day");
318
		//
319
		// if (StringUtils.isBlank(year)) { return; }
320
		// String pubDate = "".concat(year);
321
		// if (StringUtils.isNotBlank(month)) {
322
		// pubDate = pubDate.concat("-" + month);
323
		// if (StringUtils.isNotBlank(day)) {
324
		// pubDate = pubDate.concat("-" + day);
325
		// } else {
326
		// pubDate += "-01";
327
		// }
328
		// } else {
329
		// pubDate += "-01-01";
330
		// }
331

  
332
		final String pubDate = getPublicationDate(rootElement, "publication_date");
333
		if (StringUtils.isNotBlank(pubDate)) {
334
			// if (addToDateOfAcceptance) {
335
			// metadata.setDateofacceptance(FieldTypeProtos.StringField.newBuilder().setValue(pubDate).build());
336
			// }
337
			metadata.addRelevantdate(FieldTypeProtos.StructuredProperty.newBuilder()
338
					.setValue(pubDate)
339
					.setQualifier(getQualifier(dictionaryKey, "dnet:dataCite_date"))
340
					.build());
341
		}
342
	}
343

  
344
	private static String getPublicationDate(final JsonObject rootElement,
345
			final String jsonKey) {
346

  
347
		final JsonObject pubDateJson = rootElement.getAsJsonObject(jsonKey);
348
		if (pubDateJson == null) { return null; }
349
		final String year = getStringValue(pubDateJson, "year");
350
		final String month = getStringValue(pubDateJson, "month");
351
		final String day = getStringValue(pubDateJson, "day");
352

  
353
		if (StringUtils.isBlank(year)) { return null; }
354
		String pubDate = "".concat(year);
355
		if (StringUtils.isNotBlank(month)) {
356
			pubDate = pubDate.concat("-" + month);
357
			if (StringUtils.isNotBlank(day)) {
358
				pubDate = pubDate.concat("-" + day);
359
			} else {
360
				pubDate += "-01";
361
			}
362
		} else {
363
			pubDate += "-01-01";
364
		}
365
		if (isValidDate(pubDate)) { return pubDate; }
366
		return null;
367
	}
368

  
369
	protected static boolean isValid(final JsonObject rootElement, final Reporter context) {
370

  
371
		final String type = getStringValue(rootElement, "type");
372
		if (!typologiesMapping.containsKey(type)) {
373
			context.incrementCounter("filtered", "unknowntype_" + type, 1);
374
			return false;
375
		}
376

  
377
		if (!isValidJsonArray(rootElement, "titles")) {
378
			context.incrementCounter("filtered", "invalid_title", 1);
379
			return false;
380
		}
381
		return true;
382
	}
383

  
384
	private static boolean isValidJsonArray(final JsonObject rootElement, final String fieldName) {
385
		if (!rootElement.has(fieldName)) { return false; }
386
		final JsonElement jsonElement = rootElement.get(fieldName);
387
		if (jsonElement.isJsonNull()) { return false; }
388
		if (jsonElement.isJsonArray()) {
389
			final JsonArray jsonArray = jsonElement.getAsJsonArray();
390
			if (jsonArray.isJsonNull()) { return false; }
391
			if (jsonArray.get(0).isJsonNull()) { return false; }
392
		}
393
		return true;
394
	}
395
}

Also available in: Unified diff