finos/morphir-conceptual/intent does not have a README file

    InvalidInput

    pub(all) suberror InvalidInput {
    InvalidInput(String)
    } derive(
    Debug
    )

    AbsentReason

    pub(all) enum AbsentReason {
    NotInvoked
    ExecutionError
    MissingResult
    }

    AdaptedSource

    pub(all) struct AdaptedSource {
    origin : KbOrigin
    source : Source
    intent : Entity
    }

    Category

    pub struct Category(String) derive(Eq,
    Debug
    )

    Category IDs have a namespace and a nonempty local part. Notation is separate.

    Category::equal

    fn Category::equal(Category, Category) -> Bool

    Category::not_equal

    fn Category::not_equal(x : Category, y : Category) -> Bool

    Category::parse

    fn Category::parse(value : String) -> Category raise InvalidInput

    Category::to_repr

    Category::value

    fn Category::value(self : Category) -> String

    Claim

    pub(all) struct Claim {
    subject : ResolvedRef
    proposition : String
    author : Id
    scope :
    Ion

    context : RevisionContext
    }

    ClaimAssessment

    pub(all) struct ClaimAssessment {
    claim : ResolvedRef
    claim_freshness : Freshness
    availability : EvidenceAvailability
    observations : Array[EvidenceAssessment]
    inspection : Inspection
    }

    ClauseKind

    pub(all) enum ClauseKind {
    Refinement
    Invariant
    Precondition
    Postcondition
    }

    ClauseObservation

    pub(all) enum ClauseObservation {
    Satisfied
    Violated
    NotApplicable
    InvalidArgument
    Unsupported
    Error
    InconclusiveObservation
    }

    ClauseResult

    pub(all) struct ClauseResult {
    entity : Snapshot
    observation : ClauseObservation
    }

    Content

    pub(all) enum Content {
    Intent(String, String?)
    Requirement(Category, String,
    Ion
    ?)
    SourceFragment(SourceRef)
    Declaration(DeclarationRole, ResolvedRef?)
    Contract(ResolvedRef, ClauseKind, Expression)
    Scenario(
    Ion
    )
    Implementation(Snapshot)
    Claim(Claim)
    Evidence(Evidence)
    }

    DeclarationRole

    pub(all) enum DeclarationRole {
    Function
    Type
    Field
    Parameter
    Result
    }

    Diagnostic

    pub(all) struct Diagnostic {
    code : DiagnosticCode
    owner : Id
    path : String
    }

    DiagnosticCode

    pub(all) enum DiagnosticCode {
    DuplicateIdentity
    RelationshipKind
    MissingResolvedTarget
    ReferenceRevision
    MissingSourceFragment
    InvalidSource
    UnresolvedReference
    SourceUnpinned
    MissingFormalization
    MissingExamples
    MissingEvidence
    StaleEvidence
    InconclusiveEvidence
    ImplementationUnbound
    UnsupportedSemantics
    } derive(Eq,
    Debug
    )

    DiagnosticCode::equal

    DiagnosticCode::not_equal

    fn DiagnosticCode::not_equal(x : DiagnosticCode, y : DiagnosticCode) -> Bool

    Document

    pub(all) struct Document {
    id : Id
    revision : Revision?
    } derive(Eq,
    Debug
    )

    Document::equal

    fn Document::equal(Document, Document) -> Bool

    Document::not_equal

    fn Document::not_equal(x : Document, y : Document) -> Bool

    Document::to_repr

    Entity

    pub(all) struct Entity {
    identity : Snapshot
    name : String
    source_refs : Array[SourceRef]
    content : Content
    descriptive :
    Ion
    ?
    }

    EntityKind

    pub(all) enum EntityKind {
    IntentKind
    RequirementKind
    SourceFragmentKind
    DeclarationKind
    ContractKind
    ScenarioKind
    ImplementationKind
    ClaimKind
    EvidenceKind
    } derive(Eq,
    Debug
    )

    EntityKind::equal

    fn EntityKind::equal(EntityKind, EntityKind) -> Bool

    EntityKind::not_equal

    fn EntityKind::not_equal(x : EntityKind, y : EntityKind) -> Bool

    EntityRef

    pub(all) enum EntityRef {
    Resolved(ResolvedRef)
    Unresolved(NonemptyText, EntityKind, NonemptyText)
    }

    EntityRef::unresolved

    fn EntityRef::unresolved(locator : String, expected_kind : EntityKind, reason : String) -> EntityRef raise InvalidInput

    Evidence

    pub(all) struct Evidence {
    origin : String
    context : RevisionContext
    observation : Observation
    }

    EvidenceAssessment

    pub(all) struct EvidenceAssessment {
    relationship_model : Snapshot
    relationship : Id
    reference : ResolvedRef
    polarity : Polarity
    evidence : Evidence
    freshness : Freshness
    }

    EvidenceAvailability

    pub(all) enum EvidenceAvailability {
    Unknown
    Present
    InvalidClaim
    } derive(Eq,
    Debug
    )

    EvidenceAvailability::equal

    EvidenceAvailability::not_equal

    Expression

    pub(all) enum Expression {
    UnresolvedExpression(NonemptyText)
    ResolvedExpression(Id,
    Ion
    )
    }

    Fragment

    pub(all) struct Fragment {
    anchor : Id
    text : String
    }

    Freshness

    pub(all) enum Freshness {
    Current
    Stale
    Inconclusive
    } derive(Eq,
    Debug
    )

    Freshness::equal

    fn Freshness::equal(Freshness, Freshness) -> Bool

    Freshness::not_equal

    fn Freshness::not_equal(x : Freshness, y : Freshness) -> Bool

    pub struct Id(String) derive(Eq,
    Debug
    )

    M1 identities are opaque nonempty strings, not necessarily URIs.

    Id::equal

    fn Id::equal(Id, Id) -> Bool

    Id::not_equal

    fn Id::not_equal(x : Id, y : Id) -> Bool

    Id::parse

    fn Id::parse(value : String) -> Id raise InvalidInput

    Id::to_repr

    Id::value

    fn Id::value(self : Id) -> String

    Inspection

    pub(all) struct Inspection {
    diagnostics : Array[Diagnostic]
    }

    Inspection::has_errors

    fn Inspection::has_errors(self : Inspection) -> Bool

    KbOrigin

    pub(all) struct KbOrigin {
    bundle : Id
    short_id : Id
    slug : String
    state : KbState?
    }

    KbSnapshot

    pub(all) struct KbSnapshot {
    origin : KbOrigin
    document : Snapshot
    source_id : Id
    intent : Snapshot
    name : String
    locator : String
    fragment : Fragment
    descriptive :
    Ion
    ?
    }

    KbState

    pub(all) enum KbState {
    Backlog
    Refinement
    InProgress
    Released
    Cancelled
    Superseded
    } derive(Eq,
    Debug
    )

    Vocabulary of the existing morphir-kb service. This library has no transitions.

    KbState::equal

    fn KbState::equal(KbState, KbState) -> Bool

    KbState::not_equal

    fn KbState::not_equal(x : KbState, y : KbState) -> Bool

    KbState::to_repr

    Model

    pub(all) struct Model {
    identity : Snapshot
    sources : Array[Source]
    entities : Array[Entity]
    relationships : Array[Relationship]
    dependencies : Array[Model]
    }

    These records are an inspection projection of constructed M1 inputs, not a decoder or complete M1 structural validator. Fields outside this link slice remain the caller's responsibility; descriptive rich values stay opaque.

    NonemptyText

    pub struct NonemptyText(String) derive(Eq,
    Debug
    )

    Required descriptive text has no identity semantics.

    NonemptyText::equal

    NonemptyText::not_equal

    fn NonemptyText::not_equal(x : NonemptyText, y : NonemptyText) -> Bool

    NonemptyText::parse

    fn NonemptyText::parse(value : String) -> NonemptyText raise InvalidInput

    NonemptyText::value

    fn NonemptyText::value(self : NonemptyText) -> String

    Observation

    pub(all) enum Observation {
    Run(RunObservation)
    Analysis(Producer,
    Ion
    ,
    Ion
    )
    Review(Id, ReviewDecision, String)
    }

    Polarity

    pub(all) enum Polarity {
    Supporting
    Contradicting
    } derive(Eq,
    Debug
    )

    Polarity::equal

    fn Polarity::equal(Polarity, Polarity) -> Bool

    Polarity::not_equal

    fn Polarity::not_equal(x : Polarity, y : Polarity) -> Bool

    Polarity::to_repr

    PrdRow

    pub(all) struct PrdRow {
    requirement : ResolvedRef
    name : String
    category : Category
    text : String
    notation :
    Ion
    ?
    source_refs : Array[SourceRef]
    intents : Array[ResolvedRef]
    sources : Array[ResolvedRef]
    contracts : Array[ResolvedRef]
    scenarios : Array[ResolvedRef]
    claims : Array[ResolvedRef]
    evidence : Array[ResolvedRef]
    }

    PrdView

    pub(all) struct PrdView {
    model : Snapshot
    rows : Array[PrdRow]
    inspection : Inspection
    }

    Predicate

    pub(all) enum Predicate {
    DerivedFrom
    Refines
    Formalizes
    GovernedBy
    Exercises
    Implements
    Supports
    Contradicts
    } derive(Eq,
    Debug
    )

    Predicate::equal

    fn Predicate::equal(Predicate, Predicate) -> Bool

    Predicate::not_equal

    fn Predicate::not_equal(x : Predicate, y : Predicate) -> Bool

    Producer

    pub(all) struct Producer {
    id : Id
    version : Revision
    profile : Id
    }

    Relationship

    pub(all) struct Relationship {
    id : Id
    predicate : Predicate
    subject : ResolvedRef
    target : EntityRef
    source_refs : Array[SourceRef]
    descriptive :
    Ion
    ?
    }

    ResolvedRef

    pub(all) struct ResolvedRef {
    model : Snapshot
    entity : Snapshot
    } derive(Eq,
    Debug
    )

    ResolvedRef::equal

    fn ResolvedRef::equal(ResolvedRef, ResolvedRef) -> Bool

    ResolvedRef::not_equal

    fn ResolvedRef::not_equal(x : ResolvedRef, y : ResolvedRef) -> Bool

    ReviewDecision

    pub(all) enum ReviewDecision {
    Accepted
    Rejected
    }

    Revision

    pub struct Revision(String) derive(Eq,
    Debug
    )

    Revision::equal

    fn Revision::equal(Revision, Revision) -> Bool

    Revision::not_equal

    fn Revision::not_equal(x : Revision, y : Revision) -> Bool

    Revision::parse

    fn Revision::parse(value : String) -> Revision raise InvalidInput

    Revision::to_repr

    Revision::value

    fn Revision::value(self : Revision) -> String

    RevisionContext

    pub struct RevisionContext {
    model : Snapshot
    // private fields
    }

    Exact caller-declared dependency set. Copies prevent a caller from adding a duplicate or changing the set after construction. Lists retain authored order.

    RevisionContext::entities

    RevisionContext::implementations

    fn RevisionContext::implementations(self : RevisionContext) -> Array[Snapshot]

    RevisionContext::new

    fn RevisionContext::new(model : Snapshot, entities~ : Array[Snapshot], sources~ : Array[Snapshot], implementations~ : Array[Snapshot]) -> RevisionContext raise InvalidInput

    RevisionContext::sources

    RunLimits

    pub struct RunLimits {
    steps : Int
    depth : Int
    }

    RunLimits::new

    fn RunLimits::new(steps : Int, depth : Int) -> RunLimits raise InvalidInput

    RunObservation

    pub(all) struct RunObservation {
    value_profile : Id
    input :
    Ion

    output : RunOutput
    clauses : Array[ClauseResult]
    evaluator : Producer
    target : String
    configuration :
    Ion

    limits : RunLimits
    generated_case :
    Ion
    ?
    type_arguments :
    Ion
    ?
    }

    RunOutput

    pub(all) enum RunOutput {
    Observed(
    Ion
    )
    Absent(AbsentReason)
    }

    Snapshot

    pub(all) struct Snapshot {
    id : Id
    revision : Revision
    } derive(Eq,
    Debug
    )

    Snapshot::equal

    fn Snapshot::equal(Snapshot, Snapshot) -> Bool

    Snapshot::not_equal

    fn Snapshot::not_equal(x : Snapshot, y : Snapshot) -> Bool

    Snapshot::to_repr

    Source

    pub(all) struct Source {
    id : Id
    document : Document
    locator : String
    resolution : SourceResolution
    fragments : Array[Fragment]
    descriptive :
    Ion
    ?
    }

    Constructed M1 source slice. Digest verification belongs to source admission; this revision-only API never claims to have verified document bytes.

    SourceRef

    pub(all) struct SourceRef {
    source_id : Id
    anchor : Id
    } derive(Eq,
    Debug
    )

    SourceRef::equal

    fn SourceRef::equal(SourceRef, SourceRef) -> Bool

    SourceRef::not_equal

    fn SourceRef::not_equal(x : SourceRef, y : SourceRef) -> Bool

    SourceResolution

    pub(all) enum SourceResolution {
    Retained
    Unresolved(NonemptyText)
    }

    adapt_kb_source

    fn adapt_kb_source(input : KbSnapshot) -> AdaptedSource raise InvalidInput

    Keep the caller's identity, revision and exact excerpt. Neither a KB state nor an excerpt creates requirements, contracts, claims or observations.

    assess_claim

    fn assess_claim(model : Model, reference : ResolvedRef, requested : RevisionContext) -> ClaimAssessment

    Currency is an exact revision comparison, never a proof. An observation's payload and kind survive even when stale, inconclusive or contradicting.

    inspect

    fn inspect(model : Model) -> Inspection

    prd_view

    fn prd_view(model : Model) -> PrdView

    Authored order is retained. A row is an identified requirement, never a new authority. Link assertions do not establish fulfillment or prose equivalence.