feat(presentation): project Lefevre into a content-explorer snapshot
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 2s

Map the Lefevre infospace to a schema 0.1 snapshot and presentation
manifest. Category kinds, Gutenberg rights, and chunk provenance stay
on the projection. Relation blocks are included only when both ends
match a stored entity title.

Assistant: grok
Assistant-Session: 01a137af-2bea-7940-9a65-acd892344a72
This commit is contained in:
tegwick 2026-10-14 02:28:33 +02:00
parent f001b0c1cf
commit fd0dc5fc02
9 changed files with 1421 additions and 22 deletions

View file

@ -0,0 +1,49 @@
# Content-explorer projection
`lefevre-reminiscences-of-a-stock-operator` is the worked example of the
reusable infospace projection. A later infospace uses the same function,
`infospace_bench.presentation.project_infospace`, and the same snapshot and
manifest shape. It does not get a separate screen.
Infospace-bench remains the system of record. Content-explorer only presents
artifacts infospace-bench still owns. The files in this directory are a
projection, not a second copy of the knowledge.
## Rule
One infospace becomes one content-explorer snapshot (schema version 0.1) and
one presentation manifest (schema version 0.1).
- The dataspace id is the infospace slug.
- Each rights-bearing work becomes one `sources[]` row. `license` is the
stored rights string, `uri` is `source_url` or the identifier, and `title`
is the work title. Chunk digests and original paths stay in that source’s
`attribution` provenance. They are not presentation kinds.
- Each `kind: entity` file becomes one entity. `kindId` is the `## Category`
value normalized with `slugify` (`evidence_bearing_claim` becomes
`evidence-bearing-claim`, and `event` stays `event`). The id is
`urn:ce:<slug>:<kindId>:<key>`. The title comes from the heading, without a
leading `Entity Title:` label. `tldr` and `summary` come from
`## Definition`. `sourceRefs` point at the work-level source. Provenance
(`workflow_id`, `stage_id`, `input_artifact_id`, `provider`) is copied onto
`properties`.
- Storage kinds `source`, `entity`, `relation`, and `generated` are not
presentation kinds. Generated summaries, entity bundles, and evaluations
stay out of the browse set.
- A relation block is included only when both subject and object match one
stored entity title under `slugify` (the same normalizer already used for
entity keys). That is exact normalized equality, not a fuzzy or partial
match. The snapshot `predicate` is `## Relation Type` passed through
`slugify` (`actor_venue` becomes `actor-venue`). The free-text
`## Predicate` is not the predicate id. Unresolved or ambiguous ends are
quarantined and omitted from the snapshot.
- The manifest carries kind labels, `kindViews` columns and facets, featured
kinds, navigation, `relationLabels` forward and inverse wording for every
predicate the snapshot actually emits, panels limited to `summary`,
`relations`, `evidence`, and `claims`, and a `factPolicy`. No
content-explorer UI code is required.
`snapshot.json` and `manifest.json` beside this note are the Lefevre
projection produced by that function. The published-example minimum (at least
three kinds and eight entities) is met by this mapping. The raw `artifacts/`
tree is not a snapshot.

View file

@ -0,0 +1,127 @@
{
"factPolicy": "show-all",
"home": {
"featuredKinds": [
"error",
"event",
"evidence-bearing-claim",
"institution",
"instrument",
"market",
"strategy",
"trader"
],
"heading": "Explore Reminiscences of a Stock Operator"
},
"id": "lefevre-reminiscences-of-a-stock-operator",
"kindViews": {
"error": {
"columns": [
"name",
"tldr",
"tags"
],
"facets": [
"tags"
]
},
"event": {
"columns": [
"name",
"tldr",
"tags"
],
"facets": [
"tags"
]
},
"evidence-bearing-claim": {
"columns": [
"name",
"tldr",
"tags"
],
"facets": [
"tags"
]
},
"institution": {
"columns": [
"name",
"tldr",
"tags"
],
"facets": [
"tags"
]
},
"instrument": {
"columns": [
"name",
"tldr",
"tags"
],
"facets": [
"tags"
]
},
"market": {
"columns": [
"name",
"tldr",
"tags"
],
"facets": [
"tags"
]
},
"strategy": {
"columns": [
"name",
"tldr",
"tags"
],
"facets": [
"tags"
]
},
"trader": {
"columns": [
"name",
"tldr",
"tags"
],
"facets": [
"tags"
]
}
},
"navigation": [
{
"kinds": [
"error",
"event",
"evidence-bearing-claim",
"institution",
"instrument",
"market",
"strategy",
"trader"
],
"label": "Browse"
}
],
"panels": [
"summary",
"relations",
"evidence",
"claims"
],
"relationLabels": {
"actor-venue": {
"forward": "Acts in",
"inverse": "Venue for"
}
},
"schemaVersion": "0.1"
}

View file

@ -0,0 +1,382 @@
{
"claims": [],
"dataspace": {
"description": "Presentation of the Reminiscences of a Stock Operator infospace (lefevre-reminiscences-of-a-stock-operator). Infospace-bench owns the artifacts. Content-explorer only presents them.",
"id": "lefevre-reminiscences-of-a-stock-operator",
"title": "Reminiscences of a Stock Operator"
},
"entities": [
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:error:dollar-manipulation",
"kindId": "error",
"properties": {
"artifact_id": "entity/entity-title-dollar-manipulation.md",
"artifact_path": "artifacts/entities/entity-title-dollar-manipulation.md",
"category": "error",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "The practice of manipulating stock prices to extract profits from the market, often at the expense of average investors.",
"tags": [
"error"
],
"title": "Dollar Manipulation",
"tldr": "The practice of manipulating stock prices to extract profits from the market, often at the expense of average investors."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:event:bryan-panic-of-96",
"kindId": "event",
"properties": {
"artifact_id": "entity/entity-title-bryan-panic-of-96.md",
"artifact_path": "artifacts/entities/entity-title-bryan-panic-of-96.md",
"category": "event",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "The Bryan Panic of 1896 was a financial crisis characterized by significant volatility and manipulation in the markets, leading to widespread impact on traders, including those in bucket shops.",
"tags": [
"event"
],
"title": "Bryan Panic of ’96",
"tldr": "The Bryan Panic of 1896 was a financial crisis characterized by significant volatility and manipulation in the markets, leading to widespread impact on traders, including those in bucket shops."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:evidence-bearing-claim:bull-tips",
"kindId": "evidence-bearing-claim",
"properties": {
"artifact_id": "entity/entity-title-bull-tips.md",
"artifact_path": "artifacts/entities/entity-title-bull-tips.md",
"category": "evidence_bearing_claim",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "Bull tips are recommendations or information suggesting that a stock's price will rise, encouraging traders to buy. These were used strategically to influence market movements in the discussed scenario.",
"tags": [
"evidence-bearing-claim"
],
"title": "Bull Tips",
"tldr": "Bull tips are recommendations or information suggesting that a stock's price will rise, encouraging traders to buy."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:institution:cosmopolitan",
"kindId": "institution",
"properties": {
"artifact_id": "entity/entity-title-cosmopolitan.md",
"artifact_path": "artifacts/entities/entity-title-cosmopolitan.md",
"category": "institution",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "The Cosmopolitan is identified as a bucket shop that engaged in manipulative practices, specifically targeting short positions in Sugar by artificially inflating stock prices.",
"tags": [
"institution"
],
"title": "Cosmopolitan",
"tldr": "The Cosmopolitan is identified as a bucket shop that engaged in manipulative practices, specifically targeting short positions in Sugar by artificially inflating stock prices."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:instrument:sugar",
"kindId": "instrument",
"properties": {
"artifact_id": "entity/entity-title-sugar.md",
"artifact_path": "artifacts/entities/entity-title-sugar.md",
"category": "instrument",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "A specific stock that traders engage with, which is central to the narratives involving trading strategies and market manipulation.",
"tags": [
"instrument"
],
"title": "Sugar",
"tldr": "A specific stock that traders engage with, which is central to the narratives involving trading strategies and market manipulation."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:instrument:sugar-commodity",
"kindId": "instrument",
"properties": {
"artifact_id": "entity/entity-title-sugar-commodity.md",
"artifact_path": "artifacts/entities/entity-title-sugar-commodity.md",
"category": "instrument",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "Sugar refers to a specific commodity that is traded on the market, in this case, associated with the incident involving Tom and Henry Williams, where their positions were affected by market manipulation.",
"tags": [
"instrument"
],
"title": "Sugar (Commodity)",
"tldr": "Sugar refers to a specific commodity that is traded on the market, in this case, associated with the incident involving Tom and Henry Williams, where their positions were affected by market manipulation."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:instrument:western-union",
"kindId": "instrument",
"properties": {
"artifact_id": "entity/entity-title-western-union.md",
"artifact_path": "artifacts/entities/entity-title-western-union.md",
"category": "instrument",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "A specific stock favored for trading due to its liquidity and ease of price manipulation.",
"tags": [
"instrument"
],
"title": "Western Union",
"tldr": "A specific stock favored for trading due to its liquidity and ease of price manipulation."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:instrument:western-union-stock",
"kindId": "instrument",
"properties": {
"artifact_id": "entity/entity-title-western-union-stock.md",
"artifact_path": "artifacts/entities/entity-title-western-union-stock.md",
"category": "instrument",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "Western Union is a stock that was frequently manipulated by traders due to its relative ease of movement within the market, making it a favored target for speculative trading schemes.",
"tags": [
"instrument"
],
"title": "Western Union (Stock)",
"tldr": "Western Union is a stock that was frequently manipulated by traders due to its relative ease of movement within the market, making it a favored target for speculative trading schemes."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:market:bucket-shop",
"kindId": "market",
"properties": {
"artifact_id": "entity/entity-title-bucket-shop.md",
"artifact_path": "artifacts/entities/entity-title-bucket-shop.md",
"category": "market",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "A bucket shop is a type of brokerage that allows speculative trading in stocks without actually buying shares. These shops often manipulate market prices to exploit their clients, leading to significant losses for traders.",
"tags": [
"market"
],
"title": "Bucket Shop",
"tldr": "A bucket shop is a type of brokerage that allows speculative trading in stocks without actually buying shares."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:market:new-york-stock-exchange",
"kindId": "market",
"properties": {
"artifact_id": "entity/entity-title-new-york-stock-exchange.md",
"artifact_path": "artifacts/entities/entity-title-new-york-stock-exchange.md",
"category": "market",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "The New York Stock Exchange (NYSE) is a major stock exchange where trading of stocks occurs, serving as a venue for some of the trading activities mentioned in the context of market manipulation.",
"tags": [
"market"
],
"title": "New York Stock Exchange",
"tldr": "The New York Stock Exchange (NYSE) is a major stock exchange where trading of stocks occurs, serving as a venue for some of the trading activities mentioned in the context of market manipulation."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:strategy:bucket-shop-drive",
"kindId": "strategy",
"properties": {
"artifact_id": "entity/entity-title-bucket-shop-drive.md",
"artifact_path": "artifacts/entities/entity-title-bucket-shop-drive.md",
"category": "strategy",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "A bucket-shop drive refers to a situation where the prices of stocks are manipulated downwards in a coordinated effort to force clients who are long on those stocks to incur losses or be wiped out.",
"tags": [
"strategy"
],
"title": "Bucket-Shop Drive",
"tldr": "A bucket-shop drive refers to a situation where the prices of stocks are manipulated downwards in a coordinated effort to force clients who are long on those stocks to incur losses or be wiped out."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:strategy:market-drive",
"kindId": "strategy",
"properties": {
"artifact_id": "entity/entity-title-market-drive.md",
"artifact_path": "artifacts/entities/entity-title-market-drive.md",
"category": "strategy",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "A tactic employed to artificially inflate or deflate stock prices in a way that leads to trader losses and profits for others.",
"tags": [
"strategy"
],
"title": "Market Drive",
"tldr": "A tactic employed to artificially inflate or deflate stock prices in a way that leads to trader losses and profits for others."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:strategy:short-position",
"kindId": "strategy",
"properties": {
"artifact_id": "entity/entity-title-short-position.md",
"artifact_path": "artifacts/entities/entity-title-short-position.md",
"category": "strategy",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "A short position refers to the practice of selling stocks that a trader does not own, with the intention of buying them back at a lower price to profit from the decline. It was a significant factor in the losses suffered by the traders in the context.",
"tags": [
"strategy"
],
"title": "Short Position",
"tldr": "A short position refers to the practice of selling stocks that a trader does not own, with the intention of buying them back at a lower price to profit from the decline."
},
{
"id": "urn:ce:lefevre-reminiscences-of-a-stock-operator:trader:market-factor",
"kindId": "trader",
"properties": {
"artifact_id": "entity/entity-title-market-factor.md",
"artifact_path": "artifacts/entities/entity-title-market-factor.md",
"category": "trader",
"input_artifact_id": "source/chapter-01-part-006.md",
"provider": "openrouter",
"stage_id": "split-entities",
"workflow_id": "generic-source-entities"
},
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"summary": "A market factor is an operator or trader who significantly influences trading conditions or stock prices within the market. In the text, a certain trader is identified as a market factor due to his previous successes in market manipulation.",
"tags": [
"trader"
],
"title": "Market Factor",
"tldr": "A market factor is an operator or trader who significantly influences trading conditions or stock prices within the market."
}
],
"kinds": [
{
"id": "error",
"label": "Error",
"plural": "Errors"
},
{
"id": "event",
"label": "Event",
"plural": "Events"
},
{
"id": "evidence-bearing-claim",
"label": "Evidence Bearing Claim",
"plural": "Evidence Bearing Claims"
},
{
"id": "institution",
"label": "Institution",
"plural": "Institutions"
},
{
"id": "instrument",
"label": "Instrument",
"plural": "Instruments"
},
{
"id": "market",
"label": "Market",
"plural": "Markets"
},
{
"id": "strategy",
"label": "Strategy",
"plural": "Strategys"
},
{
"id": "trader",
"label": "Trader",
"plural": "Traders"
}
],
"relations": [
{
"from": "urn:ce:lefevre-reminiscences-of-a-stock-operator:institution:cosmopolitan",
"id": "rel:lefevre-reminiscences-of-a-stock-operator:0001",
"predicate": "actor-venue",
"sourceRefs": [
"src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979"
],
"to": "urn:ce:lefevre-reminiscences-of-a-stock-operator:market:bucket-shop"
}
],
"schemaVersion": "0.1",
"sources": [
{
"attribution": "creator: Edwin Lefevre\nidentifier: http://www.gutenberg.org/60979\nprovenance:\n- chunk_id: chapter-01-part-001\n digest: 2692a29f1fccaa88f06bc6276a83f4ef81acca0b33dfec69dd68322e4789c19d\n original_path: /mnt/c/Users/bernd.worsch/Downloads/LefevreEdwin-ReminiscencesOfAStockOperator.epub!OEBPS/7612516312020751654_60979-h-2.htm.xhtml\n path: artifacts/sources/chapter-01-part-001.md\n- chunk_id: chapter-01-part-002\n digest: e8a019fbe892410af26b4aa83e50f437af0d7fd331a6bbf7967fa2bf7912994e\n original_path: /mnt/c/Users/bernd.worsch/Downloads/LefevreEdwin-ReminiscencesOfAStockOperator.epub!OEBPS/7612516312020751654_60979-h-2.htm.xhtml\n path: artifacts/sources/chapter-01-part-002.md\n- chunk_id: chapter-01-part-003\n digest: c6aa128750437df02ec56aa680dca328a365a6092543957993c19c15a0828af5\n original_path: /mnt/c/Users/bernd.worsch/Downloads/LefevreEdwin-ReminiscencesOfAStockOperator.epub!OEBPS/7612516312020751654_60979-h-2.htm.xhtml\n path: artifacts/sources/chapter-01-part-003.md\n- chunk_id: chapter-01-part-004\n digest: 1677ba1989d7940fea577bbaf450e5df633953e96d84e2f5bfcb93294b3991e8\n original_path: /mnt/c/Users/bernd.worsch/Downloads/LefevreEdwin-ReminiscencesOfAStockOperator.epub!OEBPS/7612516312020751654_60979-h-2.htm.xhtml\n path: artifacts/sources/chapter-01-part-004.md\n- chunk_id: chapter-01-part-005\n digest: b3a7c71f2e57f5ef5a5736c7b37ed93b9ae55507da6d04f7f0995700f1778880\n original_path: /mnt/c/Users/bernd.worsch/Downloads/LefevreEdwin-ReminiscencesOfAStockOperator.epub!OEBPS/7612516312020751654_60979-h-2.htm.xhtml\n path: artifacts/sources/chapter-01-part-005.md\n- chunk_id: chapter-01-part-006\n digest: a7e5c1bdb722d634cd874f1b03b7030d09640104aead008137ea0413ad8cee42\n original_path: /mnt/c/Users/bernd.worsch/Downloads/LefevreEdwin-ReminiscencesOfAStockOperator.epub!OEBPS/7612516312020751654_60979-h-2.htm.xhtml\n path: artifacts/sources/chapter-01-part-006.md",
"id": "src:lefevre-reminiscences-of-a-stock-operator:http-www-gutenberg-org-60979",
"license": "Public domain in the USA.",
"retrievedAt": "2026-05-18",
"title": "Reminiscences of a Stock Operator",
"uri": "https://www.gutenberg.org/files/60979/60979-h/60979-h.htm"
}
]
}