ss-tools 0.2.0

Tools for Semantic Scholar API
Documentation

CircleCI Crates.io Version

Rust Semantic Scholar API Tools

Tools for Semantic Scholar API.

Quick Start

Installation

To start using ss-tools, just add it to your project's dependencies in the Cargo.toml.

> cargo add ss-tools

Then, import it in your program;

use ss_tools::SemanticScholar;

Usage

Search by paper title

Pass any keywords or title of a paper. The original API returns multiple papers that could be related to the query_text. For now, ss-tools returns the first paper from the response.

In the future, we plan to improve the library to output the paper most relevant to the query_text based on similarity metrics.

let query_text = "attention is all you need";

let mut ss = SemanticScholar::new();
let paper_id = ss.query_paper_id(query_text.to_string()).await;
assert_eq!(paper_id, "204e3073870fae3d05bcbc2f6a8e263d9b72e776");

Get details about a paper

Pass the paper_id that you want to know its details, and a list of SsField.

The returned SsResponse object has all the available fields.

let paper_id = "204e3073870fae3d05bcbc2f6a8e263d9b72e776";

let mut ss = SemanticScholar::new();
let fields = vec![
    SsField::Title,
    SsField::Abstract,
    SsField::Authors(vec![
        SsAuthorField::Name,
        SsAuthorField::Affiliations,
        SsAuthorField::HIndex,
    ]),
    SsField::CitationCount,
    SsField::ReferenceCount,
    SsField::Year,
    SsField::IsOpenAccess,
    SsField::PublicationDate,
    SsField::Venue,
    SsField::FieldsOfStudy,
    SsField::Citations(vec![SsField::Title, SsField::Year, SsField::CitationCount]),
    SsField::References(vec![SsField::Title, SsField::Year, SsField::CitationCount]),
    SsField::Journal,
    SsField::PublicationVenue,
    SsField::OpenAccessPdf,
    SsField::S2FieldsOfStudy,
    SsField::PublicationTypes,
    SsField::CitationStyles,
    SsField::Embedding,
];

let paper_details: SsResponse = ss.query_paper_details(paper_id.to_string(), fields).await;
assert_eq!(
    paper_details.clone().title.unwrap().to_lowercase(),
    "attention is all you need".to_string()
);

Get references of a paper

COMMING SOON!

Get citations of a paper

COMMING SOON!

Get details about a author

COMMING SOON!