Skip to content

Add citation count field (including semantic scholar fetcher) #13477

@koppor

Description

@koppor

🔍 Motivation

Citation count provides a useful indicator of the academic impact of a publication. Automating the population of this field from Semantic Scholar saves manual effort and enhances bibliographic data quality in JabRef.

📌 Goal

Extend the existing SemanticScholarCitationFetcher to retrieve the citation count for a given paper using the Semantic Scholar API and store it in a new BibTeX field citationcount.

🛠️ Tasks

  1. Integrate citation count fetching

    • Implement logic in org.jabref.logic.importer.fetcher.citation.semanticscholar.SemanticScholarCitationFetcher using
      PaperDetails#getCitationCount() from
      org.jabref.logic.importer.fetcher.citation.semanticscholar.PaperDetails.
  2. Add a new field

    • Define a new field citationcount in org.jabref.model.entry.field.StandardField (under JabRef-specific fields).
    • Ensure that the field is recognized and included in citation fetcher updates.
  3. Write tests

    • Add unit tests in
      org.jabref.logic.importer.fetcher.citation.semanticscholar.SemanticScholarCitationFetcherTest
      to verify that citation count is fetched and set correctly.
    • Additonally, Mock or simulate Semantic Scholar API responses with citation counts.
  4. UI integration

    • Add a new FieldEditor CitationCount (inspired by IdentifierEditor) and integrate it into the UI by modifying FieldEditors#getForField(...).
    • Add an update button, which uses the SemanticScholarFEtcher to update the citation cound.

✅ Acceptance Criteria

  • When the fetcher is run on an entry with a DOI or title, and Semantic Scholar returns a citation count, the value is written to the citationcount field.
  • The value is stored as an integer.
  • Field appears in the entry editor in tab "General"

📚 Helpful resources

Metadata

Metadata

Assignees

Labels

good first issueAn issue intended for project-newcomers. Varies in difficulty.📌 Pinned📍 AssignedAssigned by assign-issue-action (or manually assigned)

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions