Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature request: add entry based on ISSN number #10124

Closed
ghost opened this issue Jul 29, 2023 · 8 comments · Fixed by #10178
Closed

feature request: add entry based on ISSN number #10124

ghost opened this issue Jul 29, 2023 · 8 comments · Fixed by #10178

Comments

@ghost
Copy link

ghost commented Jul 29, 2023

Hi

Currently we can add books based on ISBN number but it would be nice if we would also add magazines based on ISSN number

https://en.wikipedia.org/wiki/ISSN

afbeelding

@guipmenezes
Copy link
Contributor

How we can have access to that type of magazine information? I saw in ISSN Portal that they have a free tier access to view and retrieve open data about this, but I don't know how we can consume this on JabRef.

@Siedlerchr
Copy link
Member

A first step could be to extend the DOAJ fetcher https://doaj.org/ in JabRef to extend it with a lookup for ISSN

Otherwise we could try the German library services for magazine lookup:
https://zeitschriftendatenbank.de/services/schnittstellen/json-api
https://zeitschriftendatenbank.de//api/tit.jsonld?q=iss%3D1031-2153

@guipmenezes
Copy link
Contributor

A first step could be to extend the DOAJ fetcher https://doaj.org/ in JabRef to extend it with a lookup for ISSN

Otherwise we could try the German library services for magazine lookup: https://zeitschriftendatenbank.de/services/schnittstellen/json-api https://zeitschriftendatenbank.de//api/tit.jsonld?q=iss%3D1031-2153

That's nice, I'll take a look and maybe even try to implement it.

@guipmenezes
Copy link
Contributor

What I've found is that we can probably extend the DOAJ fetcher (maybe with a new Class called IssnFetcher or a new method in the DOAJFetcher) because we can use ISSN as a short field name in the search query. In this extension, it has to produce a Lucene Query for GET request. And after the 200 status, it needs to do all the parsing from JSON to our used format.
https://doaj.org/api/v3/docs#!/Search/get_api_search_articles_search_query

One thing that I was thinking about is, we are still using the v1 of DOAJ API, and it's already v3, would it be a good idea to update the API version?

@Siedlerchr
Copy link
Member

Siedlerchr commented Aug 3, 2023

@guipmenezes That sounds great! Feel free to update the api version. The best approach would be to implement the IdBasedFetcher interface.

Edit// Have a look at the ArxivFetcher, we already have interfaces in place and already an identifier class for ISSN;

So it should be possible to implement the methods from the following interfaces:

IdBasedFetcher, IdFetcher<ISSN>
(ISSN needs to extend Identifier as well, that is missing)

@guipmenezes
Copy link
Contributor

@Siedlerchr Sounds good, I'll try it. This IdBasedFetcher interface looks like a better solution, thanks for the advice.

@Siedlerchr
Copy link
Member

Great! If you have any questions, just ask! Also try to create a (Draft PR) soon, seeing code with context helps in case of questions.
We also have a getting started guide https://devdocs.jabref.org/contributing.html

@guipmenezes
Copy link
Contributor

Hello @Siedlerchr I didn't had time to work on this feature during the week, but now I will give it a boost. I'll create a Draft PR so you can take a look at the code and help me 😁

github-merge-queue bot pushed a commit that referenced this issue Nov 4, 2023
* Add: implementing the ISSN Fetcher

* Add: implementing methods of IssnFetcher class

* Substantially changes on IssnFetcher class

* Substantial changes of IssnFetcher

* Implementing the performSearchById method for IssnFetcher class

* Saving changes for branch updating

* Started to implement the ISSN search logic

* Refactor the performSearchById method

* Add the IssnFetcher on WebFetcher class and add unit tests

* Implement search based on the ISSN number

* Change the ISSN Checker validation of a valid checksum

* refactor to use exiting journal info fetcher

* reafactor

* add button next to journal field

* fix tests and checkstyle

* arch test

* Fuuu checkstyle

---------

Co-authored-by: Siedlerchr <[email protected]>
@github-project-automation github-project-automation bot moved this from Normal priority to Done in Features & Enhancements Nov 4, 2023
Siedlerchr added a commit to liyou969/jabref that referenced this issue Nov 4, 2023
* upstream/main: (44 commits)
  change codecov (JabRef#10616)
  Add entry based on ISSN number JabRef#10124 (JabRef#10178)
  Enable journal information fetcher directly in popup (JabRef#10598)
  Make generate button wider (JabRef#10588)
  make openRewrite stable again
  Rename cleanup_pr.yml to cleanup-pr.yml
  Changelog
  Fix failing fetcher tests (JabRef#10613)
  ShortDoi
  Fix CHANGELOG.md
  Bump commons-cli:commons-cli from 1.5.0 to 1.6.0 (JabRef#10607)
  Fix issue JabRef#9306: Move "Open only one instance of JabRef" preference option to somewhere else (JabRef#10602)
  Update README.md (JabRef#10604)
  Bump me.champeau.jmh from 0.7.1 to 0.7.2
  Bump org.beryx.jlink from 3.0.0 to 3.0.1
  Bump com.dlsc.gemsfx:gemsfx from 1.82.0 to 1.84.0
  Bump org.apache.logging.log4j:log4j-to-slf4j from 2.21.0 to 2.21.1
  Synchronize scrollbars in the change resolver dialog (JabRef#10587)
  Add button for a user to reset the cite command to the default value. (JabRef#10580)
  openrerwrite
  ...
Siedlerchr added a commit to shawn-jj/jabref that referenced this issue Nov 6, 2023
* upstream/main:
  fix tests
  Bump org.jsoup:jsoup from 1.16.1 to 1.16.2 (JabRef#10625)
  Bump org.junit.jupiter:junit-jupiter from 5.10.0 to 5.10.1
  Bump org.fxmisc.flowless:flowless from 0.7.1 to 0.7.2
  Bump com.dlsc.gemsfx:gemsfx from 1.84.0 to 1.90.0
  Bump com.tngtech.archunit:archunit-junit5-api from 1.1.0 to 1.2.0
  Change linter (JabRef#10614)
  change codecov (JabRef#10616)
  Add entry based on ISSN number JabRef#10124 (JabRef#10178)
  Enable journal information fetcher directly in popup (JabRef#10598)
Siedlerchr added a commit to xuanan20020/jabref that referenced this issue Nov 10, 2023
* upstream/main: (24 commits)
  Add support for scite.ai (JabRef#10617)
  Update tests.yml (JabRef#10631)
  replace "SearchAll" in web search by "Search Selected" (JabRef#10611)
  Use System preference for light dark theme (JabRef#10593)
  Fix NPE in lookup identifer
  Add minimum requirements to CHANGELOG.md (JabRef#10628)
  Update to JavaFX 21.01 (JabRef#10627)
  Fix JabRef#10498 Create Fetcher and Transformer for ScholarArchive (JabRef#10549)
  fix tests
  Bump org.jsoup:jsoup from 1.16.1 to 1.16.2 (JabRef#10625)
  Bump org.junit.jupiter:junit-jupiter from 5.10.0 to 5.10.1
  Bump org.fxmisc.flowless:flowless from 0.7.1 to 0.7.2
  Bump com.dlsc.gemsfx:gemsfx from 1.84.0 to 1.90.0
  Bump com.tngtech.archunit:archunit-junit5-api from 1.1.0 to 1.2.0
  Change linter (JabRef#10614)
  change codecov (JabRef#10616)
  Add entry based on ISSN number JabRef#10124 (JabRef#10178)
  Enable journal information fetcher directly in popup (JabRef#10598)
  Make generate button wider (JabRef#10588)
  make openRewrite stable again
  ...

# Conflicts:
#	CHANGELOG.md
#	src/main/resources/l10n/JabRef_en.properties
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants