Thanks to visit codestin.com
Credit goes to github.com

Skip to content

gitbrainlab/ShelfSignals

Β 
Β 

Repository files navigation

ShelfSignals

Collection intelligence framework that reveals hidden patterns in library and archive metadata through visual analytics, AI-powered deep facets, and reproducible data pipelines.

Start Here: New users should read the Introduction & User Guide for a visual walkthrough, or jump to the πŸ“š Complete Documentation.


What is ShelfSignals?

ShelfSignals transforms catalog metadata into interactive visualizations that expose the implicit knowledge encoded in:

  • Classification systems (LC call numbers, subject headings)
  • Numbering sequences (accession patterns, shelf arrangement)
  • Thematic signals (photography, labor, maritime, critical theory)
  • Deep facets (AI-powered content detection)

The framework is source-agnostic and collection-neutralβ€”adapt it to any institution's catalog (Primo, OCLC, ArchivesSpace, CSV exports).


Quick Start

🌐 Try it Live

πŸ’» Run Locally

# Clone and serve
git clone https://github.com/evcatalyst/ShelfSignals.git
cd ShelfSignals/docs
python -m http.server 8000
# Open http://localhost:8000/preview/

πŸ”§ Run the Pipeline

# Harvest catalog data
python scripts/sekula_indexer.py

# Extract AI features
python scripts/photo_feature_extractor.py \
  --input docs/data/sekula_index.json \
  --output docs/data/photo_feature_packets.jsonl

# Score with AI (mock mode)
python scripts/photo_likelihood_scorer.py \
  --input docs/data/photo_feature_packets.jsonl \
  --output docs/data/photo_scored.jsonl \
  --mock

# Merge scores and export
python scripts/merge_scores_to_json.py \
  --input docs/data/sekula_index.json \
  --scores docs/data/photo_scored.jsonl \
  --output docs/data/sekula_index.json

See docs/operations.md for complete pipeline documentation.


Documentation

πŸ“š Core Documentation

πŸ“– Getting Started Guides

🎯 Quick Navigation


Features

πŸ” Core Capabilities

  • Metadata Harvesting: API connectors (Primo, OCLC), CSV imports, HTML/DOM extraction
  • Normalization Layer: LC parsing, publisher canonicalization, year normalization, subject cleanup
  • Pattern Detection: Sequence analysis, signal matching, classification clustering
  • Visual Intelligence: Virtual shelf, LC coloring, thematic overlays, interactive exploration
  • AI Deep Facets: Embedded Photography Likelihood scorer (xAI Grok API)

🎨 Three Specialized Interfaces

Interface Status Best For
Production Deprecated (v1.x) Legacy compatibility
Preview βœ… Active (v2.x) Research, accessibility
Exhibit βœ… Active (v2.x) Museums, kiosks, public engagement

See docs/interfaces.md for detailed comparison.

🎫 Digital Receipts

Portable, verifiable exports of curated collections:

  • RFC 8785 canonical JSON + SHA-256 verification
  • No server storage (fully client-side)
  • Shareable via JSON download, QR code, or URL fragment
  • Human-readable IDs: SS-XXXX-XXXX-XXXX

See docs/receipts.md for complete documentation.


Screenshots

Preview Interface

ShelfSignals Preview Interface Virtual shelf with LC classification coloring, real-time search, and interactive book spines

For more screenshots and use cases, see the Introduction & User Guide.


Repository Structure

ShelfSignals/
β”œβ”€β”€ docs/                    # Documentation + GitHub Pages deployment
β”‚   β”œβ”€β”€ index.md             # Documentation index
β”‚   β”œβ”€β”€ pipeline.md          # Data pipeline guide
β”‚   β”œβ”€β”€ interfaces.md        # Interface documentation
β”‚   β”œβ”€β”€ receipts.md          # Digital Receipt system
β”‚   β”œβ”€β”€ operations.md        # Running locally, scheduling
β”‚   β”œβ”€β”€ PHOTO_LIKELIHOOD_FACET.md  # Deep facets guide
β”‚   β”œβ”€β”€ index.html           # Production interface (deprecated)
β”‚   β”œβ”€β”€ preview/             # Preview interface (v2.x)
β”‚   β”‚   β”œβ”€β”€ index.html
β”‚   β”‚   └── exhibit/         # Exhibit interface
β”‚   β”œβ”€β”€ js/                  # Shared JavaScript modules
β”‚   └── data/                # Collection data (JSON, CSV)
β”œβ”€β”€ scripts/                 # Data pipeline tools
β”‚   β”œβ”€β”€ sekula_indexer.py    # Primo API harvester
β”‚   β”œβ”€β”€ photo_feature_extractor.py  # AI feature extraction
β”‚   β”œβ”€β”€ photo_likelihood_scorer.py  # Grok API scoring
β”‚   └── merge_scores_to_json.py     # Merge enriched data
β”œβ”€β”€ README.md                # This file
└── INTRODUCTION.md          # Visual user guide

Core Principles

  1. Source-Agnostic: Works with any metadata source (API, CSV, HTML scraping)
  2. Collection-Neutral: Adaptable to any library, archive, or museum catalog
  3. Reproducible Pipelines: Version-controlled scripts with frozen parameters
  4. Visual Intelligence: Transform metadata into spatial, chromatic representations
  5. Research-Oriented: Designed for discovery and insight, not end-user search

See docs/index.md for detailed principles.


External Dependencies

Required (Harvesting)

  • Python 3.8+
  • requests library (pip install requests)
  • Institution-specific API access (may require VPN or authentication)

Optional (AI Enrichment)

  • xAI (Grok) API key for deep facet scoring
  • Free tier: ~100 requests/hour
  • Safe default: Mock mode (--mock flag) for testing

Web Interfaces

  • No dependencies: Pure HTML/CSS/JavaScript
  • Runs on any modern browser (Chrome 90+, Firefox 88+, Safari 14+)
  • GitHub Pages hosting (free for public repositories)

See docs/pipeline.md for API details.


Use Cases

ShelfSignals serves multiple personas and research workflows:

πŸ“š Researchers

  • Pattern discovery: Find thematic clusters across traditional subject boundaries
  • Collection analysis: Understand topic distribution and relationships
  • Reproducible workflows: Document methodology with Digital Receipts

πŸ›οΈ Librarians & Curators

  • Collection visualization: See shelf organization from a bird's-eye view
  • Gap analysis: Identify underrepresented subject areas
  • Exhibition planning: Build curated pathways through collections

πŸ‘₯ Museum Visitors

  • Guided exploration: Follow curated paths through themed content
  • Take-home collections: Export selections via Digital Receipts (QR codes, JSON)
  • Self-guided learning: Kiosk mode for unattended installations

See docs/index.md - Use Case Map for detailed workflows.


About the Sekula Library

The inaugural ShelfSignals deployment visualizes the Allan Sekula Library Collectionβ€”a research library focused on photography, labor history, maritime culture, and critical theory. The collection's thematic coherence makes it an ideal test case for pattern detection, but ShelfSignals is collection-neutral and adaptable to any catalog with structured metadata.

See INTRODUCTION.md for more context.


Contributing

ShelfSignals is an open research project. We welcome:

  • Feature requests: Open an issue on GitHub
  • Bug reports: Include browser version and reproduction steps
  • Data contributions: Adapt to new collections with metadata connectors
  • Code improvements: Pull requests for modular utilities or pipeline scripts

See docs/operations.md - Adapting to New Collections for integration guidance.


License

ShelfSignals is an open-source research project. See repository for license details.

About

ShelfSignals is an adaptable toolkit for collection intelligence and metadata analysis.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages