<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Scanners on Quadrant IntegrityLens</title><link>https://docs.integritylens.quadrant.tools/scanners/</link><description>Recent content in Scanners on Quadrant IntegrityLens</description><generator>Hugo</generator><language>en</language><atom:link href="https://docs.integritylens.quadrant.tools/scanners/index.xml" rel="self" type="application/rss+xml"/><item><title>Unicode Characters</title><link>https://docs.integritylens.quadrant.tools/scanners/unicode/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/unicode/</guid><description>&lt;h1 id="unicode-character-scanners"&gt;Unicode Character Scanners&lt;a class="anchor" href="#unicode-character-scanners"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;These scanners detect special Unicode characters that AI models (ChatGPT,
Copilot, etc.) frequently insert into text but that students almost never
type manually. They run regardless of the selected language.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Scanner ID&lt;/th&gt;
 &lt;th&gt;Character&lt;/th&gt;
 &lt;th&gt;Example&lt;/th&gt;
 &lt;th&gt;Confidence&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;em-dash&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+2014 — (em dash)&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;Text — more text&amp;rdquo; instead of &amp;ldquo;Text - more text&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;High&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;en-dash-word-join&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+2013 – between letters&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;word–joiner&amp;rdquo; instead of &amp;ldquo;word-joiner&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;High&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;smart-quotes&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+201D &amp;quot; and U+2018 '&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;quoted&amp;rdquo; instead of &amp;ldquo;quoted&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;Medium / Low&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ellipsis&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+2026 … (horizontal ellipsis)&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;and so on…&amp;rdquo; instead of &amp;ldquo;and so on&amp;hellip;&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;Medium&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;non-breaking-space&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+00A0 (non-breaking space)&lt;/td&gt;
 &lt;td&gt;Invisible — looks like a normal space&lt;/td&gt;
 &lt;td&gt;Medium&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;invisible-space&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+200B, U+200A, U+2009, U+202F, U+FEFF&lt;/td&gt;
 &lt;td&gt;Completely invisible zero-width characters&lt;/td&gt;
 &lt;td&gt;High&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;minus-sign&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+2212 − (minus sign)&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;5 − 3&amp;rdquo; instead of &amp;ldquo;5 - 3&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;Medium&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="why-these-matter"&gt;Why these matter&lt;a class="anchor" href="#why-these-matter"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When students type text in a word processor, they use the standard keyboard
characters: hyphens (&lt;code&gt;-&lt;/code&gt;), straight quotes (&lt;code&gt;&amp;quot;&lt;/code&gt;), three dots (&lt;code&gt;...&lt;/code&gt;), and
regular spaces. AI models, however, are trained on typographically polished
text and tend to output Unicode variants of these characters.&lt;/p&gt;</description></item><item><title>German Language</title><link>https://docs.integritylens.quadrant.tools/scanners/german/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/german/</guid><description>&lt;h1 id="german-language-scanners"&gt;German Language Scanners&lt;a class="anchor" href="#german-language-scanners"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;These scanners detect patterns specific to German text and only run when
the language is set to &lt;code&gt;deu&lt;/code&gt; (the default).&lt;/p&gt;
&lt;h2 id="umlaut-digraphs-german"&gt;Umlaut digraphs (&lt;code&gt;german&lt;/code&gt;)&lt;a class="anchor" href="#umlaut-digraphs-german"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;AI models sometimes replace German umlauts (ä, ö, ü) with ASCII digraphs
(ae, oe, ue). This scanner detects such substitutions.&lt;/p&gt;
&lt;p&gt;To avoid false positives, Quadrant IntegrityLens uses an allowlist of approximately
4,500 known German words that contain umlauts. A digraph is only flagged
if the word (or a compound suffix) has a known umlaut form. This means
English loanwords like &amp;ldquo;poem&amp;rdquo; or legitimate German words like &amp;ldquo;Abenteuer&amp;rdquo;
(adventure) are not flagged.&lt;/p&gt;</description></item><item><title>Swiss German</title><link>https://docs.integritylens.quadrant.tools/scanners/swiss-german/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/swiss-german/</guid><description>&lt;h1 id="swiss-german-scanner"&gt;Swiss German Scanner&lt;a class="anchor" href="#swiss-german-scanner"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="eszett-detection-swiss-german"&gt;Eszett detection (&lt;code&gt;swiss-german&lt;/code&gt;)&lt;a class="anchor" href="#eszett-detection-swiss-german"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Swiss Standard German never uses the Eszett (ß) — it always uses &amp;ldquo;ss&amp;rdquo; instead.
For example:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Meaning&lt;/th&gt;
 &lt;th&gt;Standard German (Germany)&lt;/th&gt;
 &lt;th&gt;Swiss Standard German&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;street&lt;/td&gt;
 &lt;td&gt;Straße&lt;/td&gt;
 &lt;td&gt;Strasse&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;big&lt;/td&gt;
 &lt;td&gt;groß&lt;/td&gt;
 &lt;td&gt;gross&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;moreover&lt;/td&gt;
 &lt;td&gt;außerdem&lt;/td&gt;
 &lt;td&gt;ausserdem&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;AI language models are predominantly trained on German text from Germany and
therefore produce ß regularly. When a student submission written in Swiss
German contains Eszett characters, this is a strong indicator that the text
was not written by the student.&lt;/p&gt;</description></item><item><title>Rhetorical Patterns</title><link>https://docs.integritylens.quadrant.tools/scanners/rhetorical/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/rhetorical/</guid><description>&lt;h1 id="rhetorical-pattern-scanners"&gt;Rhetorical Pattern Scanners&lt;a class="anchor" href="#rhetorical-pattern-scanners"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;These scanners detect rhetorical writing patterns that AI models overuse
in German text. They only run when the language is set to &lt;code&gt;deu&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A single occurrence of these patterns is normal in student writing. The
scanners only trigger when patterns appear &lt;strong&gt;two or more times&lt;/strong&gt;, and
confidence increases with frequency.&lt;/p&gt;
&lt;h2 id="negative-parallelism-negative-parallelism"&gt;Negative parallelism (&lt;code&gt;negative-parallelism&lt;/code&gt;)&lt;a class="anchor" href="#negative-parallelism-negative-parallelism"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Detects parallel negation constructions such as &amp;ldquo;Not only X, but also Y&amp;rdquo;
and &amp;ldquo;Neither X nor Y&amp;rdquo;. The scanner matches the German equivalents of
these patterns.&lt;/p&gt;</description></item><item><title>Structural Patterns</title><link>https://docs.integritylens.quadrant.tools/scanners/structural/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/structural/</guid><description>&lt;h1 id="structural-pattern-scanners"&gt;Structural Pattern Scanners&lt;a class="anchor" href="#structural-pattern-scanners"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;These scanners detect formatting patterns and textual artifacts that are
characteristic of AI-generated content. They run regardless of the selected
language.&lt;/p&gt;
&lt;h2 id="label-lists-label-list"&gt;Label lists (&lt;code&gt;label-list&lt;/code&gt;)&lt;a class="anchor" href="#label-lists-label-list"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Detects AI-style lists where each item starts with a bold label followed
by a description:&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Clarity&lt;/strong&gt;: The text should be easy to understand.
&lt;strong&gt;Brevity&lt;/strong&gt;: Keep sentences short.
&lt;strong&gt;Accuracy&lt;/strong&gt;: Facts must be verified.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Students writing lists typically use plain bullet points without bold labels.&lt;/p&gt;</description></item></channel></rss>