This guide provides step-by-step instructions for creating a custom Knowledge Base (KB) and performing queries using fully open-source SCANOSS tools.
Before starting, ensure you have the following components installed:
-
minr: Source code mining tool for indexing local and remote projects.
- Clone: https://github.com/scanoss/minr
- Or download the latest binary release
-
ldb: Dictionary-based database optimized for storing source code and metadata.
- Clone: https://github.com/scanoss/ldb
- Or download the latest binary release
-
engine: Core scanning engine for code search, comparison, and license retrieval.
- Clone: https://github.com/scanoss/engine
- Or download the latest binary release
-
api.go (optional): REST API for remote scanning with SCANOSS clients.
- Clone: https://github.com/scanoss/api.go
- Or download the latest binary release
-
scanoss.py (optional): SCANOSS Python Client for remote scanning
- Clone: https://github.com/scanoss/scanoss.py
- Or run
pip install scanoss
This guide uses the following directory structure:
projects/: Contains four sample source code project folders (generated with AI for demonstration)licenses/: Contains three folders with attribution files for fictional commercial licenses
Follow these steps to create and use your custom Knowledge Base:
- Mining and Indexing Source Code
- Creating the Knowledge Base
- Using the Scanning Engine
- Using the REST API (Optional)
For more advanced usage, troubleshooting, and configuration options, refer to the official SCANOSS documentation for each component.
This project is released under the Creative Commons CC0 1.0 Universal (Public Domain Dedication).
You are free to use, modify, distribute, and reuse the materials in this repository without restriction.
The materials included in this repository are provided for educational and demonstration purposes only.
Some license texts included in this repository are intentionally fictional and were created to simulate proprietary or custom licensing scenarios.
Portions of the source code were generated using artificial intelligence tools and are intended solely to support the tutorial examples.
The fictional licenses do not represent real legal terms and must not be reused as actual software licenses.
These materials are designed to help illustrate concepts related to software analysis, licensing detection, and tooling workflows.
If you intend to reuse the code or examples in real projects, you should review and replace any fictional license content with appropriate and valid licensing terms.