§ Technology
KARTILYA.PH retrieves from a bounded statutory corpus, composes cited answer points, and reports the result of a separate source-text check for each one. Related decisions follow a distinct topic-screening path and do not form part of the statutory synthesis.
The statutory corpus contains 8,297 provisions across 57 instruments: the 1987 Constitution, major Codes, and selected statutes and rules. Most instruments reproduce text published by The LawPhil Project; procedural rules were sourced separately. A deterministic pipeline parses the material into addressable provisions and preserves instrument, chapter, and section context as structured metadata. Some base texts are enacted versions rather than current consolidated editions; the relevant reading pages carry currency notes.
The jurisprudence catalog contains 4,164 records in a dated, incomplete snapshot from 2019 through April 29, 2026. Links between a decision and a statute record extracted citations; they do not by themselves establish a holding or application. Jurisprudence retrieval remains separate from the statutory synthesis described below.
Statutory provisions and retained opinion-text chunks are embedded for semantic retrieval, so candidate materials can be matched by meaning rather than exact phrase. At query time the question is embedded and compared by cosine similarity with the statutory provisions. The question is also rewritten into denser statutory terminology, and the original and rewritten searches are interleaved. Thus, “can an arrested person stay silent?” can retrieve the custodial-investigation clause even though the question uses different terms.
The statutory synthesis model receives retrieved provisions, not related-decision metadata. It is instructed to use only the supplied statutory text, divide the answer into discrete points, and attach the cited provision to each point. A separate case-analysis path works only from bounded retained-opinion excerpts: it screens relevance and selects a concise verbatim holding passage. Where the retrieved corpus does not address the question, the response reports that coverage limit.
Each statutory citation is resolved against the corpus, and every cited answer point is checked against the corresponding corpus passage. Case holding excerpts pass a separate boundary: the selected text must be found verbatim in the retained opinion; deterministic source-role checks reject quoted-authority blocks; then an independent check must confirm that it is the decision's relevant majority holding or application. The displayed holding is constructed from the canonical source passage, not separately generated. A failed, malformed, incomplete, or misattributed excerpt is omitted; the already-screened case card may remain without one.
An exact repeat can reuse a cached answer only when the prior response had substantive coverage and all cited claims were verified. Flagged, unavailable, malformed, and incomplete results are not cached. The cache also confirms that the stored canonical question matches the request. Semantic answer reuse for differently worded questions is disabled by default; if explicitly enabled, it is limited to fully verified cached answers. Related-decision screening may run concurrently with statutory retrieval.
§ See it work
This fixed example illustrates a statutory answer whose two cited points completed the source-text check and were reported as verified. Other results may be flagged or unavailable.
§ Can an arrested person stay silent?
A fixed example for illustration. Open the research page →
§ Why the firewall matters
A general-purpose AI model asked about Philippine law will answer confidently, and sooner or later it will invent something: an article number that does not exist, a holding a case never reached, a penalty a statute never prescribed. None of it needs to be deliberate. It is simply what happens when a model is asked to be the authority on facts it was never given the source text to check. For law, that is disqualifying.
The firewall assigns each cited statutory point a reported status after comparison with its corpus passage: verified, flagged, or unavailable. Failed and incomplete checks remain unavailable rather than receiving a verified status. Case holding excerpts are separately grounded in exact passages located in a retained opinion excerpt, then independently checked against those passages. Unsupported summaries are omitted.
Statutory and case synthesis remain separate: each uses its own retained source material and independent verification boundary. Try a question →