A Wikipedia PageRank Database and Neural Network toolkit in Go — designed for indexing Wikipedia text, computing link-based PageRank scores, and supporting research around semantic retrieval and ranking.
This project is a work-in-progress and includes tools to parse Wikipedia dumps, build indexes, and explore text ranking with PageRank and related techniques. :contentReference[oaicite:0]{index=0}
WikiPagerankDB combines multiple components and example programs to:
- Parse and index Wikipedia data
- Compute PageRank-based scores on article link structures
- Provide experimental indexing utilities (BoltDB / MySQL / in-memory)
- Present tools and samples for semantic analysis and scoring
- Explore graph- and statistics-based ranking of Wikipedia content :contentReference[oaicite:1]{index=1}
This repository is intended for experimentation, research, and building larger search/knowledge systems over Wikipedia data.
WikiPagerankDB/
│
├── LICENSE
├── README.md
├── index_wiki.go # Primary indexing logic
├── sample-boltdb.go # Example using BoltDB for persistence
├── sample-mysql.go # Example using MySQL
├── noun-viterbi-processor.go # NLP sample (noun extraction and processing)
├── sentenizer.go # Sentence parsing utility
├── tools.go # Shared helper tools
├── tools-new(2).go # Alternate tools implementation
└── many sample files and helpers
The core idea of the project:
- Load Wikipedia XML dumps (from dumps.wikimedia.org). :contentReference[oaicite:2]{index=2}
- Parse text sections and link structures from article data. :contentReference[oaicite:3]{index=3}
- Build indexes and persistent storage (BoltDB, MySQL, or custom structures). :contentReference[oaicite:4]{index=4}
- Compute PageRank scores or other link-based statistics. :contentReference[oaicite:5]{index=5}
- Store results for querying or downstream analysis. :contentReference[oaicite:6]{index=6}
- Go (1.16+ recommended)
- Optional: BoltDB, MySQL, or other datastore (depending on sample usage)
- Wikipedia data dumps (XML format) from https://dumps.wikimedia.org/enwiki/latest/ :contentReference[oaicite:7]{index=7}
To download a Wikipedia article dump:
wget https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2Then extract:
bzip2 -d enwiki-latest-pages-articles.xml.bz2go build sample-boltdb.go
./sample-boltdbThis will create a BoltDB-backed index and begin parsing the Wikipedia dump for indexing. :contentReference[oaicite:8]{index=8}
go build sample-mysql.go
./sample-mysqlRequires a running MySQL server and the appropriate database/schema configured. :contentReference[oaicite:9]{index=9}
- The project is experimental and in active development. :contentReference[oaicite:10]{index=10}
- Tools are designed for large text corpora — expect indexing to take time on full Wikipedia dumps. :contentReference[oaicite:11]{index=11}
- Many utilities are included for text processing, ranking, and indexing. :contentReference[oaicite:12]{index=12}
- Building a PageRank-based search engine over Wikipedia
- Semantic knowledge indexing and retrieval
- Graph analytics on article link structures
- NLP preprocessing pipelines on large corpora
This project is licensed under the BSD-3-Clause license. :contentReference[oaicite:13]{index=13}
Contributions are welcome — including:
- Better persistent storage support
- Faster indexing and parallel processing
- Query/search interfaces
- Integration with downstream ranking models
- CLI or Web UI for exploring indexes
Inspired by large text indexing research, PageRank principles, and efforts to make Wikipedia search more semantic and link-aware. :contentReference[oaicite:14]{index=14}
⭐ If you find this project interesting, consider starring it on GitHub! :contentReference[oaicite:15]{index=15}