gsoc-2026
GSoC 2026 Week 14
The final week of Google Summer of Code 2026. I summarised all four benchmark experiments in a progress report and an interactive presentation, and deployed kgproxy — a lightweight SPARQL proxy — on AWS with an Elastic IP, solving the VPN access problem that had blocked the website's live data features since Week 8.
14 Aug 21, 2026 – Aug 28, 2026
Week 14 was the closing chapter of GSoC 2026. The four benchmark experiments — Issues #3 through #6 — had given me a full empirical picture of how different LLM strategies perform on the Amharic property mapping task. My job for this final week was to communicate those results clearly: a structured progress report, an interactive 12-slide presentation for mentors and the broader DBpedia community, and a deployed infrastructure piece that removes the last major technical blocker for the Amharic DBpedia website's interactive features.
The progress report
I wrote PROGRESS_REPORT.md in the LLMIntegration repository as a nine-section
document covering everything from the problem statement to the final cross-experiment
comparison, aimed at someone familiar with NLP but not necessarily with DBpedia or Amharic:
it introduces the task with concrete Ge'ez script examples, explains the mathematical
foundations of the cosine similarity retriever and the fuzzy accuracy metric, and presents
all four experiment results in tables alongside plain-language interpretations.
The report also includes a cost-versus-accuracy trade-off analysis: larger models and more complex strategies give higher accuracy, but the gains shrink each step. The ensemble of five members (Issue #6) hits the highest measured accuracy at 67.62%, but adds roughly 15× the inference cost of a single zero-shot call. For a production pipeline that needs to process every Wikipedia dump, that trade-off matters.
Benchmark results across all four experiments
| Experiment | Best method | Accuracy |
|---|---|---|
| Issue #3 — Baseline | Afro-XLM-R + 5-shot Qwen 2.5 (7B) | 62.4% |
| Issue #4 — Prompt Engineering | ChainOfThought + 5-shot | 64.5% |
| Issue #5 — Translation | Augmented retrieval (Amharic + English) | 65.2% |
| Issue #6 — Ensemble | Majority vote over 5 members | 67.6% |
I don't read the 67.62% ceiling on Issue #6 as a failure — it's a measurement. It tells me exactly where the current approach tops out and what the next phase of work needs to target: better-quality training data for few-shot examples (curated, diverse demonstrations rather than random samples), a retriever fine-tuned on the Amharic DBpedia vocabulary rather than a general-purpose multilingual encoder, and fixing the extraction framework bugs so the ground truth labels themselves are more reliable.
The presentation
Alongside the written report, I published a 12-slide interactive presentation on this portfolio website called Multilingual LLM Benchmarking. The slides walk through the problem statement, the pipeline architecture, the mathematical foundations, and all four experiment results, with animated bar charts and data tables that make the cross-experiment comparison easy to read at a glance.
I designed it to be self-contained: someone watching without any DBpedia or Amharic background should understand the problem and the results by the final slide. Every slide has a specific purpose — nothing purely decorative — and the information density matches what you can absorb in about thirty seconds per slide at a normal presentation pace.
kgproxy: solving the VPN problem
Since Week 8, a recurring blocker for the Amharic DBpedia website was the VPN requirement for the SPARQL endpoint. The internal endpoint is only accessible from within the institutional network, so the public website — hosted on GitHub Pages as static files — couldn't make live SPARQL queries to it. Every interactive feature that depended on real data was either faked with static snapshots or just deferred.
The endpoint failing from outside the VPN wasn't a one-off outage — it was the default state for any caller without institutional network access, and it kept coming back as a blocker every time a new feature needed real data. That's what pushed me to read James Hamilton's "On Designing and Deploying Internet-Scale Services" (LISA '07), whose first design tenet is design for failure: expect a dependency to be unreachable at any time and build the calling side to handle that, instead of treating it as an edge case. So instead of waiting on DBpedia to change how the endpoint is hosted, I built a small piece of infrastructure on the calling side that assumes the endpoint can be unreachable and works around it.
kgproxy solves this by acting as an authenticated intermediary. It runs inside the VPN (on an EC2 instance peered into the institutional network) and exposes a public HTTP endpoint for SPARQL queries. Any client — including a JavaScript function running in a visitor's browser on the Amharic DBpedia website — can send a SPARQL query to kgproxy's public URL and get a response back, no VPN credentials needed.
Elastic IP on AWS EC2
kgproxy runs on a t3.micro EC2 instance with an Elastic IP address, giving it a stable public endpoint that doesn't change across restarts. Any caller with the URL can submit a SPARQL query without institutional VPN credentials.
SPARQL forwarding proxy
Incoming SPARQL queries are validated, forwarded to the internal Amharic DBpedia endpoint with the appropriate authentication headers, and the response is returned to the caller. The proxy adds CORS headers so that browser-based clients (like the Amharic DBpedia website) can call it directly.
Rate limiting
Basic rate limiting prevents the proxy from being used as an open relay for arbitrary SPARQL traffic. Requests over the per-minute threshold receive a 429 response, protecting the internal endpoint from accidental or malicious overload.
Open-source and self-hostable
The proxy code is published at github.com/Nama21yo/kgproxy under an MIT licence. Any DBpedia language chapter facing the same VPN-access problem can deploy their own instance against their own endpoint in under ten minutes.
The kgproxy repository is at github.com/Nama21yo/kgproxy. Deploying it this week unblocked the interactive data features on the Amharic DBpedia website and proved that the VPN problem, while real, was solvable with a small piece of infrastructure rather than a change to the DBpedia endpoint itself.
Looking back and forward
Fourteen weeks is a short time to make measurable progress on a genuinely hard problem: building a pipeline that maps low-resource-language text to a large, structured ontology with limited training data, limited GPU access for most of the summer, and a base infrastructure (the extraction framework) that needed debugging before I could trust it. The benchmarks showed the two-stage retrieve-then-rerank approach works — the best ensemble hits 67.62% accuracy on a 279-example test set — and the experiments told me which levers move accuracy most reliably: better few-shot examples, chain-of-thought reasoning, and cross-lingual signal from Amharic-to-English translation.
The extraction framework work produced seven formally filed bug reports that are concrete, actionable improvements to how DBpedia processes Amharic Wikipedia content. The kgproxy deployment solved an infrastructure problem that had been blocking the public website for six weeks. And the template mappings I added throughout the summer incrementally grew the fraction of Amharic Wikipedia content that DBpedia can represent as structured Linked Data.
The work isn't finished — the extraction framework bugs are upstream fixes waiting to be merged, the LLM pipeline has a ceiling that better training data and a fine-tuned retriever should be able to raise, and the Amharic DBpedia graph has a long way to go before it gets close to the coverage of its English counterpart. But the summer left a foundation behind: documented, reproducible, and open-source, ready for whoever picks it up next.