How vitrivr/vitrivr-ng works
Vitrivr NG is an Angular interface for browsing and retrieving items from mixed-media collections through Cineast, with optional DRES competition support. Users build multimodal or staged temporal queries, submit them, and inspect returned objects and segments in gallery, list, or temporal views; query history and item details support follow-up exploration. The map also includes configuration/connectivity and competition capabilities documented in the README. Query submission, WebSocket message handling, and history updates are supported by sampled source; other branches are based on the repository tree and README, so their internal wiring is not asserted.
Main entry points: query.service.ts Query service · query-sidebar.component.ts Query sidebar · results Result views · app.component.ts App shell
Components 23
Query authoring
- Query sidebar
src/app/query/query-sidebar.component.ts - Query terms
src/app/query/containers - Temporal stages
src/app/query/temporal-distance/temporal-distance.component.ts - Query models
src/app/shared/model/queries
Retrieval and results
- Query service
src/app/core/queries/query.service.ts - Result views
src/app/results - Scored results
src/app/shared/model/results/scores/results-container.model.ts - Query history
src/app/core/queries/history.service.ts - Media details
src/app/objectdetails - Segment details
src/app/segmentdetails - Selection and tags
src/app/core/selection/selection.service.ts
Application services
- App shell
src/app/app.component.ts - WebSocket factory
src/app/core/api/web-socket-factory.service.ts - Cineast API bindings
openapi/cineast/api - Distinct lookup
src/app/core/lookup/distinct-element-lookup.service.ts - Configuration
src/app/shared/model/config/config.model.ts
Competition
- Competition UI
src/app/settings/dres/dres-sidebar.component.ts - Competition services
src/app/core/competition - DRES service
src/app/core/basics/dres.service.ts - DRES API bindings
openapi/dres/api
Other components
- User
- Cineast
- DRES
Connections 24
- User → Query sidebar: configures query
- Query sidebar → Query terms: edits terms
- Query sidebar → Temporal stages: sets stage spacing
- Query sidebar → Query service: submits query
- Query service → Query models: builds messages
- Query service → WebSocket factory: sends query
- WebSocket factory → Cineast: exchanges messages
- Cineast → WebSocket factory: streams results
- Query service → Scored results: processes results
- Query service → Query history: appends results
- Scored results → Result views: supplies results
- User → Result views: browses results
- Result views → Media details: opens object
- Result views → Segment details: opens segment
- User → Selection and tags: manages selections
- Query terms → Cineast API bindings: looks up tags
- Cineast API bindings → Cineast: calls REST API
- App shell → Query service: observes status
- App shell → Distinct lookup: initializes lookup
- App shell → Configuration: reads settings
- Competition UI → Competition services: uses competition tools
- Competition services → DRES service: records and submits
- DRES service → DRES API bindings: calls client
- DRES API bindings → DRES: calls API