Research field map

Starting from the research topic, combining AI semantic clustering with the OpenAlex global academic database,
helping Students explore supervisors and research directions

Design Goals

When students are deciding on a research direction or looking for a supervisor, they often do not know "which research fields are available" or "which lecturers are working on what research". The traditional approach is to browse each department's website one by one, which is time-consuming and makes cross-institution comparison difficult.

The Research Field Map provides two-stage exploration: first narrow down from a broad topic, then delve into specific instructors and papers. It combines Uedu’s own data with the OpenAlex global academic database, allowing students’ horizons to extend beyond a single platform.

Three-stage framework

Phase A: topic index and paper search

Aggregate the research keywords of all opt-in Instructors and present them as a tag cloud. Supports cross-Instructor paper search (title and abstract), and listing all related Instructors by topic.

FeatureData sourceDescription
Topic tag cloudresearch_profiles.research_keywordsSort by number of Teachers and show the number of new Students accepted
Paper searchresearch_publicationsLIKE matches title and summary
Find Instructors by topicresearch_keywords + research_bioUp to 5, no ranking by score

Phase B: public teacher profiles and visualisation pages

Each opt-in Instructor has a public profile page (/advisor/profile/). Displays research profile, keywords, full publication list, ORCID and Google Scholar links.

The Research Field Map (/advisor/map) integrates three sections: a topic tag cloud, paper search (dual tab), and instructor list.

Teacher opt-in mechanism

Uedu-certified instructors are not included automatically; instead, instructors must actively complete a research profile and set is_recruiting=1. This is the most fundamental ethical design in the entire system:

ORCID paper synchronisation

After entering an ORCID in their personal research profile, Instructors can click "Sync publications from ORCID". The system runs in the background:

Synchronous process

  1. Call the ORCID Public API https://pub.orcid.org/v3.0/<orcid>/works to retrieve the list of works
  2. Fetch works metadata in batches (100 records per batch) (put-code batch query)
  3. Write to / update the teachers_publications table, using put_code as the primary key for deduplication
  4. Runs in a background thread, without blocking HTTP requests; front-end polling for progress

Automatically retry network errors for 429 / 503 / with exponential backoff 3 times (_orcid_get_with_retry). ORCID provides only metadata (title, authors, year, DOI); if a full abstract is needed, it must still be added manually by the Instructor or parsed subsequently from the DOI.

Instructors can manually hide specific publications on the profile page (POST /api/advisor/publications/<id>/toggle_hidden), or delete them (DELETE /api/advisor/publications/<id>). Hidden publications will not appear in the public profile or recommendation results, but records are retained so that the Instructor may restore them later.

Phase C: semantic clustering

Automatically generate embeddings for papers every day (text-embedding-3-small), then use k-means clustering and have the LLM name the clusters.

StepTechnology
1. Thesis embeddingOpenAI text-embedding-3-small (1536 dimensions)
2. Instructor vectorThe L2-normalised average of all papers embedding for that Instructor
3. Clusteringscikit-learn KMeans(k = max(2, min(8, N//3)))
4. NamingGPT-4o-mini generates tags and descriptions from cluster representative paper titles

Recommendation algorithm (Phase 1)

At present, recommend_potential_advisors uses keyword LIKE matching; the design principle is 'explainable, auditable':

StepDescription
1. Parsing student interest keywordsLLM extracts keywords from the conversation (for example, "EEG" and "learning analytics")
2. Keyword hit scoringUse LIKE matching against research_keywords and research_bio; add 1 point for each matched keyword
3. Rewards for new student enrolmentsis_recruiting=1 adds an extra +1 point
4. Top 5 selectionSort by score and return up to 5 teachers
5. Hit rationale included'Why recommended' for each Instructor: list the matched keywords in detail

Response must include a reminder

When the AI TA replies with recommendations, it must end with: 'This is only a preliminary suggestion; please read the paper first and then email the Instructor to discuss it.' This is a mandatory requirement in the code of ethics, designed to prevent Students from treating AI recommendations as Instructor endorsement, and to encourage genuine academic dialogue rather than mechanical matching.

Phase 2 planning: switch to paper embeddings for semantic retrieval, solving the problem that LIKE cannot handle synonyms (“deep learning” vs. “neural networks”). See .claude/logs/advisor-match-proposal.md for the detailed design.

OpenAlex external paper search

When Uedu's own data is insufficient (for example, there are currently few opt-in instructors), the system simultaneously queries the OpenAlex global scholarly database (indexing over 240 million papers), currently limited to institutional authors from five countries.

CountryISO Code
Taiwantw
Singaporesg
Japanjp
South Koreakr
Chinacn

Note: Taiwan (tw) and China (cn) are two independent countries.

The query result is cached for 7 days (external_papers_cache table) to avoid repeated API calls.

Ethical design

Student exploration flow

1

Browse topics

Find a research direction of interest in the tag cloud or semantic clusters on the research area map

2

View Instructor list

Tap a topic to expand all related instructors, and view their keywords, number of papers, and whether they are accepting new students

3

In-depth archive research

Tap an instructor's name to enter the public profile page and read the research introduction and full list of papers (including abstracts)

4

Proactive contact

After reading 1–2 paper abstracts, write to the instructor to discuss it, so the instructor knows you have done your homework

AI TA integration

Students can also explore directly with natural language in ClassroomGPT or Aida Learning Companion:

Student asksTools called by AI
'What research topics are available on Uedu?'list_advisor_research_topics
"Which teachers are doing learning analytics?"find_advisors_by_topic → search_external_papers(fallback)
"Has anyone recently published a paper on EEG teaching?"search_advisor_papers → search_external_papers(fallback)
"What research does Chia-Kai Chang do?"list_uedu_team_papers
'Looking for a project supervisor'recommend_potential_advisors

AI first searches Uedu internal data; if that is insufficient, it automatically checks external OpenAlex data, and clearly distinguishes the two sources in its reply.

Public API

EndpointDescriptionLogin required
GET /api/advisor/topicsList of research topics (sorted by number of Instructors)No
GET /api/advisor/search_papers?q=...Search papers by Uedu certified instructorsNo
GET /api/advisor/by_topic?topic=...Find Instructors by topicNo
GET /api/advisor/external_search?q=...Search OpenAlex external papersNo
GET /api/advisor/public_profile/{id}Teacher public research filesNo
GET /api/advisor/clustersSemantic research group listNo
GET /api/advisor/cluster/{id}/advisorsTeachers under the groupNo
Enter the research area map Return to the documentation centre