Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 22 additions & 18 deletions reproducibility/site/src/components/CitationCard.astro
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,28 @@ interface Props {
const { title, venue, authors, bibtex, url } = Astro.props;
---

<article class="qg-card">
<div class="qg-pill">{venue}</div>
<h3 class="mt-3 text-lg font-semibold">{title}</h3>
<p class="mt-1 text-sm text-qg-fg-muted">{authors}</p>
{
url && (
<a
class="mt-2 inline-block text-sm font-medium text-qg-accent hover:underline"
href={url}
target="_blank"
rel="noopener noreferrer"
>
{url} ↗
</a>
)
}
<article class="qg-card flex flex-col">
<div>
<div class="qg-pill">{venue}</div>
<h3 class="mt-3 text-lg font-semibold">{title}</h3>
<p class="mt-1 text-sm text-qg-fg-muted">{authors}</p>
{
url && (
<a
class="mt-2 inline-block text-sm font-medium text-qg-accent hover:underline"
href={url}
target="_blank"
rel="noopener noreferrer"
>
{url} ↗
</a>
)
}
</div>

<div class="mt-4">
{/* mt-auto pushes the BibTeX block to the bottom so it aligns across cards
whose top content differs in height (the grid forces equal heights). */}
<div class="mt-auto pt-4">
<div class="flex items-center justify-between rounded-t-md border border-qg-border bg-qg-bg-soft px-3 py-1.5 text-xs text-qg-fg-muted">
<span class="qg-mono">BibTeX</span>
<button
Expand All @@ -37,7 +41,7 @@ const { title, venue, authors, bibtex, url } = Astro.props;
copy
</button>
</div>
<pre class="whitespace-pre-wrap break-words rounded-b-md border border-t-0 border-qg-border bg-qg-bg p-3 text-xs"><code class="qg-mono">{bibtex}</code></pre>
<pre class="min-h-56 overflow-auto whitespace-pre-wrap break-words rounded-b-md border border-t-0 border-qg-border bg-qg-bg p-3 text-xs"><code class="qg-mono">{bibtex}</code></pre>
</div>
</article>

Expand Down
57 changes: 53 additions & 4 deletions reproducibility/site/src/layouts/Default.astro
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,34 @@ import GoogleAnalytics from "@qg/shared/components/GoogleAnalytics.astro";
interface Props {
title: string;
description?: string;
/** Optional 1200×630 PNG/JPG path; defaults to the logo. Override per page when relevant. */
ogImage?: string;
/** Explicit Open Graph type — "website" by default; "article" for citation pages, etc. */
ogType?: "website" | "article";
/** Optional JSON-LD structured-data string emitted into <head> (e.g. Dataset / SoftwareApplication). */
jsonLd?: string;
}

const { title, description } = Astro.props;
const {
title,
description,
ogImage = "/querygym-logo.png",
ogType = "website",
jsonLd,
} = Astro.props;

const SITE_URL = "https://leaderboard.querygym.com";
const SITE_NAME = "QueryGym Leaderboard";
const TAGLINE = "Reproducible benchmarks for LLM query reformulation.";
const DEFAULT_DESC = "Reproducible benchmarks for LLM-based query reformulation. Click any row for the exact commands that produced each score — methods × LLMs × retrievers (BM25, SPLADE++, BGE) across BEIR, MS MARCO DL, and DL-HARD.";

// Home/index pages pass title="Leaderboard"; avoid the "Leaderboard — QueryGym Leaderboard" doubling.
const fullTitle = title === "Leaderboard" || title === SITE_NAME
? `${SITE_NAME} — ${TAGLINE}`
: `${title} — ${SITE_NAME}`;
const desc = description ?? DEFAULT_DESC;
const canonical = new URL(Astro.url.pathname, SITE_URL).toString();
const ogImageAbsolute = new URL(ogImage, SITE_URL).toString();

// Top-menu linkout items (external: true) open in a new tab so the user
// keeps their place on the leaderboard when they cross to a sibling site.
Expand All @@ -29,17 +54,41 @@ const navLinks = [
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{title} — QueryGym Leaderboard</title>
{description && <meta name="description" content={description} />}
<meta name="theme-color" content="#0b0d12" />
<meta name="generator" content={Astro.generator} />

<title>{fullTitle}</title>
<meta name="description" content={desc} />
<meta name="author" content="ls3-lab" />
<link rel="canonical" href={canonical} />

<!-- Open Graph -->
<meta property="og:type" content={ogType} />
<meta property="og:site_name" content={SITE_NAME} />
<meta property="og:title" content={fullTitle} />
<meta property="og:description" content={desc} />
<meta property="og:url" content={canonical} />
<meta property="og:image" content={ogImageAbsolute} />
<meta property="og:image:alt" content="QueryGym Leaderboard logo" />
<meta property="og:locale" content="en_US" />

<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={fullTitle} />
<meta name="twitter:description" content={desc} />
<meta name="twitter:image" content={ogImageAbsolute} />

<link rel="icon" type="image/png" href="/querygym-logo.png" />
<link rel="sitemap" type="application/xml" title="Sitemap" href="/sitemap-index.xml" />

{jsonLd && <script type="application/ld+json" set:html={jsonLd} />}

<GoogleAnalytics />
</head>
<body class="flex h-screen flex-col overflow-hidden bg-qg-bg text-qg-fg">
<Header
title="QueryGym Leaderboard"
tagline="SIGIR 2026 Reproducibility — Query Reformulation × LLMs × Datasets"
tagline="Reproducible benchmarks for LLM query reformulation."
links={navLinks}
/>
<main class="mx-auto flex w-[90%] min-h-0 flex-1 flex-col overflow-y-auto px-4 pt-3 pb-3">
Expand Down
12 changes: 9 additions & 3 deletions reproducibility/site/src/pages/cite.astro
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,23 @@ const wwwBibtex = `@misc{bigdeli2025querygymtoolkitreproduciblellmbased,
}`;

const sigirBibtex = `@inproceedings{querygym2026reproducibility,
title={Reproducing LLM-Based Query Reformulation Across Backends with QueryGym},
title={A Reproducibility Study of LLM-Based Query Reformulation},
author={Amin Bigdeli and Radin Hamidi Rad and Mert Incesu and Negar Arabzadeh and Charles L. A. Clarke and Ebrahim Bagheri},
booktitle={Proceedings of the 49th International ACM SIGIR Conference on Research and Development in Information Retrieval},
series={SIGIR '26},
year={2026},
note={Reproducibility Track},
eprint={2604.27421},
archivePrefix={arXiv},
primaryClass={cs.IR},
url={https://arxiv.org/abs/2604.27421},
}`;
---

<Default
title="Cite"
description="How to cite QueryGym in research papers — BibTeX for the WWW 2026 Demos paper and the SIGIR 2026 Reproducibility Track paper."
description="How to cite QueryGym — BibTeX for the WWW 2026 Demos paper (QueryGym: A Toolkit for Reproducible LLM-Based Query Reformulation) and the SIGIR 2026 Reproducibility Track paper (A Reproducibility Study of LLM-Based Query Reformulation)."
ogType="article"
>
<section class="!py-4">
<h1 class="text-3xl font-bold md:text-4xl">Cite QueryGym</h1>
Expand All @@ -43,10 +48,11 @@ const sigirBibtex = `@inproceedings{querygym2026reproducibility,
url="https://arxiv.org/abs/2511.15996"
/>
<CitationCard
title="Reproducing LLM-Based Query Reformulation Across Backends with QueryGym"
title="A Reproducibility Study of LLM-Based Query Reformulation"
venue="SIGIR 2026 — Reproducibility Track"
authors="Bigdeli, Hamidi Rad, Incesu, Arabzadeh, Clarke, Bagheri"
bibtex={sigirBibtex}
url="https://arxiv.org/abs/2604.27421"
/>
</div>
</section>
Expand Down
43 changes: 42 additions & 1 deletion reproducibility/site/src/pages/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,46 @@ const datasetCols = matrix.dataset_columns;
const beirCols = datasetCols.filter((d: any) => d.id.startsWith("beir-"));
const dlCols = datasetCols.filter((d: any) => !d.id.startsWith("beir-"));

// JSON-LD: Dataset schema for the leaderboard itself, linked back to the
// SoftwareApplication entry on querygym.com via sameAs. Helps Google build a
// richer search result + connect both surfaces in the knowledge graph.
const jsonLd = JSON.stringify({
"@context": "https://schema.org",
"@type": "Dataset",
name: "QueryGym Leaderboard",
description: "Reproducible benchmarks for LLM-based query reformulation across BEIR, MS MARCO DL, and DL-HARD — with click-to-reproduce commands for every result.",
url: "https://leaderboard.querygym.com/",
license: "https://www.apache.org/licenses/LICENSE-2.0",
isAccessibleForFree: true,
keywords: [
"query reformulation",
"large language models",
"information retrieval",
"BEIR",
"MS MARCO",
"TREC Deep Learning",
"reproducibility",
"leaderboard",
],
creator: {
"@type": "Organization",
name: "ls3-lab",
url: "https://querygym.com",
sameAs: ["https://github.com/ls3-lab"],
},
sameAs: [
"https://querygym.com",
"https://github.com/ls3-lab/QueryGym",
"https://arxiv.org/abs/2511.15996",
"https://arxiv.org/abs/2604.27421",
],
variableMeasured: [
"nDCG@10",
"Recall@100",
"Recall@1000",
],
});

// pre-build reproduce cmds for every (row, dataset) cell that has a run.
// Keyed by run_id so the same lookup powers all tabs.
const runsMap = runs as Record<string, any>;
Expand Down Expand Up @@ -71,7 +111,8 @@ function stepsFor(runId: string): Step[] | null {

<Default
title="Leaderboard"
description="QueryGym reproducibility leaderboard — query reformulation methods × LLMs × retrievers across IR benchmarks."
description="Reproducible benchmarks for LLM query reformulation. Click any row to see the exact commands that produced each score — methods × LLMs × retrievers (BM25, SPLADE++, BGE) across BEIR, MS MARCO DL, and DL-HARD."
jsonLd={jsonLd}
>
{populated && (
<header class="mb-3">
Expand Down
40 changes: 22 additions & 18 deletions web/site/src/components/CitationCard.astro
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,28 @@ interface Props {
const { title, venue, authors, bibtex, url } = Astro.props;
---

<article class="qg-card">
<div class="qg-pill">{venue}</div>
<h3 class="mt-3 text-lg font-semibold">{title}</h3>
<p class="mt-1 text-sm text-qg-fg-muted">{authors}</p>
{
url && (
<a
class="mt-2 inline-block text-sm font-medium text-qg-accent hover:underline"
href={url}
target="_blank"
rel="noopener noreferrer"
>
{url} ↗
</a>
)
}
<article class="qg-card flex flex-col">
<div>
<div class="qg-pill">{venue}</div>
<h3 class="mt-3 text-lg font-semibold">{title}</h3>
<p class="mt-1 text-sm text-qg-fg-muted">{authors}</p>
{
url && (
<a
class="mt-2 inline-block text-sm font-medium text-qg-accent hover:underline"
href={url}
target="_blank"
rel="noopener noreferrer"
>
{url} ↗
</a>
)
}
</div>

<div class="mt-4">
{/* mt-auto pushes the BibTeX block to the bottom so it aligns across cards
whose top content differs in height (the grid forces equal heights). */}
<div class="mt-auto pt-4">
<div class="flex items-center justify-between rounded-t-md border border-qg-border bg-qg-bg-soft px-3 py-1.5 text-xs text-qg-fg-muted">
<span class="qg-mono">BibTeX</span>
<button
Expand All @@ -37,7 +41,7 @@ const { title, venue, authors, bibtex, url } = Astro.props;
copy
</button>
</div>
<pre class="whitespace-pre-wrap break-words rounded-b-md border border-t-0 border-qg-border bg-qg-bg p-3 text-xs"><code class="qg-mono">{bibtex}</code></pre>
<pre class="min-h-56 overflow-auto whitespace-pre-wrap break-words rounded-b-md border border-t-0 border-qg-border bg-qg-bg p-3 text-xs"><code class="qg-mono">{bibtex}</code></pre>
</div>
</article>

Expand Down
4 changes: 2 additions & 2 deletions web/site/src/layouts/Default.astro
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ const navLinks = [
const fullTitle = `${title} — QueryGym`;
const metaDescription =
description ??
"QueryGym is an open-source toolkit for reproducible LLM-based query reformulation in information retrieval.";
"QueryGym is an open-source Python toolkit for reproducible LLM-based query reformulation in information retrieval — methods, prompts, and a public leaderboard across BEIR, MS MARCO DL, and DL-HARD.";
---

<!doctype html>
Expand Down Expand Up @@ -93,7 +93,7 @@ const metaDescription =
!bareHeader && (
<Header
title="QueryGym"
tagline="LLM-based query reformulation toolkit"
tagline="Open-source toolkit for reproducible LLM-based query reformulation."
links={navLinks}
/>
)
Expand Down
2 changes: 1 addition & 1 deletion web/site/src/pages/about.astro
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import Default from "../layouts/Default.astro";
---

<Default title="About" description="Who builds QueryGym, and why.">
<Default title="About" description="About QueryGym — the team and motivation behind an open-source toolkit for reproducible LLM-based query reformulation in information retrieval research.">
<section class="qg-section !py-12">
<h1 class="text-3xl font-bold md:text-4xl">About</h1>
<p class="mt-3 max-w-3xl text-qg-fg-muted">
Expand Down
Loading
Loading