From a7227b55d3099211c349ab999e6607cbf8541d6b Mon Sep 17 00:00:00 2001 From: lopez Date: Sun, 25 Feb 2024 15:13:43 +0100 Subject: [PATCH] query by hal id only --- .../java/org/grobid/core/data/BiblioItem.java | 3 --- .../grobid/core/utilities/Consolidation.java | 23 +++++++++++++++++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/grobid-core/src/main/java/org/grobid/core/data/BiblioItem.java b/grobid-core/src/main/java/org/grobid/core/data/BiblioItem.java index c6cf48a40c..365e5bee56 100755 --- a/grobid-core/src/main/java/org/grobid/core/data/BiblioItem.java +++ b/grobid-core/src/main/java/org/grobid/core/data/BiblioItem.java @@ -2119,9 +2119,6 @@ public String toBibTeX(String id, GrobidAnalysisConfig config) { * the corresponding field and reset the generic pubnum field. */ public void checkIdentifier() { - - System.out.println(pubnum); - // DOI if (!StringUtils.isEmpty(pubnum) && StringUtils.isEmpty(doi)) { Matcher doiMatcher = TextUtilities.DOIPattern.matcher(pubnum); diff --git a/grobid-core/src/main/java/org/grobid/core/utilities/Consolidation.java b/grobid-core/src/main/java/org/grobid/core/utilities/Consolidation.java index c07ba1f46f..e0538b586b 100755 --- a/grobid-core/src/main/java/org/grobid/core/utilities/Consolidation.java +++ b/grobid-core/src/main/java/org/grobid/core/utilities/Consolidation.java @@ -115,7 +115,7 @@ public void close() { /** * Try to consolidate one bibliographical object with crossref metadata lookup web services based on - * core metadata + * core metadata. In practice, this method is used for consolidating header metadata. */ public BiblioItem consolidate(BiblioItem bib, String rawCitation, int consolidateMode) throws Exception { final List results = new ArrayList<>(); @@ -125,6 +125,7 @@ public BiblioItem consolidate(BiblioItem bib, String rawCitation, int consolidat theDOI = cleanDOI(theDOI); } final String doi = theDOI; + String halId = bib.getHalId(); String aut = bib.getFirstAuthorSurname(); String title = bib.getTitle(); String journalTitle = bib.getJournal(); @@ -171,6 +172,13 @@ public BiblioItem consolidate(BiblioItem bib, String rawCitation, int consolidat arguments.put("query.bibliographic", rawCitation); } } + if (StringUtils.isNotBlank(halId)) { + // call based on the identified HAL ID + if (arguments == null) + arguments = new HashMap(); + if (GrobidProperties.getInstance().getConsolidationService() != GrobidConsolidationService.CROSSREF) + arguments.put("halid", halId); + } if (StringUtils.isNotBlank(aut)) { // call based on partial metadata if (GrobidProperties.getInstance().getConsolidationService() != GrobidConsolidationService.CROSSREF) { @@ -309,7 +317,9 @@ public void onError(int status, String message, Exception exception) { /** - * Try tp consolidate a list of bibliographical objects in one operation with consolidation services + * Try tp consolidate a list of bibliographical objects in one operation with consolidation services. + * In practice this method is used for consolidating the metadata of all the extracted bibliographical + * references. */ public Map consolidate(List biblios) { if (CollectionUtils.isEmpty(biblios)) @@ -333,6 +343,8 @@ public Map consolidate(List biblios) { if (StringUtils.isNotBlank(doi)) { doi = BiblioItem.cleanDOI(doi); } + // first we get the exploitable metadata + String halId = theBiblio.getHalId(); String aut = theBiblio.getFirstAuthorSurname(); String title = theBiblio.getTitle(); String journalTitle = theBiblio.getJournal(); @@ -381,6 +393,13 @@ public Map consolidate(List biblios) { arguments = new HashMap(); arguments.put("doi", doi); } + if (StringUtils.isNotBlank(halId)) { + // call based on the identified HAL ID + if (arguments == null) + arguments = new HashMap(); + if (GrobidProperties.getInstance().getConsolidationService() != GrobidConsolidationService.CROSSREF) + arguments.put("halid", halId); + } if (StringUtils.isNotBlank(rawCitation)) { // call with full raw string if (arguments == null)