@jjlmoya/utils-forensic-science 1.3.0 → 1.5.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 +5 -1
- package/src/entries.ts +9 -1
- package/src/index.ts +2 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/fire-pattern-origin-analyzer/bibliography.astro +6 -0
- package/src/tool/fire-pattern-origin-analyzer/bibliography.ts +12 -0
- package/src/tool/fire-pattern-origin-analyzer/component.astro +196 -0
- package/src/tool/fire-pattern-origin-analyzer/entry.ts +32 -0
- package/src/tool/fire-pattern-origin-analyzer/fire-pattern-origin-analyzer.css +681 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/de.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/en.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/es.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/fr.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/id.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/it.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/ja.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/ko.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/nl.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/pl.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/pt.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/ru.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/sv.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/tr.ts +250 -0
- package/src/tool/fire-pattern-origin-analyzer/i18n/zh.ts +246 -0
- package/src/tool/fire-pattern-origin-analyzer/index.ts +11 -0
- package/src/tool/fire-pattern-origin-analyzer/logic.ts +123 -0
- package/src/tool/fire-pattern-origin-analyzer/render.ts +159 -0
- package/src/tool/fire-pattern-origin-analyzer/seo.astro +15 -0
- package/src/tool/fire-pattern-origin-analyzer/view-bindings.ts +171 -0
- package/src/tool/fire-pattern-origin-analyzer/view-model.ts +244 -0
- package/src/tool/fire-pattern-origin-analyzer/view.ts +30 -0
- 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 +5 -1
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'penganalisis-asal-pola-kebakaran';
|
|
5
|
+
const title = 'Penganalisis Asal Pola Kebakaran';
|
|
6
|
+
const description = 'Petakan pola-V, arang dalam, bayangan jelaga, dan indikator bakar bersih pada denah ruangan, lalu proyeksikan vektor penyebaran api untuk memperkirakan area asal yang paling mungkin.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Impor denah tempat kejadian',
|
|
11
|
+
text: 'Seret gambar denah ke ruang kerja atau muat dari disk sebelum menempatkan vektor bukti.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Klik untuk membuka pemilih bukti radial',
|
|
15
|
+
text: 'Tempatkan penunjuk di atas tanda bakar, buka menu radial kontekstual, dan pilih jenis indikator langsung pada peta.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Seret untuk menyempurnakan vektor dan amati konvergensi',
|
|
19
|
+
text: 'Perpanjang setiap vektor penyebaran dengan penjepretan pada kanvas dan amati medan probabilitas dihitung ulang secara waktu nyata seiring bertambahnya bukti.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Ekspor cuplikan teknis',
|
|
23
|
+
text: 'Hasilkan laporan terstruktur dengan koordinat asal, keyakinan, varians, status lapisan, dan kumpulan vektor lengkap untuk ditinjau nanti.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
question: 'Bisakah pola bakar membuktikan titik pasti di mana api bermula?',
|
|
30
|
+
answer: 'Tidak. Pola kebakaran dapat membantu menghasilkan dan menguji hipotesis asal, tetapi ventilasi, pemadaman, beban bahan bakar, flashover, dan gangguan pasca-kebakaran dapat mengubah pola. Penentuan asal yang sesungguhnya memerlukan penyelidikan sistematis.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Mengapa pola-V penting dalam penyelidikan kebakaran?',
|
|
34
|
+
answer: 'Pola-V sering mencerminkan penyebaran api ke atas dan ke luar pada permukaan vertikal. Pola ini dapat menunjuk ke area asal yang lebih rendah, tetapi harus dibandingkan dengan bukti lain sebelum menarik kesimpulan.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Apa yang ditunjukkan oleh arang dalam?',
|
|
38
|
+
answer: 'Arang dalam dapat menunjukkan pemanasan yang lebih lama, fluks panas yang lebih tinggi, atau efek bahan bakar. Ini adalah konteks yang berguna, tetapi tidak secara otomatis menandai asal karena bahan terbakar pada laju yang berbeda.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Mengapa menggunakan beberapa vektor alih-alih satu panah?',
|
|
42
|
+
answer: 'Satu pola bisa menyesatkan. Beberapa vektor independen mengurangi pengaruh satu dinding yang rusak, satu paket bahan bakar, atau satu jalur ventilasi.',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
export const content: ToolLocaleContent = {
|
|
47
|
+
slug,
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
50
|
+
ui: {
|
|
51
|
+
planAria: 'Ruang kerja forensik interaktif untuk menggambar vektor penyebaran api',
|
|
52
|
+
vPattern: 'Pola-V',
|
|
53
|
+
deepChar: 'Arang dalam',
|
|
54
|
+
sootShadow: 'Bayangan jelaga',
|
|
55
|
+
cleanBurn: 'Bakar bersih',
|
|
56
|
+
loadPlan: 'Muat denah',
|
|
57
|
+
generateReport: 'Hasilkan laporan',
|
|
58
|
+
pointerLabel: 'Penunjuk',
|
|
59
|
+
resetVectors: 'Atur ulang',
|
|
60
|
+
estimatedOrigin: 'Perkiraan asal',
|
|
61
|
+
visibleLayers: 'Lapisan bukti terlihat',
|
|
62
|
+
vectorsLabel: 'VEKTOR',
|
|
63
|
+
confidenceLabel: 'KEYAKINAN',
|
|
64
|
+
varianceLabel: 'VARIANS',
|
|
65
|
+
modeLabel: 'MODE',
|
|
66
|
+
guideSummary: 'Cara menggunakan alat ini',
|
|
67
|
+
flowPanelTitle: 'Alur kerja',
|
|
68
|
+
legendPanelTitle: 'Legenda bukti',
|
|
69
|
+
readoutPanelTitle: 'Panel hasil',
|
|
70
|
+
flow1Kicker: 'LANGKAH 1',
|
|
71
|
+
flow1Icon: '1',
|
|
72
|
+
flow1Title: 'Muat',
|
|
73
|
+
flow1Text: 'Unggah denah tempat kejadian',
|
|
74
|
+
flow2Kicker: 'LANGKAH 2',
|
|
75
|
+
flow2Icon: '2',
|
|
76
|
+
flow2Title: 'Pilih petunjuk',
|
|
77
|
+
flow2Text: 'Klik tanda bakar',
|
|
78
|
+
flow3Kicker: 'LANGKAH 3',
|
|
79
|
+
flow3Icon: '3',
|
|
80
|
+
flow3Title: 'Seret vektor',
|
|
81
|
+
flow3Text: 'Arahkan perjalanan api',
|
|
82
|
+
flow4Kicker: 'LANGKAH 4',
|
|
83
|
+
flow4Icon: '4',
|
|
84
|
+
flow4Title: 'Baca hasil',
|
|
85
|
+
flow4Text: 'Periksa catatan kaki + ekspor',
|
|
86
|
+
basicsTitle: 'Yang harus Anda lakukan pertama kali',
|
|
87
|
+
basicsIntro: 'Muat denah yang jelas, tandai hanya pola yang dapat Anda justifikasi, dan sebarkan vektor di berbagai permukaan alih-alih mengulangi petunjuk yang sama.',
|
|
88
|
+
indicatorsTitle: 'Arti setiap jenis bukti',
|
|
89
|
+
vPatternShort: 'Bakar dinding membuka ke atas',
|
|
90
|
+
vPatternExplain: 'Pola-V adalah bentuk bakar ke atas dan ke luar yang sering terlihat di dinding. Ini dapat menunjukkan bahwa panas dan api naik dari area yang lebih rendah, tetapi bukan bukti otomatis asal yang tepat.',
|
|
91
|
+
deepCharShort: 'Area terbakar lebih keras atau lebih lama',
|
|
92
|
+
deepCharExplain: 'Arang dalam berarti suatu bahan tampak lebih terbakar, menghitam, atau terkonsumsi di satu area daripada di sekitarnya. Ini dapat menunjukkan pemanasan yang lebih lama atau lebih intens, tetapi jenis bahan bakar dan ketebalan bahan sangat berpengaruh.',
|
|
93
|
+
sootShadowShort: 'Asap terhalang atau dialihkan',
|
|
94
|
+
sootShadowExplain: 'Bayangan jelaga adalah area yang terlindungi atau berbeda kegelapannya yang menunjukkan bahwa suatu objek, permukaan, atau aliran udara mengubah cara jelaga mengendap. Ini dapat membantu merekonstruksi apa yang ada atau bagaimana asap bergerak.',
|
|
95
|
+
cleanBurnShort: 'Lebih sedikit jelaga karena panas atau aliran udara',
|
|
96
|
+
cleanBurnExplain: 'Bakar bersih adalah area di mana jelaga tampak lebih terang, hilang, atau tidak ada karena panas, ventilasi, atau paparan api langsung memengaruhinya secara berbeda. Ini berguna, tetapi tidak setiap area bersih menandai asal.',
|
|
97
|
+
resultsTitle: 'Cara membaca hasil',
|
|
98
|
+
resultsIntro: 'Gunakan catatan kaki sebagai pemeriksaan cepat untuk pemetaan Anda, bukan sebagai kesimpulan forensik akhir.',
|
|
99
|
+
resultsPoint1: 'Berapa banyak garis bukti yang aktif.',
|
|
100
|
+
resultsPoint2: 'Seberapa kuat vektor aktif bersesuaian.',
|
|
101
|
+
resultsPoint3: 'Seberapa luas area asal masih.',
|
|
102
|
+
resultsPoint4: 'Apa yang diharapkan alat untuk Anda lakukan selanjutnya.',
|
|
103
|
+
awaitingVector: 'Menunggu vektor',
|
|
104
|
+
selectIndicator: 'Pilih indikator',
|
|
105
|
+
refiningVector: 'Menyempurnakan vektor',
|
|
106
|
+
needsMoreVectors: 'Diperlukan lebih banyak vektor',
|
|
107
|
+
wideArea: 'Area asal luas',
|
|
108
|
+
focusedArea: 'Area asal terfokus',
|
|
109
|
+
dropPlan: 'Jatuhkan gambar denah atau klik untuk mengunggah',
|
|
110
|
+
needsMoreVectorsText: 'Gambar setidaknya dua panah arah yang jelas. Tiga atau lebih pengamatan independen biasanya membuat konvergensi jauh lebih mudah ditafsirkan.',
|
|
111
|
+
wideAreaText: 'Garis yang diproyeksikan berpotongan, tetapi penyebarannya masih lebar. Di tempat kejadian nyata, bandingkan ventilasi, beban bahan bakar, efek pemadaman, dan informasi saksi sebelum mempersempit asal.',
|
|
112
|
+
focusedAreaText: 'Vektor berkumpul ke area yang kompak. Anggap ini sebagai sinyal pengajaran yang kuat untuk pengembangan hipotesis asal, bukan sebagai kesimpulan forensik akhir.',
|
|
113
|
+
disclaimer: 'Simulasi edukatif saja. Penyelidikan asal dan penyebab kebakaran yang sesungguhnya harus mengikuti panduan yang diterima, protokol keselamatan tempat kejadian, standar dokumentasi, dan tinjauan ahli yang berkualifikasi.',
|
|
114
|
+
},
|
|
115
|
+
seo: [
|
|
116
|
+
{
|
|
117
|
+
type: 'title',
|
|
118
|
+
text: 'Analisis Asal Kebakaran Interaktif dari Vektor Pola Bakar',
|
|
119
|
+
level: 2,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'diagnostic',
|
|
123
|
+
variant: 'info',
|
|
124
|
+
icon: 'mdi:fire-alert',
|
|
125
|
+
badge: 'Simulator pengajaran',
|
|
126
|
+
title: 'Apa yang diajarkan penganalisis asal pola kebakaran ini',
|
|
127
|
+
html: 'Alat peramban ini menunjukkan bagaimana penyelidik menalar dari pola kebakaran fisik menuju <strong>area asal</strong> yang mungkin. Pengguna memetakan bukti yang terlihat, menggambar vektor arah penyebaran, dan mengamati garis yang diproyeksikan berkumpul atau menyebar. Model ini sengaja bersifat edukatif: mengajarkan geometri dan interpretasi pola, bukan penentuan sebab secara hukum.',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'stats',
|
|
131
|
+
columns: 4,
|
|
132
|
+
items: [
|
|
133
|
+
{ value: '4 lapisan', label: 'Pola-V, arang, jelaga, bakar bersih', icon: 'mdi:layers-triple' },
|
|
134
|
+
{ value: 'Denah 2D', label: 'peta ruangan struktural', icon: 'mdi:floor-plan' },
|
|
135
|
+
{ value: '3+ panah', label: 'pengamatan yang direkomendasikan', icon: 'mdi:vector-line' },
|
|
136
|
+
{ value: '0-100%', label: 'masukan keyakinan', icon: 'mdi:gauge' },
|
|
137
|
+
],
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'summary',
|
|
141
|
+
title: 'Alur kerja yang disiplin untuk interpretasi pola kebakaran',
|
|
142
|
+
items: [
|
|
143
|
+
'Mulailah dengan keselamatan, pengamanan tempat kejadian, foto, sketsa, dan dokumentasi sistematis sebelum menafsirkan pola.',
|
|
144
|
+
'Pisahkan jenis pola agar kerusakan berbentuk V, kedalaman arang, endapan jelaga, dan bakar bersih tidak disatukan menjadi satu asumsi.',
|
|
145
|
+
'Gambar indikator arah hanya di mana pola fisik mendukung arah penyebaran yang dapat dipertahankan.',
|
|
146
|
+
'Cari konvergensi di antara pengamatan independen alih-alih mengandalkan kerusakan yang paling dramatis.',
|
|
147
|
+
'Gunakan area asal yang diperkirakan sebagai hipotesis untuk diuji terhadap bahan bakar, sumber penyalaan, ventilasi, bukti kelistrikan, dan keterangan saksi.',
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'table',
|
|
152
|
+
headers: ['Pola', 'Nilai potensial', 'Peringatan utama'],
|
|
153
|
+
rows: [
|
|
154
|
+
['Pola-V', 'Dapat menunjukkan penyebaran api ke atas dan ke luar dari area yang lebih rendah.', 'Dapat diubah oleh ventilasi, flashover, geometri dinding, dan pemadaman.'],
|
|
155
|
+
['Arang dalam', 'Dapat menunjukkan paparan panas berkelanjutan atau pembakaran intens.', 'Jenis bahan bakar dan ketebalan bahan sangat memengaruhi kedalaman arang.'],
|
|
156
|
+
['Bayangan jelaga', 'Dapat mengungkapkan area terlindungi, penempatan objek, atau efek aliran udara.', 'Perabot yang dipindahkan atau aktivitas pemadaman dapat mengubah interpretasi.'],
|
|
157
|
+
['Bakar bersih', 'Dapat menunjukkan panas tinggi, ventilasi, atau pembakaran tahap akhir.', 'Tidak secara otomatis mengidentifikasi bahan pertama yang menyala.'],
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'comparative',
|
|
162
|
+
columns: 2,
|
|
163
|
+
items: [
|
|
164
|
+
{
|
|
165
|
+
title: 'Hipotesis asal yang lebih baik',
|
|
166
|
+
icon: 'mdi:check-circle-outline',
|
|
167
|
+
highlight: true,
|
|
168
|
+
description: 'Hipotesis terbaik menjelaskan beberapa pengamatan sekaligus.',
|
|
169
|
+
points: ['Vektor independen berkumpul', 'Bukti sesuai dengan jalur ventilasi yang diketahui', 'Paket bahan bakar diperhitungkan', 'Asal alternatif diuji secara aktif'],
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
title: 'Hipotesis asal yang lemah',
|
|
173
|
+
icon: 'mdi:alert-circle-outline',
|
|
174
|
+
description: 'Hipotesis lemah sering mengandalkan satu pola tanpa menguji faktor distorsi.',
|
|
175
|
+
points: ['Satu area arang dramatis dianggap sebagai bukti', 'Flashover diabaikan', 'Kerusakan pemadaman tidak didokumentasikan', 'Bukti sumber penyalaan diasumsikan'],
|
|
176
|
+
},
|
|
177
|
+
],
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
type: 'title',
|
|
181
|
+
text: 'Cara Kerja Model Vektor',
|
|
182
|
+
level: 3,
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'paragraph',
|
|
186
|
+
html: 'Setiap panah diperlakukan sebagai garis proyeksi penyebaran api. Penaksir menghitung perpotongan garis berpasangan, menyaring titik yang berada dalam batas denah yang wajar, merata-ratakan persilangan yang tersisa, dan melaporkan radius berdasarkan penyebaran perpotongan tersebut. Radius kecil dengan beberapa vektor menghasilkan sinyal konvergensi yang lebih kuat. Model persimpangan bekerja dengan menyelesaikan persamaan parametrik dari dua garis yang memanjang dari penanda bukti masing-masing. Ketika dua vektor menunjuk ke wilayah bersama, titik persilangan teoretisnya menyumbang satu koordinat ke kumpulan perataan. Semakin banyak vektor independen yang berpartisipasi, semakin banyak estimator dapat menyaring persilangan yang jauh dari kluster utama, secara efektif mengurangi pengaruh setiap pengamatan tunggal yang mungkin berorientasi buruk atau disalahartikan.',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'paragraph',
|
|
190
|
+
html: 'Pendekatan geometris ini mencerminkan latihan membuat sketsa di kelas: membantu siswa melihat mengapa analisis asal meningkat ketika pengamatan berasal dari permukaan dan jenis pola yang berbeda. Ini juga mengungkap masalah umum: panah dapat berpotongan bahkan ketika interpretasi dasarnya buruk, sehingga pusat matematis tidak boleh menggantikan penilaian ilmu kebakaran. Dalam penyelidikan nyata, praktisi membandingkan hasil yang diplot dengan jalur ventilasi, distribusi beban bahan bakar, kerusakan struktural, dan keterangan saksi sebelum memperlakukan koordinat apa pun sebagai kemungkinan asal. Alat ini mendorong kebiasaan ini dengan menampilkan varians di samping titik yang diperkirakan, mengingatkan pengguna bahwa kluster persilangan yang rapat hanya sekuat kualitas pengamatan yang menghasilkannya.',
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
type: 'paragraph',
|
|
194
|
+
html: 'Di luar logika persimpangan dasar, estimator menerapkan batasan batas sehingga persilangan yang terletak jauh di luar denah ruangan dikecualikan. Ini mencegah pencilan menyeret pusat rata-rata menuju lokasi yang tidak mungkin. Radius akhir mewakili simpangan baku dari koordinat persilangan yang tersisa, memberikan ukuran langsung tentang seberapa konsisten vektor aktif bersesuaian. Radius di bawah sepuluh persen dari rentang denah menunjukkan konvergensi yang kuat. Radius yang melebihi seperempat denah menandakan bahwa bukti belum mendukung asal yang terfokus, dan diperlukan lebih banyak atau lebih baik pengamatan sebelum menarik kesimpulan.',
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
type: 'glossary',
|
|
198
|
+
items: [
|
|
199
|
+
{ term: 'Area asal', definition: 'Wilayah umum di mana bukti yang tersedia menunjukkan api bermula.' },
|
|
200
|
+
{ term: 'Pola-V', definition: 'Pola kebakaran yang sering muncul sebagai kerusakan ke atas dan ke luar pada permukaan vertikal.' },
|
|
201
|
+
{ term: 'Bakar bersih', definition: 'Area yang lebih terang atau bersih yang disebabkan ketika jelaga terbakar atau tidak mengendap dalam kondisi panas tinggi atau aliran udara.' },
|
|
202
|
+
{ term: 'Bayangan jelaga', definition: 'Area jelaga yang terlindungi atau mengendap berbeda yang dapat menyimpan informasi tentang objek, aliran udara, atau paparan panas.' },
|
|
203
|
+
{ term: 'Konvergensi vektor', definition: 'Pengelompokan indikator arah yang diproyeksikan di sekitar wilayah bersama.' },
|
|
204
|
+
],
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
type: 'diagnostic',
|
|
208
|
+
variant: 'warning',
|
|
209
|
+
icon: 'mdi:scale-balance',
|
|
210
|
+
badge: 'Peringatan forensik',
|
|
211
|
+
title: 'Jangan ubah konvergensi menjadi kepastian',
|
|
212
|
+
html: 'Kelompok perpotongan yang rapat hanya berguna ketika pengamatannya valid. Penyelidikan nyata harus mempertimbangkan ventilasi, flashover, paket bahan bakar, sistem kelistrikan, bukti peralatan, keterangan saksi, pemadaman, dan gangguan tempat kejadian.',
|
|
213
|
+
},
|
|
214
|
+
],
|
|
215
|
+
faq,
|
|
216
|
+
bibliography,
|
|
217
|
+
howTo,
|
|
218
|
+
schemas: [
|
|
219
|
+
{
|
|
220
|
+
'@context': 'https://schema.org',
|
|
221
|
+
'@type': 'SoftwareApplication',
|
|
222
|
+
name: title,
|
|
223
|
+
description,
|
|
224
|
+
applicationCategory: 'ForensicApplication',
|
|
225
|
+
operatingSystem: 'Any',
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
'@context': 'https://schema.org',
|
|
229
|
+
'@type': 'FAQPage',
|
|
230
|
+
mainEntity: faq.map((item) => ({
|
|
231
|
+
'@type': 'Question',
|
|
232
|
+
name: item.question,
|
|
233
|
+
acceptedAnswer: {
|
|
234
|
+
'@type': 'Answer',
|
|
235
|
+
text: item.answer,
|
|
236
|
+
},
|
|
237
|
+
})),
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
'@context': 'https://schema.org',
|
|
241
|
+
'@type': 'HowTo',
|
|
242
|
+
name: title,
|
|
243
|
+
step: howTo.map((step) => ({
|
|
244
|
+
'@type': 'HowToStep',
|
|
245
|
+
name: step.name,
|
|
246
|
+
text: step.text,
|
|
247
|
+
})),
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
};
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'analizzatore-origine-modelli-incendio';
|
|
5
|
+
const title = 'Analizzatore dell\'origine tramite modelli di incendio';
|
|
6
|
+
const description = 'Mappa modelli a V, carbonizzazione profonda, ombre di fuliggine e indicatori di bruciatura pulita su una planimetria, quindi proietta vettori di propagazione del fuoco per stimare l\'area d\'origine più probabile.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Importare una planimetria della scena',
|
|
11
|
+
text: 'Trascina un\'immagine della planimetria nell\'area di lavoro o caricala dal disco prima di posizionare i vettori di prova.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Cliccare per aprire il selettore radiale delle prove',
|
|
15
|
+
text: 'Posiziona il puntatore su un segno di bruciatura, apri il menu radiale contestuale e scegli il tipo di indicatore direttamente sulla mappa.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Trascinare per rifinire i vettori e osservare la convergenza',
|
|
19
|
+
text: 'Estendi ogni vettore di propagazione con aggancio sulla tela e osserva il campo di probabilità ricalcolarsi in tempo reale man mano che le prove si accumulano.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Esportare l\'istantanea tecnica',
|
|
23
|
+
text: 'Genera un rapporto strutturato con coordinate dell\'origine, confidenza, varianza, stato dei livelli e l\'insieme completo dei vettori per una revisione successiva.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
question: 'I modelli di bruciatura possono provare il punto esatto in cui è iniziato un incendio?',
|
|
30
|
+
answer: 'No. I modelli di incendio possono aiutare a generare e testare ipotesi sull\'origine, ma ventilazione, spegnimento, carico di combustibile, flashover e disturbi post-incendio possono distorcere i modelli. La determinazione reale dell\'origine richiede un\'indagine sistematica.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Perché i modelli a V sono importanti nell\'indagine antincendio?',
|
|
34
|
+
answer: 'I modelli a V spesso riflettono la propagazione verso l\'alto e verso l\'esterno delle fiamme su superfici verticali. Possono indicare un\'area d\'origine più bassa, ma devono essere confrontati con altre prove prima di trarre conclusioni.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Cosa indica la carbonizzazione profonda?',
|
|
38
|
+
answer: 'La carbonizzazione profonda può indicare un riscaldamento più prolungato, un flusso termico maggiore o effetti del combustibile. È un contesto utile, ma non segna automaticamente l\'origine perché i materiali carbonizzano a velocità diverse.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Perché usare più vettori invece di una sola freccia?',
|
|
42
|
+
answer: 'Un singolo modello può essere fuorviante. Più vettori indipendenti riducono l\'influenza di una parete danneggiata, un singolo pacchetto di combustibile o un unico percorso di ventilazione.',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
export const content: ToolLocaleContent = {
|
|
47
|
+
slug,
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
50
|
+
ui: {
|
|
51
|
+
planAria: 'Area di lavoro forense interattiva per disegnare vettori di propagazione del fuoco',
|
|
52
|
+
vPattern: 'Modello a V',
|
|
53
|
+
deepChar: 'Carbonizzazione profonda',
|
|
54
|
+
sootShadow: 'Ombra di fuliggine',
|
|
55
|
+
cleanBurn: 'Bruciatura pulita',
|
|
56
|
+
loadPlan: 'Carica planimetria',
|
|
57
|
+
generateReport: 'Genera rapporto',
|
|
58
|
+
pointerLabel: 'Puntatore',
|
|
59
|
+
resetVectors: 'Reimposta',
|
|
60
|
+
estimatedOrigin: 'Origine stimata',
|
|
61
|
+
visibleLayers: 'Livelli di prova visibili',
|
|
62
|
+
vectorsLabel: 'VETTORI',
|
|
63
|
+
confidenceLabel: 'CONFIDENZA',
|
|
64
|
+
varianceLabel: 'VARIANZA',
|
|
65
|
+
modeLabel: 'MODALITÀ',
|
|
66
|
+
guideSummary: 'Come usare questo strumento',
|
|
67
|
+
flowPanelTitle: 'Flusso di lavoro',
|
|
68
|
+
legendPanelTitle: 'Legenda delle prove',
|
|
69
|
+
readoutPanelTitle: 'Pannello dei risultati',
|
|
70
|
+
flow1Kicker: 'FASE 1',
|
|
71
|
+
flow1Icon: '1',
|
|
72
|
+
flow1Title: 'Carica',
|
|
73
|
+
flow1Text: 'Carica la planimetria della scena',
|
|
74
|
+
flow2Kicker: 'FASE 2',
|
|
75
|
+
flow2Icon: '2',
|
|
76
|
+
flow2Title: 'Scegli indizio',
|
|
77
|
+
flow2Text: 'Clicca sul segno di bruciatura',
|
|
78
|
+
flow3Kicker: 'FASE 3',
|
|
79
|
+
flow3Icon: '3',
|
|
80
|
+
flow3Title: 'Trascina vettore',
|
|
81
|
+
flow3Text: 'Mira la direzione del fuoco',
|
|
82
|
+
flow4Kicker: 'FASE 4',
|
|
83
|
+
flow4Icon: '4',
|
|
84
|
+
flow4Title: 'Leggi risultato',
|
|
85
|
+
flow4Text: 'Controlla il piè di pagina + esporta',
|
|
86
|
+
basicsTitle: 'Cosa fare prima',
|
|
87
|
+
basicsIntro: 'Carica una planimetria chiara, segna solo i modelli che puoi giustificare e distribuisci i vettori su superfici diverse invece di ripetere lo stesso indizio.',
|
|
88
|
+
indicatorsTitle: 'Cosa significa ogni tipo di prova',
|
|
89
|
+
vPatternShort: 'Bruciatura murale che si apre verso l\'alto',
|
|
90
|
+
vPatternExplain: 'Un modello a V è la familiare forma di bruciatura verso l\'alto e verso l\'esterno spesso vista su una parete. Può suggerire che il calore e le fiamme siano saliti da un\'area più bassa, ma non è una prova automatica dell\'origine esatta.',
|
|
91
|
+
deepCharShort: 'Area bruciata più intensamente o più a lungo',
|
|
92
|
+
deepCharExplain: 'La carbonizzazione profonda significa che un materiale appare più bruciato, annerito o consumato in un\'area rispetto a ciò che la circonda. Può indicare un riscaldamento più lungo o più intenso, ma il tipo di combustibile e lo spessore del materiale contano molto.',
|
|
93
|
+
sootShadowShort: 'Fumo bloccato o reindirizzato',
|
|
94
|
+
sootShadowExplain: 'Un\'ombra di fuliggine è un\'area protetta o diversamente annerita che suggerisce che un oggetto, una superficie o un flusso d\'aria ha modificato il modo in cui la fuliggine si è depositata. Può aiutare a ricostruire cosa era presente o come si è mosso il fumo.',
|
|
95
|
+
cleanBurnShort: 'Meno fuliggine per calore o flusso d\'aria',
|
|
96
|
+
cleanBurnExplain: 'La bruciatura pulita è un\'area in cui la fuliggine appare più chiara, rimossa o assente perché il calore, la ventilazione o l\'esposizione diretta alla fiamma l\'hanno influenzata diversamente. È utile, ma non ogni area pulita segna l\'origine.',
|
|
97
|
+
resultsTitle: 'Come leggere il risultato',
|
|
98
|
+
resultsIntro: 'Usa il piè di pagina come controllo rapido della tua mappatura, non come conclusione forense definitiva.',
|
|
99
|
+
resultsPoint1: 'Quante linee di prova sono attive.',
|
|
100
|
+
resultsPoint2: 'Quanto fortemente concordano i vettori attivi.',
|
|
101
|
+
resultsPoint3: 'Quanto è ancora ampia l\'area d\'origine.',
|
|
102
|
+
resultsPoint4: 'Cosa lo strumento si aspetta che tu faccia dopo.',
|
|
103
|
+
awaitingVector: 'In attesa del vettore',
|
|
104
|
+
selectIndicator: 'Seleziona indicatore',
|
|
105
|
+
refiningVector: 'Rifinitura del vettore',
|
|
106
|
+
needsMoreVectors: 'Servono più vettori',
|
|
107
|
+
wideArea: 'Area d\'origine ampia',
|
|
108
|
+
focusedArea: 'Area d\'origine concentrata',
|
|
109
|
+
dropPlan: 'Rilascia l\'immagine della planimetria o clicca per caricare',
|
|
110
|
+
needsMoreVectorsText: 'Disegna almeno due frecce direzionali chiare. Tre o più osservazioni indipendenti di solito rendono la convergenza molto più facile da interpretare.',
|
|
111
|
+
wideAreaText: 'Le linee proiettate si intersecano, ma la dispersione è ancora ampia. In una scena reale, confronta ventilazione, carico di combustibile, effetti di spegnimento e informazioni dei testimoni prima di restringere l\'origine.',
|
|
112
|
+
focusedAreaText: 'I vettori convergono in un\'area compatta. Consideralo un forte segnale didattico per lo sviluppo di ipotesi sull\'origine, non una conclusione forense definitiva.',
|
|
113
|
+
disclaimer: 'Solo simulazione educativa. L\'indagine reale sull\'origine e la causa di un incendio deve seguire le guide accettate, i protocolli di sicurezza sulla scena, gli standard di documentazione e la revisione qualificata di esperti.',
|
|
114
|
+
},
|
|
115
|
+
seo: [
|
|
116
|
+
{
|
|
117
|
+
type: 'title',
|
|
118
|
+
text: 'Analisi interattiva dell\'origine dell\'incendio dai vettori dei modelli di bruciatura',
|
|
119
|
+
level: 2,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'diagnostic',
|
|
123
|
+
variant: 'info',
|
|
124
|
+
icon: 'mdi:fire-alert',
|
|
125
|
+
badge: 'Simulatore didattico',
|
|
126
|
+
title: 'Cosa insegna questo analizzatore dell\'origine tramite modelli di incendio',
|
|
127
|
+
html: 'Questo strumento browser dimostra come gli investigatori ragionano dai modelli fisici di incendio verso una probabile <strong>area d\'origine</strong>. Gli utenti mappano le prove visibili, disegnano vettori direzionali di propagazione e osservano le linee proiettate convergere o disperdersi. Il modello è intenzionalmente educativo: insegna geometria e interpretazione dei modelli, non la determinazione legale delle cause.',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'stats',
|
|
131
|
+
columns: 4,
|
|
132
|
+
items: [
|
|
133
|
+
{ value: '4 livelli', label: 'Modello V, carbonizzazione, fuliggine, bruciatura pulita', icon: 'mdi:layers-triple' },
|
|
134
|
+
{ value: 'Planimetria 2D', label: 'mappa strutturale della stanza', icon: 'mdi:floor-plan' },
|
|
135
|
+
{ value: '3+ frecce', label: 'osservazioni raccomandate', icon: 'mdi:vector-line' },
|
|
136
|
+
{ value: '0-100%', label: 'input di confidenza', icon: 'mdi:gauge' },
|
|
137
|
+
],
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'summary',
|
|
141
|
+
title: 'Un flusso di lavoro disciplinato per l\'interpretazione dei modelli di incendio',
|
|
142
|
+
items: [
|
|
143
|
+
'Inizia con sicurezza, preservazione della scena, fotografie, schizzi e documentazione sistematica prima di interpretare i modelli.',
|
|
144
|
+
'Separa i tipi di modello in modo che il danno a V, la profondità di carbonizzazione, il deposito di fuliggine e la bruciatura pulita non siano ridotti a un\'unica ipotesi.',
|
|
145
|
+
'Disegna indicatori direzionali solo dove il modello fisico supporta una direzione di propagazione difendibile.',
|
|
146
|
+
'Cerca la convergenza tra osservazioni indipendenti invece di affidarti al danno più appariscente.',
|
|
147
|
+
'Usa l\'area d\'origine stimata come ipotesi da testare rispetto a combustibili, fonti di accensione, ventilazione, prove elettriche e testimonianze.',
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'table',
|
|
152
|
+
headers: ['Modello', 'Valore potenziale', 'Principale cautela'],
|
|
153
|
+
rows: [
|
|
154
|
+
['Modello a V', 'Può suggerire propagazione verso l\'alto e verso l\'esterno da un\'area più bassa.', 'Può essere alterato da ventilazione, flashover, geometria delle pareti e spegnimento.'],
|
|
155
|
+
['Carbonizzazione profonda', 'Può indicare esposizione prolungata al calore o combustione intensa.', 'Il tipo di combustibile e lo spessore del materiale influenzano fortemente la profondità di carbonizzazione.'],
|
|
156
|
+
['Ombra di fuliggine', 'Può rivelare aree protette, posizionamento di oggetti o effetti del flusso d\'aria.', 'Lo spostamento di mobili o l\'attività di spegnimento possono cambiare l\'interpretazione.'],
|
|
157
|
+
['Bruciatura pulita', 'Può mostrare calore elevato, ventilazione o combustione in fase avanzata.', 'Non identifica automaticamente il primo materiale acceso.'],
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'comparative',
|
|
162
|
+
columns: 2,
|
|
163
|
+
items: [
|
|
164
|
+
{
|
|
165
|
+
title: 'Ipotesi d\'origine migliori',
|
|
166
|
+
icon: 'mdi:check-circle-outline',
|
|
167
|
+
highlight: true,
|
|
168
|
+
description: 'Le migliori ipotesi spiegano più osservazioni contemporaneamente.',
|
|
169
|
+
points: ['I vettori indipendenti convergono', 'Le prove corrispondono ai percorsi di ventilazione noti', 'I pacchetti di combustibile sono contabilizzati', 'Le origini alternative sono testate attivamente'],
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
title: 'Ipotesi d\'origine deboli',
|
|
173
|
+
icon: 'mdi:alert-circle-outline',
|
|
174
|
+
description: 'Le ipotesi deboli spesso si basano su un unico modello senza testare i fattori di distorsione.',
|
|
175
|
+
points: ['Una singola area carbonizzata è trattata come prova', 'Il flashover è ignorato', 'Il danno da spegnimento non è documentato', 'Le prove della fonte di accensione sono presupposte'],
|
|
176
|
+
},
|
|
177
|
+
],
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
type: 'title',
|
|
181
|
+
text: 'Come funziona il modello vettoriale',
|
|
182
|
+
level: 3,
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'paragraph',
|
|
186
|
+
html: 'Ogni freccia è trattata come una linea proiettata di propagazione del fuoco. Lo stimatore calcola le intersezioni di linee a coppie, filtra i punti che rientrano in un limite ragionevole della planimetria, media gli incroci rimanenti e riporta un raggio basato sulla dispersione di quelle intersezioni. Un raggio piccolo con diversi vettori produce un segnale di convergenza più forte. Il modello di intersezione funziona risolvendo le equazioni parametriche di due linee che si estendono dai rispettivi marcatori di prova. Quando due vettori puntano verso una regione condivisa, il loro punto di incrocio teorico contribuisce con una coordinata al gruppo di mediazione. Più vettori indipendenti partecipano, più lo stimatore può filtrare gli incroci lontani dal cluster principale, riducendo efficacemente l\'influenza di ogni singola osservazione che potrebbe essere mal orientata o interpretata.',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'paragraph',
|
|
190
|
+
html: 'Questo approccio geometrico rispecchia un esercizio in aula: aiuta gli studenti a capire perché l\'analisi dell\'origine migliora quando le osservazioni provengono da superfici e tipi di modello diversi. Espone anche un problema comune: le frecce possono intersecarsi anche quando l\'interpretazione sottostante è scarsa, quindi il centro matematico non deve mai sostituire il giudizio della scienza del fuoco. In un\'indagine reale, i professionisti confrontano il risultato tracciato con i percorsi di ventilazione, la distribuzione del carico di combustibile, i danni strutturali e le dichiarazioni dei testimoni prima di trattare qualsiasi coordinata come probabile origine. Lo strumento incoraggia questa abitudine mostrando la varianza accanto al punto stimato, ricordando agli utenti che un gruppo compatto di incroci è forte solo quanto la qualità delle osservazioni che lo hanno prodotto.',
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
type: 'paragraph',
|
|
194
|
+
html: 'Oltre alla logica di intersezione di base, lo stimatore applica un vincolo di confine in modo che gli incroci situati molto al di fuori del piano della stanza vengano esclusi. Ciò impedisce ai valori anomali di trascinare il centro medio verso posizioni impossibili. Il raggio finale rappresenta la deviazione standard delle coordinate di incrocio rimanenti, fornendo una misura diretta di quanto coerentemente i vettori attivi concordano. Un raggio inferiore al dieci percento dell\'estensione del piano indica una forte convergenza. Un raggio superiore a un quarto del piano segnala che le prove non supportano ancora un\'origine focalizzata e che sono necessarie più o migliori osservazioni prima di trarre conclusioni.',
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
type: 'glossary',
|
|
198
|
+
items: [
|
|
199
|
+
{ term: 'Area d\'origine', definition: 'La regione generale dove le prove disponibili suggeriscono che l\'incendio sia iniziato.' },
|
|
200
|
+
{ term: 'Modello a V', definition: 'Un modello di incendio che spesso appare come danno verso l\'alto e verso l\'esterno su una superficie verticale.' },
|
|
201
|
+
{ term: 'Bruciatura pulita', definition: 'Un\'area più chiara o più pulita causata quando la fuliggine viene bruciata o non si deposita in condizioni di calore elevato o flusso d\'aria.' },
|
|
202
|
+
{ term: 'Ombra di fuliggine', definition: 'Un\'area di fuliggine protetta o depositata diversamente che può conservare informazioni su oggetti, flusso d\'aria o esposizione al calore.' },
|
|
203
|
+
{ term: 'Convergenza vettoriale', definition: 'Il raggruppamento di indicatori direzionali proiettati intorno a una regione comune.' },
|
|
204
|
+
],
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
type: 'diagnostic',
|
|
208
|
+
variant: 'warning',
|
|
209
|
+
icon: 'mdi:scale-balance',
|
|
210
|
+
badge: 'Cautela forense',
|
|
211
|
+
title: 'Non trasformare la convergenza in certezza',
|
|
212
|
+
html: 'Un gruppo di intersezioni compatto è utile solo quando le osservazioni sono valide. Le indagini reali devono tenere conto di ventilazione, flashover, pacchetti di combustibile, impianti elettrici, prove di elettrodomestici, testimonianze, spegnimento e alterazione della scena.',
|
|
213
|
+
},
|
|
214
|
+
],
|
|
215
|
+
faq,
|
|
216
|
+
bibliography,
|
|
217
|
+
howTo,
|
|
218
|
+
schemas: [
|
|
219
|
+
{
|
|
220
|
+
'@context': 'https://schema.org',
|
|
221
|
+
'@type': 'SoftwareApplication',
|
|
222
|
+
name: title,
|
|
223
|
+
description,
|
|
224
|
+
applicationCategory: 'ForensicApplication',
|
|
225
|
+
operatingSystem: 'Any',
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
'@context': 'https://schema.org',
|
|
229
|
+
'@type': 'FAQPage',
|
|
230
|
+
mainEntity: faq.map((item) => ({
|
|
231
|
+
'@type': 'Question',
|
|
232
|
+
name: item.question,
|
|
233
|
+
acceptedAnswer: {
|
|
234
|
+
'@type': 'Answer',
|
|
235
|
+
text: item.answer,
|
|
236
|
+
},
|
|
237
|
+
})),
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
'@context': 'https://schema.org',
|
|
241
|
+
'@type': 'HowTo',
|
|
242
|
+
name: title,
|
|
243
|
+
step: howTo.map((step) => ({
|
|
244
|
+
'@type': 'HowToStep',
|
|
245
|
+
name: step.name,
|
|
246
|
+
text: step.text,
|
|
247
|
+
})),
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
};
|