Perustelun metasatelliitti


// —– GOODREASON PERUSTELUTAULUKKO —– // function renderReason(reason) { const container = document.getElementById(”gr-reason”); if (!container || !reason) return; // päättele laadun CSS-luokka let qClass = ”quality-medium”; if (reason.omega.confidence >= 0.8) qClass = ”quality-high”; else if (reason.omega.confidence <= 0.5) qClass = "quality-low"; const html = `
P – Tilanne ja motiivi (α)
${reason.alpha.title}
${reason.alpha.text}
π – Teoria χ – Tieto / evidenssi Δψ – Ehdotettu toimenpide
${reason.pi.title}
${reason.pi.text}
${reason.chi.title}
${reason.chi.text}
${reason.deltaPsi.title}
${reason.deltaPsi.text}
Q – Johtopäätös (Ω) & laadun arvio
${reason.omega.title}
${reason.omega.text}
Luottamus: ${(reason.omega.confidence * 100).toFixed(0)} % – ${reason.omega.verdict}
`; container.innerHTML = html; } // DEMO: rakennetaan kuviteltu vastaus, kunnes API on käytössä function buildDummyReason(questionText) { return { alpha: { title: ”Kysymyksen tilanne”, text: questionText || ”Kysyjä haluaa ymmärtää vesijärjestelmän tilannetta omassa arjessaan.” }, pi: { title: ”Teoriaperusta”, text: ”Veden turvallisuus ja saatavuus määräytyvät sekä luonnollisten kiertokulkujen että infrastruktuurin (pumput, putket, puhdistus) mukaan.” }, chi: { title: ”Evidenssi”, text: ”Kunnan vesilaitos julkaisee säännöllisiä mittausraportteja, ja historiallisesti laatu on ollut hyvä ilman raja-arvojen ylityksiä.” }, deltaPsi: { title: ”Ehdotettu toimenpide”, text: ”Seuraa vesilaitoksen raportteja, ilmoita poikkeamisesta ja pidä omat kiinteistön putket kunnossa. Tarvittaessa käytä lisäsuodatinta.” }, omega: { title: ”Johtopäätös”, text: ”Nykyisen tiedon perusteella vesihuolto toimii tyydyttävästi, mutta järjestelmä on haavoittuva häiriöille ja siksi jatkuva seuranta on olennainen.”, confidence: 0.78, verdict: ”melko luotettava arvio” } }; } // Napin toiminto: nyt vielä demodata, myöhemmin API-kutsu document.getElementById(”gr-ask”).addEventListener(”click”, async () => { const q = document.getElementById(”gr-question”).value.trim(); const reason = buildDummyReason(q); renderReason(reason); // TÄHÄN myöhemmin tilalle API-kutsu: // const resp = await fetch(”/wp-json/gr/v1/reason”, {…}); // const reason = await resp.json(); // renderReason(reason); });