changed library to OkHttp

This commit is contained in:
Miriam Baglioni 2020-07-03 15:17:11 +02:00
parent d0f9891355
commit 7ddd8590d0
11 changed files with 295 additions and 370 deletions

View File

@ -65,6 +65,11 @@
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.7.2</version>
</dependency>
</dependencies>

View File

@ -5,6 +5,7 @@ import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.io.IOUtils;
@ -29,6 +30,8 @@ import org.apache.http.util.EntityUtils;
import com.google.gson.Gson;
import okhttp3.*;
/**
* Created by Alessia Bardi on 19/06/2020.
*
@ -43,6 +46,8 @@ public class GCatAPIClient {
private final String itemPath = "items";
private String applicationToken;
private static final MediaType MEDIA_TYPE_JSON = MediaType.parse("application/json; charset=utf-8");
public GCatAPIClient() {
}
@ -55,26 +60,32 @@ public class GCatAPIClient {
*/
public int publish(final String jsonMetadata) throws IOException, URISyntaxException {
try (CloseableHttpClient client = HttpClients.createDefault()) {
URIBuilder builder = new URIBuilder(getGcatBaseURL() + itemPath);
URI uri = builder.build();
System.out.println(uri.toString());
HttpPost post = new HttpPost(uri);
post.setHeader("gcube-token", getApplicationToken());
post.addHeader("Content-Type", "application/json");
post.addHeader("Accept", "application/json");
StringEntity entity = new StringEntity(jsonMetadata, StandardCharsets.UTF_8);
post.setEntity(entity);
HttpResponse response = client.execute(post);
OkHttpClient httpCLient = new OkHttpClient();
RequestBody body = RequestBody.create(jsonMetadata, MEDIA_TYPE_JSON);
Request request = new Request.Builder()
.url(getGcatBaseURL() + itemPath)
.header("gcube-token", getApplicationToken())
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.post(body)
.build();
try (Response response = httpCLient.newCall(request).execute()) {
if (log.isDebugEnabled()) {
log.debug(response.getStatusLine());
System.out.println(response.getStatusLine());
log.debug(IOUtils.toString(response.getEntity().getContent()));
log.debug(response.code());
System.out.println(response.code());
log.debug(response.body().string());
}
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
return response.getStatusLine().getStatusCode();
return response.code();
}
}
/**
@ -87,34 +98,25 @@ public class GCatAPIClient {
* @throws URISyntaxException
*/
public List<String> list(final int offset, final int limit) throws IOException, URISyntaxException {
try (CloseableHttpClient client = HttpClients.createDefault()) {
URIBuilder builder = new URIBuilder(getGcatBaseURL() + itemPath)
.addParameter("offset", String.valueOf(offset))
.addParameter("limit", String.valueOf(limit));
URI uri = builder.build();
System.out.println(uri.toString());
HttpGet get = new HttpGet(uri);
get.setHeader("gcube-token", getApplicationToken());
get.addHeader("Content-Type", "application/json");
get.addHeader("Accept", "application/json");
// Create a custom response handler
ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
OkHttpClient httpClient = new OkHttpClient();
Request request = new Request.Builder()
.url(getGcatBaseURL() + itemPath + "?offset=" + offset + "&limit=" + limit)
.header("gcube-token", getApplicationToken())
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.get()
.build();
try (Response response = httpClient.newCall(request).execute()) {
int status = response.code();
if (status >= 200 && status < 300) {
String entity = response.body().string();
return entity != null ? new Gson().fromJson(entity, List.class) : null;
} else {
throw new ClientProtocolException("Unexpected response status: " + status);
}
@Override
public String handleResponse(
final HttpResponse response) throws ClientProtocolException, IOException {
int status = response.getStatusLine().getStatusCode();
if (status >= 200 && status < 300) {
HttpEntity entity = response.getEntity();
return entity != null ? EntityUtils.toString(entity) : null;
} else {
throw new ClientProtocolException("Unexpected response status: " + status);
}
}
};
String responseBody = client.execute(get, responseHandler);
Gson gson = new Gson();
return gson.fromJson(responseBody, List.class);
}
}

View File

@ -174,7 +174,7 @@ public class Mapper implements Serializable {
.ifPresent(value -> value.forEach(f -> formatSet.add(f.getValue())));
String id = input.getId();
id = id.substring(0, id.lastIndexOf(":") + 1) + "a" + id.substring(id.lastIndexOf(":") + 1);
// id = id.substring(0, id.lastIndexOf(":") + 1) + "a" + id.substring(id.lastIndexOf(":") + 1);
out.setName(id.substring(id.indexOf('|') + 1).replace(":", "-"));
final Set<String> itSet = new HashSet<>();

View File

@ -1,7 +1,11 @@
package eu.dnetlib.dhp.oa.graph.dump.gcat;
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.Serializable;
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -12,10 +16,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import org.apache.http.HttpStatus;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.Serializable;
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
public class SendToCatalogue implements Serializable {
@ -23,11 +24,11 @@ public class SendToCatalogue implements Serializable {
public static void main(final String[] args) throws Exception {
final ArgumentApplicationParser parser = new ArgumentApplicationParser(
IOUtils
.toString(
SendToCatalogue.class
.getResourceAsStream(
"/eu/dnetlib/dhp/blacklist/catalogue_parameters.json")));
IOUtils
.toString(
SendToCatalogue.class
.getResourceAsStream(
"/eu/dnetlib/dhp/blacklist/catalogue_parameters.json")));
parser.parseArgument(args);
@ -41,8 +42,8 @@ public class SendToCatalogue implements Serializable {
FileSystem fileSystem = FileSystem.get(conf);
RemoteIterator<LocatedFileStatus> fileStatusListIterator = fileSystem
.listFiles(
new Path(hdfsPath), true);
.listFiles(
new Path(hdfsPath), true);
GCatAPIClient gCatAPIClient = new GCatAPIClient();
gCatAPIClient.setApplicationToken(access_token);
int purged = gCatAPIClient.purgeAll();
@ -55,27 +56,23 @@ public class SendToCatalogue implements Serializable {
String tmp = p_string.substring(0, p_string.lastIndexOf("/"));
String name = tmp.substring(tmp.lastIndexOf("/") + 1);
log.info("Sending information for : " + name);
//String community_name = communityMap.get(community).replace(" ", "_");
// String community_name = communityMap.get(community).replace(" ", "_");
log.info("Copying information for : " + name);
fileSystem.copyToLocalFile(p, new Path("/tmp/" + name));
BufferedReader reader = new BufferedReader(new FileReader("/tmp/" + name));
String line;
while((line=reader.readLine())!= null){
if (HttpStatus.SC_CREATED != gCatAPIClient.publish(line)){
while ((line = reader.readLine()) != null) {
if (HttpStatus.SC_CREATED != gCatAPIClient.publish(line)) {
log.error("entry non created for item " + line);
}
}
reader.close();
log.info("deleting information for: " + name);
File f = new File("/tmp/"+name);
File f = new File("/tmp/" + name);
f.delete();
}
}
}

View File

@ -207,18 +207,18 @@
<error to="Kill"/>
</action>
<join name="join_dump" to="populate_catalogue"/>
<join name="join_dump" to="End"/>
<action name="populate_catalogue">
<java>
<main-class>eu.dnetlib.dhp.oa.graph.dump.gcat.SendToCatalogue</main-class>
<arg>--hdfsPath</arg><arg>${workingDir}/blacklist</arg>
<arg>--hdfsNameNode</arg><arg>${nameNode}</arg>
<arg>--accessToken</arg><arg>${accessToken}</arg>
</java>
<ok to="End"/>
<error to="Kill"/>
</action>
<!-- <action name="populate_catalogue">-->
<!-- <java>-->
<!-- <main-class>eu.dnetlib.dhp.oa.graph.dump.gcat.SendToCatalogue</main-class>-->
<!-- <arg>&#45;&#45;hdfsPath</arg><arg>${workingDir}/blacklist</arg>-->
<!-- <arg>&#45;&#45;hdfsNameNode</arg><arg>${nameNode}</arg>-->
<!-- <arg>&#45;&#45;accessToken</arg><arg>${accessToken}</arg>-->
<!-- </java>-->
<!-- <ok to="End"/>-->
<!-- <error to="Kill"/>-->
<!-- </action>-->
<end name="End"/>

View File

@ -99,6 +99,4 @@ public class DumpJobTest {
}
}

View File

@ -8,7 +8,6 @@ import java.io.IOException;
import java.net.URISyntaxException;
import java.util.List;
import com.google.common.collect.Lists;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpStatus;
import org.junit.jupiter.api.Assertions;
@ -16,13 +15,15 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import com.google.common.collect.Lists;
import eu.dnetlib.dhp.oa.graph.dump.gcat.GCatAPIClient;
/**
* NEVER EVER ENABLE THIS CLASS UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING: with the proper parameters set it can
* dropped a D4Science Catalogue
*/
@Disabled
//@Disabled
public class GCatAPIClientTest {
private static GCatAPIClient client;
@ -30,7 +31,7 @@ public class GCatAPIClientTest {
@BeforeAll
public static void setup() {
client = new GCatAPIClient();
client.setApplicationToken("");
client.setApplicationToken("816486a3-60a9-4ecc-a7e0-a96740a90207-843339462");
client.setGcatBaseURL("https://gcat.d4science.org/gcat/");
}
@ -108,7 +109,7 @@ public class GCatAPIClientTest {
@Test
public void purgeItem() throws IOException, URISyntaxException {
String objidentifier = "fake";
String objidentifier = "dedup_wf_001--10160b3eafcedeb0a384fc400fe1c3fa";
Assertions.assertTrue(client.purge(objidentifier));
System.out.println("item purged");

View File

@ -1,2 +1,2 @@
{"extras":[{"key":"system:type","value":"dataset"},{"key":"Risis2_Attribution:Author","value":"Laredo, Philippe, 0000-0002-5014-9132"},{"key":"AccessMode:Access Right","value":"Open Access"},{"key":"Risis2_Attribution:Contributor","value":"European Commission"},{"key":"AccessMode:Embargo End Date","value":""},{"key":"Language","value":"English"},{"key":"Identity:PID","value":"https://www.doi.org/10.5281/zenodo.2560116"},{"key":"Identity:PID","value":"https://www.doi.org/10.5281/zenodo.2560117"},{"key":"Risis2_Publishing:Publication Date","value":"2019-02-08"},{"key":"Risis2_Publishing:Publisher","value":"Zenodo"},{"key":"Risis2_Publishing:Collected From","value":"ZENODO; Datacite; figshare"},{"key":"Risis2_Publishing:Hosted By","value":"Zenodo; ZENODO; figshare"},{"key":"Identity:URL","value":"http://dx.doi.org/10.5281/zenodo.2560117"},{"key":"Identity:URL","value":"https://zenodo.org/record/2560117"},{"key":"Identity:URL","value":"http://dx.doi.org/10.5281/zenodo.2560116"},{"key":"Identity:URL","value":"https://figshare.com/articles/Introduction_of_RISIS_project_by_Philippe_Laredo/7699286"},{"key":"Country","value":""},{"key":"Format","value":""},{"key":"Resource Type","value":"Audiovisual"}],"groups":[{"name":"open"},{"name":"zenodo"},{"name":"figshare"}],"license_id":"notspecified","name":"dedup_wf_001--a10160b3eafcedeb0a384fc400fe1c3fa","notes":"<p>Introduction of RISIS project by Philippe Laredo</p>","tags":[],"title":"Introduction of RISIS project by Philippe Laredo","url":"https://beta.risis.openaire.eu/search/dataset?datasetId=dedup_wf_001::10160b3eafcedeb0a384fc400fe1c3fa","version":"None"}
{"extras":[{"key":"system:type","value":"dataset"},{"key":"Risis2_Attribution:Author","value":"Lepori, Benedetto"},{"key":"Risis2_Attribution:Author","value":"Guerini, Massimilano"},{"key":"AccessMode:Access Right","value":"Open Access"},{"key":"Risis2_Attribution:Contributor","value":"European Commission"},{"key":"AccessMode:Embargo End Date","value":""},{"key":"Language","value":"English"},{"key":"Identity:PID","value":"https://www.doi.org/10.5281/zenodo.3752861"},{"key":"Identity:PID","value":"https://www.doi.org/10.5281/zenodo.3752860"},{"key":"Risis2_Publishing:Publication Date","value":"2020-04-15"},{"key":"Risis2_Publishing:Publisher","value":"Zenodo"},{"key":"Risis2_Publishing:Collected From","value":"Zenodo; ZENODO; Datacite"},{"key":"Risis2_Publishing:Hosted By","value":"Zenodo; ZENODO"},{"key":"Identity:URL","value":"http://dx.doi.org/10.5281/zenodo.3752861"},{"key":"Identity:URL","value":"https://zenodo.org/record/3752861"},{"key":"Identity:URL","value":"http://dx.doi.org/10.5281/zenodo.3752860"},{"key":"Country","value":""},{"key":"Format","value":""},{"key":"Resource Type","value":"Dataset"}],"groups":[{"name":"open"},{"name":"zenodo"}],"license_id":"notspecified","name":"dedup_wf_001--ac4634a42d4b98e594e0796a41b47ec61","notes":"<p>This file provides the correspondence table between EUROSTAT NUTS3 classification and the adapted regional classification used by the RISIS-KNOWMAK project. This regional classification fits the structure of knowledge production in Europe and addresses some knowm problems of the NUTS3 classification, such as the treatment of large agglomerations, while remaining fully compatible with the EUROSTAT NUTS regional classification. This compatibility allows combining all KNOWMAK data with regional statistics (at NUTS3 level, 2016 edition) from EUROSTAT.</p>\n\n<p>More precisely, the classification includes EUROSTAT metropolitan regions (based on the aggregation of NUTS3-level regions) and NUTS2 regions for the remaining areas; further, a few additional centers for knowledge production, like Oxford and Leuven, have been singled out at NUTS3 level. The resulting classification is therefore more fine-grained than NUTS2 in the areas with sizeable knowledge production, but at the same time recognizes the central role of metropolitan areas in knowledge production. While remaining compatible with NUTS, the classification allows addressing two well-known shortcomings: a) the fact that some large cities are split between NUTS regions (London) and b) the fact that NUTS3 classification in some countries includes many very small regions, as in the case of Germany</p>","tags":[],"title":"RISIS-KNOWMAK NUTS adapted classification","url":"https://beta.risis.openaire.eu/search/dataset?datasetId=dedup_wf_001::c4634a42d4b98e594e0796a41b47ec61","version":""}
{"extras":[{"key":"system:type","value":"dataset"},{"key":"Risis2_Attribution:Author","value":"Lepori, Benedetto"},{"key":"Risis2_Attribution:Author","value":"Guerini, Massimilano"},{"key":"AccessMode:Access Right","value":"Open Access"},{"key":"Risis2_Attribution:Contributor","value":"European Commission"},{"key":"AccessMode:Embargo End Date","value":""},{"key":"Language","value":"English"},{"key":"Identity:PID","value":"https://www.doi.org/10.5281/zenodo.3752861"},{"key":"Identity:PID","value":"https://www.doi.org/10.5281/zenodo.3752860"},{"key":"Risis2_Publishing:Publication Date","value":"2020-04-15"},{"key":"Risis2_Publishing:Publisher","value":"Zenodo"},{"key":"Risis2_Publishing:Collected From","value":"Zenodo; ZENODO; Datacite"},{"key":"Risis2_Publishing:Hosted By","value":"Zenodo; ZENODO"},{"key":"Identity:URL","value":"http://dx.doi.org/10.5281/zenodo.3752861"},{"key":"Identity:URL","value":"https://zenodo.org/record/3752861"},{"key":"Identity:URL","value":"http://dx.doi.org/10.5281/zenodo.3752860"},{"key":"Country","value":""},{"key":"Format","value":""},{"key":"Resource Type","value":"Dataset"}],"groups":[{"name":"open"},{"name":"zenodo"},{"name":"datacite"}],"license_id":"notspecified","name":"dedup_wf_001--c4634a42d4b98e594e0796a41b47ec61","notes":"<p>This file provides the correspondence table between EUROSTAT NUTS3 classification and the adapted regional classification used by the RISIS-KNOWMAK project. This regional classification fits the structure of knowledge production in Europe and addresses some knowm problems of the NUTS3 classification, such as the treatment of large agglomerations, while remaining fully compatible with the EUROSTAT NUTS regional classification. This compatibility allows combining all KNOWMAK data with regional statistics (at NUTS3 level, 2016 edition) from EUROSTAT.</p>\n\n<p>More precisely, the classification includes EUROSTAT metropolitan regions (based on the aggregation of NUTS3-level regions) and NUTS2 regions for the remaining areas; further, a few additional centers for knowledge production, like Oxford and Leuven, have been singled out at NUTS3 level. The resulting classification is therefore more fine-grained than NUTS2 in the areas with sizeable knowledge production, but at the same time recognizes the central role of metropolitan areas in knowledge production. While remaining compatible with NUTS, the classification allows addressing two well-known shortcomings: a) the fact that some large cities are split between NUTS regions (London) and b) the fact that NUTS3 classification in some countries includes many very small regions, as in the case of Germany</p>","tags":[],"title":"RISIS-KNOWMAK NUTS adapted classification","url":"https://beta.risis.openaire.eu/search/dataset?datasetId=dedup_wf_001::c4634a42d4b98e594e0796a41b47ec61","version":""}
{"extras":[{"key":"system:type","value":"dataset"},{"key":"Risis2_Attribution:Author","value":"Laredo, Philippe, 0000-0002-5014-9132"},{"key":"AccessMode:Access Right","value":"Open Access"},{"key":"Risis2_Attribution:Contributor","value":"European Commission"},{"key":"AccessMode:Embargo End Date","value":""},{"key":"Language","value":"English"},{"key":"Identity:PID","value":"https://www.doi.org/10.5281/zenodo.2560116"},{"key":"Identity:PID","value":"https://www.doi.org/10.5281/zenodo.2560117"},{"key":"Risis2_Publishing:Publication Date","value":"2019-02-08"},{"key":"Risis2_Publishing:Publisher","value":"Zenodo"},{"key":"Risis2_Publishing:Collected From","value":"ZENODO; Datacite; figshare"},{"key":"Risis2_Publishing:Hosted By","value":"Zenodo; ZENODO; figshare"},{"key":"Identity:URL","value":"http://dx.doi.org/10.5281/zenodo.2560117"},{"key":"Identity:URL","value":"https://zenodo.org/record/2560117"},{"key":"Identity:URL","value":"http://dx.doi.org/10.5281/zenodo.2560116"},{"key":"Identity:URL","value":"https://figshare.com/articles/Introduction_of_RISIS_project_by_Philippe_Laredo/7699286"},{"key":"Country","value":""},{"key":"Format","value":""},{"key":"Resource Type","value":"Audiovisual"}],"groups":[{"name":"open"},{"name":"zenodo"},{"name":"figshare"},{"name":"datacite"}],"license_id":"notspecified","name":"dedup_wf_001--10160b3eafcedeb0a384fc400fe1c3fa","notes":"<p>Introduction of RISIS project by Philippe Laredo</p>","tags":[],"title":"Introduction of RISIS project by Philippe Laredo","url":"https://beta.risis.openaire.eu/search/dataset?datasetId=dedup_wf_001::10160b3eafcedeb0a384fc400fe1c3fa","version":"None"}

View File

@ -1,60 +1,20 @@
{
"extras": [
{
"key": "Journal",
"value": "International Journal of Technology Management, 80, null"
},
{
"key": "system:type",
"value": "publication"
"value": "dataset"
},
{
"key": "Author",
"value": "Laurens, Patricia"
},
{
"key": "Author",
"value": "Le Bas, Christian"
},
{
"key": "Author",
"value": "Schoen, Antoine"
"key": "Risis2_Attribution:Author",
"value": "Laredo, Philippe, 0000-0002-5014-9132"
},
{
"key": "AccessMode:Access Right",
"value": "Open Access"
},
{
"key": "Contributor",
"value": "Laboratoire Interdisciplinaire Sciences, Innovations, Sociétés (LISIS) ; Institut National de la Recherche Agronomique (INRA)-Université Paris-Est Marne-la-Vallée (UPEM)-ESIEE Paris-Centre National de la Recherche Scientifique (CNRS)"
},
{
"key": "Contributor",
"value": "ESDES - École de management de Lyon ; Université Catholique de Lyon"
},
{
"key": "Contributor",
"value": "This work was supported by RISIS-funded by the European Union\u2019s Horizon2020 Research and innovation programme under grant number 313082 and 824091"
},
{
"key": "Contributor",
"value": "European Project: 313082,EC:FP7:INFRA,FP7-INFRASTRUCTURES-2012-1,RISIS(2014)"
},
{
"key": "Contributor",
"value": "European Project: 824091,H2020-EU.1.4.1.2,H2020-INFRAIA-2018-1,RISIS2(2019)"
},
{
"key": "Contributor",
"value": "Laboratoire Interdisciplinaire Sciences, Innovations, Société\n (\nLISIS\n)\n\n ; \nInstitut National de la Recherche Agronomique\n (\nINRA\n)\n-Université Paris-Est Marne-la-Vallée\n (\nUPEM\n)\n-ESIEE Paris-Centre National de la Recherche Scientifique\n (\nCNRS\n)"
},
{
"key": "Contributor",
"value": "ESDES - École de management de Lyon\n ; \nUniversité Catholique de Lyon"
},
{
"key": "Contributor",
"value": "Laboratoire Interdisciplinaire Sciences, Innovations, Sociétés (LISIS) ; Centre National de la Recherche Scientifique (CNRS)-ESIEE Paris-Université Paris-Est Marne-la-Vallée (UPEM)-Institut National de la Recherche Agronomique (INRA)"
"key": "Risis2_Attribution:Contributor",
"value": "European Commission"
},
{
"key": "AccessMode:Embargo End Date",
@ -62,67 +22,51 @@
},
{
"key": "Language",
"value": "Undetermined"
"value": "English"
},
{
"key": "Identity:PID",
"value": "https://www.doi.org/10.1504/ijtm.2019.100283"
"value": "https://www.doi.org/10.5281/zenodo.2560116"
},
{
"key": "Identity:PID",
"value": "https://www.doi.org/10.1504/ijtm.2019.10022013"
"value": "https://www.doi.org/10.5281/zenodo.2560117"
},
{
"key": "Publication Date",
"value": "2019-01-01"
"key": "Risis2_Publishing:Publication Date",
"value": "2019-02-08"
},
{
"key": "Publisher",
"value": "Inderscience Publishers"
"key": "Risis2_Publishing:Publisher",
"value": "Zenodo"
},
{
"key": "Collected From",
"value": "UnpayWall; INRIA a CCSD electronic archive server; HAL Descartes; HAL - UPEC / UPEM; Crossref; Hyper Article en Ligne; Microsoft Academic Graph; Hyper Article en Ligne - Sciences de l'Homme et de la Société"
"key": "Risis2_Publishing:Collected From",
"value": "ZENODO; Datacite; figshare"
},
{
"key": "Hosted By",
"value": "INRIA a CCSD electronic archive server; HAL Descartes; HAL - UPEC / UPEM; Hyper Article en Ligne; Hyper Article en Ligne - Sciences de l'Homme et de la Société; International Journal of Technology Management"
"key": "Risis2_Publishing:Hosted By",
"value": "Zenodo; ZENODO; figshare"
},
{
"key": "Identity:URL",
"value": "https://hal.archives-ouvertes.fr/hal-01725229"
"value": "http://dx.doi.org/10.5281/zenodo.2560117"
},
{
"key": "Identity:URL",
"value": "https://hal.archives-ouvertes.fr/hal-01725229/document"
"value": "https://zenodo.org/record/2560117"
},
{
"key": "Identity:URL",
"value": "https://academic.microsoft.com/#/detail/2791245388"
"value": "http://dx.doi.org/10.5281/zenodo.2560116"
},
{
"key": "Identity:URL",
"value": "http://dx.doi.org/10.1504/ijtm.2019.10022013"
},
{
"key": "Identity:URL",
"value": "http://www.inderscienceonline.com/doi/full/10.1504/IJTM.2019.100283"
},
{
"key": "Identity:URL",
"value": "https://hal.archives-ouvertes.fr/hal-01725229/file/IP%20internationalisation_2017.pdf"
},
{
"key": "Identity:URL",
"value": "http://dx.doi.org/10.1504/ijtm.2019.100283"
},
{
"key": "Identity:URL",
"value": "http://www.inderscienceonline.com/doi/full/10.1504/IJTM.2019.10022013"
"value": "https://figshare.com/articles/Introduction_of_RISIS_project_by_Philippe_Laredo/7699286"
},
{
"key": "Country",
"value": "France"
"value": ""
},
{
"key": "Format",
@ -130,41 +74,19 @@
},
{
"key": "Resource Type",
"value": "Article"
},
{
"key": "keyword",
"value": "Manufacturing_L.L6.L65 - Chemicals \u2022 Rubber \u2022 Drugs \u2022 Biotechnology JEL"
},
{
"key": "keyword",
"value": "O - Economic Development, Innovation, Technological Change, and Growth_O.O3 - Innovation \u2022 Research and Development \u2022 Technological Change \u2022 Intellectual Property Rights_O.O3.O34 - Intellectual Property and Intellectual Capital JEL"
"value": "Audiovisual"
}
],
"license_id": "notspecified",
"name": "dedup_wf_001--a48fee33ea4df43e302f6957209893f81",
"notes": "International audience; The paper deals with the determinants of worldwide IP coverage of patented inventions in large pharmaceutical firms. We support the core idea that the internationalisation of firm R&D and an economic presence in a foreign country are positive key factors which explains global IP coverage. For the global pharmaceutical industry, we estimate probit models on the probability that a patent will be expanded worldwide. We retain two categories of worldwide patent: the well-known triadic patent and the new triadic one (triadic + China + Korea). The data set encompasses the 17,633 priority patents applied for by 76 enterprises from several countries over the period 2003-2005. One important finding is that patenting in Japan sets up an important barrier, giving Japanese firms an advantage when triadic patenting is considered. For European and US firms, our estimation results confirm the idea that the level of firm R&D internationalisation is a significant explanatory factor in international IP coverage, together with control variables. We highlight an inverted U-shaped relationship between these two variables. The hypothesis related to a firm economic presence is also verified.",
"tags": [
{"name": "Economics"},
{"name": "Industrial relations"},
{"name": "Law"},
{"name": "business"},
{"name": "F - International Economics_F.F2 - International Factor Movements and International Business_F.F2.F22 - International Migration JEL"},
{"name": "Strategy and Management"},
{"name": "Probit model"},
{"name": "SHS.GESTION Humanities and Social Sciences_Business administration"},
{"name": "General Engineering"},
{"name": "Marketing"},
{"name": "Control variable"},
{"name": "Industrial organization"},
{"name": "Computer Science Applications"},
{"name": "China"},
{"name": "Internationalization"},
{"name": "business.industry"},
{"name": "Pharmaceutical industry"},
{"name": "Foreign country"},
{"name": "Firm strategy"}
"groups": [
{"name": "open"},
{"name": "zenodo"},
{"name": "figshare"}
],
"title": "Worldwide IP coverage of patented inventions in large pharma firms: to what extent do the internationalisation of R&D and firm strategy matter",
"url": "https://beta.risis.openaire.eu/search/publication?articleId=dedup_wf_001::48fee33ea4df43e302f6957209893f81"
"license_id": "notspecified",
"name": "dedup_wf_001--10160b3eafcedeb0a384fc400fe1c3fa",
"notes": "<p>Introduction of RISIS project by Philippe Laredo<\/p>",
"tags": [],
"title": "Introduction of RISIS project by Philippe Laredo",
"url": "https://beta.risis.openaire.eu/search/dataset?datasetId=dedup_wf_001::10160b3eafcedeb0a384fc400fe1c3fa",
"version": "None"
}