mcpField
A
alterlab-yok-akademik

alterlab-yok-akademik

github.com/alterlab-ieu生产力7857 次安装5 周前更新
代码仓库

关于 alterlab-yok-akademik

面向研究人员和学术管理工作的技能,用于查询土耳其学者在 YÖK Akademik 登记的现职、职称、院系、项目、论文及指导的学位论文。它依赖门户网页抓取,要求核实同名候选人,不能替代全文检索或职业资格评分。

主要功能

  1. 01按姓名查找学者档案
  2. 02核对机构、院系与职称
  3. 03查看门户登记的项目与出版物
  4. 04列出指导的硕士和博士论文
  5. 05处理土耳其姓名变体

适用场景

  1. 01核实作者当前所属机构
  2. 02查询学者的职称和院系
  3. 03整理研究项目与出版记录
  4. 04查找学者指导的学位论文

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-yok-akademik

安装后在 Claude Code 中输入/alterlab-yok-akademik确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
references/
affiliation_verification.md
endpoints.md
turkish_names.md
scripts/
yok_akademik.py

详细介绍

YÖK Akademik — 官方土耳其学者档案与任职信息查询

YÖK Akademik(Yükseköğretim Kurulu Akademik——土耳其高等教育委员会学术搜索门户)是查询土耳其学者官方当前任职单位的权威来源。它由 YÖKSİS(国家高等教育信息系统)提供支持,因此对于土耳其机构,其信息比 ORCID 或 OpenAlex 中滞后且零散的任职信息更可靠。

此技能可根据姓名查找官方记录:当前的 kurum(机构)、fakülte/bölüm(学院/系)、unvan(学术职称,例如 Prof. Dr.、Doç. Dr.、Dr. Öğr. Üyesi),以及门户中列出的该人员的出版物、研究 projeler(项目)和 danışmanlık yapılan tezler(指导的论文)。

没有公开的 JSON API。 akademik.yok.gov.tr/AkademikArama/ 门户是一个由服务器渲染的 Java/JSP 应用。唯一途径是礼貌地抓取其已验证端点中的 HTML。请将每条记录视为权威但经抓取获取的信息:在确认任职信息前,先请用户确认候选匹配结果。

何时使用此技能

在以下请求中使用此技能:

  • 核实土耳其学者当前的机构/任职信息(用于作者署名、推荐信、项目团队或编委会核查)。
  • 按姓名在 YÖK Akademik 上查找/查询研究人员。
  • 查看某人的官方 unvan(职称)及学院/系。
  • 列出某人指导过的论文(硕士/博士),并附上学生、年份和机构。
  • 将此人的门户所列出版物或研究项目作为初步资料集。
不适用情况

将以下相关请求转交给相应的同级技能,不要在此处回答:

实际请求内容……改用
大学/专业录取统计数据——kontenjan、taban puan、başarı sırası、yerleşenalterlab-yokatlas
阅读或引用国家档案库(Ulusal Tez Merkezi)中的论文全文/摘要alterlab-yok-tez
搜索国家期刊托管平台 DergiParkalterlab-dergipark
查询某期刊是否被 TR Dizin(国家引文索引)收录alterlab-trdizin
补充/核实出版物元数据(DOI、引用次数、合著者)alterlab-openalex
核查被引用论文是否实际存在(虚构引用)alterlab-citation-verifier
根据出版物清单计算 doçentlik(副教授资格)资格分数alterlab-docentlik-eligibility
计算 akademik teşvik(学术激励)分数alterlab-akademik-tesvik

YÖK Akademik 回答的是“这位学者的官方身份是什么,目前在哪里任职?”它不会评判研究质量、计算职业晋升分数,也不会获取论文全文。

已验证的端点(无需 API 密钥)

所有端点均位于基础地址 https://akademik.yok.gov.tr/AkademikArama/ 下。没有 有文档记录的 JSON API;这些都是 HTML/JSP 页面。各端点的完整映射、参数和验证状态请参阅 references/endpoints.md。

步骤端点返回内容
按姓名搜索使用 aramaTerim=<name>&islem=1&…Checkbox=on 向 AkademisyenArama 发送 POST 请求 → 类别页面 → 点击其中的 Akademisyenler 链接 → view/searchResultviewListAuthor.jsp候选行:姓名、职称、大学、学院/系,以及包含不透明 authorId 的个人资料链接
个人资料/选择作者AkademisyenGorevOgrenimBilgileri?islem=direct&authorId=<id> → 呈现 view/viewAuthor.jsp此人的页眉信息:当前机构、学院、系、职称、ORCID/电子邮件徽章。此 GET 请求还会在会话中注册作者(如果未执行此请求,下面的标签页会返回 500)。
项目AkademisyenProjeBilgileri?authorId=<id>门户列出的研究项目(AB/TÜBİTAK/araştırma …)
出版物AkademisyenYayinBilgileri?pubType=<token>&authorId=<id>分类标签页(Kitaplar/Makaleler/Bildiriler)。pubType 必填且不透明——从个人资料页面获取对应令牌(pubType 为空时 → HTTP 418)
指导的论文AkademisyenYonTezBilgileri?authorId=<id>Danışmanlık tezleri:标题、学生、级别、年份、机构

authorId 是一个不透明值(16 位十六进制字符令牌,例如 006B496E5F3E4EE2)——切勿自行构造或猜测;只能使用从实时搜索结果中获取的 ID。必须使用 Cookie 会话:辅助脚本会先请求门户根路径,让服务器设置搜索 POST 请求所需的 JSESSIONID(不带会话的 POST 请求会返回 HTTP 500)。

工作流

1. 规范化姓名并搜索

土耳其语大小写规则很容易出错:İ→i 和 I→ı 并不是 ASCII 折叠。请使用用户提供的原始姓名(正确编码为 UTF-8)进行搜索,同时也尝试折叠变音符号后的形式,这样 "Cağrı"、"Cagri" 和 "Çağrı" 都能匹配到同一个人。辅助脚本会同时尝试这两种形式。关于 İ/ı、Ş/ş、Ğ/ğ、Ç/ç、Ö/ö、Ü/ü 的具体规则及匹配策略,请参阅 references/turkish_names.md。

uv run python skills/turkish-academia/alterlab-yok-akademik/scripts/yok_akademik.py \
    search "Ayşe Yılmaz"

此命令会返回候选列表(默认输出美化后的 JSON;添加 --json 可输出紧凑的单行结果)。每个候选项都包含其 authorId、姓名和职称。

2. 与用户确认身份

常见姓名会匹配到很多人。请将候选项整理成表格—— 姓名 · 职称 · 大学 · 学院/系——并询问用户要选哪一位(或请用户确认预期的机构)。不要默默选中第一行并断言其所属机构;这正是导致署名或信函出错的做法。

3. 获取所选人员的个人资料/项目/论文/出版物

传入的 authorId 必须来自实时搜索结果行。每个按作者查询的命令都会先打开个人资料(在会话中选定作者),然后再获取对应标签页——辅助脚本会为你处理这一过程。

# Profile header (affiliation, unvan)
uv run python .../scripts/yok_akademik.py profile  --author-id <authorId>

# Research projects (AB / TÜBİTAK / araştırma …)
uv run python .../scripts/yok_akademik.py projects --author-id <authorId>

# Supervised theses
uv run python .../scripts/yok_akademik.py theses   --author-id <authorId>

# Portal-listed publications (typed tabs: Kitaplar / Makaleler / Bildiriler)
uv run python .../scripts/yok_akademik.py pubs     --author-id <authorId>
4. 报告结果——并说明信息来源

报告所属机构时,请说明信息来自 YÖK Akademik(YÖKSİS),并注明日期,因为人员可能会调动。如果抓取失败或门户返回了 302/500(这种情况偶尔会发生),请如实说明,并改用 WebFetch 查询搜索页面——切勿凭记忆编造所属机构、authorId、标题或论文信息。

礼貌与稳健性规则

该门户是没有 API 的公共服务;请温和抓取。

  • 使用一个描述性 User-Agent;限制请求频率(请求间隔约 1–2 秒);遇到常见的临时性 302/500 响应时,先采用退避策略重试,再放弃。
  • 在同一会话中缓存结果,避免反复请求相同的 authorId。
  • 脚本优先使用 requests + BeautifulSoup;如果缺少 BeautifulSoup,则降级为使用标准库 html.parser 提取内容,确保在精简的 uv 环境中也能运行。
  • 完全失败时,输出结构化的 {"status": "unavailable", ...} 记录,并提供手动查询说明;绝不编造个人资料。

报告前自查

  • 我使用的 authorId 是通过实时搜索获得的,还是猜的?(绝不猜测。)
  • 如果有多个候选人与姓名匹配,我是否进行了消歧?
  • 我报告的所属机构是否注明归属YÖK Akademik / YÖKSİS,并附有日期?
  • 用户实际想要的是招生统计信息(alterlab-yokatlas)或论文全文(alterlab-yok-tez)吗?请重新检查“不会触发”的表格。
  • 如果门户无法访问,我是否如实说明,而不是凭记忆填补信息?

参考资料

属于 AlterLab Academic Skills 套件。

评论

支持 Markdown