Nassila

User guide

For a step-by-step walkthrough with panel detail, see the How-to guide.

Nassila (ناسيلا) is a desktop app for building a reference list, validating it against CSL rules, running a unified registry check (L1 + L2), and exporting a formatted bibliography before you submit.

Verify your references. Ground your claims.

Main workflow

  1. Add references

    Paste plain text, BibTeX, RIS, or CSL-JSON in the Input panel, or use Import (toolbar or Ctrl+I) for .bib, .ris, .json, .docx, or .pdf (DOCX/PDF extract reference lists where possible).

  2. Resolve identifiers

    Use the top row in Input to paste a DOI, PMID, URL, or one identifier per line, then Resolve.

  3. Fix local issues

    The Issues sidebar lists validation problems, duplicate groups, and (after you verify) registry field mismatches. Use Autocorrect and per-row actions in Output.

  4. Verify references

    Toolbar button, References → Verify references (L1/L2)…, or Ctrl+Shift+V (when online). One network pass per prioritized row (up to 200 items): L1 resolves to Crossref, PubMed, or OpenAlex; L2 compares your metadata. Remaining differences appear as mismatch cards.

  5. Choose style and export

    Pick a CSL style in the sidebar, then Export (Ctrl+E).

Passage grounding (Sanad)

Sanad checks manuscript claims against source excerpts using a local LLM and returns structured JSON verdicts with verbatim quotes.

Setup summary

  1. Open Settings → Passage grounding.
  2. Choose a local runner (LM Studio, Ollama, vLLM, or Custom) or a Cloud API.
  3. Select a tier chip: E4B (default, ~8 GB VRAM) or 12B (quality, ~12 GB+ VRAM).
  4. The model auto-defaults to nassila-sanad-e4b / nassila-sanad-12b.

A Set up Sanad modal appears on first use with links to Hugging Face, runner downloads, and Ollama pull commands. Full steps: Sanad setup.

Manuscript Sanad bar

When editing a manuscript, a Sanad bar appears at the top with:

  • Toggle — enable/disable grounding for the current session
  • Tier chip — switch between E4B and 12B
  • Setup / Configure links — reopen the Sanad setup modal or Passage grounding settings

Open-access source fetch (Unpaywall)

For DOI references, Nassila can ask Unpaywall whether open-access full text exists (in addition to Europe PMC and registry abstracts).

  1. Open Settings → General → Manuscript source fetch.
  2. Enter your email once (Unpaywall API policy). It is saved only on this computer and sent directly to Unpaywall from the app — not to Nassila servers.
  3. Future manuscript audits reuse it automatically.

If the email is unset, the loop still uses registry abstracts and Europe PMC where available; only the Unpaywall OA path is skipped.

This is not university login. Your @institution.edu address is only an Unpaywall API contact. It does not unlock paywalled publisher PDFs through your library subscription.

Bibliography before manuscript audit

If your References section is messy or never verified, audit results will be weak (bad cite→ref mapping, false L1 flags, poor Sanad input). Organize in Bibliography first:

  1. Switch to Bibliography in the header.
  2. Import or paste references; run Verify references and fix issues in Output.
  3. Return to Manuscript, ensure the embedded reference list matches your curated library, then Run audit.

See Bibliography bridge for sending references between modes.

Manuscript loop

The Manuscript view includes an integrated loop: paste or upload a manuscript (with a References section), run Run audit, then review each cited source on the right.

What you see after an audit

For each in-text citation, expand Passage grounding to review:

PanelMeaning
Your passageText from your manuscript around the cite (what Sanad judges)
Source excerptChunk from the cited work (abstract or OA text) actually sent to the model
Claims + quotesPer-claim verdict and verbatim quotes from the excerpt when supported
Source text (header)Abstract only, Open-access full text, or Unavailable — what was fetched

L1 / L2 / L3 chips summarize registry match, metadata alignment, and passage grounding for that reference.

Coverage labels

  • Abstract only — Full paper not available via OA; Sanad compared against the registry abstract.
  • Open-access full text — HTML or JATS from Europe PMC or Unpaywall was used (excerpt may still be chunk-selected).
  • Source text unavailable — No abstract and no OA text; passage checks are limited.

Cited PDF attach (pick your own file per reference) is not used in audits yet. Open-access PDF text from Unpaywall is used when available (Masdar-lite, 1.2.0).

  • Tasnif (classification) and Sharh (explanation) appear inline in the loop detail and bibliography drawer — not as separate tabs.
  • Raqim (numbering) works in bibliography mode.
  • Grounding runs automatically through Sanad when the loop audit is triggered.
  • Pipeline stages that are not yet implemented (Maktab, Masdar, Shahid) appear as honest stubs, not functional apps.

L1 and L2 (bibliography mode)

  • L1 (registry resolution) — Whether the app could anchor the reference to a trusted catalog entry (DOI/PMID resolution, OpenAlex match, or explicit “grey / insufficient” outcomes).
  • L2 (metadata alignment) — Whether your fields match the canonical record when L1 found one (title/year/journal/volume/page signals).

L3 (passage-level grounding) runs in the Manuscript loop when Passage grounding is enabled. Bibliography-only mode uses L1+L2. Details: Verification.

Network and privacy

Outbound calls may include Crossref, PubMed/NCBI, OpenAlex, Unpaywall (when you save an email in Settings → General), and Europe PMC for manuscript source fetch. Local LLM grounding (Sanad) runs on your machine via LM Studio, Ollama, vLLM, or a cloud API you configure. Do not paste secrets into citation fields.