linkedparticles-core 1.149.0__tar.gz → 1.172.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/PKG-INFO +6 -6
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/README.md +4 -4
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/schemas/particle.schema.json +1 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/schemas/shacl/ParticleShape.ttl +2 -2
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/schemas/trust_lens.schema.json +63 -4
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/constraints.txt +161 -132
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/config.py +754 -62
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/runner.py +1 -1
- linkedparticles_core-1.172.0/particles/core/closure_measure.py +176 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/conflict_resolution.py +327 -14
- linkedparticles_core-1.172.0/particles/core/conflict_review.py +421 -0
- linkedparticles_core-1.172.0/particles/core/consolidation_cadence.py +99 -0
- linkedparticles_core-1.172.0/particles/core/contradiction_disclosure.py +619 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/equivalence.py +46 -0
- linkedparticles_core-1.172.0/particles/core/generics.py +337 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/jsonld_context.py +5 -0
- linkedparticles_core-1.172.0/particles/core/modality.py +265 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/observer_scope.py +16 -0
- linkedparticles_core-1.172.0/particles/core/predicate_profile.py +218 -0
- linkedparticles_core-1.172.0/particles/core/probe_verdict.py +130 -0
- linkedparticles_core-1.172.0/particles/core/progress.py +40 -0
- linkedparticles_core-1.172.0/particles/core/provenance.py +38 -0
- linkedparticles_core-1.172.0/particles/core/reanchor.py +275 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/schema.py +374 -8
- linkedparticles_core-1.172.0/particles/core/spend_budget.py +52 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/status.py +4 -0
- linkedparticles_core-1.172.0/particles/core/vocabulary.py +811 -0
- linkedparticles_core-1.172.0/particles/core/vocabulary_jsonld.py +305 -0
- linkedparticles_core-1.172.0/particles/core/vocabulary_report.py +294 -0
- linkedparticles_core-1.172.0/particles/extraction/append_delta.py +209 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/calibration.py +135 -2
- linkedparticles_core-1.172.0/particles/extraction/components.py +252 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/general.py +1047 -133
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/incremental.py +151 -40
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/journal.py +95 -5
- linkedparticles_core-1.172.0/particles/extraction/modality.py +154 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/registry.py +2 -0
- linkedparticles_core-1.172.0/particles/extraction/session_state.py +144 -0
- linkedparticles_core-1.172.0/particles/extraction/subject_gate.py +302 -0
- linkedparticles_core-1.172.0/particles/extraction/vocabulary.py +104 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/interchange/codec.py +5 -2
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/__init__.py +19 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/adapters/anthropic.py +378 -50
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/adapters/openai_compat.py +57 -7
- linkedparticles_core-1.172.0/particles/llm/batch_budget.py +193 -0
- linkedparticles_core-1.172.0/particles/llm/breaker.py +273 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/errors.py +21 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/pool.py +65 -21
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/registry.py +184 -18
- linkedparticles_core-1.172.0/particles/llm/spend_budget.py +106 -0
- linkedparticles_core-1.172.0/particles/llm/usage.py +365 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/render/markdown.py +283 -37
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/pyproject.toml +5 -3
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/_client_fixtures.py +124 -5
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conftest.py +1 -0
- linkedparticles_core-1.172.0/tests/test_config_sample.py +85 -0
- linkedparticles_core-1.172.0/tests/test_core_contradiction_disclosure.py +321 -0
- linkedparticles_core-1.172.0/tests/test_core_provenance.py +81 -0
- linkedparticles_core-1.172.0/tests/test_core_vocabulary.py +467 -0
- linkedparticles_core-1.172.0/tests/test_llm_batch_budget.py +548 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_llm_pool.py +76 -2
- linkedparticles_core-1.172.0/tests/test_llm_usage.py +301 -0
- linkedparticles_core-1.149.0/particles/extraction/subject_gate.py +0 -146
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/LICENSE +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/NOTICE +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/conformance/README.md +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/conformance/profile.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/conformance/similarity_vectors.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/schemas/context.jsonld +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/schemas/interchange.schema.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/schemas/shacl/CorpusSnapshotShape.ttl +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/schemas/shacl/ProvenanceChainShape.ttl +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/schemas/shacl/SubjectShape.ttl +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/artifacts/schemas/shacl/TrustStatementShape.ttl +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/_resources.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/contract.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/fixtures.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/jsonschema.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/profile.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/shacl.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/types.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/conformance/validator.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/_resources.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/cascade_gate.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/claims.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/duplicate_key.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/fingerprint.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/granularity.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/scoring/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/scoring/confidence.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/scoring/decay.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/scoring/relevance.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/scoring/utility.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/core/stance.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/embeddings.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/docstrings.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/github/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/github/_shared.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/github/gist.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/github/pages.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/github/repo.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/hackernews.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/mastodon.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/mcp_memory.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/migration_preview.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/nomisma.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/numista/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/numista/_shared.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/numista/coin.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/numista/issuer.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/numista/listing.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/polarity.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/property_keys.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/rdf.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/reddit.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/scope.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/structure.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/subject_scope.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/taxonomy.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/tool_turns.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/trust_lens.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/extraction/wikidata.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/http.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/interchange/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/interchange/jsonl.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/interchange/yaml_ld.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/adapters/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/adapters/local.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/client.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/llm/fencing.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/py.typed +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/render/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/secrets.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/url_canonical.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/particles/url_safety.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/__init__.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/_upstream.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/MANIFEST.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/hackernews-thread-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/hackernews-thread-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/hackernews-thread-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/journal-entry-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/journal-entry-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/journal-entry-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/mastodon-thread-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/mastodon-thread-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/mastodon-thread-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/mcp-memory-export-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/mcp-memory-export-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/mcp-memory-export-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/nomisma-concept-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/nomisma-concept-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/nomisma-concept-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/numista-coin-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/numista-coin-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/numista-coin-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/numista-issuer-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/numista-issuer-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/numista-issuer-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/numista-listing-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/numista-listing-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/numista-listing-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/rdf-graph-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/rdf-graph-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/rdf-graph-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/reddit-thread-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/reddit-thread-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/reddit-thread-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/taxonomy-coins-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/taxonomy-coins-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/taxonomy-coins-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/trust-lens-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/trust-lens-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/trust-lens-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-article-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-article-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-article-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-article-002/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-article-002/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-article-002/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-essay-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-essay-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-essay-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-interview-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-interview-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/web-interview-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/wikidata-entity-001/content.bin +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/wikidata-entity-001/manifest.yaml +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/conformance/fixtures/wikidata-entity-001/snapshot.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/fixtures/scope/normative-rule-file.md +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/fixtures/scope/normative-rule-file.recorded.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/fixtures/scope/rule-file-agents-md.md +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/fixtures/scope/rule-file-agents-md.recorded.json +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_confidence.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_config_client_sections.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_conformance_fixture_gen.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_conformance_similarity_vectors.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_conformance_validator.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_core_observer_scope.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_embeddings.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_extraction_vision.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_interchange_schema.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_schema.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_secrets.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_url_canonical.py +0 -0
- {linkedparticles_core-1.149.0 → linkedparticles_core-1.172.0}/tests/test_validity_extraction.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: linkedparticles-core
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.172.0
|
|
4
4
|
Summary: Store-free client library for Particles: define, validate, serialize, and extract provenance-tracked belief particles
|
|
5
5
|
Project-URL: Homepage, https://linkedparticles.org
|
|
6
6
|
Project-URL: Documentation, https://docs.linkedparticles.org
|
|
@@ -44,7 +44,7 @@ Requires-Dist: pyyaml>=6.0
|
|
|
44
44
|
Requires-Dist: rdflib<8,>=7.0
|
|
45
45
|
Requires-Dist: scipy>=1.13
|
|
46
46
|
Requires-Dist: sentence-transformers>=2.7
|
|
47
|
-
Requires-Dist: sqlalchemy
|
|
47
|
+
Requires-Dist: sqlalchemy[asyncio]<2.2,>=2.0
|
|
48
48
|
Requires-Dist: torch
|
|
49
49
|
Provides-Extra: vision
|
|
50
50
|
Requires-Dist: pypdfium2>=4.30; extra == 'vision'
|
|
@@ -76,7 +76,7 @@ wire format, and the extraction pipeline. Everything you need to *make* and
|
|
|
76
76
|
> an MCP server), install
|
|
77
77
|
> **[`linkedparticles`](https://pypi.org/project/linkedparticles/)** instead.
|
|
78
78
|
> It depends on this package and pulls it in automatically. This one is the
|
|
79
|
-
>
|
|
79
|
+
> foundation it is built on. Its repository,
|
|
80
80
|
> **[`particles-engine-py`](https://github.com/LinkedParticles/particles-engine-py)**,
|
|
81
81
|
> is the reference implementation's front door: issues, discussion, and
|
|
82
82
|
> documentation live there.
|
|
@@ -103,9 +103,9 @@ p = Particle(
|
|
|
103
103
|
asserted_by="iau-2006",
|
|
104
104
|
)
|
|
105
105
|
|
|
106
|
-
validate_particle_dict(p.model_dump(mode="json"))
|
|
107
|
-
unit = to_unit(p, [])
|
|
108
|
-
from_unit(unit)
|
|
106
|
+
validate_particle_dict(p.model_dump(mode="json")) # []: valid against the normative JSON Schema
|
|
107
|
+
unit = to_unit(p, []) # JSON-LD interchange unit
|
|
108
|
+
from_unit(unit) # …and back again
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
```json
|
|
@@ -24,7 +24,7 @@ wire format, and the extraction pipeline. Everything you need to *make* and
|
|
|
24
24
|
> an MCP server), install
|
|
25
25
|
> **[`linkedparticles`](https://pypi.org/project/linkedparticles/)** instead.
|
|
26
26
|
> It depends on this package and pulls it in automatically. This one is the
|
|
27
|
-
>
|
|
27
|
+
> foundation it is built on. Its repository,
|
|
28
28
|
> **[`particles-engine-py`](https://github.com/LinkedParticles/particles-engine-py)**,
|
|
29
29
|
> is the reference implementation's front door: issues, discussion, and
|
|
30
30
|
> documentation live there.
|
|
@@ -51,9 +51,9 @@ p = Particle(
|
|
|
51
51
|
asserted_by="iau-2006",
|
|
52
52
|
)
|
|
53
53
|
|
|
54
|
-
validate_particle_dict(p.model_dump(mode="json"))
|
|
55
|
-
unit = to_unit(p, [])
|
|
56
|
-
from_unit(unit)
|
|
54
|
+
validate_particle_dict(p.model_dump(mode="json")) # []: valid against the normative JSON Schema
|
|
55
|
+
unit = to_unit(p, []) # JSON-LD interchange unit
|
|
56
|
+
from_unit(unit) # …and back again
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
```json
|
|
@@ -87,8 +87,8 @@ particles:ParticleShape
|
|
|
87
87
|
"LOWER_TRUST_SOURCE" "SUPERSEDED_BY_REINDEX" "VALIDITY_EXPIRED"
|
|
88
88
|
"CONFLICT_RESOLVED" "CONFLICT_PENDING" "EXPLICIT_RETRACTION"
|
|
89
89
|
"SOURCE_RETRACTED" "EXPLICIT_SUPERSESSION" "DOCUMENT_SUPERSEDED"
|
|
90
|
-
"SUPERSEDED_BY_UPDATE" "DUPLICATE_MERGED" ) ;
|
|
91
|
-
sh:message "status_reason, when present, must be one of the
|
|
90
|
+
"SUPERSEDED_BY_UPDATE" "SUPERSEDED_BY_REANCHOR" "DUPLICATE_MERGED" ) ;
|
|
91
|
+
sh:message "status_reason, when present, must be one of the fifteen StatusReason values." ;
|
|
92
92
|
] ;
|
|
93
93
|
|
|
94
94
|
# particleType — optional; CLAIM default, REVIEW for review annotation
|
|
@@ -2,8 +2,19 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://linkedparticles.org/schemas/trust_lens.schema.json",
|
|
4
4
|
"$defs": {
|
|
5
|
+
"AssertionModality": {
|
|
6
|
+
"description": "What *kind* of assertion a particle makes: the default for its adjudicability.\n\nOrthogonal to ``uncertainty_nature`` (which presupposes a fact of the\nmatter) and to scope (which lives in ``properties``). The write\npath arbitrates (the \u00a76.6 conflict ladder, L-SEM-01, L-IDX-01) only pairs\nof ``FALSIFIABLE`` particles (see :func:`is_truth_apt`); the other\nmodalities co-exist and are never contradiction-checked or\ntrust-arbitrated. The value is a regenerable default, not a property of\nthe claim: it is stamped with the classifier that set it, an operator may\ncorrect it, and a lens may read it differently at read time only.\nDefault ``FALSIFIABLE`` keeps every existing particle\nunchanged. Closed enum: adding a modality is an additive minor change.",
|
|
7
|
+
"enum": [
|
|
8
|
+
"FALSIFIABLE",
|
|
9
|
+
"EVALUATIVE",
|
|
10
|
+
"EXPERIENTIAL",
|
|
11
|
+
"CONSTITUTIVE"
|
|
12
|
+
],
|
|
13
|
+
"title": "AssertionModality",
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
5
16
|
"TrustLensDecayRule": {
|
|
6
|
-
"description": "One portable content-age decay rule carried by a lens.\n\nSets the recency half-life / floor for content matching ``pattern``
|
|
17
|
+
"description": "One portable content-age decay rule carried by a lens.\n\nSets the recency half-life / floor for content matching ``pattern`` \u2014 an\nexact ``source_type`` string (``scope=\"source_type\"``) or a trust-rule-style\nURL regex (``scope=\"url_pattern\"``, e.g. a per-subreddit half-life). Unlike\nthe URL *trust* rule's additive ``modifier``, a decay rule is an **absolute**\n``(half_life_days, floor)`` pair \u2014 half-life is not meaningfully additive.\nThe URL layer is more specific than the source_type layer (a per-subreddit\nrule overrides the source-type default in either direction); across adopted\nlenses the most-skeptical rule wins (shortest half-life / lowest floor).",
|
|
7
18
|
"properties": {
|
|
8
19
|
"scope": {
|
|
9
20
|
"enum": [
|
|
@@ -39,8 +50,49 @@
|
|
|
39
50
|
"title": "TrustLensDecayRule",
|
|
40
51
|
"type": "object"
|
|
41
52
|
},
|
|
53
|
+
"TrustLensModalityRule": {
|
|
54
|
+
"description": "One portable override of the adjudicability default carried by a lens.\n\n``assertion_modality`` is the extraction-time default for whether a claim\nmay be arbitrated against another; a lens may read it differently for its\nobserver. The rule applies to the claims ``scope`` + ``pattern`` select:\n\n- ``particle``: ``pattern`` is a particle id;\n- ``subject``: ``pattern`` is a subject id the claim is about;\n- ``url_pattern``: ``pattern`` is a regex searched in the claim's source\n URIs (the trust-rule regex shape);\n- ``source_type``: ``pattern`` is an exact ``source_type`` string.\n\n``when``, if set, limits the rule to claims whose stored default is that\nmodality. Particle and subject ids are store-local: an interchange import\nmints fresh ids, so such a rule ports only to a faithful restore of its own\nstore, and elsewhere matches nothing, which leaves the stored default.\n\nRead-time only. A rule decides what renders contested and what the lint\nqueue names for the operator; it never reaches a write, ranking, or\n``effective_confidence``, and an operator verdict always wins over it.\nWithin one lens the most specific matching rule decides that lens's\nreading; across adopted lenses abstention (a non-``FALSIFIABLE`` reading)\nwins at any scope, so adopting a lens can only withdraw adjudication.",
|
|
55
|
+
"properties": {
|
|
56
|
+
"scope": {
|
|
57
|
+
"enum": [
|
|
58
|
+
"particle",
|
|
59
|
+
"subject",
|
|
60
|
+
"url_pattern",
|
|
61
|
+
"source_type"
|
|
62
|
+
],
|
|
63
|
+
"title": "Scope",
|
|
64
|
+
"type": "string"
|
|
65
|
+
},
|
|
66
|
+
"pattern": {
|
|
67
|
+
"minLength": 1,
|
|
68
|
+
"title": "Pattern",
|
|
69
|
+
"type": "string"
|
|
70
|
+
},
|
|
71
|
+
"modality": {
|
|
72
|
+
"$ref": "#/$defs/AssertionModality"
|
|
73
|
+
},
|
|
74
|
+
"when": {
|
|
75
|
+
"anyOf": [
|
|
76
|
+
{
|
|
77
|
+
"$ref": "#/$defs/AssertionModality"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"type": "null"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"default": null
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"required": [
|
|
87
|
+
"scope",
|
|
88
|
+
"pattern",
|
|
89
|
+
"modality"
|
|
90
|
+
],
|
|
91
|
+
"title": "TrustLensModalityRule",
|
|
92
|
+
"type": "object"
|
|
93
|
+
},
|
|
42
94
|
"TrustLensStatement": {
|
|
43
|
-
"description": "One portable SOURCE_TYPE-scoped trust statement carried by a lens.\n\n``CORPUS_ENTRY``-scoped statements are excluded from lenses by design
|
|
95
|
+
"description": "One portable SOURCE_TYPE-scoped trust statement carried by a lens.\n\n``CORPUS_ENTRY``-scoped statements are excluded from lenses by design \u2014\nthey key on store-local entry ids and are not portable.",
|
|
44
96
|
"properties": {
|
|
45
97
|
"domain": {
|
|
46
98
|
"minLength": 1,
|
|
@@ -130,7 +182,7 @@
|
|
|
130
182
|
"type": "object"
|
|
131
183
|
},
|
|
132
184
|
"TrustLensUtilityRule": {
|
|
133
|
-
"description": "One portable usefulness (outcome-learning) utility rule carried by a lens.\n\nWhere a ``decay_rule`` is the *judgment* half of content-age\ndecay, a ``utility_rule`` is the judgment half of **usefulness**: it sets\n*how far* demonstrated use may reorder the projection / digest head, and\n*how fast* unreinforced utility fades. The per-belief utility *evidence*\n(the mined reinforcement count) is store-local and lives outside the lens
|
|
185
|
+
"description": "One portable usefulness (outcome-learning) utility rule carried by a lens.\n\nWhere a ``decay_rule`` is the *judgment* half of content-age\ndecay, a ``utility_rule`` is the judgment half of **usefulness**: it sets\n*how far* demonstrated use may reorder the projection / digest head, and\n*how fast* unreinforced utility fades. The per-belief utility *evidence*\n(the mined reinforcement count) is store-local and lives outside the lens\u2014\nthis rule carries only the tunables.\n\n- ``half_life_uses_days`` \u2014 days for a single utility event's weight to halve\n (the reinforcement half-life; ``> 0``).\n- ``rank_lift`` \u2014 the ``\u03bb`` in ``rank_score = effective_confidence\n + \u03bb\u00b7ln(1 + R)`` (``\u2265 0``; ``0`` disables the lift). **Promotion-only** by\n construction \u2014 the bonus is never negative, so lack of use withholds the\n lift rather than demoting.\n\nThis single knob replaced the old ``weight`` / ``floor`` / ``cap`` triple\nwhen the bounded multiplier was superseded; a lens\npublished under the old vocabulary carries no ``rank_lift`` and is treated\nas silent about utility (the store's local ``utility`` config applies).\n\nAcross adopted lenses the most-skeptical rule wins \u2014 *less* promotion:\nshortest ``half_life_uses_days``, lowest ``rank_lift`` (symmetric with the\ndecay rule). ``scope=\"default\"`` is the\nstore-wide rule; ``source_type`` / ``url_pattern`` scopes mirror the decay\nladder for finer control.",
|
|
134
186
|
"properties": {
|
|
135
187
|
"scope": {
|
|
136
188
|
"default": "default",
|
|
@@ -173,7 +225,7 @@
|
|
|
173
225
|
"type": "object"
|
|
174
226
|
}
|
|
175
227
|
},
|
|
176
|
-
"description": "A depositable corpus artefact bundling portable trust policy.\n\nA community publishes its view of which sources to trust by depositing a\nJSON file; the ``TrustLensExtractor`` materialises it into the\n``trust_lenses`` / ``trust_lens_entries`` tables. Viewers adopt lenses per\nstore; the query-time ``TrustPolicy`` composes the store's local\npolicy over adopted lenses, most-skeptical-wins. Adopting a lens can only\ndemote (ranks are in [0, 1] and silence stays neutral), never promote.\n\nA lens carries a fourth portable layer, ``decay_rules``
|
|
228
|
+
"description": "A depositable corpus artefact bundling portable trust policy.\n\nA community publishes its view of which sources to trust by depositing a\nJSON file; the ``TrustLensExtractor`` materialises it into the\n``trust_lenses`` / ``trust_lens_entries`` tables. Viewers adopt lenses per\nstore; the query-time ``TrustPolicy`` composes the store's local\npolicy over adopted lenses, most-skeptical-wins. Adopting a lens can only\ndemote (ranks are in [0, 1] and silence stays neutral), never promote.\n\nA lens carries a fourth portable layer, ``decay_rules`` \u2014\nper-observer content-age decay (recency half-life / floor), composed through\nthe query-time ``DecayPolicy`` the same most-skeptical-wins way as the trust\nlayers. A lens silent about decay leaves the store's global\n``content_age_decay`` config untouched.\n\nA lens also carries ``utility_rules`` \u2014 the usefulness\n(outcome-learning) judgment, composed through the query-time ``UtilityPolicy``\ninto an additive rank-lift on the projection / digest ranking path\nonly. A lens silent about utility leaves the store's local ``utility`` config\nuntouched; with no utility evidence the bonus is ``+0`` (cold-start).\n\nA lens may also carry ``modality_rules``: a per-observer reading\nof the adjudicability default, applied at read time to the contested badge\nand the lint queue only. A lens silent about modality reads every claim as\nits stored default.",
|
|
177
229
|
"properties": {
|
|
178
230
|
"kind": {
|
|
179
231
|
"const": "TrustLensDefinition",
|
|
@@ -254,6 +306,13 @@
|
|
|
254
306
|
"title": "Utility Rules",
|
|
255
307
|
"type": "array"
|
|
256
308
|
},
|
|
309
|
+
"modality_rules": {
|
|
310
|
+
"items": {
|
|
311
|
+
"$ref": "#/$defs/TrustLensModalityRule"
|
|
312
|
+
},
|
|
313
|
+
"title": "Modality Rules",
|
|
314
|
+
"type": "array"
|
|
315
|
+
},
|
|
257
316
|
"corpus_entry_id": {
|
|
258
317
|
"anyOf": [
|
|
259
318
|
{
|