forked from D-Net/dnet-hadoop
cleanup & best practices
This commit is contained in:
parent
4e6575a428
commit
3359f73fcf
|
@ -2,17 +2,9 @@
|
||||||
package eu.dnetlib.dhp.common.collection;
|
package eu.dnetlib.dhp.common.collection;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URL;
|
|
||||||
import java.net.URLConnection;
|
|
||||||
import java.nio.charset.Charset;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.apache.hadoop.conf.Configuration;
|
|
||||||
import org.apache.hadoop.fs.FSDataOutputStream;
|
import org.apache.hadoop.fs.FSDataOutputStream;
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
|
@ -20,17 +12,19 @@ import org.apache.hadoop.fs.Path;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.opencsv.bean.CsvToBeanBuilder;
|
import com.opencsv.bean.CsvToBeanBuilder;
|
||||||
|
|
||||||
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
|
||||||
|
|
||||||
public class GetCSV {
|
public class GetCSV {
|
||||||
|
|
||||||
public static void getCsv(FileSystem fileSystem, BufferedReader reader, String hdfsPath,
|
public static final char DEFAULT_DELIMITER = ',';
|
||||||
String modelClass) throws IOException, ClassNotFoundException {
|
|
||||||
getCsv(fileSystem, reader, hdfsPath, modelClass, ',');
|
|
||||||
|
|
||||||
|
private GetCSV() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void getCsv(FileSystem fileSystem, BufferedReader reader, String hdfsPath,
|
public static void getCsv(FileSystem fileSystem, BufferedReader reader, String hdfsPath,
|
||||||
|
String modelClass) throws IOException, ClassNotFoundException {
|
||||||
|
getCsv(fileSystem, reader, hdfsPath, modelClass, DEFAULT_DELIMITER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void getCsv(FileSystem fileSystem, Reader reader, String hdfsPath,
|
||||||
String modelClass, char delimiter) throws IOException, ClassNotFoundException {
|
String modelClass, char delimiter) throws IOException, ClassNotFoundException {
|
||||||
|
|
||||||
Path hdfsWritePath = new Path(hdfsPath);
|
Path hdfsWritePath = new Path(hdfsPath);
|
||||||
|
@ -40,26 +34,23 @@ public class GetCSV {
|
||||||
}
|
}
|
||||||
fsDataOutputStream = fileSystem.create(hdfsWritePath);
|
fsDataOutputStream = fileSystem.create(hdfsWritePath);
|
||||||
|
|
||||||
try(BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fsDataOutputStream, StandardCharsets.UTF_8))){
|
try (BufferedWriter writer = new BufferedWriter(
|
||||||
|
new OutputStreamWriter(fsDataOutputStream, StandardCharsets.UTF_8))) {
|
||||||
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
final ObjectMapper mapper = new ObjectMapper();
|
||||||
|
|
||||||
new CsvToBeanBuilder(reader)
|
@SuppressWarnings("unchecked")
|
||||||
|
final List lines = new CsvToBeanBuilder(reader)
|
||||||
.withType(Class.forName(modelClass))
|
.withType(Class.forName(modelClass))
|
||||||
.withSeparator(delimiter)
|
.withSeparator(delimiter)
|
||||||
.build()
|
.build()
|
||||||
.parse()
|
.parse();
|
||||||
.forEach(line -> {
|
|
||||||
try {
|
for (Object line : lines) {
|
||||||
writer.write(mapper.writeValueAsString(line));
|
writer.write(mapper.writeValueAsString(line));
|
||||||
writer.newLine();
|
writer.newLine();
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ package eu.dnetlib.dhp.common.collection;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
|
||||||
import jdk.nashorn.internal.ir.annotations.Ignore;
|
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
import org.apache.hadoop.fs.LocalFileSystem;
|
import org.apache.hadoop.fs.LocalFileSystem;
|
||||||
|
@ -20,6 +19,7 @@ import eu.dnetlib.dhp.common.collection.models.CSVProgramme;
|
||||||
import eu.dnetlib.dhp.common.collection.models.CSVProject;
|
import eu.dnetlib.dhp.common.collection.models.CSVProject;
|
||||||
import eu.dnetlib.dhp.common.collection.models.DOAJModel;
|
import eu.dnetlib.dhp.common.collection.models.DOAJModel;
|
||||||
import eu.dnetlib.dhp.common.collection.models.UnibiGoldModel;
|
import eu.dnetlib.dhp.common.collection.models.UnibiGoldModel;
|
||||||
|
import jdk.nashorn.internal.ir.annotations.Ignore;
|
||||||
|
|
||||||
public class GetCSVTest {
|
public class GetCSVTest {
|
||||||
|
|
||||||
|
@ -225,14 +225,14 @@ public class GetCSVTest {
|
||||||
}
|
}
|
||||||
if (count == 7904) {
|
if (count == 7904) {
|
||||||
System.out.println(new ObjectMapper().writeValueAsString(doaj));
|
System.out.println(new ObjectMapper().writeValueAsString(doaj));
|
||||||
Assertions.assertEquals("",doaj.getIssn());
|
Assertions.assertEquals("", doaj.getIssn());
|
||||||
Assertions.assertEquals("2055-7159", doaj.getEissn());
|
Assertions.assertEquals("2055-7159", doaj.getEissn());
|
||||||
Assertions.assertEquals("BJR|case reports", doaj.getJournalTitle());
|
Assertions.assertEquals("BJR|case reports", doaj.getJournalTitle());
|
||||||
}
|
}
|
||||||
if (count == 16707) {
|
if (count == 16707) {
|
||||||
|
|
||||||
Assertions.assertEquals("",doaj.getIssn());
|
Assertions.assertEquals("", doaj.getIssn());
|
||||||
Assertions.assertEquals("2788-6298",doaj.getEissn());
|
Assertions.assertEquals("2788-6298", doaj.getEissn());
|
||||||
Assertions
|
Assertions
|
||||||
.assertEquals("Teacher Education through Flexible Learning in Africa", doaj.getJournalTitle());
|
.assertEquals("Teacher Education through Flexible Learning in Africa", doaj.getJournalTitle());
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@ public class CSVProject implements Serializable {
|
||||||
@CsvBindByName(column = "topics")
|
@CsvBindByName(column = "topics")
|
||||||
private String topics;
|
private String topics;
|
||||||
|
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
@ -28,8 +27,6 @@ public class CSVProject implements Serializable {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getProgramme() {
|
public String getProgramme() {
|
||||||
return programme;
|
return programme;
|
||||||
}
|
}
|
||||||
|
@ -46,6 +43,4 @@ public class CSVProject implements Serializable {
|
||||||
this.topics = topics;
|
this.topics = topics;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@ public class CSVProject implements Serializable {
|
||||||
@CsvBindByName(column = "topics")
|
@CsvBindByName(column = "topics")
|
||||||
private String topics;
|
private String topics;
|
||||||
|
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
@ -28,8 +27,6 @@ public class CSVProject implements Serializable {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getProgramme() {
|
public String getProgramme() {
|
||||||
return programme;
|
return programme;
|
||||||
}
|
}
|
||||||
|
@ -46,6 +43,4 @@ public class CSVProject implements Serializable {
|
||||||
this.topics = topics;
|
this.topics = topics;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,7 +92,7 @@ public class PrepareH2020ProgrammeTest {
|
||||||
|
|
||||||
Assertions.assertEquals(0, verificationDataset.filter("classification = ''").count());
|
Assertions.assertEquals(0, verificationDataset.filter("classification = ''").count());
|
||||||
|
|
||||||
//tmp.foreach(csvProgramme -> System.out.println(OBJECT_MAPPER.writeValueAsString(csvProgramme)));
|
// tmp.foreach(csvProgramme -> System.out.println(OBJECT_MAPPER.writeValueAsString(csvProgramme)));
|
||||||
|
|
||||||
Assertions
|
Assertions
|
||||||
.assertEquals(
|
.assertEquals(
|
||||||
|
|
|
@ -78,11 +78,11 @@ object Aggregators {
|
||||||
if(b2 == null){
|
if(b2 == null){
|
||||||
return b1
|
return b1
|
||||||
}
|
}
|
||||||
if(!b1.getHb_id.equals("")){
|
if(!b1.getHostedById.equals("")){
|
||||||
b1.setOpenaccess(b1.getOpenaccess || b2.getOpenaccess)
|
b1.setOpenAccess(b1.getOpenAccess || b2.getOpenAccess)
|
||||||
return b1
|
return b1
|
||||||
}
|
}
|
||||||
b2.setOpenaccess(b1.getOpenaccess || b2.getOpenaccess)
|
b2.setOpenAccess(b1.getOpenAccess || b2.getOpenAccess)
|
||||||
b2
|
b2
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ object Aggregators {
|
||||||
if(b2 == null){
|
if(b2 == null){
|
||||||
return b1
|
return b1
|
||||||
}
|
}
|
||||||
if(!b1.getHb_id.equals("")){
|
if(!b1.getHostedById.equals("")){
|
||||||
return b1
|
return b1
|
||||||
}
|
}
|
||||||
b2
|
b2
|
||||||
|
@ -131,7 +131,7 @@ object Aggregators {
|
||||||
|
|
||||||
def datasourceToSingleId(df:Dataset[EntityInfo]): Dataset[EntityInfo] = {
|
def datasourceToSingleId(df:Dataset[EntityInfo]): Dataset[EntityInfo] = {
|
||||||
val transformedData : Dataset[EntityInfo] = df
|
val transformedData : Dataset[EntityInfo] = df
|
||||||
.groupByKey(_.getHb_id)(Encoders.STRING)
|
.groupByKey(_.getHostedById)(Encoders.STRING)
|
||||||
.agg(Aggregators.datasourceToSingleIdAggregator)
|
.agg(Aggregators.datasourceToSingleIdAggregator)
|
||||||
.map{
|
.map{
|
||||||
case (id:String , res: EntityInfo) => res
|
case (id:String , res: EntityInfo) => res
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.graph.hostedbymap;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import org.apache.hadoop.conf.Configuration;
|
||||||
|
import org.apache.hadoop.fs.FSDataOutputStream;
|
||||||
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
|
import org.apache.hadoop.fs.Path;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
||||||
|
import eu.dnetlib.dhp.common.collection.GetCSV;
|
||||||
|
import eu.dnetlib.dhp.common.collection.HttpConnector2;
|
||||||
|
|
||||||
|
public class DownloadCSV {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(DownloadCSV.class);
|
||||||
|
|
||||||
|
public static final char DEFAULT_DELIMITER = ';';
|
||||||
|
|
||||||
|
public static void main(final String[] args) throws Exception {
|
||||||
|
final ArgumentApplicationParser parser = new ArgumentApplicationParser(
|
||||||
|
IOUtils
|
||||||
|
.toString(
|
||||||
|
Objects
|
||||||
|
.requireNonNull(
|
||||||
|
DownloadCSV.class
|
||||||
|
.getResourceAsStream(
|
||||||
|
"/eu/dnetlib/dhp/oa/graph/hostedbymap/download_csv_parameters.json"))));
|
||||||
|
|
||||||
|
parser.parseArgument(args);
|
||||||
|
|
||||||
|
final String fileURL = parser.get("fileURL");
|
||||||
|
log.info("fileURL {}", fileURL);
|
||||||
|
|
||||||
|
final String workingPath = parser.get("workingPath");
|
||||||
|
log.info("workingPath {}", workingPath);
|
||||||
|
|
||||||
|
final String outputFile = parser.get("outputFile");
|
||||||
|
log.info("outputFile {}", outputFile);
|
||||||
|
|
||||||
|
final String hdfsNameNode = parser.get("hdfsNameNode");
|
||||||
|
log.info("hdfsNameNode {}", hdfsNameNode);
|
||||||
|
|
||||||
|
final String classForName = parser.get("classForName");
|
||||||
|
log.info("classForName {}", classForName);
|
||||||
|
|
||||||
|
final char delimiter = Optional
|
||||||
|
.ofNullable(parser.get("delimiter"))
|
||||||
|
.map(s -> s.charAt(0))
|
||||||
|
.orElse(DEFAULT_DELIMITER);
|
||||||
|
log.info("delimiter {}", delimiter);
|
||||||
|
|
||||||
|
final HttpConnector2 connector2 = new HttpConnector2();
|
||||||
|
|
||||||
|
Configuration conf = new Configuration();
|
||||||
|
conf.set("fs.defaultFS", hdfsNameNode);
|
||||||
|
|
||||||
|
FileSystem fileSystem = FileSystem.get(conf);
|
||||||
|
final Path path = new Path(workingPath + "/replaced.csv");
|
||||||
|
|
||||||
|
try (BufferedReader in = new BufferedReader(
|
||||||
|
new InputStreamReader(connector2.getInputSourceAsStream(fileURL)))) {
|
||||||
|
|
||||||
|
try (FSDataOutputStream fos = fileSystem.create(path, true)) {
|
||||||
|
String line;
|
||||||
|
while ((line = in.readLine()) != null) {
|
||||||
|
fos.writeUTF(line.replace("\\\"", "\""));
|
||||||
|
fos.writeUTF("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try (InputStreamReader reader = new InputStreamReader(fileSystem.open(path))) {
|
||||||
|
GetCSV.getCsv(fileSystem, reader, outputFile, classForName, delimiter);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,75 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.graph.hostedbymap;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
|
||||||
import org.apache.hadoop.conf.Configuration;
|
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
|
||||||
import eu.dnetlib.dhp.common.collection.HttpConnector2;
|
|
||||||
|
|
||||||
public class GetCSV {
|
|
||||||
|
|
||||||
public static void main(final String[] args) throws Exception {
|
|
||||||
final ArgumentApplicationParser parser = new ArgumentApplicationParser(
|
|
||||||
IOUtils
|
|
||||||
.toString(
|
|
||||||
GetCSV.class
|
|
||||||
.getResourceAsStream(
|
|
||||||
"/eu/dnetlib/dhp/oa/graph/hostedbymap/download_csv_parameters.json")));
|
|
||||||
|
|
||||||
parser.parseArgument(args);
|
|
||||||
|
|
||||||
final String fileURL = parser.get("fileURL");
|
|
||||||
final String hdfsPath = parser.get("workingPath");
|
|
||||||
final String hdfsNameNode = parser.get("hdfsNameNode");
|
|
||||||
final String classForName = parser.get("classForName");
|
|
||||||
final String delimiter = Optional
|
|
||||||
.ofNullable(parser.get("delimiter"))
|
|
||||||
.orElse(null);
|
|
||||||
final Boolean shouldReplace = Optional
|
|
||||||
.ofNullable((parser.get("replace")))
|
|
||||||
.map(Boolean::valueOf)
|
|
||||||
.orElse(false);
|
|
||||||
|
|
||||||
char del = ';';
|
|
||||||
if (delimiter != null) {
|
|
||||||
del = delimiter.charAt(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
HttpConnector2 connector2 = new HttpConnector2();
|
|
||||||
|
|
||||||
BufferedReader in = new BufferedReader(
|
|
||||||
new InputStreamReader(connector2.getInputSourceAsStream(fileURL)));
|
|
||||||
|
|
||||||
if (Boolean.TRUE.equals(shouldReplace)) {
|
|
||||||
try (PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("/tmp/replaced.csv")))) {
|
|
||||||
String line;
|
|
||||||
while ((line = in.readLine()) != null) {
|
|
||||||
writer.println(line.replace("\\\"", "\""));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
in.close();
|
|
||||||
in = new BufferedReader(new FileReader("/tmp/replaced.csv"));
|
|
||||||
}
|
|
||||||
|
|
||||||
Configuration conf = new Configuration();
|
|
||||||
conf.set("fs.defaultFS", hdfsNameNode);
|
|
||||||
|
|
||||||
FileSystem fileSystem = FileSystem.get(conf);
|
|
||||||
|
|
||||||
eu.dnetlib.dhp.common.collection.GetCSV.getCsv(fileSystem, in, hdfsPath, classForName, del);
|
|
||||||
|
|
||||||
in.close();
|
|
||||||
if (Boolean.TRUE.equals(shouldReplace)) {
|
|
||||||
File f = new File("/tmp/DOAJ.csv");
|
|
||||||
f.delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -15,7 +15,7 @@ import org.slf4j.{Logger, LoggerFactory}
|
||||||
object SparkApplyHostedByMapToDatasource {
|
object SparkApplyHostedByMapToDatasource {
|
||||||
|
|
||||||
def applyHBtoDats(join: Dataset[EntityInfo], dats: Dataset[Datasource]): Dataset[Datasource] = {
|
def applyHBtoDats(join: Dataset[EntityInfo], dats: Dataset[Datasource]): Dataset[Datasource] = {
|
||||||
dats.joinWith(join, dats.col("id").equalTo(join.col("hb_id")), "left")
|
dats.joinWith(join, dats.col("id").equalTo(join.col("hostedById")), "left")
|
||||||
.map(t2 => {
|
.map(t2 => {
|
||||||
val d: Datasource = t2._1
|
val d: Datasource = t2._1
|
||||||
if (t2._2 != null) {
|
if (t2._2 != null) {
|
||||||
|
|
|
@ -26,9 +26,9 @@ object SparkApplyHostedByMapToResult {
|
||||||
val i = p.getInstance().asScala
|
val i = p.getInstance().asScala
|
||||||
if (i.size == 1) {
|
if (i.size == 1) {
|
||||||
val inst: Instance = i(0)
|
val inst: Instance = i(0)
|
||||||
inst.getHostedby.setKey(ei.getHb_id)
|
inst.getHostedby.setKey(ei.getHostedById)
|
||||||
inst.getHostedby.setValue(ei.getName)
|
inst.getHostedby.setValue(ei.getName)
|
||||||
if (ei.getOpenaccess) {
|
if (ei.getOpenAccess) {
|
||||||
inst.setAccessright(OafMapperUtils.accessRight(ModelConstants.ACCESS_RIGHT_OPEN, "Open Access", ModelConstants.DNET_ACCESS_MODES, ModelConstants.DNET_ACCESS_MODES))
|
inst.setAccessright(OafMapperUtils.accessRight(ModelConstants.ACCESS_RIGHT_OPEN, "Open Access", ModelConstants.DNET_ACCESS_MODES, ModelConstants.DNET_ACCESS_MODES))
|
||||||
inst.getAccessright.setOpenAccessRoute(OpenAccessRoute.hybrid)
|
inst.getAccessright.setOpenAccessRoute(OpenAccessRoute.hybrid)
|
||||||
p.setBestaccessright(OafMapperUtils.createBestAccessRights(p.getInstance()));
|
p.setBestaccessright(OafMapperUtils.createBestAccessRights(p.getInstance()));
|
||||||
|
|
|
@ -64,13 +64,13 @@ object SparkPrepareHostedByInfoToApply {
|
||||||
}
|
}
|
||||||
|
|
||||||
def joinResHBM(res: Dataset[EntityInfo], hbm: Dataset[EntityInfo]): Dataset[EntityInfo] = {
|
def joinResHBM(res: Dataset[EntityInfo], hbm: Dataset[EntityInfo]): Dataset[EntityInfo] = {
|
||||||
Aggregators.resultToSingleId(res.joinWith(hbm, res.col("journal_id").equalTo(hbm.col("journal_id")), "left")
|
Aggregators.resultToSingleId(res.joinWith(hbm, res.col("journalId").equalTo(hbm.col("journalId")), "left")
|
||||||
.map(t2 => {
|
.map(t2 => {
|
||||||
val res: EntityInfo = t2._1
|
val res: EntityInfo = t2._1
|
||||||
if(t2._2 != null ){
|
if(t2._2 != null ){
|
||||||
val ds = t2._2
|
val ds = t2._2
|
||||||
res.setHb_id(ds.getId)
|
res.setHostedById(ds.getId)
|
||||||
res.setOpenaccess(ds.getOpenaccess)
|
res.setOpenAccess(ds.getOpenAccess)
|
||||||
res.setName(ds.getName)
|
res.setName(ds.getName)
|
||||||
}
|
}
|
||||||
res
|
res
|
||||||
|
|
|
@ -111,7 +111,7 @@ object SparkProduceHostedByMap {
|
||||||
|
|
||||||
|
|
||||||
def goldToHostedbyItemType(gold: UnibiGoldModel): HostedByItemType = {
|
def goldToHostedbyItemType(gold: UnibiGoldModel): HostedByItemType = {
|
||||||
return getHostedByItemType(Constants.UNIBI, gold.getTitle, gold.getIssn, "", gold.getIssn_l, true)
|
return getHostedByItemType(Constants.UNIBI, gold.getTitle, gold.getIssn, "", gold.getIssnL, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ import java.io.Serializable;
|
||||||
import com.opencsv.bean.CsvBindByName;
|
import com.opencsv.bean.CsvBindByName;
|
||||||
|
|
||||||
public class DOAJModel implements Serializable {
|
public class DOAJModel implements Serializable {
|
||||||
|
|
||||||
@CsvBindByName(column = "Journal title")
|
@CsvBindByName(column = "Journal title")
|
||||||
private String journalTitle;
|
private String journalTitle;
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,25 @@ import java.io.Serializable;
|
||||||
|
|
||||||
public class EntityInfo implements Serializable {
|
public class EntityInfo implements Serializable {
|
||||||
private String id;
|
private String id;
|
||||||
private String journal_id;
|
private String journalId;
|
||||||
private String name;
|
private String name;
|
||||||
private Boolean openaccess;
|
private Boolean openAccess;
|
||||||
private String hb_id;
|
private String hostedById;
|
||||||
|
|
||||||
|
public static EntityInfo newInstance(String id, String journalId, String name) {
|
||||||
|
return newInstance(id, journalId, name, false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EntityInfo newInstance(String id, String journalId, String name, Boolean openaccess) {
|
||||||
|
EntityInfo pi = new EntityInfo();
|
||||||
|
pi.id = id;
|
||||||
|
pi.journalId = journalId;
|
||||||
|
pi.name = name;
|
||||||
|
pi.openAccess = openaccess;
|
||||||
|
pi.hostedById = "";
|
||||||
|
return pi;
|
||||||
|
}
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
|
@ -18,12 +33,12 @@ public class EntityInfo implements Serializable {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getJournal_id() {
|
public String getJournalId() {
|
||||||
return journal_id;
|
return journalId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setJournal_id(String journal_id) {
|
public void setJournalId(String journalId) {
|
||||||
this.journal_id = journal_id;
|
this.journalId = journalId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
@ -34,35 +49,19 @@ public class EntityInfo implements Serializable {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean getOpenaccess() {
|
public Boolean getOpenAccess() {
|
||||||
return openaccess;
|
return openAccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOpenaccess(Boolean openaccess) {
|
public void setOpenAccess(Boolean openAccess) {
|
||||||
this.openaccess = openaccess;
|
this.openAccess = openAccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getHb_id() {
|
public String getHostedById() {
|
||||||
return hb_id;
|
return hostedById;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHb_id(String hb_id) {
|
public void setHostedById(String hostedById) {
|
||||||
this.hb_id = hb_id;
|
this.hostedById = hostedById;
|
||||||
}
|
|
||||||
|
|
||||||
public static EntityInfo newInstance(String id, String j_id, String name) {
|
|
||||||
return newInstance(id, j_id, name, false);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static EntityInfo newInstance(String id, String j_id, String name, Boolean openaccess) {
|
|
||||||
EntityInfo pi = new EntityInfo();
|
|
||||||
pi.id = id;
|
|
||||||
pi.journal_id = j_id;
|
|
||||||
pi.name = name;
|
|
||||||
pi.openaccess = openaccess;
|
|
||||||
pi.hb_id = "";
|
|
||||||
return pi;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,14 +6,15 @@ import java.io.Serializable;
|
||||||
import com.opencsv.bean.CsvBindByName;
|
import com.opencsv.bean.CsvBindByName;
|
||||||
|
|
||||||
public class UnibiGoldModel implements Serializable {
|
public class UnibiGoldModel implements Serializable {
|
||||||
|
|
||||||
@CsvBindByName(column = "ISSN")
|
@CsvBindByName(column = "ISSN")
|
||||||
private String issn;
|
private String issn;
|
||||||
@CsvBindByName(column = "ISSN_L")
|
@CsvBindByName(column = "ISSN_L")
|
||||||
private String issn_l;
|
private String issnL;
|
||||||
@CsvBindByName(column = "TITLE")
|
@CsvBindByName(column = "TITLE")
|
||||||
private String title;
|
private String title;
|
||||||
@CsvBindByName(column = "TITLE_SOURCE")
|
@CsvBindByName(column = "TITLE_SOURCE")
|
||||||
private String title_source;
|
private String titleSource;
|
||||||
|
|
||||||
public String getIssn() {
|
public String getIssn() {
|
||||||
return issn;
|
return issn;
|
||||||
|
@ -23,8 +24,12 @@ public class UnibiGoldModel implements Serializable {
|
||||||
this.issn = issn;
|
this.issn = issn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getIssn_l() {
|
public String getIssnL() {
|
||||||
return issn_l;
|
return issnL;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIssnL(String issnL) {
|
||||||
|
this.issnL = issnL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
|
@ -35,11 +40,11 @@ public class UnibiGoldModel implements Serializable {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTitle_source() {
|
public String getTitleSource() {
|
||||||
return title_source;
|
return titleSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTitle_source(String title_source) {
|
public void setTitleSource(String titleSource) {
|
||||||
this.title_source = title_source;
|
this.titleSource = titleSource;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,10 +100,11 @@
|
||||||
|
|
||||||
<action name="download_gold">
|
<action name="download_gold">
|
||||||
<java>
|
<java>
|
||||||
<main-class>eu.dnetlib.dhp.common.collection.GetCSV</main-class>
|
<main-class>eu.dnetlib.dhp.common.collection.DownloadCSV</main-class>
|
||||||
<arg>--hdfsNameNode</arg><arg>${nameNode}</arg>
|
<arg>--hdfsNameNode</arg><arg>${nameNode}</arg>
|
||||||
<arg>--fileURL</arg><arg>${unibiFileURL}</arg>
|
<arg>--fileURL</arg><arg>${unibiFileURL}</arg>
|
||||||
<arg>--workingPath</arg><arg>${workingDir}/unibi_gold</arg>
|
<arg>--workingPath</arg><arg>${workingDir}/unibi_gold</arg>
|
||||||
|
<arg>--outputFile</arg><arg>${workingDir}/unibi_gold.json</arg>
|
||||||
<arg>--classForName</arg><arg>eu.dnetlib.dhp.oa.graph.hostedbymap.model.UnibiGoldModel</arg>
|
<arg>--classForName</arg><arg>eu.dnetlib.dhp.oa.graph.hostedbymap.model.UnibiGoldModel</arg>
|
||||||
</java>
|
</java>
|
||||||
<ok to="join_download"/>
|
<ok to="join_download"/>
|
||||||
|
@ -112,10 +113,11 @@
|
||||||
|
|
||||||
<action name="download_doaj">
|
<action name="download_doaj">
|
||||||
<java>
|
<java>
|
||||||
<main-class>eu.dnetlib.dhp.common.collection.GetCSV</main-class>
|
<main-class>eu.dnetlib.dhp.common.collection.DownloadCSV</main-class>
|
||||||
<arg>--hdfsNameNode</arg><arg>${nameNode}</arg>
|
<arg>--hdfsNameNode</arg><arg>${nameNode}</arg>
|
||||||
<arg>--fileURL</arg><arg>${doajFileURL}</arg>
|
<arg>--fileURL</arg><arg>${doajFileURL}</arg>
|
||||||
<arg>--workingPath</arg><arg>${workingDir}/doaj</arg>
|
<arg>--workingPath</arg><arg>${workingDir}/doaj</arg>
|
||||||
|
<arg>--outputFile</arg><arg>${workingDir}/doaj.json</arg>
|
||||||
<arg>--classForName</arg><arg>eu.dnetlib.dhp.oa.graph.hostedbymap.model.DOAJModel</arg>
|
<arg>--classForName</arg><arg>eu.dnetlib.dhp.oa.graph.hostedbymap.model.DOAJModel</arg>
|
||||||
<arg>--replace</arg><arg>true</arg>
|
<arg>--replace</arg><arg>true</arg>
|
||||||
</java>
|
</java>
|
||||||
|
|
|
@ -117,14 +117,14 @@ class TestApply extends java.io.Serializable{
|
||||||
val pb : Datasource = t2._1
|
val pb : Datasource = t2._1
|
||||||
val pa : Datasource = t2._2
|
val pa : Datasource = t2._2
|
||||||
assertTrue(t2._1.getId.equals(t2._2.getId))
|
assertTrue(t2._1.getId.equals(t2._2.getId))
|
||||||
if(pb.getId.equals("10|doajarticles::0ab37b7620eb9a73ac95d3ca4320c97d")){
|
if(pb.getId.equals("10|doajarticles::0ab37b7620eb9a73ac95d3ca4320c97d")) {
|
||||||
assertTrue(pa.getOpenairecompatibility().getClassid.equals("hostedBy"))
|
assertTrue(pa.getOpenairecompatibility().getClassid.equals("hostedBy"))
|
||||||
assertTrue(pa.getOpenairecompatibility().getClassname.equals("collected from a compatible aggregator"))
|
assertTrue(pa.getOpenairecompatibility().getClassname.equals("collected from a compatible aggregator"))
|
||||||
|
|
||||||
assertTrue(pb.getOpenairecompatibility().getClassid.equals(ModelConstants.UNKNOWN))
|
assertTrue(pb.getOpenairecompatibility().getClassid.equals(ModelConstants.UNKNOWN))
|
||||||
|
|
||||||
|
|
||||||
}else{
|
} else {
|
||||||
assertTrue(pa.getOpenairecompatibility().getClassid.equals(pb.getOpenairecompatibility.getClassid))
|
assertTrue(pa.getOpenairecompatibility().getClassid.equals(pb.getOpenairecompatibility.getClassid))
|
||||||
assertTrue(pa.getOpenairecompatibility().getClassname.equals(pb.getOpenairecompatibility.getClassname))
|
assertTrue(pa.getOpenairecompatibility().getClassname.equals(pb.getOpenairecompatibility.getClassname))
|
||||||
|
|
||||||
|
|
|
@ -75,8 +75,8 @@ class TestPrepare extends java.io.Serializable{
|
||||||
|
|
||||||
assertEquals(2, ds.count)
|
assertEquals(2, ds.count)
|
||||||
|
|
||||||
assertEquals("50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9", ds.filter(ei => ei.getJournal_id.equals("1728-5852")).first().getId)
|
assertEquals("50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9", ds.filter(ei => ei.getJournalId.equals("1728-5852")).first().getId)
|
||||||
assertEquals("50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9", ds.filter(ei => ei.getJournal_id.equals("0001-396X")).first().getId)
|
assertEquals("50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9", ds.filter(ei => ei.getJournalId.equals("0001-396X")).first().getId)
|
||||||
|
|
||||||
spark.close()
|
spark.close()
|
||||||
}
|
}
|
||||||
|
@ -109,10 +109,10 @@ class TestPrepare extends java.io.Serializable{
|
||||||
val ei:EntityInfo = ds.first()
|
val ei:EntityInfo = ds.first()
|
||||||
|
|
||||||
assertEquals("50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9", ei.getId)
|
assertEquals("50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9", ei.getId)
|
||||||
assertEquals("10|issn___print::e4b6d6d978f67520f6f37679a98c5735", ei.getHb_id)
|
assertEquals("10|issn___print::e4b6d6d978f67520f6f37679a98c5735", ei.getHostedById)
|
||||||
assertEquals("0001-396X", ei.getJournal_id)
|
assertEquals("0001-396X", ei.getJournalId)
|
||||||
assertEquals("Academic Therapy", ei.getName)
|
assertEquals("Academic Therapy", ei.getName)
|
||||||
assertTrue(!ei.getOpenaccess)
|
assertTrue(!ei.getOpenAccess)
|
||||||
|
|
||||||
spark.close()
|
spark.close()
|
||||||
}
|
}
|
||||||
|
@ -145,9 +145,9 @@ class TestPrepare extends java.io.Serializable{
|
||||||
val ei:EntityInfo = ds.first()
|
val ei:EntityInfo = ds.first()
|
||||||
|
|
||||||
assertEquals("50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9", ei.getId)
|
assertEquals("50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9", ei.getId)
|
||||||
assertEquals("10|issn___print::e4b6d6d978f67520f6f37679a98c5735", ei.getHb_id)
|
assertEquals("10|issn___print::e4b6d6d978f67520f6f37679a98c5735", ei.getHostedById)
|
||||||
assertEquals("Academic Therapy", ei.getName)
|
assertEquals("Academic Therapy", ei.getName)
|
||||||
assertTrue(ei.getOpenaccess)
|
assertTrue(ei.getOpenAccess)
|
||||||
|
|
||||||
ds.foreach(e => println(mapper.writeValueAsString(e)))
|
ds.foreach(e => println(mapper.writeValueAsString(e)))
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
{"id":"10|issn___print::e4b6d6d978f67520f6f37679a98c5735","journal_id":"0001-396X","name":"Academic Therapy","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::e4b6d6d978f67520f6f37679a98c5735","journalId":"0001-396X","name":"Academic Therapy","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::cb21aba7985b1a0350abf99ee537302d","journal_id":"0033-569X","name":"Quarterly of Applied Mathematics","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::cb21aba7985b1a0350abf99ee537302d","journalId":"0033-569X","name":"Quarterly of Applied Mathematics","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::4b5605a395a243e12c95c1ecb8365107","journal_id":"0015-7899","name":"Forschung im Ingenieurwesen","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::4b5605a395a243e12c95c1ecb8365107","journalId":"0015-7899","name":"Forschung im Ingenieurwesen","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::7977c16f0c47a3827536c7af137f6a81","journal_id":"0034-6691","name":"Review of Polarography","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::7977c16f0c47a3827536c7af137f6a81","journalId":"0034-6691","name":"Review of Polarography","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::4b5605a395a243e12c95c1ecb8365107","journal_id":"1434-0860","name":"Forschung im Ingenieurwesen","openaccess":true,"hb_id":""}
|
{"id":"10|issn___print::4b5605a395a243e12c95c1ecb8365107","journalId":"1434-0860","name":"Forschung im Ingenieurwesen","openAccess":true,"hostedById":""}
|
||||||
{"id":"10|issn___print::a10bce72f7ee20cae8fffc1a167d112f","journal_id":"0035-1776","name":"Revue de Synthèse","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::a10bce72f7ee20cae8fffc1a167d112f","journalId":"0035-1776","name":"Revue de Synthèse","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::a4e08f7b862090b3f07e574e0159ff70","journal_id":"0022-0116","name":"Journal of Contemporary Psychotherapy","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::a4e08f7b862090b3f07e574e0159ff70","journalId":"0022-0116","name":"Journal of Contemporary Psychotherapy","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|doajarticles::4f8b4cf7460320c0a80b6c6b64b3260f","journal_id":"0037-699X","name":"Slovenské divadlo","openaccess":true,"hb_id":""}
|
{"id":"10|doajarticles::4f8b4cf7460320c0a80b6c6b64b3260f","journalId":"0037-699X","name":"Slovenské divadlo","openAccess":true,"hostedById":""}
|
||||||
{"id":"10|issn___print::a4e08f7b862090b3f07e574e0159ff70","journal_id":"1573-3564","name":"Journal of Contemporary Psychotherapy","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::a4e08f7b862090b3f07e574e0159ff70","journalId":"1573-3564","name":"Journal of Contemporary Psychotherapy","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::3c7f60a71f15ecc1611fbfe07509cd5c","journal_id":"0037-9697","name":"Proceedings of the Society for Analytical Chemistry","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::3c7f60a71f15ecc1611fbfe07509cd5c","journalId":"0037-9697","name":"Proceedings of the Society for Analytical Chemistry","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::853ec7c7322ab252e0eca4d2840e7bd0","journal_id":"0022-0493","name":"Journal of Economic Entomology","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::853ec7c7322ab252e0eca4d2840e7bd0","journalId":"0022-0493","name":"Journal of Economic Entomology","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::2a494a747066cafd64816e7495f32dc5","journal_id":"0045-6713","name":"Children s Literature in Education","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::2a494a747066cafd64816e7495f32dc5","journalId":"0045-6713","name":"Children s Literature in Education","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::745f001e3f564f56a493dfea1faae501","journal_id":"0022-4715","name":"Journal of Statistical Physics","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::745f001e3f564f56a493dfea1faae501","journalId":"0022-4715","name":"Journal of Statistical Physics","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::dcde40f2d085cdf9c3a5b109d4978a9c","journal_id":"0047-4800","name":"Littérature","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::dcde40f2d085cdf9c3a5b109d4978a9c","journalId":"0047-4800","name":"Littérature","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::1aea1dc1fbc3153111099750884dc4e8","journal_id":"1543-8325","name":"Land Economics","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::1aea1dc1fbc3153111099750884dc4e8","journalId":"1543-8325","name":"Land Economics","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::480cbec18c06afa9bb7e0070948c97ff","journal_id":"0068-1024","name":"Brigham Young University science bulletin","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::480cbec18c06afa9bb7e0070948c97ff","journalId":"0068-1024","name":"Brigham Young University science bulletin","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::1aea1dc1fbc3153111099750884dc4e8","journal_id":"0023-7639","name":"Land Economics","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::1aea1dc1fbc3153111099750884dc4e8","journalId":"0023-7639","name":"Land Economics","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::8cc8a1c0f0e11d4117014af5eccbbbb7","journal_id":"0083-6656","name":"Vistas in Astronomy","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::8cc8a1c0f0e11d4117014af5eccbbbb7","journalId":"0083-6656","name":"Vistas in Astronomy","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::91899e3872351895467856daeb798f63","journal_id":"0033-3298","name":"Public Administration","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::91899e3872351895467856daeb798f63","journalId":"0033-3298","name":"Public Administration","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::55bb9eafabc7c310adb8bb0c336f2c26","journal_id":"0090-502X","name":"Memory & Cognition","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::55bb9eafabc7c310adb8bb0c336f2c26","journalId":"0090-502X","name":"Memory & Cognition","openAccess":false,"hostedById":""}
|
|
@ -1,20 +1,20 @@
|
||||||
{"id":"10|issn___print::e4b6d6d978f67520f6f37679a98c5735","journal_id":"0001-396X","name":"Academic Therapy","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::e4b6d6d978f67520f6f37679a98c5735","journalId":"0001-396X","name":"Academic Therapy","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::cb21aba7985b1a0350abf99ee537302d","journal_id":"0033-569X","name":"Quarterly of Applied Mathematics","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::cb21aba7985b1a0350abf99ee537302d","journalId":"0033-569X","name":"Quarterly of Applied Mathematics","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::4b5605a395a243e12c95c1ecb8365107","journal_id":"0015-7899","name":"Forschung im Ingenieurwesen","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::4b5605a395a243e12c95c1ecb8365107","journalId":"0015-7899","name":"Forschung im Ingenieurwesen","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::7977c16f0c47a3827536c7af137f6a81","journal_id":"0034-6691","name":"Review of Polarography","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::7977c16f0c47a3827536c7af137f6a81","journalId":"0034-6691","name":"Review of Polarography","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::e4b6d6d978f67520f6f37679a98c5735","journal_id":"1434-0860","name":"Academic Therapy","openaccess":true,"hb_id":""}
|
{"id":"10|issn___print::e4b6d6d978f67520f6f37679a98c5735","journalId":"1434-0860","name":"Academic Therapy","openAccess":true,"hostedById":""}
|
||||||
{"id":"10|issn___print::a10bce72f7ee20cae8fffc1a167d112f","journal_id":"0035-1776","name":"Revue de Synthèse","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::a10bce72f7ee20cae8fffc1a167d112f","journalId":"0035-1776","name":"Revue de Synthèse","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::a4e08f7b862090b3f07e574e0159ff70","journal_id":"0022-0116","name":"Journal of Contemporary Psychotherapy","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::a4e08f7b862090b3f07e574e0159ff70","journalId":"0022-0116","name":"Journal of Contemporary Psychotherapy","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|doajarticles::4f8b4cf7460320c0a80b6c6b64b3260f","journal_id":"0037-699X","name":"Slovenské divadlo","openaccess":true,"hb_id":""}
|
{"id":"10|doajarticles::4f8b4cf7460320c0a80b6c6b64b3260f","journalId":"0037-699X","name":"Slovenské divadlo","openAccess":true,"hostedById":""}
|
||||||
{"id":"10|issn___print::a4e08f7b862090b3f07e574e0159ff70","journal_id":"1573-3564","name":"Journal of Contemporary Psychotherapy","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::a4e08f7b862090b3f07e574e0159ff70","journalId":"1573-3564","name":"Journal of Contemporary Psychotherapy","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::3c7f60a71f15ecc1611fbfe07509cd5c","journal_id":"0037-9697","name":"Proceedings of the Society for Analytical Chemistry","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::3c7f60a71f15ecc1611fbfe07509cd5c","journalId":"0037-9697","name":"Proceedings of the Society for Analytical Chemistry","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::853ec7c7322ab252e0eca4d2840e7bd0","journal_id":"0022-0493","name":"Journal of Economic Entomology","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::853ec7c7322ab252e0eca4d2840e7bd0","journalId":"0022-0493","name":"Journal of Economic Entomology","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::2a494a747066cafd64816e7495f32dc5","journal_id":"0045-6713","name":"Children s Literature in Education","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::2a494a747066cafd64816e7495f32dc5","journalId":"0045-6713","name":"Children s Literature in Education","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::745f001e3f564f56a493dfea1faae501","journal_id":"0022-4715","name":"Journal of Statistical Physics","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::745f001e3f564f56a493dfea1faae501","journalId":"0022-4715","name":"Journal of Statistical Physics","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::dcde40f2d085cdf9c3a5b109d4978a9c","journal_id":"0047-4800","name":"Littérature","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::dcde40f2d085cdf9c3a5b109d4978a9c","journalId":"0047-4800","name":"Littérature","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::1aea1dc1fbc3153111099750884dc4e8","journal_id":"1543-8325","name":"Land Economics","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::1aea1dc1fbc3153111099750884dc4e8","journalId":"1543-8325","name":"Land Economics","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::480cbec18c06afa9bb7e0070948c97ff","journal_id":"0068-1024","name":"Brigham Young University science bulletin","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::480cbec18c06afa9bb7e0070948c97ff","journalId":"0068-1024","name":"Brigham Young University science bulletin","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::1aea1dc1fbc3153111099750884dc4e8","journal_id":"0023-7639","name":"Land Economics","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::1aea1dc1fbc3153111099750884dc4e8","journalId":"0023-7639","name":"Land Economics","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::8cc8a1c0f0e11d4117014af5eccbbbb7","journal_id":"0083-6656","name":"Vistas in Astronomy","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::8cc8a1c0f0e11d4117014af5eccbbbb7","journalId":"0083-6656","name":"Vistas in Astronomy","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::91899e3872351895467856daeb798f63","journal_id":"0033-3298","name":"Public Administration","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::91899e3872351895467856daeb798f63","journalId":"0033-3298","name":"Public Administration","openAccess":false,"hostedById":""}
|
||||||
{"id":"10|issn___print::55bb9eafabc7c310adb8bb0c336f2c26","journal_id":"0090-502X","name":"Memory & Cognition","openaccess":false,"hb_id":""}
|
{"id":"10|issn___print::55bb9eafabc7c310adb8bb0c336f2c26","journalId":"0090-502X","name":"Memory & Cognition","openAccess":false,"hostedById":""}
|
|
@ -1,2 +1,2 @@
|
||||||
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journal_id":"1728-5852","name":"","openaccess":false,"hb_id":""}
|
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journalId":"1728-5852","name":"","openAccess":false,"hostedById":""}
|
||||||
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journal_id":"0001-396X","name":"","openaccess":false,"hb_id":""}
|
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journalId":"0001-396X","name":"","openAccess":false,"hostedById":""}
|
|
@ -1,2 +1,2 @@
|
||||||
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journal_id":"1434-0860","name":"","openaccess":false,"hb_id":""}
|
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journalId":"1434-0860","name":"","openAccess":false,"hostedById":""}
|
||||||
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journal_id":"0001-396X","name":"","openaccess":false,"hb_id":""}
|
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journalId":"0001-396X","name":"","openAccess":false,"hostedById":""}
|
|
@ -1 +1 @@
|
||||||
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journal_id":"1434-0860","name":"Academic Therapy","openaccess":true,"hb_id":"10|issn___print::e4b6d6d978f67520f6f37679a98c5735"}
|
{"id":"50|4dc99724cf04::ed1ba83e1add6ce292433729acd8b0d9","journalId":"1434-0860","name":"Academic Therapy","openAccess":true,"hostedById":"10|issn___print::e4b6d6d978f67520f6f37679a98c5735"}
|
|
@ -1,3 +1,3 @@
|
||||||
{"id":"pubid","journal_id":"issn","name":"ds_name","openaccess":true,"hb_id":"10|doajarticles::0ab37b7620eb9a73ac95d3ca4320c97d"}
|
{"id":"pubid","journalId":"issn","name":"ds_name","openAccess":true,"hostedById":"10|doajarticles::0ab37b7620eb9a73ac95d3ca4320c97d"}
|
||||||
{"id":"pubid","journal_id":"issn","name":"ds_name","openaccess":true,"hb_id":"10|doajarticles::0ab37b7620eb9a73ac95d3ca4320c97d"}
|
{"id":"pubid","journalId":"issn","name":"ds_name","openAccess":true,"hostedById":"10|doajarticles::0ab37b7620eb9a73ac95d3ca4320c97d"}
|
||||||
{"id":"pubid","journal_id":"issn","name":"ds_name","openaccess":true,"hb_id":"10|doajarticles::abbc9265bea9ff62776a1c39785af00c"}
|
{"id":"pubid","journalId":"issn","name":"ds_name","openAccess":true,"hostedById":"10|doajarticles::abbc9265bea9ff62776a1c39785af00c"}
|
||||||
|
|
|
@ -1,29 +1,29 @@
|
||||||
{"issn":"2502-731X","issn_l":"2502-731X","title":"JIMKESMAS (Jurnal Ilmiah Mahasiswa Kesehatan Masyarakat)","title_source":"ROAD"}
|
{"issn":"2502-731X","issnL":"2502-731X","title":"JIMKESMAS (Jurnal Ilmiah Mahasiswa Kesehatan Masyarakat)","titleSource":"ROAD"}
|
||||||
{"issn":"2502-7409","issn_l":"1411-0253","title":"Jurnal ilmu informasi, perpustakaan, dan kearsipan","title_source":"ROAD"}
|
{"issn":"2502-7409","issnL":"1411-0253","title":"Jurnal ilmu informasi, perpustakaan, dan kearsipan","titleSource":"ROAD"}
|
||||||
{"issn":"2502-7433","issn_l":"2502-7433","title":"At-Tadbir : jurnal ilmiah manajemen","title_source":"ROAD"}
|
{"issn":"2502-7433","issnL":"2502-7433","title":"At-Tadbir : jurnal ilmiah manajemen","titleSource":"ROAD"}
|
||||||
{"issn":"2502-745X","issn_l":"2502-745X","title":"Jurnal Kesehatan Panrita Husada.","title_source":"ROAD"}
|
{"issn":"2502-745X","issnL":"2502-745X","title":"Jurnal Kesehatan Panrita Husada.","titleSource":"ROAD"}
|
||||||
{"issn":"2502-7549","issn_l":"2502-7549","title":"ELang journal (An English Education journal)","title_source":"ROAD"}
|
{"issn":"2502-7549","issnL":"2502-7549","title":"ELang journal (An English Education journal)","titleSource":"ROAD"}
|
||||||
{"issn":"2423-3633","issn_l":"2423-3625","title":"̒Ulūm-i darmāngāhī-i dāmpizishkī-i Īrān.","title_source":"ROAD"}
|
{"issn":"2423-3633","issnL":"2423-3625","title":"̒Ulūm-i darmāngāhī-i dāmpizishkī-i Īrān.","titleSource":"ROAD"}
|
||||||
{"issn":"2423-5563","issn_l":"2423-3773","title":"Pizhūhishnāmah-i ̒ilm/sanjī.","title_source":"ROAD"}
|
{"issn":"2423-5563","issnL":"2423-3773","title":"Pizhūhishnāmah-i ̒ilm/sanjī.","titleSource":"ROAD"}
|
||||||
{"issn":"1735-434X","issn_l":"1735-434X","title":"Iranian journal of animal biosystematics.","title_source":"ROAD"}
|
{"issn":"1735-434X","issnL":"1735-434X","title":"Iranian journal of animal biosystematics.","titleSource":"ROAD"}
|
||||||
{"issn":"2423-4435","issn_l":"2008-6113","title":"Majallah-i jangal-i Īrān.","title_source":"ROAD"}
|
{"issn":"2423-4435","issnL":"2008-6113","title":"Majallah-i jangal-i Īrān.","titleSource":"ROAD"}
|
||||||
{"issn":"2423-4575","issn_l":"2423-4575","title":"Ābziyān-i zinatī.","title_source":"ROAD"}
|
{"issn":"2423-4575","issnL":"2423-4575","title":"Ābziyān-i zinatī.","titleSource":"ROAD"}
|
||||||
{"issn":"2423-4974","issn_l":"2423-4974","title":"Pizhūhishnāmah-i ravābiṭ-i biyn/al- milal.","title_source":"ROAD"}
|
{"issn":"2423-4974","issnL":"2423-4974","title":"Pizhūhishnāmah-i ravābiṭ-i biyn/al- milal.","titleSource":"ROAD"}
|
||||||
{"issn":"2380-0607","issn_l":"2380-0607","title":"AIHM journal club.","title_source":"ROAD"}
|
{"issn":"2380-0607","issnL":"2380-0607","title":"AIHM journal club.","titleSource":"ROAD"}
|
||||||
{"issn":"1085-4568","issn_l":"1085-4568","title":"Frontiers.","title_source":"ROAD"}
|
{"issn":"1085-4568","issnL":"1085-4568","title":"Frontiers.","titleSource":"ROAD"}
|
||||||
{"issn":"2380-8845","issn_l":"2380-8845","title":"The journal of contemporary archival studies.","title_source":"ROAD"}
|
{"issn":"2380-8845","issnL":"2380-8845","title":"The journal of contemporary archival studies.","titleSource":"ROAD"}
|
||||||
{"issn":"2381-1803","issn_l":"2381-1803","title":"International journal of complementary & alternative medicine.","title_source":"ROAD"}
|
{"issn":"2381-1803","issnL":"2381-1803","title":"International journal of complementary & alternative medicine.","titleSource":"ROAD"}
|
||||||
{"issn":"2381-2478","issn_l":"2381-2478","title":"Palapala.","title_source":"ROAD"}
|
{"issn":"2381-2478","issnL":"2381-2478","title":"Palapala.","titleSource":"ROAD"}
|
||||||
{"issn":"2382-5170","issn_l":"2382-5170","title":"Asia pacific journal of environment ecology and sustainable development.","title_source":"ROAD"}
|
{"issn":"2382-5170","issnL":"2382-5170","title":"Asia pacific journal of environment ecology and sustainable development.","titleSource":"ROAD"}
|
||||||
{"issn":"2382-9737","issn_l":"2382-9737","title":"Majallah-i salāmat va bihdāsht","title_source":"ROAD"}
|
{"issn":"2382-9737","issnL":"2382-9737","title":"Majallah-i salāmat va bihdāsht","titleSource":"ROAD"}
|
||||||
{"issn":"2382-977X","issn_l":"2382-977X","title":"UCT journal of research in science ,engineering and technology","title_source":"ROAD"}
|
{"issn":"2382-977X","issnL":"2382-977X","title":"UCT journal of research in science ,engineering and technology","titleSource":"ROAD"}
|
||||||
{"issn":"2382-9974","issn_l":"2382-9974","title":"Bih/nizhādī-i giyāhān-i zirā̒ī va bāghī.","title_source":"ROAD"}
|
{"issn":"2382-9974","issnL":"2382-9974","title":"Bih/nizhādī-i giyāhān-i zirā̒ī va bāghī.","titleSource":"ROAD"}
|
||||||
{"issn":"2227-4782","issn_l":"2227-4782","title":"Problemi endokrinnoï patologìï.","title_source":"ROAD"}
|
{"issn":"2227-4782","issnL":"2227-4782","title":"Problemi endokrinnoï patologìï.","titleSource":"ROAD"}
|
||||||
{"issn":"2685-0079","issn_l":"2597-4971","title":"Jurnal Kebijakan Pembangunan Daerah : Jurnal Penelitian dan Pengembangan Kebijakan Pembangunan Daerah.","title_source":"ROAD"}
|
{"issn":"2685-0079","issnL":"2597-4971","title":"Jurnal Kebijakan Pembangunan Daerah : Jurnal Penelitian dan Pengembangan Kebijakan Pembangunan Daerah.","titleSource":"ROAD"}
|
||||||
{"issn":"2574-0075","issn_l":"2574-0075","title":"Hypermedia magazine.","title_source":"ROAD"}
|
{"issn":"2574-0075","issnL":"2574-0075","title":"Hypermedia magazine.","titleSource":"ROAD"}
|
||||||
{"issn":"2574-0296","issn_l":"2574-0296","title":"The museum review.","title_source":"ROAD"}
|
{"issn":"2574-0296","issnL":"2574-0296","title":"The museum review.","titleSource":"ROAD"}
|
||||||
{"issn":"2574-0334","issn_l":"2574-0334","title":"Bioactive compounds in health and disease.","title_source":"ROAD"}
|
{"issn":"2574-0334","issnL":"2574-0334","title":"Bioactive compounds in health and disease.","titleSource":"ROAD"}
|
||||||
{"issn":"2574-108X","issn_l":"2574-108X","title":"Journal of computer science integration.","title_source":"ROAD"}
|
{"issn":"2574-108X","issnL":"2574-108X","title":"Journal of computer science integration.","titleSource":"ROAD"}
|
||||||
{"issn":"2574-254X","issn_l":"2574-254X","title":"Child and adolescent obesity.","title_source":"ROAD"}
|
{"issn":"2574-254X","issnL":"2574-254X","title":"Child and adolescent obesity.","titleSource":"ROAD"}
|
||||||
{"issn":"2574-3325","issn_l":"2574-3325","title":"Journal of research on the college president.","title_source":"ROAD"}
|
{"issn":"2574-3325","issnL":"2574-3325","title":"Journal of research on the college president.","titleSource":"ROAD"}
|
||||||
{"issn":"2239-6101","issn_l":"2239-5938","title":"European journal of sustainable development.","title_source":"ROAD"}
|
{"issn":"2239-6101","issnL":"2239-5938","title":"European journal of sustainable development.","titleSource":"ROAD"}
|
Loading…
Reference in New Issue