Native PubMed search

I would like a native search mode for the PubMed database. The generic one provided is much less powerful than the one available through PubMed.

Could you please provide more details about what you would expect?

Maybe even screenshots and stuff?

There are more search fields and a less awkward syntax with PubMed (Help - PubMed). I would like to the search string just passed to PubMed without translation. PubMed uses AND by default and not OR. For example, I would prefer to type:

(pig OR swine OR porcine) NOT guinea 1982 [dp]

Also, the JabRef query

author:vigmond AND date:2022

does not give the same result as the PubMed query

vigmond[au] 2022[dp]

The JabRef result includes years that should not be there.

Cheers
Ed

Thanks for the detailed response, I took a look in the code and saw that boolean operators are currently not handled for Pubmed. I will try to work on that.

1 Like

Forgot to update the thread. Release 5.7 includes supports for boolean search expressions AND/OR now as well.

1 Like

Hi

Thanks for your work in fixing the boolean issue. I would still prefer to use the PubMed search syntax as I find it more concise and it has more fields that can be specified.

@vigmond, I am not a JabRef maintainer, but a frequent PubMed user. I like the idea of pasting a PubMed search intro JabRef and getting the same results as on the web. I think the developers would need to build their own PubMed parser to do this, because (as far as I know) the API does not offer a way to transmit search string over the API as if you had typed it in the search box on the website.

Edit: The ESearch utility can take a PubMed search string.

Here is a quote from the e-utils documentation:

API users should be aware that some NCBI products contain search tools that generate content from searches on the web interface that are not available to ESearch. For example, the PubMed web interface (pubmed.ncbi.nlm.nih.gov) contains citation matching and spelling correction tools that are only available through that interface.

I am not saying that searches can’t be translated from PubMed syntax. In fact, the documentation goes on to give API alternatives for citation matching and spelling correction. I am just pointing out that the searches must be translated.

Edit: The ESearch utility can take a PubMed search string.

As long as PubMed syntax is not available in JabRef, one thing you can do is output your pubmed.gov search results as a list of PMIDs, then paste those into JabRef for retrieval.

Incidentally, the devs have improved the PubMed importer (API) recently to include headings in abstracts. MeSH terms now import correctly, as they appear in pubmed.txt files, and I have a suggestion on the table about parsing MeSH subheadings.

Hi

I looked at the ESearch and it appears you can simply enter your string unparsed as:

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=“STRING”

I tried several variations of the following in my web browser, and the proper list was always returned:

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=“vigmond[au] (pig OR dog)”

So, it could be implemented with not too much effort on the JabRef developers’ part.

Thanks for following up.

Cheers
Ed

Nice! I’ve read the ESearch docs on several occasions but never noticed that. I suppose I only saw what I was looking for at the time. Thanks for pointing this out.

@Maintainers: Searching with a string seems like the intuitive thing to do for online searches, and I imagine that users typically expect their query to be interpreted by the remote database. I notice also that the online search bar doesn’t include any indication of which syntax to use, which means it is unclear what went wrong if the wrong syntax is used and produces unexpected results.

:light_bulb: The online search bar could function like the main search bar, where options appear when the search bar is active. The options could include a toggle for [ <selected database> | JabRef ] syntax. Preferences might include an option to choose the default syntax.