Türkçe Akademik Kaynak Tarayıcı
Genel Bakış
Bu skill iki kanonik Türkçe akademik kaynaktan veri çeker:
- Tezara (
tezara.org) — YÖK Ulusal Tez Merkezi'nin temizlenmiş, filtrelenebilir, toplu indirme destekli arayüzü - DergiPark (
dergipark.org.tr) — Türkiye akademik dergi platformu, ULAKBIM altyapısı, Google Scholar uyumlu metadata
Temel prensip: Halüsinasyon sıfır. Skill yalnızca fetch'lenen URL'lerden gelen metadata ile çalışır. LLM'in hafızasından gelen hiçbir yazar/yıl/başlık/DOI kabul edilmez. Eksik alan varsa "veri yok" döner, asla uydurmaz.
Hızlı Referans
| Görev | Modül | Çıktı |
|---|---|---|
| Tezara'da tez ara | tezara/search.py | CSV + JSON |
| Tek tez metaveri çek | tezara/thesis_detail.py | JSON |
| Tezara PDF indir (izinli) | tezara/pdf_download.py | |
| DergiPark'ta makale ara | dergipark/search.py | CSV + JSON |
| Tek makale metaveri çek | dergipark/article_metadata.py | JSON |
| DergiPark BibTeX (resmi) | dergipark/citation_fetch.py | .bib |
| DergiPark RIS (resmi) | dergipark/citation_fetch.py | .ris |
| DergiPark PDF indir | dergipark/pdf_download.py | |
| BibTeX/CSL-JSON/RIS üret (Tezara) | shared/citation_export.py | .bib, .json, .ris |
| Tekrar tespiti | shared/deduplication.py | Filtrelenmiş liste |
| CrossRef doğrulama (opsiyonel) | shared/crossref_verify.py | Doğrulama raporu |
| Audit log | shared/audit.py | provenance.json |
Halüsinasyon-Sıfır Üç Katmanı
Katman 1 — Hard Rule
- Skill yalnızca gerçekten fetch edilen URL'lerden gelen metadata kullanır
- LLM'in hafızasından gelen hiçbir alan kabul edilmez
- Eksik alan =
null(uydurma yok) - Her atıfta
source_urlzorunlu - Tezara için: tez_no varsa metadata var, yoksa
null - DergiPark için:
citation_*meta tag yoksanull
Katman 2 — Çapraz Doğrulama (opsiyonel: --verify-crossref)
- Default: kapalı (DergiPark zaten temiz veri veriyor)
- DOI varsa → CrossRef API ile yazar/yıl/dergi tutarlılık kontrolü
- Tutarsızlık → flag + manuel inceleme uyarısı
- Tezara'da DOI olmadığı için bu katman sadece DergiPark için anlamlı
Katman 3 — Audit Log (her zaman aktif)
Her fetch işlemi için JSON kaydı:
{
"citation_id": "...",
"source_url": "https://tezara.org/theses/146683",
"fetched_at": "2026-05-05T...",
"raw_html_hash": "sha256:...",
"extracted_fields": {...},
"verification_status": "verified|partial|failed|skipped",
"pdf_downloaded": true,
"pdf_path": "...",
"license": "..."
}
Modüller
1. Tezara
Arama (tezara/search.py)
Strateji: HTML scraping + URL pattern.
URL Pattern:
tezara.org/search?q={kelime}
&languages={dil1,dil2}
&thesis-types={tür1,tür2}
&universities={üni1,üni2}
&subjects={konu1,konu2}
&advanced=true
Filtreler:
- Anahtar kelime (başlık + özet)
- Yıl aralığı
- Üniversite (tek veya çoklu)
- Tez türü (Yüksek Lisans, Doktora, Tıpta Uzmanlık, Sanatta Yeterlilik)
- Dil (Türkçe, İngilizce, Arapça, Kırgızca, vb.)
- Konu/Bilim Dalı
Çıktı: Tüm sonuçların CSV + JSON dökümü (YÖK 2000 sınırı yok).
Tez Detayı (tezara/thesis_detail.py)
URL pattern: tezara.org/theses/{tez_no}
Çekilen alanlar:
- Tez No (kanonik ID)
- Yazar
- Başlık (TR + EN)
- Danışmanlar (çoklu)
- Tez Türü
- Konular (TR + EN)
- Anahtar Kelimeler
- Yıl
- Dil
- Üniversite
- Enstitü
- Ana Bilim Dalı
- Bilim Dalı
- Sayfa Sayısı
- Özet (TR + EN)
- PDF URL (varsa)
- Benzer Tezler (5 öneri)
Boş alanlar: "Belirtilmemiş." → null olarak normalize edilir.
PDF İndirme (tezara/pdf_download.py)
- Tezara, PDF için YÖK'e yönlendiriyor:
tez.yok.gov.tr/UlusalTezMerkezi/TezGoster?key=... - Sadece izinli tezler indirilebilir (yazar izni vermişse)
- İzinsiz tez varsa → "PDF erişime kapalı" mesajı + metadata yine döner
- Rate limit: dosya başına 2 saniye gecikme
- Dosya adı:
tezara_{tez_no}_{yazar_soyad}_{yıl}.pdf
2. DergiPark
Arama (dergipark/search.py)
Strateji: HTML scraping + URL pattern.
URL Pattern:
dergipark.org.tr/tr/search?q={kelime}
§ion=articles
Tam eşleşme için q="kelime" (URL-encoded olarak %22kelime%22).
Makale Detayı (dergipark/article_metadata.py)
URL pattern: dergipark.org.tr/tr/pub/{dergi}/article/{id}
Strateji: Google Scholar uyumlu citation_* meta tag parse
Çekilen alanlar (zengin metadata):
- DOI (
citation_doi) - Başlık (
citation_title) - Yazarlar — çoklu (
citation_author) - Yazar kurumu (
citation_author_institution) - Yazar ORCID (
citation_author_orcid) - Dergi (
citation_journal_title) - ISSN (
citation_issn) - Cilt, Sayı, İlk Sayfa, Son Sayfa
- Yayın Tarihi (
citation_publication_date) - Anahtar Kelimeler (TR + EN)
- Dil (
citation_language) - Yayıncı (
citation_publisher) - PDF URL (
citation_pdf_url) - Özet (TR + EN,
citation_abstract) - Kaynaklar — çoklu (
citation_reference) - Makale Türü (Araştırma/Derleme/vb.)
- Erken görünüm, gönderilme, kabul tarihleri
- Lisans (CC BY-NC vb.)
- Cited By listesi (DOI'leriyle)
- Crossref atıf sayısı
Yedek parse kaynağı: Dublin Core (DC.*) meta tag'leri (OAI-PMH uyumlu).
Atıf Export (dergipark/citation_fetch.py)
ALTIN ÖZELLİK: DergiPark'tan resmi atıf export.
Endpoint'ler:
- BibTeX:
/tr/download/article-cite-file/{id}/type/2 - RIS:
/tr/download/article-cite-file/{id}/type/6
Bu endpoint'ler hazır, doğrulanmış atıf dosyaları döner. Skill bu dosyaları olduğu gibi alır, ek işlem yapmaz. Halüsinasyon imkânsız.
PDF İndirme (dergipark/pdf_download.py)
- DergiPark çoğunlukla CC BY-NC lisansı (açık erişim)
- PDF URL:
citation_pdf_urlalanından gelir - Dosya adı:
dergipark_{dergi}_{yıl}_{yazar_soyad}_{id}.pdf - Rate limit: dosya başına 2 saniye gecikme
- Lisans bilgisi audit log'a kaydedilir
3. Ortak Modüller (shared/)
Atıf Çıktısı (citation_export.py)
Yalnızca Tezara için atıf üretimi (DergiPark zaten resmi endpoint sunuyor).
Formatlar:
- BibTeX (
.bib) — Zotero, Mendeley için - CSL-JSON (
.json) — Pandoc, citeproc için - RIS (
.ris) — EndNote için - APA7 (Türkçe + İngilizce metin)
- Chicago (footnote stili)
Tezara için BibTeX entry türü: @phdthesis veya @mastersthesis.
Tekrar Tespiti (deduplication.py)
- DOI bazlı (kesin eşleşme) — DergiPark için
- Tez no bazlı — Tezara için
- Başlık + yazar + yıl bazlı (fuzzy matching, RapidFuzz) — fallback
- DergiPark + Tezara karma listede aynı yazarın benzer çalışması tespit edilir
CrossRef Doğrulama (crossref_verify.py) — opsiyonel
- Default: kapalı
--verify-crossrefflag ile aktif- DOI bazlı yazar/yıl/dergi/sayfa kontrolü
- Tutarsızlık raporu üretir
Audit Log (audit.py)
Her oturum için provenance_<timestamp>.json üretir. Her fetch işlemi için satır eklenir.
Kullanım Örnekleri
Örnek 1: Climate Justice için Tezara'dan tez taraması
"Tezara'da iklim adaleti ve çevresel adalet üzerine 2015-2024 arası
yazılmış doktora tezlerini bul, BibTeX olarak ver, izinli olanların
PDF'lerini indir"
Örnek 2: SGDB Directors için DergiPark'tan sürdürülebilir finans
"DergiPark'ta sürdürülebilir kalkınma ve finansman üzerine son 5 yılda
yayınlanmış makaleleri tara, APA7 atıf listesi hazırla, PDF'leri indir"
Örnek 3: Bibliometric çalışma için karma kaynak
"Türkşeker projesi için 'şeker sektörü' anahtar kelimesiyle hem Tezara
hem DergiPark'ı tara, tekrarları temizle, Excel + BibTeX ver"
Örnek 4: TÜBİTAK 1001 başvurusu için literatür
"DergiPark'ta 'duygu analizi Türkçe' aramasıyla 2020 sonrası makaleleri
çek, CrossRef ile doğrula, APA7 listesi hazırla, audit log dahil"
Workflow Şablonları (examples/)
bibliometric_workflow.md— Tam bibliometric analiz adımlarıprisma_workflow.md— PRISMA sistematik tarama akışıtubitak_basvuru_workflow.md— TÜBİTAK 1001 atıf hazırlamakarma_kaynak_workflow.md— Tez