hamzabagirsakci/turkish-court-decisions

Dataset

141

stars

5

commits

Sep 2, 2026

updated

anayasa-mahkemesi
case-law
court-decisions
danistay
hukuk
ictihat
law
legal
türkçe
turkish
yargitay

README

Türk İçtihat Korpusu — 11.045.085 Mahkeme Kararı

Türkiye'nin kamuya açık mahkeme kararlarından derlenmiş, bilinen en büyük Türkçe hukuk metni veri seti. 11.045.085 karar, 31.5 milyar karakter düz metin (5.52 GB Parquet), 1962'den 2026'ya. Yargıtay, Danıştay, Anayasa Mahkemesi ve UYAP Emsal üzerinden yerel/istinaf mahkemeleri.

Kapsam

KaynakKarar sayısıYıl aralığıMetinDosya
Yargıtay (yargitay)9.820.1451997–202619.5 milyar karakter17
Danıştay (danistay)386.6081965–20263.3 milyar karakter2
UYAP Emsal (emsal)815.7022017–20268.1 milyar karakter9
AYM Norm Denetimi (aym_norm)5.5631962–2026127 milyon karakter1
AYM Bireysel Başvuru (aym_bb)17.0672012–2026374 milyon karakter1
Toplam11.045.0851962–202631.5 milyar karakter30

Kaynakların kendi arama sistemleri toplam 11.125.621 künye bildiriyor. Bunun 11.124.305 tanesi indirilebildi (%99.99); erişilemeyen 1.226 belge (%0.011), kaynak sistemin iki tur yeniden denemeye rağmen tutarlı biçimde boş döndürdüğü kayıtlardır. İndirilenlerden 79.220 kayıt çöp yanıt ya da mükerrer olduğu için ayıklandı (aşağıdaki Temizlik bölümü); geriye 11.045.085 tekil karar kaldı.

Kullanım

from datasets import load_dataset

# Tamamı (streaming önerilir — 5.52 GB indirme)
ds = load_dataset("hamzabagirsakci/turkish-court-decisions", split="train", streaming=True)

# Tek kaynak
yargitay = load_dataset("hamzabagirsakci/turkish-court-decisions", "yargitay", split="train")

# Tek dosya (hızlı deneme)
import pyarrow.parquet as pq
tbl = pq.read_table("data/aym_norm/train-00000-of-00001.parquet")

Şema

AlanTipAçıklama
idstring{kaynak}:{document_id} — veri seti genelinde tekil
sourcestringyargitay · danistay · emsal · aym_norm · aym_bb
document_idstringKaynak sistemdeki kimlik (yeniden çekim için)
courtstringDaire / bölüm / mahkeme adı
esas_nostringEsas numarası (2016/57111)
karar_nostringKarar numarası (2023/6863)
karar_tarihistringISO YYYY-MM-DD (kaynaklar arası normalize edildi)
year, monthint16 / int8Karar dönemi (bölümleme anahtarı)
textstringKararın tam metni
text_lenint32Karakter sayısı
masked_countint16Metinde [TCKN] · [IBAN] · [KART] · [TELEFON] · [EPOSTA] etiketiyle maskelenmiş tanımlayıcı sayısı
raw_sha256stringKaynak HTML'in hash'i — tekilleştirme / doğrulama için
mevzuat_atiflist[string]Kararın dayandığı mevzuat, kanunNo/maddeNo (5237/62)
mevzuat_konulist[string]Yargıtay'ın kendi konu indeksi — aşağıdaki uyarıya bakın

Mevzuat atıfı ile arama

ds = load_dataset("hamzabagirsakci/turkish-court-decisions", "yargitay", split="train")
tck62 = ds.filter(lambda r: "5237/62" in r["mevzuat_atif"])

mevzuat_atif iki yoldan üretilir ve ikisi de tahmin içermez:

  1. Kanun numarası metinde yazıyorsa doğrudan alınır — "5237 sayılı Türk Ceza Kanunu'nun 62. maddesi" → 5237/62.
  2. Kanun numarası yoksa, yalnızca kısaltmanın hangi kanunu gösterdiği ölçülmüşse çözülür. Ölçüm: 398.014 kararda kanun numarası ile kısaltmanın birlikte yazıldığı 213.444 yer sayıldı.
Kısaltma→ KanunÖlçülen kesinlikÖrnek
HMK6100%99,9122.816
CMUK1412%99,7453.197
HUMK1086%99,736.627
CMK5271%99,7058.410
TBK6098%99,541.093
TMK4721%99,461.860

Çözülmeyenler. TCK (→5237 %85,6), BK (→818 %93,6), TTK (→6102 %63,4) ve TCY (→5237 %59,5) eşiği (%99) geçemediği için atıf üretilmez. Sebep hukukun kendisi: suç veya olay tarihindeki kanun uygulandığından, 2020 tarihli bir karar pekâlâ mülga 765 sayılı TCK'ya dayanabiliyor. Karar tarihine bakarak tahmin etmek CMK ailesinde %61,9'a varan oranda yanılırdı. Bu atıflar metinde duruyor; sadece yapısal alana taşınmıyor.

mevzuat_konu neden ayrı. Eski Yargıtay kararlarının başında makine üretimi bir künye satırı var (765 S. TÜRK CEZA KANUNU [ Madde 59 ]). Bu satır eski kararları güncel mevzuata eşliyor: 2000 tarihli bir kararın künyesinde 2002'de yürürlüğe giren 4721 sayılı Medeni Kanun yazarken, kararın gövdesi çıplak "MK.nun 931. maddesi" diyor. Yani künye kararın uyguladığı kanunu değil, bugünkü karşılığını gösteriyor — atıf değil, konu indeksidir. Bu yüzden ayrı sütunda ve yalnızca eski kararlarda dolu.

Hukuki dayanak

Mahkeme kararları Türkiye'de telif korumasında değildir. FSEK m.31, resmen yayımlanan kazai kararların çoğaltılmasını, yayılmasını ve işlenmesini açıkça serbest bırakır. Bu, Anayasa m.141'deki yargılamanın aleniyeti ilkesi ve m.26–28'deki ifade/bilim hürriyeti ile birlikte okunduğunda, kararların tam metin olarak herkes tarafından yayınlanabileceği anlamına gelir.

Ayrıntılı tartışma için: Kemal Gözler, Mahkeme Kararlarının Yayınlanması Sorunu, anayasa.gen.tr.

Veri seti CC0-1.0 ile sunulur: kararların kendisi zaten kamu malıdır, derleme üzerindeki haklardan da feragat edilmiştir.

Nasıl toplandı

Kararlar ilgili kurumların kamuya açık arama sistemlerinden alındı (Yargıtay Karar Arama, Danıştay Emsal Karar, UYAP Emsal, AYM Kararlar Bilgi Bankası). Toplama, hedef sistemleri yormamak için oran sınırlı ve AIMD geri çekilmeli bir tarayıcıyla, ay bazlı pencerelere bölünerek yapıldı; her pencere tamamlanana kadar uzlaştırıldı (reconcile), böylece sessiz veri kaybı önlendi.

Ham HTML'den metne dönüşüm kaynak-farkındadır: Danıştay kararları sayfa şablonunun içinde HTML-escape'li gömülü olduğundan ayrı çözülür, AYM kararları Word'den export edilmiş yapıdadır. Blok yapısı (paragraflar) korunur, sayfa iskeleti atılır.

Temizlik — ne çıkarıldı

Ham toplama 11.124.305 kayıt üretti; yayınlanan 11.045.085. Aradaki fark:

NeKaçNeden
Çöp yanıt6.779Kaynak sistem, karar yerine HTTP 200 ile bot-kontrol ekranı veya hata sayfası döndürmüş. Tamamı Danıştay'da; sabit metinli, ~120 karakterlik sayfalar.
Mükerrer72.441Aynı karar farklı document_id ile birden çok indekslenmiş. (kaynak, daire, esas_no, karar_no) anahtarında tekilleştirildi; kopyalardan en uzun metinli olan tutuldu (bazı kopyalar yarım çekilmiş).

Bu ayıklama olmadan veri setinde ~6.779 adet "karar" aslında hata sayfası olurdu. Kısa kararlar çöp değildir ve korunmuştur.

Atıf

CC0 olduğu için atıf zorunlu değildir, ama yararlı olursa memnun oluruz:

@misc{turk_ictihat_korpusu,
  title  = {Türk İçtihat Korpusu: 11.045.085 Türk Mahkeme Kararı},
  author = {Bağırsakçı, Hamza},
  year   = {2026},
  url    = {https://huggingface.co/datasets/hamzabagirsakci/turkish-court-decisions},
  note   = {CC0-1.0}
}

Sorumluluk reddi

Bu veri seti araştırma ve geliştirme içindir. Hukuki tavsiye değildir ve resmî kaynak yerine geçmez. Bir karara dayanmadan önce ilgili kurumun kendi sisteminden doğrulayın. Metinler kaynağından alındığı hâliyle sunulur; doğruluk veya güncellik garantisi verilmez.

Contributors

hamzabagirsakci/turkish-court-decisions

Dataset

141

stars

5

commits

Sep 2, 2026

updated

anayasa-mahkemesi
case-law
court-decisions
danistay
hukuk
ictihat
law
legal
türkçe
turkish
yargitay

README

Türk İçtihat Korpusu — 11.045.085 Mahkeme Kararı

Türkiye'nin kamuya açık mahkeme kararlarından derlenmiş, bilinen en büyük Türkçe hukuk metni veri seti. 11.045.085 karar, 31.5 milyar karakter düz metin (5.52 GB Parquet), 1962'den 2026'ya. Yargıtay, Danıştay, Anayasa Mahkemesi ve UYAP Emsal üzerinden yerel/istinaf mahkemeleri.

Kapsam

KaynakKarar sayısıYıl aralığıMetinDosya
Yargıtay (yargitay)9.820.1451997–202619.5 milyar karakter17
Danıştay (danistay)386.6081965–20263.3 milyar karakter2
UYAP Emsal (emsal)815.7022017–20268.1 milyar karakter9
AYM Norm Denetimi (aym_norm)5.5631962–2026127 milyon karakter1
AYM Bireysel Başvuru (aym_bb)17.0672012–2026374 milyon karakter1
Toplam11.045.0851962–202631.5 milyar karakter30

Kaynakların kendi arama sistemleri toplam 11.125.621 künye bildiriyor. Bunun 11.124.305 tanesi indirilebildi (%99.99); erişilemeyen 1.226 belge (%0.011), kaynak sistemin iki tur yeniden denemeye rağmen tutarlı biçimde boş döndürdüğü kayıtlardır. İndirilenlerden 79.220 kayıt çöp yanıt ya da mükerrer olduğu için ayıklandı (aşağıdaki Temizlik bölümü); geriye 11.045.085 tekil karar kaldı.

Kullanım

from datasets import load_dataset

# Tamamı (streaming önerilir — 5.52 GB indirme)
ds = load_dataset("hamzabagirsakci/turkish-court-decisions", split="train", streaming=True)

# Tek kaynak
yargitay = load_dataset("hamzabagirsakci/turkish-court-decisions", "yargitay", split="train")

# Tek dosya (hızlı deneme)
import pyarrow.parquet as pq
tbl = pq.read_table("data/aym_norm/train-00000-of-00001.parquet")

Şema

AlanTipAçıklama
idstring{kaynak}:{document_id} — veri seti genelinde tekil
sourcestringyargitay · danistay · emsal · aym_norm · aym_bb
document_idstringKaynak sistemdeki kimlik (yeniden çekim için)
courtstringDaire / bölüm / mahkeme adı
esas_nostringEsas numarası (2016/57111)
karar_nostringKarar numarası (2023/6863)
karar_tarihistringISO YYYY-MM-DD (kaynaklar arası normalize edildi)
year, monthint16 / int8Karar dönemi (bölümleme anahtarı)
textstringKararın tam metni
text_lenint32Karakter sayısı
masked_countint16Metinde [TCKN] · [IBAN] · [KART] · [TELEFON] · [EPOSTA] etiketiyle maskelenmiş tanımlayıcı sayısı
raw_sha256stringKaynak HTML'in hash'i — tekilleştirme / doğrulama için
mevzuat_atiflist[string]Kararın dayandığı mevzuat, kanunNo/maddeNo (5237/62)
mevzuat_konulist[string]Yargıtay'ın kendi konu indeksi — aşağıdaki uyarıya bakın

Mevzuat atıfı ile arama

ds = load_dataset("hamzabagirsakci/turkish-court-decisions", "yargitay", split="train")
tck62 = ds.filter(lambda r: "5237/62" in r["mevzuat_atif"])

mevzuat_atif iki yoldan üretilir ve ikisi de tahmin içermez:

  1. Kanun numarası metinde yazıyorsa doğrudan alınır — "5237 sayılı Türk Ceza Kanunu'nun 62. maddesi" → 5237/62.
  2. Kanun numarası yoksa, yalnızca kısaltmanın hangi kanunu gösterdiği ölçülmüşse çözülür. Ölçüm: 398.014 kararda kanun numarası ile kısaltmanın birlikte yazıldığı 213.444 yer sayıldı.
Kısaltma→ KanunÖlçülen kesinlikÖrnek
HMK6100%99,9122.816
CMUK1412%99,7453.197
HUMK1086%99,736.627
CMK5271%99,7058.410
TBK6098%99,541.093
TMK4721%99,461.860

Çözülmeyenler. TCK (→5237 %85,6), BK (→818 %93,6), TTK (→6102 %63,4) ve TCY (→5237 %59,5) eşiği (%99) geçemediği için atıf üretilmez. Sebep hukukun kendisi: suç veya olay tarihindeki kanun uygulandığından, 2020 tarihli bir karar pekâlâ mülga 765 sayılı TCK'ya dayanabiliyor. Karar tarihine bakarak tahmin etmek CMK ailesinde %61,9'a varan oranda yanılırdı. Bu atıflar metinde duruyor; sadece yapısal alana taşınmıyor.

mevzuat_konu neden ayrı. Eski Yargıtay kararlarının başında makine üretimi bir künye satırı var (765 S. TÜRK CEZA KANUNU [ Madde 59 ]). Bu satır eski kararları güncel mevzuata eşliyor: 2000 tarihli bir kararın künyesinde 2002'de yürürlüğe giren 4721 sayılı Medeni Kanun yazarken, kararın gövdesi çıplak "MK.nun 931. maddesi" diyor. Yani künye kararın uyguladığı kanunu değil, bugünkü karşılığını gösteriyor — atıf değil, konu indeksidir. Bu yüzden ayrı sütunda ve yalnızca eski kararlarda dolu.

Hukuki dayanak

Mahkeme kararları Türkiye'de telif korumasında değildir. FSEK m.31, resmen yayımlanan kazai kararların çoğaltılmasını, yayılmasını ve işlenmesini açıkça serbest bırakır. Bu, Anayasa m.141'deki yargılamanın aleniyeti ilkesi ve m.26–28'deki ifade/bilim hürriyeti ile birlikte okunduğunda, kararların tam metin olarak herkes tarafından yayınlanabileceği anlamına gelir.

Ayrıntılı tartışma için: Kemal Gözler, Mahkeme Kararlarının Yayınlanması Sorunu, anayasa.gen.tr.

Veri seti CC0-1.0 ile sunulur: kararların kendisi zaten kamu malıdır, derleme üzerindeki haklardan da feragat edilmiştir.

Nasıl toplandı

Kararlar ilgili kurumların kamuya açık arama sistemlerinden alındı (Yargıtay Karar Arama, Danıştay Emsal Karar, UYAP Emsal, AYM Kararlar Bilgi Bankası). Toplama, hedef sistemleri yormamak için oran sınırlı ve AIMD geri çekilmeli bir tarayıcıyla, ay bazlı pencerelere bölünerek yapıldı; her pencere tamamlanana kadar uzlaştırıldı (reconcile), böylece sessiz veri kaybı önlendi.

Ham HTML'den metne dönüşüm kaynak-farkındadır: Danıştay kararları sayfa şablonunun içinde HTML-escape'li gömülü olduğundan ayrı çözülür, AYM kararları Word'den export edilmiş yapıdadır. Blok yapısı (paragraflar) korunur, sayfa iskeleti atılır.

Temizlik — ne çıkarıldı

Ham toplama 11.124.305 kayıt üretti; yayınlanan 11.045.085. Aradaki fark:

NeKaçNeden
Çöp yanıt6.779Kaynak sistem, karar yerine HTTP 200 ile bot-kontrol ekranı veya hata sayfası döndürmüş. Tamamı Danıştay'da; sabit metinli, ~120 karakterlik sayfalar.
Mükerrer72.441Aynı karar farklı document_id ile birden çok indekslenmiş. (kaynak, daire, esas_no, karar_no) anahtarında tekilleştirildi; kopyalardan en uzun metinli olan tutuldu (bazı kopyalar yarım çekilmiş).

Bu ayıklama olmadan veri setinde ~6.779 adet "karar" aslında hata sayfası olurdu. Kısa kararlar çöp değildir ve korunmuştur.

Atıf

CC0 olduğu için atıf zorunlu değildir, ama yararlı olursa memnun oluruz:

@misc{turk_ictihat_korpusu,
  title  = {Türk İçtihat Korpusu: 11.045.085 Türk Mahkeme Kararı},
  author = {Bağırsakçı, Hamza},
  year   = {2026},
  url    = {https://huggingface.co/datasets/hamzabagirsakci/turkish-court-decisions},
  note   = {CC0-1.0}
}

Sorumluluk reddi

Bu veri seti araştırma ve geliştirme içindir. Hukuki tavsiye değildir ve resmî kaynak yerine geçmez. Bir karara dayanmadan önce ilgili kurumun kendi sisteminden doğrulayın. Metinler kaynağından alındığı hâliyle sunulur; doğruluk veya güncellik garantisi verilmez.

Contributors