pybliometrics-dev / pybliometrics

Python-based API-Wrapper to access Scopus
https://pybliometrics.readthedocs.io/en/stable/
Other
407 stars 127 forks source link

Issues with pybliometrics.scopus.CitationOverview function - parameter "citation = exclude-self" #276

Closed eugenioalladio closed 1 year ago

eugenioalladio commented 1 year ago

How do I have to use pybliometrics.scopus.CitationOverview function with the parameter "citation = exclude-self" properly?

I tested it on both the examples provided in the documentation of pybliometrics (link) and the following article (doi = 10.1016/j.trac.2012.02.005) for which I am sure there are self-citations.

Here is the code I used for evaluating the occurrence of self-citations but the output does not change if I use citation = "None" or citation = "exclude-self"

citations = CitationOverview(["10.1016/j.trac.2012.02.005"], id_type = "doi", start=2012, end=2023)
print(citations)

citations_self = CitationOverview(["10.1016/j.trac.2012.02.005"], id_type = "doi", start=2012, end=2023, citation = "exclude-self")
print(citations_self)

The output I obtained for both the cases is the following: 1 document(s) has/have the following total citation countexcluding self-citations as of 2023-02-08: 205

To access these metadata, I logged in with both my API Key and the Insttoken.

Thank you for any suggestions and feedback

Michael-E-Rose commented 1 year ago

You would have to set refresh=True for changes with the parameter citation to take effect:

>>> from pybliometrics.scopus import CitationOverview
>>> citations = CitationOverview(["10.1016/j.trac.2012.02.005"], id_type = "doi", start=2012, end=2023)
>>> print(citations)
1 document(s) has/have the following total citation count as of 2023-02-08:
    205
>>> citations_self = CitationOverview(["10.1016/j.trac.2012.02.005"], id_type = "doi", start=2012, end=2023, citation = "exclude-self")
>>> print(citations_self)
1 document(s) has/have the following total citation countexcluding self-citations as of 2023-02-08:
    205
>>> citations_self = CitationOverview(["10.1016/j.trac.2012.02.005"], id_type = "doi", start=2012, end=2023, citation = "exclude-self", refresh=True)
>>> print(citations_self)
1 document(s) has/have the following total citation countexcluding self-citations as of 2023-02-08:
    192

It's currently not well documented. Lemme think about how best to change this.

eugenioalladio commented 1 year ago

Dear @Michael-E-Rose, thank you very much for your kind and fast reply. I tested on my notebook and it works properly, thank you for this.

For further modifications, in future, it might be helpful to allow the user to define whether remove the self-citations made by all the authors or by a specific author only. But I do not know whether this is feasible using the Scopus API.

Thank you very much again for your assistance!