{"id":326,"date":"2025-08-11T10:09:45","date_gmt":"2025-08-11T10:09:45","guid":{"rendered":"https:\/\/paultrowler.com\/wordpress\/?page_id=326"},"modified":"2025-11-20T18:10:23","modified_gmt":"2025-11-20T18:10:23","slug":"326-2","status":"publish","type":"page","link":"https:\/\/paultrowler.com\/wordpress\/index.php\/326-2\/","title":{"rendered":"Chapter 7: Conceptual gateway"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\"\/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n  <title>Conceptual Gateway Tool<\/title>\n\n  <!-- Tailwind -->\n  <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n  <script>\n    tailwind.config = {\n      theme: {\n        extend: {\n          colors: {\n            primary: {\n              50:'#f0f9ff',100:'#e0f2fe',200:'#bae6fd',300:'#7dd3fc',\n              400:'#38bdf8',500:'#0ea5e9',600:'#0284c7',700:'#0369a1',\n              800:'#075985',900:'#0c4a6e'\n            }\n          },\n          boxShadow: { soft:'0 10px 25px -10px rgba(8, 47, 73, 0.20)' },\n          borderRadius: { '2xl':'1.25rem' }\n        }\n      }\n    }\n  <\/script>\n\n  <!-- Inter -->\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\/>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\"\/>\n\n  <style>\n    body { \n      font-family: 'Inter', sans-serif;\n      line-height: 1.6;\n    }\n    .prompt-segment { border-left: 4px solid #0ea5e9; padding-left: 1rem; margin: 1rem 0; }\n    .prompt-segment h4 { font-weight: 600; color: #075985; }\n    .prompt-segment-content { color: #334155; font-style: italic; }\n    .prompt-gap { background-color: #e0f2fe; color: #075985; padding: 1px 6px; border-radius: 4px; font-weight: 600; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\"Courier New\", monospace; }\n    .prompt-gap-filled { background-color: #dcfce7; color: #166534; }\n  <\/style>\n<\/head>\n<body class=\"bg-primary-50 text-primary-900 leading-relaxed\">\n<div class=\"container mx-auto max-w-7xl px-4 py-6 sm:py-8\">\n\n  <!-- Intro -->\n  <div class=\"mb-6 bg-white p-6 rounded-2xl shadow-soft border border-primary-200\">\n    <p class=\"text-[15px] text-primary-800 font-semibold\">\n      This tool helps you understand and work productively with difficult social-science concepts.\n      It guides you in clarifying the concept, linking it to your project, and engaging in a brief Socratic dialogue.\n    <\/p>\n    <p class=\"mt-3 text-[15px] text-primary-800\">\n      Complete the fields with details of your research. The prompt on the right updates live and will be tailored to what you enter.\n    <\/p>\n    <p class=\"mt-2 text-[15px] text-primary-800\">\n      When you\u2019re happy, click <em>Copy prompt and go to ChatGPT<\/em>. This will copy your customised prompt and open ChatGPT.\n    <\/p>\n  <\/div>\n\n  <!-- Stage 0: Reusable Project Summary Block -->\n  <section id=\"pt-project-summary-block\" class=\"relative isolate mb-6\">\n    <div class=\"rounded-2xl border border-primary-200 bg-white shadow-sm\">\n      <div class=\"border-b border-primary-100 bg-primary-50\/60 rounded-t-2xl px-4 sm:px-6 py-3 flex items-center gap-3\">\n        <div class=\"h-8 w-8 flex items-center justify-center rounded-full bg-primary-100 text-primary-800 font-semibold\">0<\/div>\n        <h3 class=\"m-0 text-base sm:text-lg font-semibold text-primary-900\">Paste your doctoral project summary<\/h3>\n      <\/div>\n      <div class=\"p-4 sm:p-6 space-y-3\">\n        <p class=\"text-[15px] text-primary-900\/90 leading-relaxed\">\n          Paste the short summary you created in\n          <a href=\"https:\/\/paultrowler.com\/wordpress\/index.php\/helping-ai-to-understand-your-research-project\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline text-primary-700 hover:text-primary-900\">\n            Chapter 1 \u2014 Helping AI Understand Your Research Project\n          <\/a>. Make any updates you need to. Tools on this page will tailor their feedback using this summary.\n        <\/p>\n        <div>\n          <label for=\"pt-project-summary\" class=\"block text-[15px] font-medium text-primary-900 mb-2\">Your project summary<\/label>\n          <textarea id=\"pt-project-summary\" class=\"w-full min-h-[12rem] rounded-xl border border-primary-200 focus:border-primary-500 focus:ring-2 focus:ring-primary-200\/70 px-3 py-2 text-[15px] leading-relaxed\" placeholder=\"Paste or type your updated doctoral project summary here...\"><\/textarea>\n          <div class=\"mt-3 flex flex-wrap items-center gap-2 text-[15px] text-primary-900\/70\">\n            <button type=\"button\" id=\"pt-clear-summary\" class=\"inline-flex items-center gap-1 rounded-full border border-primary-200 px-3 py-1 hover:bg-primary-50 active:bg-primary-100\">Clear<\/button>\n          <\/div>\n        <\/div>\n        <div class=\"rounded-xl border border-primary-200 bg-primary-50 px-4 py-3\">\n          <div class=\"flex items-start gap-3\">\n            <div class=\"mt-0.5 h-5 w-5 flex items-center justify-center rounded-full bg-white text-primary-700 font-bold\">\u2139\ufe0e<\/div>\n            <p class=\"m-0 text-[15px] leading-relaxed text-primary-900\">\n              <span class=\"font-medium\">Tip:<\/span> For cross-session memory, create a <span class=\"font-semibold\">Project<\/span> in ChatGPT (e.g., \u201cMy Doctoral Research\u201d) and run all chats inside it. Your project details will then persist across tools.\n            <\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- Main Grid -->\n  <div class=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n\n    <!-- Left Pane -->\n    <div class=\"bg-white p-6 rounded-2xl shadow-soft border border-primary-200\">\n      <h2 class=\"text-xl font-bold mb-4 text-primary-800\">Explore a Concept<\/h2>\n\n      <form id=\"prompt-form\" class=\"space-y-4\">\n        <!-- Core concept field (kept) -->\n        <div>\n          <label for=\"core-concept\" class=\"block text-[15px] font-medium text-primary-700 mb-1\">The Concept You Are Struggling With<\/label>\n          <input id=\"core-concept\" class=\"block w-full px-3 py-2 text-[15px] bg-primary-50 border border-primary-300 rounded-md shadow-sm placeholder-primary-400 focus:outline-none focus:ring-primary-500 focus:border-primary-500\" placeholder=\"e.g., Habitus, Performativity, Rhizome\" type=\"text\">\n        <\/div>\n\n        <div class=\"pt-2\">\n          <button type=\"button\" id=\"reset-button\" class=\"w-full flex justify-center py-2 px-4 border border-primary-300 rounded-md shadow-sm text-[15px] font-medium text-primary-700 bg-white hover:bg-primary-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors\">Reset<\/button>\n        <\/div>\n      <\/form>\n    <\/div>\n\n    <!-- Right Pane: Prompt Preview (visible excerpt only) -->\n    <div class=\"bg-white p-6 rounded-2xl shadow-soft border border-primary-200 flex flex-col\">\n      <h2 class=\"text-xl font-bold mb-4 text-primary-800\">Your Conceptual Gateway Prompt (excerpt)<\/h2>\n\n      <div id=\"prompt-output-container\" class=\"text-slate-800 leading-relaxed text-[15px] bg-primary-50 p-4 rounded-lg min-h-[220px] flex-grow border border-primary-200\">\n        <!-- Filled by JS -->\n      <\/div>\n\n      <div class=\"mt-4\">\n        <a id=\"copy-open-chatgpt\" href=\"https:\/\/chatgpt.com\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"w-full flex items-center justify-center py-2 px-4 border border-primary-300 rounded-md shadow-sm text-[15px] font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 transition-colors\">\n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" class=\"h-4 w-4 mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n            <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"><\/path>\n          <\/svg>\n          Copy prompt and go to ChatGPT\n        <\/a>\n        <p class=\"text-[15px] leading-relaxed text-primary-800 mt-2 bg-primary-50 border border-primary-200 rounded-lg p-3\">\n          For security reasons browsers don\u2019t auto-paste \u2014 after ChatGPT opens, press <kbd>Ctrl\/\u2318+V<\/kbd> to paste the copied prompt into the chat box.\n        <\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Refining section (kept) -->\n  <div class=\"mt-10 bg-white p-6 rounded-2xl shadow-soft border border-primary-200\">\n    <h2 class=\"text-lg font-bold mb-3 text-primary-800\">Refining the AI response to your prompt<\/h2>\n    <div class=\"text-primary-800 space-y-3 text-[15px] max-w-none leading-relaxed\">\n      <p>Once you have an initial response from the AI, you can guide the dialogue with follow-up prompts. For example:<\/p>\n      <ul class=\"list-disc list-inside\">\n        <li>&#8220;Can you explain that definition in simpler terms?&#8221;<\/li>\n        <li>&#8220;That analogy isn&#8217;t working for me. Can you offer another one?&#8221;<\/li>\n        <li>&#8220;What are the main critiques or limitations of this concept?&#8221;<\/li>\n      <\/ul>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\n  \/\/ Elements\n  const summaryEl = document.getElementById('pt-project-summary');\n  const clearSummaryBtn = document.getElementById('pt-clear-summary');\n  const conceptEl = document.getElementById('core-concept');\n  const copyOpenChatGPTLink = document.getElementById('copy-open-chatgpt');\n  const promptOutputContainer = document.getElementById('prompt-output-container');\n\n  const esc = (s)=> (s||'').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;');\n\n  function visibleExcerpt(){\n    const summary = (summaryEl.value||'').trim();\n    const concept = (conceptEl.value||'').trim();\n\n    const summaryBlock = `\n      <div class=\"prompt-segment\">\n        <h4>Project summary<\/h4>\n        <div class=\"prompt-segment-content ${summary ? 'prompt-gap-filled':'prompt-gap'}\">\n          ${esc(summary || 'No summary provided yet')}\n        <\/div>\n      <\/div>`;\n\n    const conceptBlock = `\n      <div class=\"prompt-segment\">\n        <h4>Concept to explore<\/h4>\n        <div class=\"prompt-segment-content ${concept ? 'prompt-gap-filled':'prompt-gap'}\">\n          ${esc(concept || 'No concept provided yet')}\n        <\/div>\n      <\/div>`;\n\n    return `\n      <p>You are a supportive, doctoral-level mentor in social science concepts. Use the context below and begin a concise, constructive dialogue.<\/p>\n      ${summaryBlock}\n      ${conceptBlock}\n      <p><b>What to do first:<\/b> Provide a concise initial definition, ask one probing question about how this concept might apply to my study, then\u2014after I answer\u2014offer a helpful analogy and a contrasting concept for comparison.<\/p>\n      <p><b>Keep it iterative:<\/b> Ask one question at a time; summarise what you heard before moving on.<\/p>\n    `;\n  }\n\n  \/\/ Hidden directives (prepended on copy)\n  function hiddenDirectives(){\n    const summary = (summaryEl.value||'').trim() || '[none provided]';\n    const concept = (conceptEl.value||'').trim() || '[none provided]';\n\n    const refs = [\n      \"Use these open-access sources as your primary knowledge base:\",\n      \"- SAGE Research Methods Foundations\",\n      \"- Stanford Encyclopedia of Philosophy\",\n      \"- SSRIC Glossary\"\n    ].join(\"\\\\n\");\n\n    return [\n      \"Act as an expert in social science concepts ('Conceptual Gateway' persona).\",\n      \"Goals:\",\n      \"\u2022 Deepen user understanding through incremental, Socratic dialogue (one question at a time).\",\n      \"\u2022 Provide concise definitions; analogies; and a contrasting concept when helpful.\",\n      \"\u2022 Keep discussion academically rigorous and directly tied to the user's project.\",\n      \"\",\n      \"User-supplied context:\",\n      \"\u2022 Project summary \u2192 \" + summary,\n      \"\u2022 Concept \u2192 \" + concept,\n      \"\",\n      \"Method:\",\n      \"\u2022 Step 1: concise definition.\",\n      \"\u2022 Step 2: ask one probing question about application to the user's study.\",\n      \"\u2022 After user reply: offer an analogy; propose a contrasting concept; ask a follow-up if needed.\",\n      \"\u2022 Briefly summarise what you heard before moving on.\",\n      \"\",\n      refs\n    ].join(\"\\\\n\");\n  }\n\n  function render(){ promptOutputContainer.innerHTML = visibleExcerpt(); }\n\n  function copyPromptToClipboard(){\n    const visible = promptOutputContainer.innerText.trim();\n    const combined = hiddenDirectives() + \"\\\\n\\\\n\" + visible;\n\n    const ta = document.createElement('textarea');\n    ta.value = combined;\n    document.body.appendChild(ta);\n    ta.select();\n    ta.setSelectionRange(0, 99999);\n    try {\n      document.execCommand('copy');\n    } catch(e){\n      console.warn('Copy failed', e);\n    } finally {\n      document.body.removeChild(ta);\n    }\n  }\n\n  \/\/ Events\n  [summaryEl, conceptEl].forEach(el=>{\n    el.addEventListener('input', render);\n    el.addEventListener('change', render);\n  });\n\n  document.getElementById('pt-clear-summary').addEventListener('click', ()=>{\n    summaryEl.value='';\n    summaryEl.focus();\n    render();\n  });\n\n  document.getElementById('reset-button').addEventListener('click', ()=>{\n    conceptEl.value = '';\n    summaryEl.value = '';\n    render();\n  });\n\n  copyOpenChatGPTLink.addEventListener('click', ()=>{\n    copyPromptToClipboard();\n    \/\/ then navigation to ChatGPT happens via the link href target\n  });\n\n  \/\/ Initial render\n  render();\n<\/script>\n<!-- Copyright 2025 Professor Paul Trowler All rights reserved. For personal use only for educational purposes, no part of this code to be copied, reused or sold-->\n<\/body>\n<\/html>\n\n\n\n\n<p class=\"has-text-align-center has-small-font-size\">Copyright 2025 Prof. Paul Trowler<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Conceptual Gateway Tool This tool helps you understand and work productively with difficult social-science concepts. It guides you in clarifying the concept, linking it to your project, and engaging in a brief Socratic dialogue. Complete the fields with details of your research. The prompt on the right updates live and will be tailored to what [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-326","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=326"}],"version-history":[{"count":9,"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/326\/revisions"}],"predecessor-version":[{"id":1015,"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/326\/revisions\/1015"}],"wp:attachment":[{"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}