Revision 60196
Added by Michele Artini over 3 years ago
modules/dnet-isti/trunk/src/test/java/eu/dnetlib/data/utils/BibTexConverterTest.java | ||
---|---|---|
1 |
package eu.dnetlib.data.utils; |
|
2 |
|
|
3 |
import org.junit.Ignore; |
|
4 |
import org.junit.Test; |
|
5 |
|
|
6 |
import eu.dnetlib.data.mdstore.plugins.objects.MdRecord; |
|
7 |
|
|
8 |
public class BibTexConverterTest { |
|
9 |
|
|
10 |
@Test |
|
11 |
@Ignore |
|
12 |
public void testAsBibTex_1() { |
|
13 |
|
|
14 |
final MdRecord record = new MdRecord(); |
|
15 |
|
|
16 |
record.setId("1234"); |
|
17 |
record.setTitle("The D-NET software toolkit A framework for the realization, maintenance, and operation of aggregative infrastructures"); |
|
18 |
|
|
19 |
record.getCreators().add("Manghi P."); |
|
20 |
record.getCreators().add("Artini M."); |
|
21 |
|
|
22 |
record.setPublisher("Emerald, Bradford, Regno Unito"); |
|
23 |
record.getDois().add("10.1108/PROG-08-2013-0045"); |
|
24 |
record.setDate(2014); |
|
25 |
record.setSource("Program (Lond., 1966) 48 (2014): 322–354. doi:10.1108/PROG-08-2013-0045"); |
|
26 |
record.setType("Article"); |
|
27 |
|
|
28 |
final String bib = BibTexConverter.asBibTex(record); |
|
29 |
|
|
30 |
System.out.println(bib); |
|
31 |
|
|
32 |
} |
|
33 |
|
|
34 |
@Test |
|
35 |
public void testAsBibTex_article_source_1() { |
|
36 |
|
|
37 |
final MdRecord record = new MdRecord(); |
|
38 |
|
|
39 |
record.setId("1234"); |
|
40 |
record.setType("Article"); |
|
41 |
|
|
42 |
record.setSource("Internet of Things 13 (2020): 1–14"); |
|
43 |
|
|
44 |
final String bib = BibTexConverter.asBibTex(record); |
|
45 |
|
|
46 |
System.out.println(bib); |
|
47 |
|
|
48 |
} |
|
49 |
|
|
50 |
} |
modules/dnet-isti/trunk/src/main/java/eu/dnetlib/data/utils/CsvConverter.java | ||
---|---|---|
26 | 26 |
sw.append(prepareValue("" + record.getDate())); |
27 | 27 |
sw.append("\t"); |
28 | 28 |
sw.append(prepareValue(record.getDois())); |
29 |
sw.append("\t"); |
|
30 |
sw.append(prepareValue(record.getSource())); |
|
29 | 31 |
|
30 | 32 |
return sw.toString(); |
31 | 33 |
} |
modules/dnet-isti/trunk/src/main/java/eu/dnetlib/data/utils/BibTexConverter.java | ||
---|---|---|
4 | 4 |
import java.io.StringWriter; |
5 | 5 |
import java.io.Writer; |
6 | 6 |
import java.util.Collection; |
7 |
import java.util.regex.Matcher; |
|
8 |
import java.util.regex.Pattern; |
|
7 | 9 |
import java.util.stream.Collectors; |
8 | 10 |
|
9 | 11 |
import org.apache.commons.lang3.StringUtils; |
... | ... | |
30 | 32 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_TITLE, record.getTitle()); |
31 | 33 |
addMultipleStringValue(dbEntry, BibTeXEntry.KEY_AUTHOR, record.getCreators()); |
32 | 34 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_PUBLISHER, record.getPublisher()); |
33 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_YEAR, record.getDate()); |
|
34 | 35 |
addMultipleStringValue(dbEntry, BibTeXEntry.KEY_DOI, record.getDois()); |
35 | 36 |
|
37 |
addSourceAndDate(dbEntry, record); |
|
38 |
|
|
36 | 39 |
final BibTeXFormatter formatter = new BibTeXFormatter(); |
37 | 40 |
final Writer res = new StringWriter(); |
38 | 41 |
final BibTeXDatabase db = new BibTeXDatabase(); |
... | ... | |
62 | 65 |
} |
63 | 66 |
} |
64 | 67 |
|
68 |
private static void addSourceAndDate(final BibTeXEntry dbEntry, final MdRecord record) { |
|
69 |
String year = "" + record.getDate(); |
|
70 |
|
|
71 |
switch (record.getType().toLowerCase()) { |
|
72 |
case "conference object": |
|
73 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_BOOKTITLE, record.getSource()); |
|
74 |
break; |
|
75 |
case "part of book or chapter of book": |
|
76 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_BOOKTITLE, record.getSource()); |
|
77 |
break; |
|
78 |
case "report": |
|
79 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_INSTITUTION, record.getSource()); |
|
80 |
break; |
|
81 |
case "article": |
|
82 |
final String regex = "^(.+) (\\d*) \\((\\d{4})\\)(: (\\d+\\–?\\d*))?"; |
|
83 |
final Pattern pattern = Pattern.compile(regex); |
|
84 |
final Matcher matcher = pattern.matcher(record.getSource()); |
|
85 |
|
|
86 |
if (matcher.find()) { |
|
87 |
if (matcher.groupCount() >= 1) { |
|
88 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_JOURNAL, matcher.group(1)); |
|
89 |
} |
|
90 |
if (matcher.groupCount() >= 2) { |
|
91 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_VOLUME, matcher.group(2)); |
|
92 |
} |
|
93 |
if (matcher.groupCount() >= 3) { |
|
94 |
year = matcher.group(3); |
|
95 |
} |
|
96 |
if (matcher.groupCount() >= 5) { |
|
97 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_PAGES, matcher.group(5)); |
|
98 |
} |
|
99 |
} |
|
100 |
|
|
101 |
break; |
|
102 |
case "patent": |
|
103 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_HOWPUBLISHED, record.getSource()); |
|
104 |
break; |
|
105 |
} |
|
106 |
|
|
107 |
addSimpleStringValue(dbEntry, BibTeXEntry.KEY_YEAR, year); |
|
108 |
} |
|
109 |
|
|
65 | 110 |
private static Key findBibTexType(final String resourceType) { |
66 |
switch (resourceType) { |
|
67 |
case "Conference object":
|
|
111 |
switch (resourceType.toLowerCase()) {
|
|
112 |
case "conference object":
|
|
68 | 113 |
return BibTeXEntry.TYPE_INPROCEEDINGS; |
69 |
case "Report":
|
|
114 |
case "report":
|
|
70 | 115 |
return BibTeXEntry.TYPE_TECHREPORT; |
71 |
case "Article":
|
|
116 |
case "article":
|
|
72 | 117 |
return BibTeXEntry.TYPE_ARTICLE; |
73 |
case "Other":
|
|
118 |
case "other":
|
|
74 | 119 |
return BibTeXEntry.TYPE_MISC; |
75 |
case "Part of book or chapter of book":
|
|
120 |
case "part of book or chapter of book":
|
|
76 | 121 |
return BibTeXEntry.TYPE_INBOOK; |
77 |
case "Book":
|
|
122 |
case "book":
|
|
78 | 123 |
return BibTeXEntry.TYPE_BOOK; |
79 |
case "Bachelor thesis":
|
|
124 |
case "bachelor thesis":
|
|
80 | 125 |
return BibTeXEntry.TYPE_MASTERSTHESIS; |
81 |
case "Doctoral thesis":
|
|
126 |
case "doctoral thesis":
|
|
82 | 127 |
return BibTeXEntry.TYPE_PHDTHESIS; |
83 |
case "Patent":
|
|
128 |
case "patent":
|
|
84 | 129 |
return BibTeXEntry.TYPE_MISC; |
85 |
case "Master thesis":
|
|
130 |
case "master thesis":
|
|
86 | 131 |
return BibTeXEntry.TYPE_MASTERSTHESIS; |
87 | 132 |
default: |
88 | 133 |
return BibTeXEntry.TYPE_MISC; |
modules/dnet-isti/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/common/index.xml | ||
---|---|---|
95 | 95 |
</NODE> |
96 | 96 |
|
97 | 97 |
<NODE name="freezeStore" type="RunMDStorePlugin"> |
98 |
<DESCRIPTION>Enrich with projects</DESCRIPTION>
|
|
98 |
<DESCRIPTION>Freeze stores</DESCRIPTION>
|
|
99 | 99 |
<PARAMETERS> |
100 | 100 |
<PARAM name="pluginName" value="freezeMDStorePlugin"/> |
101 | 101 |
<PARAM name="parameters"> |
Also available in: Unified diff
BibTex converter: info from source field