A semantics for rendering dense philosophical prose as a typed, colored, bracketed structure that exposes its logical form. This is the contract handed to anyone — human or agent — parsing a passage: apply these rules by reviewing every clause for its function, never by surface word-matching.
1 · text unchanged Every character of the source appears once, unchanged — same words, order, punctuation, paragraphs. You only add brackets, type-prefixes, and entity/operator markers.
2 · brackets balance
A sentence is decomposed recursively into nested constituents. Each constituent is a bracketed group with a type. The type colors the group's brackets and its own direct frame text (the connective / operator words that carry the logical form), while its nested children — the operands — carry their own types and colors.
Frame vs. operands. The frame is the functor — the words doing the logical work (“if … then …”, “is a consequence of”, “everything … is incompatible with …”). The operands are the contentful sub-phrases plugged in. Frame text takes the group color; each operand nests in its operand color. Parallel operands of one functor share one color.
Worked example (a universally-quantified relation):
for everything incompatible with being a mammal is incompatible with being a dog
c(for) q( everything incompatible with v(being a mammal) is incompatible with v(being a dog) )
c(for) — the causal connective, red.A bare operator that links sibling constituents is rendered as inline colored text — it is never given its own bracket. Brackets enclose constituents: operands, and frames that contain their operands.
Conceptual realism is a consequence of understanding the alethic modal articulation … as essential to their being …
«cr:Conceptual realism» `c:is a consequence of` ( understanding n(the alethic modal articulation …) `c:as essential to` n(their being …) )
“is a consequence of” and “as essential to” link their operands, so they are inline red — not c(as essential to). A bracket around a lone connective wrongly makes it look like a third sibling beside the two operands. By contrast, the “if”/“then” inside c( if … , then … ) is colored frame-text, because that bracket encloses the whole conditional constituent, not a bare word.
Does the bracket enclose operands? → keep it. Or just an operator word? → make it inline.
Coordinated operators at one level share one color; parallel operands at one level share one color. When a frame has two operator-parts separated by intervening content — if x then y, not only x but y, both x and y — every part takes the frame's one color, so the eye reads them as the two ends of a single bracket; the operands they bracket likewise share their one operand color. This falls out automatically (operator-parts are frame-text of one typed group; parallel operands are sibling groups of one type). A solitary operator has nothing to coordinate with — no pairing to enforce.
| type | marks — by function |
|---|---|
| conditional / inference | conditionals (if…then) and inference/dependence relations between contents: because, for (causal), hence, so (= therefore), it follows that, is a consequence of, is a condition of, is essential to, precludes, induces, requires, entails, underwrites. |
| quantificational / scope | quantification/scope over a domain: every, all, no, nothing, none, any when binding a domain; not only…but also; only; except; without. Wrap the whole quantified statement, never the bare quantifier word. |
| modal | alethic modality: possible, impossible, necessary, contingent, can, could, would, must, may, potentially, anomic (= lawless). |
| content / noun clause | a contentful noun phrase or embedded how/what/that clause functioning as a unit — the “stuff” being related, vs. logical form: “how things are in themselves”, “what a fact is”. |
| predicate / operand | a predicate or clausal argument plugged into a frame: “being a mammal”, “Coda were a dog”, “bridge it or reunite the two sides”. |
| entity | a recurring developed concept — clickable, category-colored italic (see §4). |
| neutral | plain grouping, no special logical role — descriptive glue. Use freely; not everything is logical form. |
When a clause mixes types, pick the type of the dominant operation. “Nothing can be both a bivalve and a vertebrate” is fundamentally a quantified exclusion → green, even though “can” is modal. When a modal genuinely dominates (“it is impossible to exhibit … simultaneously”) → teal.
[begrifflich], (so)).Do not color a word because it's “in the quantifier list.” If a quantifier/pronoun merely heads a noun phrase and scopes nothing interesting, color the clause it governs or leave it neutral. Function over form, always.
id: literal repeats; aliases / identity-renamings (“determinate negation” = material incompatibility; “mediation” = material consequence); and descriptions & pronouns (“this doctrine”, “this view”, “him”) via |coref.id, name, category ∈ {doctrine, object, relation, property}, gloss (1–3 sentences), aliases. Mark the best defining mention with |def.After entities are fixed, record typed relations between concepts. The most important are the author's identity claims, where two apparently-separate concepts are asserted to be the same thing.
| kind | glyph | meaning |
|---|---|---|
| identical | ≡ | the two are the same (“two ways of talking about the same thing”) |
| isform | ≈ | one just is the other under a different description |
| pair | + | a constituting pair |
| consequence / requires / price | → / ⊢ | one is a condition / consequence / price of the other |
| contrast | ⇋ | opposed pair (sense- vs reference-dependence) |
| depends | ↘ | asymmetric dependence |
| arc | ⇒ | step in the chapter's argument |
Each relation: { a:id, kind, b:id, note:"short quote/justification" }.
Brackets ( ) [ ] { } are interchangeable nesting brackets — choose glyphs for readability. A type prefix is a single letter immediately before an opening bracket, with whitespace (or another opener) before it; it colors the group's brackets and its direct frame text:
c( conditional / inference (red) q( quantificational / scope (green) m( modal (teal) n( content / noun clause (magenta) [ @( alias ] v( predicate / operand (blue) [ &( alias ] ( neutral (grey brackets, ink text)
Entities: «id:surface text» with optional final flag |def or |coref:
«cr:conceptual realism|def» «oi:this doctrine I called|coref» «world:nonmental world»
Inline operator — to tint a single linking connective without bracketing it (see §1): `c:word` / `q:word` / `m:word`.
Reserved characters (the source prose contains none): « » ` @ &. Everything else is literal text.
Given a passage + the shared entity registry (existing ids, names, glosses) + this spec, return JSON:
{
"dsl": "<passage, encoded paragraph-by-paragraph; \n separates paragraphs>",
"new_entities": [ { "id","name","category","gloss","aliases":[…] }, … ],
"new_relations": [ { "a","kind","b","note" }, … ]
}
\n-separated).