Releases: opencitations/time-agnostic-library
Releases · opencitations/time-agnostic-library
6.0.0
6.0.0 (2026-02-13)
- build!: migrate from Poetry to uv and drop Python 3.9 (866c7e6)
- refactor!: replace python-dateutil with datetime.fromisoformat (7f2bf30)
Bug Fixes
- correct version materialization and cross-version query results (5434750)
- handle language-tagged literals and safe triple removal (ed38d74)
- prune stale SPARQL clients from dead executor threads (1de40de)
- remove SPARQL client pooling that caused flaky CI failures (b829dc4)
- replace copy.deepcopy with _copy_dataset to prevent rdflib index corruption (eccafba)
Features
- add BEAR benchmark suite with QLever backend (49975fb)
- add include_all_timestamps option to VersionQuery (4d703a1)
- benchmark: add CLI arguments, resume support, and subprocess isolation for VQ queries (743bac2)
- benchmark: add multi-granularity support and comparison plots (9d55845)
- benchmark: add OSTRICH comparison and ingestion timing (67844cc)
- benchmark: enable OSTRICH multi-snapshot ingestion strategies (0e9942e)
- extract OCDM converter into reusable library module (9c8cee8)
- switch VersionQuery results to SPARQL JSON bindings format (514c93d)
Performance Improvements
- batch SPARQL queries and set-based reconstruction for VM/VQ/DM (8bd7bf1)
- converter: optimize N-Triples parsing and I/O pipeline (df713ba)
- normalize typed literals for O(1) graph removal in update queries (0ff6557)
- reduce overhead from redundant copies, pyparsing, and sequential I/O (4e9ff8f)
- remove dead code and use server-side entity discovery in DeltaQuery (094f942)
- remove redundant DISTINCT from update query entity discovery (c38c5f4)
- replace pyparsing-based SPARQL UPDATE parser with regex (572ba47)
- replace rdflib Dataset with N3 string sets for internal state (3e698ac)
- replace ThreadPoolExecutor with ProcessPoolExecutor on Linux (6271087)
- simplify provenance query and remove DISTINCT from all internal queries (beb91a7)
- stream cross-version VersionQuery to avoid O(N) dataset copies (15c0bb2)
- use set-based pattern matching for single-version VersionQuery (ced44ca)
- use tuple instead of frozenset and skip single-timestamp alignment (6d2117b)
BREAKING CHANGES
- date/time values must now be in ISO 8601 format.
Non-ISO formats (e.g., "May 21, 2021") are no longer accepted. - get_state_at_time returns empty entity_snapshots
dict when include_prov_metadata is False. - Python 3.9 is no longer supported. Minimum required
version is now Python 3.10.
5.0.7
5.0.6
5.0.6 (2025-11-01)
Bug Fixes
5.0.5
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0
5.0.0 (2025-05-29)
Features
- Add script to find representative entities for benchmarking (c457cee)
- agnostic_entity: remove cache and enhance entity relationships (b9258b7)
- Enhance entity selection script with local file analysis and improved SPARQL querying (bd5d871)
BREAKING CHANGES
- agnostic_entity: - Added new parameters to AgnosticEntity:
include_related_objects: Enables inclusion of related objectsinclude_merged_entities: Controls inclusion of merged entitiesinclude_reverse_relations: Manages reverse relationship inclusion
- Removed all caching functionality as it was deemed obsolete and non-functional
- Increased test coverage for new features
- Removed untested and deprecated features
This change requires updates to all code that instantiates or interacts with AgnosticEntity objects.
[release]