For given papers A and B, I would like to search for all papers that cite both A and B. I guess one can generalize to papers {A,B,C,...} and find all papers that cite all of them.

A quick Google Scholar and Web of Science search revealed nothing. Google Scholar has a "cite=..." thing in the URL, which I messed with a bit to no avail.

  • 1
    I think this would be a useful tool. I found a thread on Google Product Forums where someone suggested this, but I don't think Google has yet implemented such a tool.
    – Mad Jack
    Sep 8 '14 at 0:06

Just get the citations of each document from the Scopus database, export the results into two files, and write a Python script that does a set intersection. You can generalize this to any files.

You can export the Scopus results to .csv files, and then use the csv python module to read the files. You can then have the set operation based on the title of the articles (even though I would also export the DOI and use it). If you know how to program in Python, writing this script shouldn't take you more than one afternoon.

  • 3
    +1, even though Scopus is horribly incomplete. If only Google Scholar had an API (or didn't cut you off for screen-scraping). Sep 9 '14 at 19:29

In Wikidata, we have at the moment around 36 million citations. It is not much compared to Google Scholar, but you can query them in flexible ways with the Wikidata Query Service, - a SPARQL endpoint.

In Scholia, a website that uses Wikidata Query Service, we have implemented a query that shows "all papers that cite both A and B". You can see an example for "Protein measurement with the Folin phenol reagent" and "Novel method for detection of beta-lactamases by using a chromogenic cephalosporin substrate" here: https://tools.wmflabs.org/scholia/works/Q20900776,Q24564458.

Scholia will also show results for more than two papers, see, e.g., https://tools.wmflabs.org/scholia/works/Q20900776,Q24564458,Q39309940.

Following the link "Edit on query.Wikidata.org" gets you to the SPARQL query at the Wikidata Query Service interface. The SPARQL query currently reads:

SELECT ?date ?work ?workLabel
  SELECT (MIN(?dates) AS ?date) ?work 
    ?work wdt:P2860 wd:Q20900776 .  ?work wdt:P2860 wd:Q24564458 . 
      ?work wdt:P577 ?datetimes .
      BIND(xsd:date(?datetimes) AS ?dates)
  GROUP BY ?work
  ORDER BY DESC(?date)
  LIMIT 1000
} AS %results
  INCLUDE %results
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,da,es,fr,nl,no,ru,sv,zh". }

You can read more about the approach of using Wikidata and SPARQL for citation analysis work in this paper: "Scholia and scientometrics with Wikidata", https://arxiv.org/abs/1703.04222

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.