Skip to content

Commit 315dfde

Browse files
committed
Added pages support
1 parent 3a85113 commit 315dfde

5 files changed

Lines changed: 319 additions & 0 deletions

File tree

.github/workflows/pages.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Deploy GitHub Pages
2+
3+
on:
4+
push:
5+
branches: ["main", "master"]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: "pages"
15+
cancel-in-progress: true
16+
17+
jobs:
18+
deploy:
19+
environment:
20+
name: github-pages
21+
url: ${{ steps.deployment.outputs.page_url }}
22+
runs-on: ubuntu-latest
23+
24+
steps:
25+
- name: Checkout
26+
uses: actions/checkout@v4
27+
28+
- name: Setup Pages
29+
uses: actions/configure-pages@v5
30+
31+
- name: Upload artifact
32+
uses: actions/upload-pages-artifact@v3
33+
with:
34+
path: docs
35+
36+
- name: Deploy to GitHub Pages
37+
id: deployment
38+
uses: actions/deploy-pages@v4

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,22 @@ python3 methodv2/run_question_table_copy_llm_naive.py \
4141
--run_name question_table_copy_llm_naive_local \
4242
--limit 10
4343
```
44+
45+
## GitHub Pages
46+
47+
A project page is scaffolded in `docs/`:
48+
49+
- `docs/index.html`
50+
- `docs/styles.css`
51+
52+
Deployment is automated with `.github/workflows/pages.yml`.
53+
54+
After pushing to GitHub:
55+
56+
1. Open repository `Settings` -> `Pages`
57+
2. Under `Build and deployment`, set `Source` to `GitHub Actions`
58+
3. Push to `main` (or `master`) to trigger deployment
59+
60+
The site will publish at:
61+
62+
`https://<your-username>.github.io/<repo-name>/`

docs/.nojekyll

Whitespace-only changes.

docs/index.html

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1" />
6+
<title>SCoPE: Planning for Hybrid Querying over Clinical Trial Data</title>
7+
<meta name="description" content="Project page for SCoPE, a planner-based framework for clinical trial table reasoning." />
8+
<link rel="stylesheet" href="./styles.css" />
9+
</head>
10+
<body>
11+
<header class="hero">
12+
<div class="wrap">
13+
<p class="kicker">ACL Preprint</p>
14+
<h1>SCoPE: Planning for Hybrid Querying over Clinical Trial Data</h1>
15+
<p class="subtitle">A planner-executor framework for grounded row-level reasoning over partially observed oncology trial tables.</p>
16+
<p class="authors">Suparno Roy Chowdhury, Manan Roy Choudhury, Tejas Anvekar, Muhammad Ali Khan, Kaneez Zahra Rubab Khakwani, Mohamad Bassam Sonbol, Irbaz Bin Riaz, Vivek Gupta</p>
17+
<p class="affils">Arizona State University, Mayo Clinic</p>
18+
</div>
19+
</header>
20+
21+
<main class="wrap">
22+
<section>
23+
<h2>Abstract</h2>
24+
<p>We study clinical trial table reasoning, where answers must be inferred from visible evidence rather than copied from explicit cells. SCoPE decomposes reasoning into row selection, structured planning, and execution, making source field selection and transformation constraints explicit before final answer generation. On 1,500 oncology hybrid-reasoning questions, SCoPE improves grounded performance over direct prompting and stronger tabular baselines while retaining a favorable accuracy-efficiency tradeoff.</p>
25+
</section>
26+
27+
<section>
28+
<h2>Problem Setting</h2>
29+
<p>Input is a question and a visible table copy with hidden target field(s). Output is row-aligned predictions for relevant rows, derived from visible evidence through normalization, extraction, classification, or lightweight domain reasoning.</p>
30+
<ol>
31+
<li>Executor selects candidate rows.</li>
32+
<li>Planner predicts a structured plan: source column, relevant columns, reasoning rules, output constraints.</li>
33+
<li>Executor applies the plan and returns aligned row-level outputs.</li>
34+
</ol>
35+
</section>
36+
37+
<section>
38+
<h2>Dataset Snapshot</h2>
39+
<div class="grid-2">
40+
<div class="card">
41+
<h3>Clinical-Trial Table Statistics</h3>
42+
<table>
43+
<thead><tr><th>Statistic</th><th>Value</th></tr></thead>
44+
<tbody>
45+
<tr><td>Rows</td><td>159</td></tr>
46+
<tr><td>Columns</td><td>32</td></tr>
47+
<tr><td>Unique trials (NCT)</td><td>105</td></tr>
48+
<tr><td>Cancer types</td><td>19</td></tr>
49+
<tr><td>ICI names</td><td>13</td></tr>
50+
</tbody>
51+
</table>
52+
</div>
53+
54+
<div class="card">
55+
<h3>Question/Answer Statistics</h3>
56+
<table>
57+
<thead><tr><th>Statistic</th><th>Value</th></tr></thead>
58+
<tbody>
59+
<tr><td>Total questions</td><td>1,500</td></tr>
60+
<tr><td>Mean question length</td><td>21.2 tokens</td></tr>
61+
<tr><td>Target fields</td><td>31</td></tr>
62+
<tr><td>String answers</td><td>957</td></tr>
63+
<tr><td>List answers</td><td>241</td></tr>
64+
<tr><td>Boolean answers</td><td>224</td></tr>
65+
<tr><td>Null-only answers</td><td>78</td></tr>
66+
</tbody>
67+
</table>
68+
</div>
69+
</div>
70+
</section>
71+
72+
<section>
73+
<h2>Main Results</h2>
74+
<p>Table F1 is primary; RJ (Row Jaccard) and FM (Fowlkes-Mallows) measure grounded row-level quality.</p>
75+
<div class="table-wrap">
76+
<table>
77+
<thead>
78+
<tr>
79+
<th rowspan="2">Method</th>
80+
<th colspan="3">Qwen3</th>
81+
<th colspan="3">Llama-3.3</th>
82+
<th colspan="3">GPT-OSS</th>
83+
</tr>
84+
<tr>
85+
<th>F1</th><th>RJ</th><th>FM</th>
86+
<th>F1</th><th>RJ</th><th>FM</th>
87+
<th>F1</th><th>RJ</th><th>FM</th>
88+
</tr>
89+
</thead>
90+
<tbody>
91+
<tr><td>BlendSQL</td><td>11.56</td><td>6.52</td><td>20.63</td><td>5.60</td><td>5.15</td><td>5.81</td><td>7.30</td><td>6.48</td><td>7.71</td></tr>
92+
<tr><td>EHRAgent</td><td>32.99</td><td>29.79</td><td>33.74</td><td>30.99</td><td>28.07</td><td>31.69</td><td>34.85</td><td>31.23</td><td>35.65</td></tr>
93+
<tr><td>Zero Shot</td><td>56.32</td><td>44.95</td><td>62.73</td><td>66.96</td><td>54.55</td><td>72.04</td><td>73.50</td><td>61.05</td><td>77.47</td></tr>
94+
<tr><td>CoT</td><td>55.37</td><td>44.65</td><td>61.93</td><td>70.87</td><td>57.83</td><td>75.15</td><td>74.17</td><td>61.77</td><td>78.05</td></tr>
95+
<tr><td>Few-Shot</td><td>54.74</td><td>44.09</td><td>61.48</td><td>69.38</td><td>56.56</td><td>74.05</td><td>73.99</td><td>61.55</td><td>77.85</td></tr>
96+
<tr><td>TableGPT2 (single model)</td><td colspan="9">F1 44.03, RJ 33.78, FM 50.81</td></tr>
97+
<tr class="best"><td>SCoPE</td><td>63.19</td><td>52.07</td><td>69.45</td><td>70.87</td><td>60.66</td><td>76.12</td><td>74.31</td><td>62.48</td><td>78.27</td></tr>
98+
</tbody>
99+
</table>
100+
</div>
101+
</section>
102+
103+
<section>
104+
<h2>Cross-Model Ablation (SCoPE)</h2>
105+
<div class="table-wrap">
106+
<table>
107+
<thead><tr><th>Executor</th><th>Planner</th><th>F1</th><th>RJ</th><th>FM</th></tr></thead>
108+
<tbody>
109+
<tr><td>GPT-OSS</td><td>Qwen3</td><td>75.07</td><td>63.74</td><td>79.26</td></tr>
110+
<tr><td>Qwen3</td><td>GPT-OSS</td><td>59.59</td><td>48.26</td><td>66.32</td></tr>
111+
<tr><td>Qwen3</td><td>Llama-3.3</td><td>62.47</td><td>51.40</td><td>68.88</td></tr>
112+
<tr class="best"><td>GPT-OSS</td><td>Llama-3.3</td><td>75.12</td><td>63.88</td><td>79.28</td></tr>
113+
<tr><td>Llama-3.3</td><td>GPT-OSS</td><td>68.01</td><td>57.37</td><td>73.64</td></tr>
114+
<tr><td>Llama-3.3</td><td>Qwen3</td><td>71.43</td><td>61.33</td><td>76.64</td></tr>
115+
</tbody>
116+
</table>
117+
</div>
118+
</section>
119+
120+
<section>
121+
<h2>Planner-Coder Baseline</h2>
122+
<div class="table-wrap narrow">
123+
<table>
124+
<thead><tr><th>Coder Model</th><th>F1</th><th>RJ</th><th>FM</th></tr></thead>
125+
<tbody>
126+
<tr><td>GPT-OSS</td><td>14.56</td><td>11.67</td><td>23.39</td></tr>
127+
<tr><td>Qwen3</td><td>48.92</td><td>37.53</td><td>56.01</td></tr>
128+
<tr class="best"><td>Llama-3.3</td><td>63.40</td><td>51.55</td><td>69.10</td></tr>
129+
</tbody>
130+
</table>
131+
</div>
132+
<p class="note">Takeaway: constrained grounded execution is more reliable than open-ended code synthesis for this hybrid clinical-table reasoning setup.</p>
133+
</section>
134+
135+
<section>
136+
<h2>Conclusion</h2>
137+
<p>SCoPE improves grounded clinical trial table reasoning by explicitly separating row grounding, source-field inference, and transformation logic. It consistently outperforms direct prompting and heavier structured baselines while staying lightweight enough for favorable cost-effectiveness.</p>
138+
</section>
139+
140+
<section>
141+
<h2>Repository</h2>
142+
<p>Code and data live in this repository. Add paper PDF, figures, and appendix assets in <code>docs/assets/</code> later if you want a fully media-rich camera-ready page.</p>
143+
</section>
144+
</main>
145+
</body>
146+
</html>

docs/styles.css

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
:root {
2+
--bg: #f6f8fb;
3+
--surface: #ffffff;
4+
--ink: #12202f;
5+
--muted: #4b5f73;
6+
--brand: #0e7490;
7+
--line: #d9e1ea;
8+
--best: #e8f7e8;
9+
}
10+
11+
* { box-sizing: border-box; }
12+
13+
body {
14+
margin: 0;
15+
background: radial-gradient(circle at top right, #e9f4ff 0%, var(--bg) 35%, #f8fafc 100%);
16+
color: var(--ink);
17+
font: 16px/1.65 "Segoe UI", "Avenir Next", "Helvetica Neue", sans-serif;
18+
}
19+
20+
.wrap {
21+
width: min(1100px, 92vw);
22+
margin: 0 auto;
23+
}
24+
25+
.hero {
26+
border-bottom: 1px solid var(--line);
27+
background: linear-gradient(120deg, #ecfeff 0%, #eff6ff 50%, #f5f3ff 100%);
28+
padding: 3rem 0 2rem;
29+
}
30+
31+
.kicker {
32+
font-size: 0.78rem;
33+
font-weight: 700;
34+
letter-spacing: 0.08em;
35+
text-transform: uppercase;
36+
color: var(--brand);
37+
margin: 0 0 0.6rem;
38+
}
39+
40+
h1 {
41+
margin: 0;
42+
line-height: 1.2;
43+
font-size: clamp(1.6rem, 2.6vw, 2.5rem);
44+
}
45+
46+
.subtitle, .authors, .affils {
47+
margin: 0.8rem 0 0;
48+
color: var(--muted);
49+
}
50+
51+
main { padding: 2rem 0 3rem; }
52+
section { margin: 0 0 1.8rem; }
53+
54+
h2 {
55+
margin: 0 0 0.55rem;
56+
font-size: 1.28rem;
57+
}
58+
59+
h3 {
60+
margin: 0 0 0.55rem;
61+
font-size: 1.04rem;
62+
}
63+
64+
.card {
65+
background: var(--surface);
66+
border: 1px solid var(--line);
67+
border-radius: 12px;
68+
padding: 1rem;
69+
}
70+
71+
.grid-2 {
72+
display: grid;
73+
grid-template-columns: repeat(2, minmax(0, 1fr));
74+
gap: 1rem;
75+
}
76+
77+
.table-wrap {
78+
overflow-x: auto;
79+
background: var(--surface);
80+
border: 1px solid var(--line);
81+
border-radius: 12px;
82+
}
83+
84+
.table-wrap.narrow { max-width: 620px; }
85+
86+
table {
87+
width: 100%;
88+
border-collapse: collapse;
89+
min-width: 680px;
90+
}
91+
92+
th, td {
93+
border: 1px solid var(--line);
94+
padding: 0.55rem 0.6rem;
95+
text-align: left;
96+
vertical-align: top;
97+
}
98+
99+
th {
100+
background: #f1f5f9;
101+
font-weight: 700;
102+
}
103+
104+
tr.best td {
105+
background: var(--best);
106+
font-weight: 700;
107+
}
108+
109+
.note {
110+
color: var(--muted);
111+
margin-top: 0.6rem;
112+
}
113+
114+
@media (max-width: 900px) {
115+
.grid-2 { grid-template-columns: 1fr; }
116+
}

0 commit comments

Comments
 (0)