diff --git a/authorname-disambiguation/README.md b/authorname-disambiguation/README.md new file mode 100755 index 0000000..265ef2d --- /dev/null +++ b/authorname-disambiguation/README.md @@ -0,0 +1,35 @@ + +## Utilisation du Web service + +## ORCID +cat authorname.json | curl --proxy "" -X POST --data-binary @- http://authorname-disambiguator-1.tdmservices.intra.inist.fr/orcid?indent=true + +## Fichier d"entrée +un tableau d'objet au format json. L'objet est repréenté de la manière suivante : +```python +objet = { + "id" : "0000-0002-8279-9690", + "value" : { + "authorname" : "Laurent DUPONT", + "title" : "Applying a Living Lab Approach to Smart Grid Training Course Design", + "affiliation" : "Université de Lorraine ERPI / ENSGSI: NANCY, FR ", + "publication_date" : 2020 + } +} +``` +L'`id` peut prendre n'importe quel valeur qui permet d'identifier l'objet. Dans le cas ci-dessus, nous avons choisi l'Orcid de l'auteur. +`value` contient la notice. les champs de la notice qui seront traités sont : +`authorname`, `title`, `affiliation`, `coauthors`, `ids`, `keywords`, `publication_date`, `journal`, `email`. + +**NB** : Seul le champ authorname est obligatoire. +## Fichier de sortie + +On a : +```python +objet = { + "id" : "000-0002-8279-9690", + "value" : { + "orcid": "000-0002-8279-9690" + "score" : 0.23076923076923078, +} +``` diff --git a/authorname-disambiguation/v1/disambiguate.ini b/authorname-disambiguation/v1/disambiguate.ini deleted file mode 100755 index 0e8a093..0000000 --- a/authorname-disambiguation/v1/disambiguate.ini +++ /dev/null @@ -1,57 +0,0 @@ -# OpenAPI Documentation - JSON format (dot notation) -post.responses.default.description = Return all objects with enrich fields -post.responses.default.content.application/json.schema.$ref = #/components/schemas/JSONStream -post.summary = Enrich one field of each Object with a Python function -post.requestBody.required = true -post.requestBody.content.application/json.schema.$ref = #/components/schemas/JSONStream -post.parameters.0.in = query -post.parameters.0.name = path -post.parameters.0.schema.type = string -post.parameters.0.description = The path in each object to enrich with an Python script -post.parameters.1.in = query -post.parameters.1.name = indent -post.parameters.1.schema.type = boolean -post.parameters.1.description = Indent or not the JSON Result - - -[use] -plugin = @ezs/local -plugin = @ezs/basics -plugin = @ezs/storage -plugin = @ezs/analytics - -[JSONParse] -separator = * - -[expand] -path = env('path', 'value') -size = 100 - -# in production mode, uncomment the following line -# cache = boost - -[debug] - -[expand/exec] -# command should be executable ! -command = ./v1/disambiguate.py - -[debug] -text = debug2 -; args = fix('--url') -; args = env('--url',"https://vicorhales1.intra.inist.fr:9200") -; args = fix('--index') -; args = env('--index','records-fromconditor') -; args = fix('--login') -; args = env('--login','elastic') -; args = fix('--password') -; args = env('--password','secret') -; args = fix('--size') -; args = env('--size','100') -; args = fix('--http_proxy') -; args = env('--http_proxy','') -; args = fix('--https_proxy') -; args = env('--https_proxy','') - -[dump] -indent = env('indent', false) diff --git a/authorname-disambiguation/v1/disambiguate.py b/authorname-disambiguation/v1/disambiguate.py deleted file mode 100755 index a4a1248..0000000 --- a/authorname-disambiguation/v1/disambiguate.py +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/python3 -import sys -import json -from disambiguator.disambiguate import Disambiguator - - -for line in sys.stdin: - data = json.loads(line) - d = Disambiguator(**data["value"]) - res = d.get_best_orcid_from_df() - data["value"] = res - sys.stdout.write(json.dumps(data)) - sys.stdout.write('\n') \ No newline at end of file diff --git a/authorname-disambiguation/v1/orcid.ini b/authorname-disambiguation/v1/orcid.ini new file mode 100755 index 0000000..d8ed5af --- /dev/null +++ b/authorname-disambiguation/v1/orcid.ini @@ -0,0 +1,55 @@ +# OpenAPI Documentation - JSON format (dot notation) +post.responses.default.description = Return all objects with enrich fields +post.responses.default.content.application/json.schema.$ref = #/components/schemas/JSONStream +post.summary = Enrich one field of each Object with a Python function +post.requestBody.required = true +post.requestBody.content.application/json.schema.$ref = #/components/schemas/JSONStream +post.parameters.0.in = query +post.parameters.0.name = path +post.parameters.0.schema.type = string +post.parameters.0.description = The path in each object to enrich with an Python script +post.parameters.1.in = query +post.parameters.1.name = indent +post.parameters.1.schema.type = boolean +post.parameters.1.description = Indent or not the JSON Result + + +[use] +plugin = @ezs/local +plugin = @ezs/basics +plugin = @ezs/storage +plugin = @ezs/analytics + +[JSONParse] +separator = * + +[expand] +path = env('path', 'value') +size = 100 + +# in production mode, uncomment the following line +# cache = boost + + +[expand/exec] +# command should be executable ! +command = ./v1/orcid.py + + +; args = fix('--url') +; args = env('--url',"https://vicorhales1.intra.inist.fr:9200") +; args = fix('--index') +; args = env('--index','records-fromconditor') +; args = fix('--login') +; args = env('--login','elastic') +; args = fix('--password') +; args = env('--password','secret') +; args = fix('--size') +; args = env('--size','100') +; args = fix('--http_proxy') +; args = env('--http_proxy','') +; args = fix('--https_proxy') +; args = env('--https_proxy','') + +[dump] +indent = env('indent', false) diff --git a/authorname-disambiguation/v1/orcid.py b/authorname-disambiguation/v1/orcid.py new file mode 100755 index 0000000..a4a1248 --- /dev/null +++ b/authorname-disambiguation/v1/orcid.py @@ -0,0 +1,13 @@ +#!/usr/bin/python3 +import sys +import json +from disambiguator.disambiguate import Disambiguator + + +for line in sys.stdin: + data = json.loads(line) + d = Disambiguator(**data["value"]) + res = d.get_best_orcid_from_df() + data["value"] = res + sys.stdout.write(json.dumps(data)) + sys.stdout.write('\n') \ No newline at end of file