Skip to content

Add BASE (Bielefeld Academic Search Engine) fetcher - #16530

Draft
Developer-sam-ai wants to merge 5 commits into
JabRef:mainfrom
Developer-sam-ai:add-base-search-fetcher
Draft

Add BASE (Bielefeld Academic Search Engine) fetcher#16530
Developer-sam-ai wants to merge 5 commits into
JabRef:mainfrom
Developer-sam-ai:add-base-search-fetcher

Conversation

@Developer-sam-ai

@Developer-sam-ai Developer-sam-ai commented Aug 10, 2026

Copy link
Copy Markdown

Summary

Adds a skeleton SearchBasedFetcher implementation for BASE
(Bielefeld Academic Search Engine). Refs #15016.

Status: Draft / Work in Progress

Currently blocked on BASE API key + IP approval — application submitted,
awaiting response (BASE states "within a few days").

Implemented so far:

  • Fetcher structure (BaseSearchFetcher, BaseSearchQueryTransformer)
  • Query transformation to BASE's SOLR-style syntax (author/title/year/journal fields)
  • Response parsing skeleton: title, author(s), year, DOI, keywords, entry type mapping

Remaining once API access is confirmed:

  • Verify actual JSON response field names against a live response
  • Implement isValidKey()
  • Add unit tests
  • Manual testing in a running JabRef instance

Related issues and pull requests

Refs #15016

AI usage

Used Claude (Claude Sonnet 5) to navigate existing fetcher patterns
(IEEE, SemanticScholar) and JabRef's fetcher documentation, and to
review code structure/formatting. Implementation is my own and I
understand it.

Checklist

  • I own the copyright of the code submitted and I license it under the MIT license
  • If AI tools were used, I disclosed them in the "AI usage" section and reviewed, understood, and take full ownership of all AI-generated code
  • I manually tested my changes in running JabRef — blocked on API key
  • I added JUnit tests for changes — pending live API access
  • I added screenshots in the PR description — pending live API access
  • I added a screenshot in the PR description showing a library with a single entry with me as author and as title the issue number
  • I described the change in CHANGELOG.md in a way that can be understood by the average user
  • I checked the user documentation for up to dateness

@github-actions github-actions Bot added status: no-bot-comments and removed status: changes-required Pull requests that are not yet complete labels Aug 11, 2026
List<BibEntry> entries = new ArrayList<>();
JSONObject result = jsonObject.optJSONObject("response").optJSONObject("result");
if (result != null) {
JSONArray docs = result.optJSONArray("docs"); // TODO: confirm actual key name in real JSON response

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude has assigned you a task here. I would never let Claude waiting like that.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch cleaned up leftover comments, that comment just was to tell me where we wanna block the API access. Also implemented isValidkey()
This PR is still waiting on BASE API key +IP approval (applied 2days ago)
Thanks for flagging it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants