@jjlmoya/utils-forensic-science 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +3 -1
- package/src/entries.ts +5 -1
- package/src/index.ts +1 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/forensic-fingerprint-minutiae-identifier/bibliography.astro +6 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/bibliography.ts +16 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/component.astro +429 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/drawer.ts +94 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/entry.ts +32 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/forensic-fingerprint-minutiae-identifier.css +969 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/de.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/en.ts +289 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/es.ts +291 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/fr.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/id.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/it.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/ja.ts +281 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/ko.ts +281 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/nl.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/pl.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/pt.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/ru.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/sv.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/tr.ts +298 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/zh.ts +281 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/index.ts +11 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/logic.ts +168 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/renderer.ts +116 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/seo.astro +15 -0
- package/src/tools.ts +3 -1
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'fingerabdruck-minuzien-identifikator';
|
|
5
|
+
const title = 'Forensischer Fingerabdruckmuster und Minuzien Identifikator';
|
|
6
|
+
const description = 'Laden Sie ein Fingerabdruckbild hoch, prüfen Sie es mit einer echten Lupe, klassifizieren Sie das Linienmuster, markieren Sie Minuzien und exportieren Sie eine Beweismitteltabelle.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Wählen Sie das Galton-Henry-Muster',
|
|
11
|
+
text: 'Wählen Sie Bogen, Schleife oder Wirbel, um die beobachtete Flussrichtung der Papillarlinien zu dokumentieren.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Zentrum und Delta einstellen',
|
|
15
|
+
text: 'Passen Sie die Regler für den Zentrumsversatz und die Deltaanzahl an. Der Klassifikator berechnet das Henry-Label und die Konfidenz.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Wählen Sie einen Minuzientyp',
|
|
19
|
+
text: 'Wählen Sie Endung, Gabelung, Insel oder Punkt, bevor Sie Markierungen auf der Arbeitsfläche platzieren.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Markierungen setzen und prüfen',
|
|
23
|
+
text: 'Klicken Sie auf den Fingerabdruck, um Markierungen zu setzen. Die Tabelle erfasst die Koordinaten und prüft das Übungsziel (5 Endungen und 3 Gabelungen).',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'Was sind Minuzien?',
|
|
31
|
+
answer: 'Minuzien sind anatomische Merkmale der Papillarlinien (z. B. Endungen, Gabelungen). Sie werden für den forensischen Vergleich und die Identifizierung genutzt.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Was ist der Unterschied zwischen Bogen, Schleife und Wirbel?',
|
|
36
|
+
answer: 'Bögen laufen ohne Rückbiegung von einer Seite zur anderen. Schleifen haben eine Rückbiegung und ein Delta. Wirbel weisen kreis- oder spiralförmige Muster und meist zwei Deltas auf.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Kann dieses Tool echte Personen identifizieren?',
|
|
41
|
+
answer: 'Nein. Dies ist ein pädagogischer Simulator. Echte Identifizierungen erfordern kalibrierte Systeme, Originalbeweismittel und die Beurteilung durch einen zertifizierten Sachverständigen.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Warum fordert das Tool 5 Endungen und 3 Gabelungen?',
|
|
46
|
+
answer: 'Dieses Ziel entspricht einer typischen Schulungsübung, bei der Schüler das systematische Erkennen und Benennen häufiger Minuzientypen üben.',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
export const content: ToolLocaleContent = {
|
|
51
|
+
slug,
|
|
52
|
+
title,
|
|
53
|
+
description,
|
|
54
|
+
ui: {
|
|
55
|
+
canvasAria: 'Interaktive Arbeitsfläche für das Platzieren von Minuzien-Markierungen auf dem Fingerabdruck',
|
|
56
|
+
workflow: 'Workflow der Fingerabdruck-Analyse',
|
|
57
|
+
stepUpload: 'Hochladen',
|
|
58
|
+
stepClassify: 'Klassifizieren',
|
|
59
|
+
stepMark: 'Markieren',
|
|
60
|
+
stepReview: 'Prüfen',
|
|
61
|
+
stepLabel: 'Schritt',
|
|
62
|
+
stage1Title: 'Laden Sie den Abdruck',
|
|
63
|
+
stage1Copy: 'Beginnen Sie mit einem Fingerabdruckbild. Die Arbeitsfläche bleibt gesperrt, bis ein Bild geladen ist.',
|
|
64
|
+
stage2Title: 'Linienfluss klassifizieren',
|
|
65
|
+
stage2Copy: 'Verwenden Sie die Schaltflächen unter dem Bild, um Bogen, Schleife oder Wirbel auszuwählen.',
|
|
66
|
+
stage3Title: 'Minuzien markieren',
|
|
67
|
+
stage3Copy: 'Wählen Sie einen Typ, klicken Sie auf das Bild zum Hinzufügen oder auf eine vorhandene Markierung zum Löschen.',
|
|
68
|
+
stage4Title: 'Beweismitteltabelle prüfen',
|
|
69
|
+
stage4Copy: 'Überprüfen Sie die Anzahl, löschen Sie Fehler mit dem Mülleimer-Symbol und kopieren Sie die strukturierten Notizen.',
|
|
70
|
+
canvasHint1: 'Laden Sie ein Fingerabdruckbild hoch, um zu beginnen.',
|
|
71
|
+
canvasHint2: 'Noch nicht markieren. Klassifizieren Sie das Muster mit den Schaltflächen unter dem Bild.',
|
|
72
|
+
canvasHint3: 'Klicken Sie auf das Bild, um die ausgewählte Minuzie zu platzieren. Klicken Sie auf eine Markierung, um sie auszuwählen.',
|
|
73
|
+
canvasHint4: 'Prüfen Sie die Beweismitteltabelle unter dem Bild.',
|
|
74
|
+
uploadTitle: 'Fingerabdruckbild hochladen',
|
|
75
|
+
uploadHint: 'PNG, JPG oder Scan eines latenten Fingerabdrucks',
|
|
76
|
+
replaceImage: 'Ersetzen',
|
|
77
|
+
continueMarking: 'Weiter zum Markieren',
|
|
78
|
+
reviewEvidence: 'Beweismittel prüfen',
|
|
79
|
+
back: 'Zurück',
|
|
80
|
+
next: 'Weiter',
|
|
81
|
+
patternType: 'Mustertyp des Fingerabdrucks',
|
|
82
|
+
arch: 'Bogen',
|
|
83
|
+
loop: 'Schleife',
|
|
84
|
+
whorl: 'Wirbel',
|
|
85
|
+
activeMinutia: 'Aktive Minuzie',
|
|
86
|
+
markingNow: 'Markierung läuft',
|
|
87
|
+
clickToPlace: 'Klicken Sie auf die Stelle im Bild',
|
|
88
|
+
ridgeEnding: 'Endung',
|
|
89
|
+
ridgeEndingShort: 'Linienendung',
|
|
90
|
+
ridgeEndingHelp: 'Eine Endung liegt vor, wenn eine Papillarlinie abrupt abbricht, ohne sich mit einer anderen zu verbinden.',
|
|
91
|
+
bifurcation: 'Gabelung',
|
|
92
|
+
bifurcationShort: 'Linienteilung',
|
|
93
|
+
bifurcationHelp: 'Eine Gabelung (Bifurkation) ist die Aufspaltung einer einzelnen Papillarlinie in zwei Äste.',
|
|
94
|
+
island: 'Insel',
|
|
95
|
+
islandShort: 'kurze isolierte Linie',
|
|
96
|
+
islandHelp: 'Eine Insel ist ein kurzes Liniensegment mit zwei sichtbaren Enden, das von längeren Linien getrennt ist.',
|
|
97
|
+
dot: 'Punkt',
|
|
98
|
+
dotShort: 'winziger isolierter Punkt',
|
|
99
|
+
dotHelp: 'Ein Punkt ist ein sehr kurzes Liniensegment, das wie ein isolierter Punkt erscheint.',
|
|
100
|
+
coreOffset: 'Zentrumsversatz',
|
|
101
|
+
deltaCount: 'Deltaanzahl',
|
|
102
|
+
henryClass: 'Henry-Klasse',
|
|
103
|
+
validation: 'Übungsergebnis',
|
|
104
|
+
legendAria: 'Minuzien-Legende',
|
|
105
|
+
clearMarks: 'Alle löschen',
|
|
106
|
+
undoLast: 'Letzten rückgängig',
|
|
107
|
+
deleteSelected: 'Ausgewählte löschen',
|
|
108
|
+
selectMarkToDelete: 'Klicken Sie zuerst auf eine Markierung im Bild',
|
|
109
|
+
copyEvidence: 'Beweismittel kopieren',
|
|
110
|
+
ridgeFlow: 'Linienfluss-Notiz',
|
|
111
|
+
type: 'Typ',
|
|
112
|
+
position: 'Position',
|
|
113
|
+
action: 'Aktion',
|
|
114
|
+
remove: 'Entfernen',
|
|
115
|
+
endingsGoal: 'Linienendungen',
|
|
116
|
+
bifurcationsGoal: 'Gabelungen',
|
|
117
|
+
totalMarks: 'Markierungen gesamt',
|
|
118
|
+
plainArch: 'Einfacher Bogen',
|
|
119
|
+
archFlow: 'Die Linien treten an einer Seite ein, steigen in der Mitte leicht an und treten an der anderen Seite aus.',
|
|
120
|
+
ulnarLoop: 'Ulnarschleife',
|
|
121
|
+
radialLoop: 'Radialschleife',
|
|
122
|
+
loopFlow: 'Ein Delta und eine deutliche Schleife, die sich zur Eintrittsseite der Linien hin öffnet.',
|
|
123
|
+
plainWhorl: 'Einfacher Wirbel',
|
|
124
|
+
centralPocketWhorl: 'Zentraltaschenwirbel',
|
|
125
|
+
whorlFlow: 'Kreis- oder spiralförmige Linien, die sich um ein Zentrum drehen, meist mit zwei Deltas.',
|
|
126
|
+
ridgeEndingLabel: 'E',
|
|
127
|
+
bifurcationLabel: 'G',
|
|
128
|
+
islandLabel: 'I',
|
|
129
|
+
dotLabel: 'P',
|
|
130
|
+
},
|
|
131
|
+
seo: [
|
|
132
|
+
{
|
|
133
|
+
type: 'title',
|
|
134
|
+
text: 'Klassifizierung von Fingerabdrücken und Minuzienmarkierung',
|
|
135
|
+
level: 2,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'diagnostic',
|
|
139
|
+
variant: 'info',
|
|
140
|
+
icon: 'mdi:fingerprint',
|
|
141
|
+
badge: 'Lern-Arbeitsfläche',
|
|
142
|
+
title: 'Ziele des Fingerabdruck Simulators',
|
|
143
|
+
html: 'Dieses Tool hilft Studierenden der Kriminalistik, die Grundlagen der <strong>Klassifizierung von Papillarlinien</strong> und die <strong>Minuzienannotation</strong> zu erlernen. Es kombiniert echte Bilder mit einer Lupe und einer exportierbaren Tabelle.',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'stats',
|
|
147
|
+
columns: 4,
|
|
148
|
+
items: [
|
|
149
|
+
{ value: '3', label: 'Hauptmusterfamilien', icon: 'mdi:shape-outline' },
|
|
150
|
+
{ value: '4', label: 'unterstützte Minuzientypen', icon: 'mdi:map-marker-radius' },
|
|
151
|
+
{ value: '5 + 3', label: 'schulisches Validierungsziel', icon: 'mdi:check-decagram' },
|
|
152
|
+
{ value: 'Upload', label: 'bildzentrierter Workflow', icon: 'mdi:cloud-upload-outline' },
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'summary',
|
|
157
|
+
title: 'Empfohlener Lernablauf',
|
|
158
|
+
items: [
|
|
159
|
+
'Klassifizieren Sie zuerst das globale Muster: Bogen, Schleife oder Wirbel.',
|
|
160
|
+
'Suchen Sie nach Deltas und dem Zentrum, bevor Sie Minuzien setzen.',
|
|
161
|
+
'Markieren Sie nur klare Linienmerkmale; vermeiden Sie Rauschen.',
|
|
162
|
+
'Erfassen Sie jeden Punkt mit Typ und ungefähren Koordinaten.',
|
|
163
|
+
'Trennen Sie die systematische Beobachtung von der abschließenden Bewertung.',
|
|
164
|
+
],
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'comparative',
|
|
168
|
+
columns: 3,
|
|
169
|
+
items: [
|
|
170
|
+
{
|
|
171
|
+
title: 'Bogen',
|
|
172
|
+
icon: 'mdi:gesture-swipe-horizontal',
|
|
173
|
+
description: 'Die Linien laufen glatt durch. Einfache Bögen weisen keine Schleifen oder Deltas auf.',
|
|
174
|
+
points: ['Kein Delta', 'Wellenartiger Linienverlauf', 'Einfacher Einstieg für Anfänger'],
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
title: 'Schleife',
|
|
178
|
+
icon: 'mdi:rotate-left',
|
|
179
|
+
highlight: true,
|
|
180
|
+
description: 'Ein Linienverlauf, der sich um ein Zentrum biegt und an der gleichen Seite austritt, mit einem Delta.',
|
|
181
|
+
points: ['Ein Delta', 'Ulnare oder radiale Ausrichtung', 'Zentrumsposition ist entscheidend'],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
title: 'Wirbel',
|
|
185
|
+
icon: 'mdi:autorenew',
|
|
186
|
+
description: 'Kreisförmige oder spiralförmige Linienmuster um ein zentrales Zentrum.',
|
|
187
|
+
points: ['Meist zwei Deltas', 'Kreisförmige Tendenz', 'Einfache und Zentraltaschen-Varianten'],
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
type: 'table',
|
|
193
|
+
headers: ['Minuzie', 'Visuelles Merkmal', 'Häufiger Fehler beim Erfassen'],
|
|
194
|
+
rows: [
|
|
195
|
+
['Endung', 'Eine Linie bricht abrupt im Fluss ab.', 'Prüfen Sie, ob es sich nicht um eine Kontrastschwäche oder ein Bildartefakt handelt.'],
|
|
196
|
+
['Gabelung', 'Eine Linie spaltet sich in zwei Äste auf.', 'Achten Sie darauf, dass es keine Druckverzerrung durch zu starken Stempelabdruck ist.'],
|
|
197
|
+
['Insel', 'Ein kurzes Linienstück liegt isoliert.', 'Nur erfassen, wenn beide Enden klar erkennbar und frei von Rauschen sind.'],
|
|
198
|
+
['Punkt', 'Ein winziges Linienfragment.', 'Vorsicht vor Verwechslung mit Schmutz oder Bildfehlern.'],
|
|
199
|
+
],
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
type: 'title',
|
|
203
|
+
text: 'Bedeutung des Übungsergebnisses',
|
|
204
|
+
level: 3,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
type: 'paragraph',
|
|
208
|
+
html: 'Dieses Ergebnis stellt keine rechtlich verbindliche Identifizierung dar. Es dient als didaktische Checkliste, um Studierende zu einer sorgfältigen Annotation anzuhalten und voreilige Schlüsse ohne ausreichende Dokumentation zu vermeiden.',
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
type: 'paragraph',
|
|
212
|
+
html: 'In der echten Kriminaltechnik (ACE-V-Methode) bewerten Sachverständige die allgemeine Qualität, Verzerrungen, relative Positionen und die Seltenheit von Merkmalen, um eine Identität zweifelsfrei festzustellen.',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
type: 'title',
|
|
216
|
+
text: 'Methodik der daktyloskopischen Analyse und des Vergleichs',
|
|
217
|
+
level: 3,
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
type: 'paragraph',
|
|
221
|
+
html: 'Die Daktyloskopie basiert auf der Annahme, dass keine zwei Personen die gleichen Papillarlinien besitzen und diese ein Leben lang unveränderlich bleiben. Schulungssimulatoren unterstützen Studierende dabei, eine systematische Beobachtungsgabe zu entwickeln, indem sie lernen, einzelne Linienverläufe zu verfolgen und kleinste Unterbrechungen wie Endungen oder Verzweigungen in einer kontrollierten Umgebung zu erkennen.',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
type: 'paragraph',
|
|
225
|
+
html: 'Die korrekte Annotation von Minuzien setzt voraus, dass Studierende zunächst den allgemeinen Linienfluss verstehen und dann lokale Anomalien benennen können. Endungen entstehen, wenn eine Papillarlinie plötzlich aufhört, ohne sich mit einer anderen Linie zu verbinden. Gabelungen hingegen entstehen, wenn sich eine Linie in zwei Teile aufteilt. Inseln und Punkte sind kurze isolierte Liniensegmente, die besonders vorsichtig markiert werden sollten, da sie leicht mit Bildrauschen oder Druckverzerrungen verwechselt werden können.',
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
type: 'paragraph',
|
|
229
|
+
html: 'Im forensischen Unterricht ist es wichtig, den Unterschied zwischen der Klassenmerkmalsanalyse und der Individualmerkmalsanalyse zu verstehen. Klassenmerkmale wie Bogen, Schleife und Wirbel erlauben die Einordnung eines Abdrucks in eine Kategorie, können aber nicht zur Individualidentifikation genutzt werden. Erst die Gesamtheit und die räumliche Anordnung der Minuzien in Bezug auf Kern und Delta ermöglicht eine personenbezogene Zuordnung.',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
type: 'glossary',
|
|
233
|
+
items: [
|
|
234
|
+
{ term: 'Zentrum', definition: 'Der ungefähre Mittelpunkt einer Schleife oder eines Wirbels, der als Referenzpunkt dient.' },
|
|
235
|
+
{ term: 'Delta', definition: 'Der dreieckige Verzweigungspunkt, an dem drei Liniensysteme aufeinandertreffen.' },
|
|
236
|
+
{ term: 'Minuzie', definition: 'Einzelmerkmal einer Papillarlinie, das für den Vergleich genutzt wird.' },
|
|
237
|
+
{ term: 'ACE-V', definition: 'Standardisiertes Prüfverfahren: Analyse, Vergleich, Bewertung, Verifikation.' },
|
|
238
|
+
],
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
type: 'tip',
|
|
242
|
+
title: 'Praktischer Unterrichtstipp',
|
|
243
|
+
html: 'Lassen Sie Schüler denselben Abdruck zweimal markieren: einmal schnell und einmal nach einer detaillierten Flussanalyse. Der Vergleich zeigt meist viele falsch gesetzte Markierungen beim ersten Versuch.',
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
type: 'proscons',
|
|
247
|
+
title: 'Stärken und Grenzen dieses Simulators',
|
|
248
|
+
items: [
|
|
249
|
+
{ pro: 'Verwendet eigene Bilder statt starrer Vorgaben.', con: 'Die Qualität des Ausgangsbildes schränkt die Erkennbarkeit von Linienmerkmalen ein.' },
|
|
250
|
+
{ pro: 'Erstellt eine klare, exportierbare Tabelle der markierten Punkte.', con: 'Berechnet keine Richtungsvektoren oder die peritielle Beweiskraft.' },
|
|
251
|
+
{ pro: 'Trennt die grobe Klassifizierung von der Detailannotation.', con: 'Nicht für echte forensische Gutachten im Strafverfahren geeignet.' },
|
|
252
|
+
],
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
type: 'diagnostic',
|
|
256
|
+
variant: 'warning',
|
|
257
|
+
icon: 'mdi:scale-balance',
|
|
258
|
+
badge: 'Forensischer Warnhinweis',
|
|
259
|
+
title: 'Ausschließliche Nutzung zur Lehre und Ausbildung',
|
|
260
|
+
html: 'Dieses Tool dient rein didaktischen Zwecken und darf nicht zur Fallarbeit oder für Beweisgutachten verwendet werden.',
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
faq,
|
|
264
|
+
bibliography,
|
|
265
|
+
howTo,
|
|
266
|
+
schemas: [
|
|
267
|
+
{
|
|
268
|
+
'@context': 'https://schema.org',
|
|
269
|
+
'@type': 'SoftwareApplication',
|
|
270
|
+
name: title,
|
|
271
|
+
description,
|
|
272
|
+
applicationCategory: 'ForensicApplication',
|
|
273
|
+
operatingSystem: 'Any',
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
'@context': 'https://schema.org',
|
|
277
|
+
'@type': 'FAQPage',
|
|
278
|
+
mainEntity: faq.map((item) => ({
|
|
279
|
+
'@type': 'Question',
|
|
280
|
+
name: item.question,
|
|
281
|
+
acceptedAnswer: {
|
|
282
|
+
'@type': 'Answer',
|
|
283
|
+
text: item.answer,
|
|
284
|
+
},
|
|
285
|
+
})),
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
'@context': 'https://schema.org',
|
|
289
|
+
'@type': 'HowTo',
|
|
290
|
+
name: title,
|
|
291
|
+
step: howTo.map((step) => ({
|
|
292
|
+
'@type': 'HowToStep',
|
|
293
|
+
name: step.name,
|
|
294
|
+
text: step.text,
|
|
295
|
+
})),
|
|
296
|
+
},
|
|
297
|
+
],
|
|
298
|
+
};
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'forensic-fingerprint-minutiae-identifier';
|
|
5
|
+
const title = 'Forensic Fingerprint Pattern and Minutiae Identifier';
|
|
6
|
+
const description = 'Upload a fingerprint image, inspect it with a true magnifier, classify the ridge pattern, mark a controlled set of minutiae, and export an evidence table.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Choose the Galton-Henry pattern',
|
|
11
|
+
text: 'After uploading a fingerprint image, choose arch, loop, or whorl to record the observed ridge-flow family.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Tune core and delta features',
|
|
15
|
+
text: 'Adjust the core offset and delta count sliders. The classifier updates the Henry label, confidence, and ridge-flow explanation.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Select a minutia type',
|
|
19
|
+
text: 'Choose ridge ending, bifurcation, island, or dot from the four feature buttons before placing marks on the canvas.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Place and audit marks',
|
|
23
|
+
text: 'Click the uploaded fingerprint canvas to add a controlled set of markers. The table records each coordinate and checks whether the exercise goal of five endings and three bifurcations has been met.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'What are fingerprint minutiae?',
|
|
31
|
+
answer: 'Minutiae are small ridge characteristics such as ridge endings, bifurcations, islands, and dots. Examiners use their location, orientation, and relationship to nearby ridge flow when comparing friction ridge impressions.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'What is the difference between an arch, loop, and whorl?',
|
|
36
|
+
answer: 'An arch generally flows from one side to the other without a recurve, a loop has a recurving ridge and usually one delta, and a whorl has circular or spiral ridge flow and usually two deltas.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Can a browser tool identify a real fingerprint source?',
|
|
41
|
+
answer: 'No. This is a teaching simulator for pattern recognition and annotation practice. Real source conclusions require quality assessment, calibrated imagery, comparison standards, documentation, peer review, and qualified examiner judgment.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Why does the tool ask for five ridge endings and three bifurcations?',
|
|
46
|
+
answer: 'That target mirrors a classroom validation exercise from the issue request. It checks whether the student can correctly count and list common minutia types, not whether a legally sufficient identification has been made.',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
export const content: ToolLocaleContent = {
|
|
51
|
+
slug,
|
|
52
|
+
title,
|
|
53
|
+
description,
|
|
54
|
+
ui: {
|
|
55
|
+
canvasAria: 'Interactive uploaded fingerprint canvas for placing minutiae markers',
|
|
56
|
+
workflow: 'Fingerprint analysis workflow',
|
|
57
|
+
stepUpload: 'Upload',
|
|
58
|
+
stepClassify: 'Classify',
|
|
59
|
+
stepMark: 'Mark',
|
|
60
|
+
stepReview: 'Review',
|
|
61
|
+
stepLabel: 'Step',
|
|
62
|
+
stage1Title: 'Upload the print',
|
|
63
|
+
stage1Copy: 'Start with a fingerprint image. The canvas is locked until a file is loaded.',
|
|
64
|
+
stage2Title: 'Classify ridge flow',
|
|
65
|
+
stage2Copy: 'Use the controls below the image to choose arch, loop, or whorl, then continue to marking.',
|
|
66
|
+
stage3Title: 'Mark required minutiae',
|
|
67
|
+
stage3Copy: 'Choose a feature, click the image to add it, or click an existing marker to select and delete it.',
|
|
68
|
+
stage4Title: 'Review the evidence table',
|
|
69
|
+
stage4Copy: 'Check the counts, remove wrong marks with the trash button, then copy the structured notes.',
|
|
70
|
+
canvasHint1: 'Upload a fingerprint image to begin.',
|
|
71
|
+
canvasHint2: 'Do not mark yet. Classify the pattern using the controls below.',
|
|
72
|
+
canvasHint3: 'Click the image to place the selected minutia marker. Click a marker to select it.',
|
|
73
|
+
canvasHint4: 'Review the evidence table below the image.',
|
|
74
|
+
uploadTitle: 'Upload fingerprint image',
|
|
75
|
+
uploadHint: 'PNG, JPG, or scanned latent print image',
|
|
76
|
+
replaceImage: 'Replace',
|
|
77
|
+
continueMarking: 'Continue to marking',
|
|
78
|
+
reviewEvidence: 'Review evidence',
|
|
79
|
+
back: 'Back',
|
|
80
|
+
next: 'Next',
|
|
81
|
+
patternType: 'Fingerprint pattern type',
|
|
82
|
+
arch: 'Arch',
|
|
83
|
+
loop: 'Loop',
|
|
84
|
+
whorl: 'Whorl',
|
|
85
|
+
activeMinutia: 'Active minutia',
|
|
86
|
+
markingNow: 'Marking now',
|
|
87
|
+
clickToPlace: 'Click the image where you see it',
|
|
88
|
+
ridgeEnding: 'Ridge ending',
|
|
89
|
+
ridgeEndingShort: 'ridge stops',
|
|
90
|
+
ridgeEndingHelp: 'A ridge ending is a line that stops cleanly instead of continuing into the next ridge flow.',
|
|
91
|
+
bifurcation: 'Bifurcation',
|
|
92
|
+
bifurcationShort: 'ridge splits',
|
|
93
|
+
bifurcationHelp: 'A bifurcation is a place where one ridge divides into two branches.',
|
|
94
|
+
island: 'Island',
|
|
95
|
+
islandShort: 'short isolated ridge',
|
|
96
|
+
islandHelp: 'An island is a small ridge segment with two visible ends, separated from longer ridges.',
|
|
97
|
+
dot: 'Dot',
|
|
98
|
+
dotShort: 'tiny isolated point',
|
|
99
|
+
dotHelp: 'A dot is a very small isolated ridge unit. Mark it only when it is not debris or image noise.',
|
|
100
|
+
coreOffset: 'Core offset',
|
|
101
|
+
deltaCount: 'Delta count',
|
|
102
|
+
henryClass: 'Henry class',
|
|
103
|
+
validation: 'Exercise score',
|
|
104
|
+
legendAria: 'Minutiae legend',
|
|
105
|
+
clearMarks: 'Clear',
|
|
106
|
+
undoLast: 'Undo last',
|
|
107
|
+
deleteSelected: 'Delete selected',
|
|
108
|
+
selectMarkToDelete: 'Click a marker on the image first',
|
|
109
|
+
copyEvidence: 'Copy evidence',
|
|
110
|
+
ridgeFlow: 'Ridge-flow note',
|
|
111
|
+
type: 'Type',
|
|
112
|
+
position: 'Position',
|
|
113
|
+
action: 'Action',
|
|
114
|
+
remove: 'Remove',
|
|
115
|
+
endingsGoal: 'Ridge endings',
|
|
116
|
+
bifurcationsGoal: 'Bifurcations',
|
|
117
|
+
totalMarks: 'Total marks',
|
|
118
|
+
plainArch: 'Plain arch',
|
|
119
|
+
archFlow: 'Ridges enter one side, rise in the center, and exit the opposite side without a recurve.',
|
|
120
|
+
ulnarLoop: 'Ulnar loop',
|
|
121
|
+
radialLoop: 'Radial loop',
|
|
122
|
+
loopFlow: 'One delta and a clear recurve return toward the side where the ridges entered.',
|
|
123
|
+
plainWhorl: 'Plain whorl',
|
|
124
|
+
whorlFlow: 'Circular or spiral ridges rotate around a central core and usually show two deltas.',
|
|
125
|
+
ridgeEndingLabel: 'E',
|
|
126
|
+
bifurcationLabel: 'B',
|
|
127
|
+
islandLabel: 'I',
|
|
128
|
+
dotLabel: 'D',
|
|
129
|
+
},
|
|
130
|
+
seo: [
|
|
131
|
+
{
|
|
132
|
+
type: 'title',
|
|
133
|
+
text: 'Fingerprint Pattern Classification and Minutiae Marking',
|
|
134
|
+
level: 2,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'diagnostic',
|
|
138
|
+
variant: 'info',
|
|
139
|
+
icon: 'mdi:fingerprint',
|
|
140
|
+
badge: 'Training canvas',
|
|
141
|
+
title: 'What this fingerprint minutiae identifier teaches',
|
|
142
|
+
html: 'This tool is designed for forensic science students learning the basics of <strong>friction ridge pattern classification</strong> and <strong>minutiae annotation</strong>. It starts from an uploaded fingerprint image, adds a true canvas magnifier, and builds an evidence table so learners can practice observing ridge flow before they count individual ridge characteristics.',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'stats',
|
|
146
|
+
columns: 4,
|
|
147
|
+
items: [
|
|
148
|
+
{ value: '3', label: 'major pattern families', icon: 'mdi:shape-outline' },
|
|
149
|
+
{ value: '4', label: 'minutia types', icon: 'mdi:map-marker-radius' },
|
|
150
|
+
{ value: '5 + 3', label: 'classroom validation target', icon: 'mdi:check-decagram' },
|
|
151
|
+
{ value: 'Upload', label: 'image-first workflow', icon: 'mdi:cloud-upload-outline' },
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'summary',
|
|
156
|
+
title: 'Recommended learning workflow',
|
|
157
|
+
items: [
|
|
158
|
+
'Classify the overall pattern first: arch, loop, or whorl.',
|
|
159
|
+
'Look for deltas and the core area before adding minutiae.',
|
|
160
|
+
'Mark only visible ridge events; avoid guessing in noisy areas.',
|
|
161
|
+
'Record each point with its type and approximate coordinate.',
|
|
162
|
+
'Review the count table to separate observation from interpretation.',
|
|
163
|
+
],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'comparative',
|
|
167
|
+
columns: 3,
|
|
168
|
+
items: [
|
|
169
|
+
{
|
|
170
|
+
title: 'Arch',
|
|
171
|
+
icon: 'mdi:gesture-swipe-horizontal',
|
|
172
|
+
description: 'Ridges enter one side, rise, and leave the opposite side. Plain arches do not show a strong recurve or delta.',
|
|
173
|
+
points: ['Usually no delta', 'Wave-like ridge flow', 'Often harder for beginners to overclassify'],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
title: 'Loop',
|
|
177
|
+
icon: 'mdi:rotate-left',
|
|
178
|
+
highlight: true,
|
|
179
|
+
description: 'A loop has a recurving ridge, one delta, and ridge flow returning toward the side of entry.',
|
|
180
|
+
points: ['One common delta', 'Radial or ulnar direction', 'Core position matters'],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
title: 'Whorl',
|
|
184
|
+
icon: 'mdi:autorenew',
|
|
185
|
+
description: 'Whorls show circular, spiral, or target-like ridge flow around a central core.',
|
|
186
|
+
points: ['Often two deltas', 'Circular ridge tendency', 'Plain and central-pocket variants'],
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
type: 'table',
|
|
192
|
+
headers: ['Minutia', 'Visual cue', 'Common recording caution'],
|
|
193
|
+
rows: [
|
|
194
|
+
['Ridge ending', 'A ridge stops rather than continuing into the next flow line.', 'Check that the stop is not caused by smearing, cropping, or poor contrast.'],
|
|
195
|
+
['Bifurcation', 'One ridge divides into two branches.', 'Confirm the split is a true ridge event rather than touching ink or pressure distortion.'],
|
|
196
|
+
['Island', 'A short isolated ridge segment sits between longer ridges.', 'Record only if both ends are visible and the feature is not background noise.'],
|
|
197
|
+
['Dot', 'A tiny isolated ridge unit appears as a small point.', 'Use caution because dots are easily confused with debris or pixel artifacts.'],
|
|
198
|
+
],
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
type: 'title',
|
|
202
|
+
text: 'How to Interpret the Exercise Score',
|
|
203
|
+
level: 3,
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
type: 'paragraph',
|
|
207
|
+
html: 'The exercise score is not a forensic identification score. It is a teaching checklist that rewards a minimum set of annotations: five ridge endings, three bifurcations, and at least three different minutia categories. The goal is to help students practice systematic note-taking and avoid the common habit of making a pattern conclusion without documenting the local ridge characteristics that support it.',
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: 'paragraph',
|
|
211
|
+
html: 'In real latent print work, examiners consider the quality of the impression, clarity of ridge detail, distortion, anatomical source area, orientation, and the spatial relationship among features. A count alone is not enough. The same number of minutiae can carry different value depending on whether the features are clear, rare, correctly oriented, and arranged in a coherent ridge-flow context.',
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
type: 'paragraph',
|
|
215
|
+
html: 'Accurate minutiae annotation requires that students first understand the overall ridge flow and then name local anomalies. Ridge endings occur when a papillary ridge abruptly stops without connecting to another ridge. Bifurcations occur when one ridge divides into two branches. Islands and dots are short isolated segments that must be marked with special caution, as they can easily be confused with image noise or pressure distortion.',
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
type: 'paragraph',
|
|
219
|
+
html: 'In forensic science teaching it is essential to distinguish between class characteristic analysis and individual characteristic analysis. Class characteristics such as arch, loop, and whorl allow a print to be placed into a category, but are not sufficient on their own for individual identification. Only the combination and spatial arrangement of minutiae in relation to the core and delta allows a personal attribution.',
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
type: 'glossary',
|
|
223
|
+
items: [
|
|
224
|
+
{ term: 'Core', definition: 'The approximate center of a loop or whorl pattern, used as a reference point during classification.' },
|
|
225
|
+
{ term: 'Delta', definition: 'A triangular meeting region where ridge systems diverge, often important for loop and whorl classification.' },
|
|
226
|
+
{ term: 'Ridge ending', definition: 'A point where a friction ridge terminates.' },
|
|
227
|
+
{ term: 'Bifurcation', definition: 'A point where one ridge splits into two ridges.' },
|
|
228
|
+
{ term: 'ACE-V', definition: 'A common forensic workflow: analysis, comparison, evaluation, and verification.' },
|
|
229
|
+
],
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
type: 'tip',
|
|
233
|
+
title: 'Practical classroom tip',
|
|
234
|
+
html: 'Ask students to mark the same print twice: once quickly and once after reviewing ridge flow. Comparing the two evidence tables usually reveals whether early marks were true ridge events or simply high-contrast spots that attracted attention.',
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
type: 'proscons',
|
|
238
|
+
title: 'Strengths and limits of this simulator',
|
|
239
|
+
items: [
|
|
240
|
+
{ pro: 'Starts from a user-provided fingerprint image instead of a fixed prebuilt drawing.', con: 'Image quality still controls how much ridge detail a learner can reasonably mark.' },
|
|
241
|
+
{ pro: 'Builds an auditable evidence table from every placed marker.', con: 'Does not estimate orientation, ridge count, pore detail, or examiner-level sufficiency.' },
|
|
242
|
+
{ pro: 'Helps beginners distinguish classification from individual feature annotation.', con: 'Cannot support real biometric matching or source identification.' },
|
|
243
|
+
],
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
type: 'diagnostic',
|
|
247
|
+
variant: 'warning',
|
|
248
|
+
icon: 'mdi:scale-balance',
|
|
249
|
+
badge: 'Forensic caution',
|
|
250
|
+
title: 'Do not use training annotations as casework conclusions',
|
|
251
|
+
html: 'A real fingerprint conclusion must be based on validated procedures, original-quality evidence, known exemplars, documented analysis, comparison, evaluation, and independent verification. This page teaches vocabulary and observation discipline only.',
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
faq,
|
|
255
|
+
bibliography,
|
|
256
|
+
howTo,
|
|
257
|
+
schemas: [
|
|
258
|
+
{
|
|
259
|
+
'@context': 'https://schema.org',
|
|
260
|
+
'@type': 'SoftwareApplication',
|
|
261
|
+
name: title,
|
|
262
|
+
description,
|
|
263
|
+
applicationCategory: 'ForensicApplication',
|
|
264
|
+
operatingSystem: 'Any',
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
'@context': 'https://schema.org',
|
|
268
|
+
'@type': 'FAQPage',
|
|
269
|
+
mainEntity: faq.map((item) => ({
|
|
270
|
+
'@type': 'Question',
|
|
271
|
+
name: item.question,
|
|
272
|
+
acceptedAnswer: {
|
|
273
|
+
'@type': 'Answer',
|
|
274
|
+
text: item.answer,
|
|
275
|
+
},
|
|
276
|
+
})),
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
'@context': 'https://schema.org',
|
|
280
|
+
'@type': 'HowTo',
|
|
281
|
+
name: title,
|
|
282
|
+
step: howTo.map((step) => ({
|
|
283
|
+
'@type': 'HowToStep',
|
|
284
|
+
name: step.name,
|
|
285
|
+
text: step.text,
|
|
286
|
+
})),
|
|
287
|
+
},
|
|
288
|
+
],
|
|
289
|
+
};
|