On Claim Generation - robbiemu/aclarai GitHub Wiki

Let's walk through an example of processing conversatino turns, clearly separating:

  • Sentence →
  • Disambiguation (may still contain references) →
  • Decomposition → only those outputs that pass Claimify's claim criteria

🧪 Input Tier 1 Block (chat turn)

in the else block I get:

O argumento do tipo "slice[None, None, None]" não pode ser atribuído ao parâmetro "idx" do tipo "int" na função "__setitem__"
"slice[None, None, None]" não pode ser atribuído a "int"
PylancereportArgumentType

Note: Claimify considers previous and next raw sentences during Selection and Disambiguation.

  • These are raw (pre-decomposition), split from a sliding window of sentences across turn boundaries.

So for each sentence s_i, Claimify uses [s_{i-p}, s_i, s_{i+f}] as context during early stages.


📥 Sentence-Level Chunks (post chunking, before Claimify)

  1. in the else block I get: O argumento do tipo "slice[None, None, None]" não pode ser atribuído ao parâmetro "idx" do tipo "int" na função "__setitem__"
  2. "slice[None, None, None]" não pode ser atribuído a "int" PylancereportArgumentType

🔍 Step 1: Selection

Both sentences are passed to the Selection stage. Assume Selection returns "verifiable" for both.


🔧 Step 2: Disambiguation

We now rewrite sentences to remove ambiguity and add inferred subjects, where possible.

Sentence 1 → Disambiguated:

[The user] received a type error from Pylance when executing the __setitem__ method with a slice argument.

Sentence 2 → Disambiguated:

Pylance reported that a slice object cannot be assigned to an integer parameter.

Note: These may still have compound structure — that’s handled next.


✂️ Step 3: Decomposition

We now break these into standalone, atomic claims that meet the paper’s criteria:


✅ Final (:Claim) nodes:

Claim Text Passes Criteria? Notes
[The user] received a type error from Pylance. ✅ Yes Verifiable, complete
The error occurred while calling __setitem__ with a slice. ❌ No Ambiguous "the error" → dropped
In Python, a slice cannot be assigned to a parameter of type int in __setitem__. ✅ Yes Clean, static fact
Pylance reported that a slice object cannot be assigned to an integer parameter. ✅ Yes Self-contained + includes source (Pylance)

✅ Final set of stored (:Claim) nodes:

  1. [The user] received a type error from Pylance.
  2. In Python, a slice cannot be assigned to a parameter of type int in __setitem__.
  3. Pylance reported that a slice object cannot be assigned to an integer parameter.

⚠️ Discarded Candidate:

  • The error occurred while calling __setitem__ with a slice.Not context-complete

This becomes a :Sentence node.


🧠 Summary

Step Output Quality
Disambiguation May still contain unresolved references
Decomposition Produces only self-contained, verifiable atomic claims
Graph Only claims that survive decomposition become (:Claim) nodes; others result in (:Sentence) only