A Query Language

  1. Query language without rules
    1. Assertions and queries (Sec. 4.4.1 of SICP)
      • Simple queries
      • Dot notation
      • Compound queries
    2. Architecture (Sec. 4.4.2 of SICP)
      • Pattern matching
      • Streams of frames
      • Compound queries (concatentation, merge, and filter)
    3. Implementation (Sec. 4.4.4 of SICP)
      • query-driver-loop and instantiate
      • qeval (simple-query, conjoin, disjoin, negate, list-value)
      • find-assertions, check-an-assertion, fetch-assertions
      • pattern-match, extend-if-consistent
  2. Query language with rules
    1. Rules and unification (Sec. 4.4.1 of SICP)
    2. Logic as programs (Sec. 4.4.1 of SICP)
    3. Applying rules (Sec. 4.4.2 of SICP)
    4. Implementing rules and unification (Sec. 4.4.4 of SICP)

Sample Programs