Skip to content

coreofscience/go-bibx

go-bibx

go-bibx is a high-performance command-line tool designed for researchers to perform deep, graph-based bibliographic analysis. Maintained by the Core of Science organization, it serves as a Go implementation of the Tree of Science (ToS) methodology.

The project is built to be both a standalone tool for quick academic inquiry and a robust component for larger data pipelines, offering high interoperability through its binary distribution.

The Tree of Science & SAP Algorithm

At its core, go-bibx implements the SAP algorithm (found in algorithms/sap.go), which analyzes citation graph topology to map the evolutionary structure of a research field. Using the "Tree of Science" metaphor, it categorizes articles into:

  • Roots: Foundational, seminal works that established the field.
  • Trunk: Core papers that provide the structural backbone and consolidate the topic.
  • Leaves: Recent, specialized developments representing the current frontier of research.

Features

  • Inquire: Efficiently fetch bibliographic data from the OpenAlex API.
  • SAP Analysis: Automatically derive the Tree of Science structure from any citation network.
  • Visualize: Interactive, browser-based graph exploration of your collections.
  • Semantic Search: Graph Semantic Search allows users to find articles related to a query by leveraging both semantic relevance and their deep relationships within the citation graph.
  • Queries: Query your collection by relevance in three main categories:
    • Rootness: how seminal the article is.
    • Trunkness: how important is this article within the structure of the topic.
    • Leafness: how complete and recent the article is.
  • Interoperable: Designed as a standalone CLI that fits perfectly into automated workflows.

Installation

Ensure you have Go installed, then clone the repository and build the project:

git clone https://github.com/coreofscience/go-bibx.git
cd go-bibx
go build -o bibx ./cmd/bibx

Note: go-bibx depends on ollama running locally to generate embeddings for semantic search. Users will need to run the setup command once to download the model:

./bibx setup

Usage

1. Inquire a research topic

Fetch papers related to a specific topic and save them to a compressed JSON file:

./bibx inquire "bibliometric analysis" --limit 100 --force

This will create a collection file at .bibx/collection.json.gz and a search graph at .bibx/search.json.gz.

2. View the collection

Visualize the generated collection in your browser:

./bibx view --file .bibx/collection.json.gz --port 8080

Open http://localhost:8080 to explore the interactive graph.

3. Search

Perform a semantic search to find relevant articles:

./bibx search "your query" --limit 10 --format markdown --view --port 8081

4. Query

Query your collection by relevance in three main categories (e.g., root, trunk, leaf):

./bibx query --category root --top 10 --format reference

Development

  • Run with Air: For live-reloading during development, use Air.
  • Testing: Run tests with go test ./....
  • Linting: Use golangci-lint run.

License

This project is licensed under the MIT License.

About

Go implementation of our bibliometric tools package.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors