Proposed — not in force yet — an open question, so citing it as settled is what the reference report catches.

4 of 130 decisions. Back to the full index.

#TitleSummaryStatus
ADR-126A reference may name several schemesscheme: on a reference takes a list as well as a string, and a code passes if it belongs to any scheme listed. A string is a list of one, so no config changes meaning. A converse is a field of the same name on every scheme listed, each naming the declaring scheme back; a chain walks the relation only when its own scheme is the sole target. Rejected: a field per target family, a loose requires field, a refinement predicate language, and letting a chain walk a union that includes its scheme.Proposed
ADR-127A logic core in clingo, behind a procedural shellThe parts of luria that decide things about the record’s graph — converse pairs, invariants, chain edges, config consistency, and which acknowledgement answers for a citation — move from hand-written Python walks to Answer Set Programming rules evaluated by clingo, over facts the Python extracts. Python keeps parsing, rendering, editing, git and the network, and turns derived facts into findings, edits and pages. The move is one subsystem at a time, each held to byte-identical luria lint and luria index output against the last release on every real record. Rejected: a full rewrite, Cypher or an embedded graph database, SQLite recursive CTEs, a hand-rolled Datalog evaluator, and staying in Python.Proposed
ADR-128Configuration is the only source of relation semanticsNo relation is supplied by the code: the successor and influenced_by become ordinary declared references, roles point at declarations instead of creating them, references may target declared remotes, the facts give every reference value a declared type, and relations.lp no longer infers a type from an absence. luria upgrade explicit-relations writes down what older versions supplied. Rejected: emitting the built-ins as facts, an explicit any-scheme target, and undeclared roles with the old defaults.Proposed
ADR-129A chain may walk a named path patternA record may declare named path patterns in Cypher’s pattern syntax, such as (b:CLAIM)<-[:concludes]-(i:INF)<-[:premise_of]-(a:CLAIM). Node labels are schemes, edge types are reference fields, and a hop holds when the relation does as held/4 reads it. luria parses patterns with its own lark grammar for the subset and lowers them to clingo rules over the record’s facts, so the logic core stays the one engine. A chain names a pattern in relation or sibling as it names a field: the pattern’s two ends are the step, and its named inner nodes render as “through”. A partial match is no step and luria derives nothing from it. The subset is checked against the schemes at load and is stratified by construction. Rejected: a field list on the scheme, clingo rule bodies as queries, a graph engine, grand-cypher over networkx, Raqlet, GraphGlot as the parser, and built-in open ends.Proposed