Package: sciencer
Sciencer ToolkitA smarter way to find articles.About-Usage-Roadmap-ContributingCollectors-Expanders-Filters-ProvidersAboutSciencer Toolkit enables researchers toprogrammatically conduct a literature reviewusing an intuitive yet flexible interface.At its core, Sciencer collects sets of papers.
The initial set of papers is created through the use ofCollectors(e.g. paper doi, author name).
Then, Sciencer iteratively finds new papers usingExpanders(e.g. authors, citations, references).
Finally, new found papers need to satisfy a series ofFiltersin order to be accepted into the current set.
Being iterative in nature, Sciencer allows you to repeat the above steps has many times as you'd like.This project was motivated by the absence of tools to automate systematic reviews using clear and well-defined criteria.
Still, for literature reviews that do not need to follow specific criteria, there are a several tools that can help to discover new papers.Usage# Create the Sciencer Core Componentsciencer=Sciencer()# Define providersciencer.add_provider(SemanticScholarProvider())# Define collectors## this collector will gather all known papers authored by "John Doe" into de setsciencer.add_collector(sciencer.collectors.CollectByAuthorID("John Doe"))## this collector will collect the paper with DOI "1234567890" into the setsciencer.add_collector(sciencer.collectors.CollectByDOI("1234567890"))## this collector will collect the papers withsciencer.add_collector(sciencer.collectors.CollectByTerms(["Term 1","Term 2","Term 3"]))# Define expanders## this expander will gather all known papers written by authors in the current set.sciencer.add_expander(sciencer.expanders.ExpandByAuthors())## this expander will gather all the referenced paperssciencer.add_expander(sciencer.expanders.ExpandByReferences())## this expander will gather all the cited paperssciencer.add_expander(sciencer.expanders.ExpandByCitations())# Define filters## this filter will reject papers that were published before 2010 and after 2030sciencer.add_filter(sciencer.filters.FilterByYear(min_year=2010,max_year=2030))## this filter will reject all the papers that do not have the word social on the abstractsciencer.add_filter(sciencer.filters.FilterByAbstract("social"))## this filter will reject all the papers that do not have the field of study Computer Sciencesciencer.add_filter(sciencer.filters.FilterByFieldOfStudy("Computer Science"))# Run one iterationresults=sciencer.iterate()For more examples on how to use the Sciencer toolkit, please check the directoryexamples/.(back to top)CollectorsNameDescriptionParametersAuthor IDCollects all the papers written by an authorAuthors's SemanticScholar IDPaper DOICollects a paper by its DOIPaper's DOITermsCollects papers by termsQuery TermsMaximum Number of Papers(back to top)ExpandersNameDescriptionAuthorsExpands a paper by its authorsReferencesExpands a paper by its referencesReferencesExpands a paper by its citations(back to top)FiltersNameDescriptionParametersBy YearFilters a paper by its yearThe lowest acceptable year (inclusive)The highest acceptable year (inclusive)By Abstract WordsFilters a paper by its abstractThe collection of words the abstract should include (at least one)By Field Of StudyFilters a paper by its field of studyThe field of study the paper should have(back to top)ProvidersNameProviderFeaturesSemantic ScholarSemantic Scholar Academic Graph APISearch by Author(Name, S2ID)Search By Paper ID(S2ID, DOI, ArXiv, MAG, ACL, PubMed, Corpus)DBLPDBLP Search APIWork in Progress(back to top)RoadmapCreate Paper's and Author's CacheAdd Bulk Expanders (to avoid redundancy)Add support for multithreadingAdd CollectorsAdd Collect by Venue/ProceedingsAdd ExpandersAdd Expand by CitationsAdd Expand by ReferencesAdd Expand by Venue/ProceedingsAdd FiltersAdd Filter by Number of CitationsAdd Filter by TopicAdd Filter by KeywordsAdd Compound FiltersAdd utility to write results to a *.csvSee theopen issuesfor a full list of proposed features (and known issues).(back to top)ContributingWant toadd a new provider, filter or expander?
Looking to improvethe core functionality of sciencer toolkit.
We look forward to include your contributions in the toolkit!
If you have a suggestion that would improve the toolkit just send us a Pull Request!If you are looking for an additional collector/filter/expander/provider or just want to report a bug, you can also simply open an issue with the tag "enchament" or "bug", respectively.(back to top)