{
  "description": "Negation ranking test set from the theinfinity.dev article 'Negation in RAG, Measured'. Each triplet runs in two directions: query_positive should rank doc_positive first, query_negative should rank doc_negative first. Conditions: same_wording uses doc_*; different_wording pairs paraphrase_* (correct) with the opposite doc_* (shares the query's words); control pairs paraphrase_positive with paraphrase_negative.",
  "license": "CC BY 4.0",
  "en": [
    {
      "kind": "negation",
      "query_positive": "backup completed",
      "query_negative": "backup did not complete",
      "doc_positive": "The nightly PostgreSQL backup completed at 02:00 and was uploaded to S3.",
      "doc_negative": "The nightly PostgreSQL backup did not complete at 02:00 and nothing was uploaded to S3.",
      "paraphrase_positive": "Last night's PostgreSQL dump finished successfully and the file landed in S3 at 02:00.",
      "paraphrase_negative": "Last night's PostgreSQL dump broke off before 02:00, so S3 received no file."
    },
    {
      "kind": "negation",
      "query_positive": "service started after the deploy",
      "query_negative": "service did not start after the deploy",
      "doc_positive": "After the deploy, the payment service started and passed its health check.",
      "doc_negative": "After the deploy, the payment service did not start and never passed its health check.",
      "paraphrase_positive": "Once the release went out, the payment service came up healthy.",
      "paraphrase_negative": "Once the release went out, the payment service crashed on boot and stayed unhealthy."
    },
    {
      "kind": "negation",
      "query_positive": "TLS certificate was renewed",
      "query_negative": "TLS certificate was not renewed",
      "doc_positive": "The TLS certificate for the API gateway was renewed automatically last night.",
      "doc_negative": "The TLS certificate for the API gateway was not renewed automatically last night.",
      "paraphrase_positive": "The API gateway now has a fresh TLS certificate; the automatic rotation worked last night.",
      "paraphrase_negative": "The API gateway still has the old TLS certificate; the automatic rotation broke last night."
    },
    {
      "kind": "negation",
      "query_positive": "port 22 is reachable from the internet",
      "query_negative": "port 22 is not reachable from the internet",
      "doc_positive": "Port 22 on the bastion host is reachable from the internet.",
      "doc_negative": "Port 22 on the bastion host is not reachable from the internet.",
      "paraphrase_positive": "Anyone on the internet can open an SSH connection to the bastion host.",
      "paraphrase_negative": "SSH connections to the bastion host from the internet time out and are refused."
    },
    {
      "kind": "negation",
      "query_positive": "encryption is enabled on the bucket",
      "query_negative": "encryption is not enabled on the bucket",
      "doc_positive": "Server-side encryption is enabled on the log bucket.",
      "doc_negative": "Server-side encryption is not enabled on the log bucket.",
      "paraphrase_positive": "Objects written to the log bucket are stored encrypted at rest.",
      "paraphrase_negative": "Objects in the log bucket are stored in plaintext at rest."
    },
    {
      "kind": "negation",
      "query_positive": "the alert fired",
      "query_negative": "the alert never fired",
      "doc_positive": "The high CPU alert fired during the load test.",
      "doc_negative": "The high CPU alert never fired during the load test.",
      "paraphrase_positive": "During the load test we got paged for high CPU.",
      "paraphrase_negative": "During the load test nobody got paged for high CPU, even though usage peaked."
    },
    {
      "kind": "negation",
      "query_positive": "public access is blocked on the bucket",
      "query_negative": "public access is not blocked on the bucket",
      "doc_positive": "Public access is blocked on the static assets bucket.",
      "doc_negative": "Public access is not blocked on the static assets bucket.",
      "paraphrase_positive": "The static assets bucket rejects anonymous requests from the public.",
      "paraphrase_negative": "Anyone can download files from the static assets bucket without credentials."
    },
    {
      "kind": "negation",
      "query_positive": "the job can be retried safely",
      "query_negative": "the job cannot be retried safely",
      "doc_positive": "The import job is idempotent, so it can be retried safely.",
      "doc_negative": "The import job is not idempotent, so it cannot be retried safely.",
      "paraphrase_positive": "Running the import job twice leaves the data unchanged, so a rerun is harmless.",
      "paraphrase_negative": "Running the import job twice duplicates rows, so a rerun is dangerous."
    },
    {
      "kind": "antonym",
      "query_positive": "migration succeeded",
      "query_negative": "migration failed",
      "doc_positive": "The schema migration on the orders table succeeded without errors.",
      "doc_negative": "The schema migration on the orders table failed with errors.",
      "paraphrase_positive": "The orders table schema change went through cleanly.",
      "paraphrase_negative": "The orders table schema change errored out and was aborted."
    },
    {
      "kind": "antonym",
      "query_positive": "disk usage decreased",
      "query_negative": "disk usage increased",
      "doc_positive": "Disk usage on the log volume decreased after the cleanup job.",
      "doc_negative": "Disk usage on the log volume increased after the cleanup job.",
      "paraphrase_positive": "After the cleanup job, the log volume has more free space.",
      "paraphrase_negative": "After the cleanup job, the log volume has less free space."
    },
    {
      "kind": "antonym",
      "query_positive": "firewall rule allows inbound traffic",
      "query_negative": "firewall rule blocks inbound traffic",
      "doc_positive": "The new firewall rule allows inbound traffic on port 443.",
      "doc_negative": "The new firewall rule blocks inbound traffic on port 443.",
      "paraphrase_positive": "Traffic on port 443 is let through by the new firewall rule.",
      "paraphrase_negative": "Traffic on port 443 is dropped by the new firewall rule."
    },
    {
      "kind": "antonym",
      "query_positive": "the node joined the cluster",
      "query_negative": "the node left the cluster",
      "doc_positive": "The worker-3 node joined the cluster after the reboot.",
      "doc_negative": "The worker-3 node left the cluster after the reboot.",
      "paraphrase_positive": "After the reboot, worker-3 is back in the cluster and schedulable.",
      "paraphrase_negative": "After the reboot, worker-3 is gone from the cluster and no longer schedulable."
    },
    {
      "kind": "antonym",
      "query_positive": "MFA is enabled for the root account",
      "query_negative": "MFA is disabled for the root account",
      "doc_positive": "MFA is enabled for the root account.",
      "doc_negative": "MFA is disabled for the root account.",
      "paraphrase_positive": "Signing in as root requires a second factor.",
      "paraphrase_negative": "Signing in as root requires only a password."
    },
    {
      "kind": "antonym",
      "query_positive": "cache hit rate went up",
      "query_negative": "cache hit rate went down",
      "doc_positive": "The cache hit rate went up after we changed the TTL.",
      "doc_negative": "The cache hit rate went down after we changed the TTL.",
      "paraphrase_positive": "Since the TTL change, more requests are served from cache.",
      "paraphrase_negative": "Since the TTL change, fewer requests are served from cache."
    },
    {
      "kind": "antonym",
      "query_positive": "the rollback was approved",
      "query_negative": "the rollback was rejected",
      "doc_positive": "The rollback request for release 4.2 was approved.",
      "doc_negative": "The rollback request for release 4.2 was rejected.",
      "paraphrase_positive": "The request to roll back release 4.2 got the green light.",
      "paraphrase_negative": "The request to roll back release 4.2 was turned down."
    },
    {
      "kind": "antonym",
      "query_positive": "latency is within the SLO",
      "query_negative": "latency is above the SLO",
      "doc_positive": "p99 latency for the search API is within the SLO.",
      "doc_negative": "p99 latency for the search API is above the SLO.",
      "paraphrase_positive": "The search API meets its p99 latency objective.",
      "paraphrase_negative": "The search API misses its p99 latency objective."
    },
    {
      "kind": "state",
      "query_positive": "the incident is resolved",
      "query_negative": "the incident is still ongoing",
      "doc_positive": "The incident affecting checkout latency is resolved.",
      "doc_negative": "The incident affecting checkout latency is still ongoing.",
      "paraphrase_positive": "Checkout latency is back to normal and the incident is closed.",
      "paraphrase_negative": "Checkout latency is still degraded and the incident remains open."
    },
    {
      "kind": "state",
      "query_positive": "the old API is still in use",
      "query_negative": "the old API is no longer in use",
      "doc_positive": "The v1 API is still in use by two internal clients.",
      "doc_negative": "The v1 API is no longer in use by any internal client.",
      "paraphrase_positive": "Two internal clients keep calling the v1 API.",
      "paraphrase_negative": "No internal client calls the v1 API anymore."
    },
    {
      "kind": "state",
      "query_positive": "all replicas are healthy",
      "query_negative": "none of the replicas are healthy",
      "doc_positive": "All replicas of the Redis cluster are healthy.",
      "doc_negative": "None of the replicas of the Redis cluster are healthy.",
      "paraphrase_positive": "Every Redis replica passes its health check.",
      "paraphrase_negative": "Every Redis replica fails its health check."
    },
    {
      "kind": "state",
      "query_positive": "restore completed without data loss",
      "query_negative": "restore completed with data loss",
      "doc_positive": "The database restore completed without data loss.",
      "doc_negative": "The database restore completed with data loss.",
      "paraphrase_positive": "The database was restored and every record is intact.",
      "paraphrase_negative": "The database was restored but some records were lost."
    }
  ],
  "tr": [
    {
      "kind": "negation",
      "query_positive": "yedek tamamlandı",
      "query_negative": "yedek tamamlanmadı",
      "doc_positive": "Gece alınan PostgreSQL yedeği saat 02:00'de tamamlandı ve S3'e yüklendi.",
      "doc_negative": "Gece alınan PostgreSQL yedeği saat 02:00'de tamamlanmadı ve S3'e hiçbir şey yüklenmedi.",
      "paraphrase_positive": "Dün geceki PostgreSQL dump'ı başarıyla bitti ve dosya 02:00'de S3'e ulaştı.",
      "paraphrase_negative": "Dün geceki PostgreSQL dump'ı 02:00'den önce yarıda kesildi, S3'e dosya gitmedi."
    },
    {
      "kind": "negation",
      "query_positive": "deploy sonrası servis ayağa kalktı",
      "query_negative": "deploy sonrası servis ayağa kalkmadı",
      "doc_positive": "Deploy sonrası ödeme servisi ayağa kalktı ve healthcheck'ten geçti.",
      "doc_negative": "Deploy sonrası ödeme servisi ayağa kalkmadı ve healthcheck'ten hiç geçmedi.",
      "paraphrase_positive": "Sürüm yayına çıkınca ödeme servisi sağlıklı şekilde çalışmaya başladı.",
      "paraphrase_negative": "Sürüm yayına çıkınca ödeme servisi açılışta çöktü ve sağlıksız kaldı."
    },
    {
      "kind": "negation",
      "query_positive": "TLS sertifikası yenilendi",
      "query_negative": "TLS sertifikası yenilenmedi",
      "doc_positive": "API gateway'in TLS sertifikası dün gece otomatik olarak yenilendi.",
      "doc_negative": "API gateway'in TLS sertifikası dün gece otomatik olarak yenilenmedi.",
      "paraphrase_positive": "API gateway'de artık yeni TLS sertifikası var, otomatik rotasyon dün gece çalıştı.",
      "paraphrase_negative": "API gateway'de hâlâ eski TLS sertifikası duruyor, otomatik rotasyon dün gece bozuldu."
    },
    {
      "kind": "negation",
      "query_positive": "22 numaralı port internetten erişilebilir",
      "query_negative": "22 numaralı port internetten erişilemez",
      "doc_positive": "Bastion sunucusundaki 22 numaralı port internetten erişilebilir durumda.",
      "doc_negative": "Bastion sunucusundaki 22 numaralı port internetten erişilemez durumda.",
      "paraphrase_positive": "İnternetteki herkes bastion sunucusuna SSH bağlantısı açabiliyor.",
      "paraphrase_negative": "İnternetten bastion sunucusuna SSH bağlantısı timeout alıyor ve reddediliyor."
    },
    {
      "kind": "negation",
      "query_positive": "bucket'ta şifreleme açık",
      "query_negative": "bucket'ta şifreleme açık değil",
      "doc_positive": "Log bucket'ında sunucu tarafı şifreleme açık.",
      "doc_negative": "Log bucket'ında sunucu tarafı şifreleme açık değil.",
      "paraphrase_positive": "Log bucket'ına yazılan nesneler diskte şifreli saklanıyor.",
      "paraphrase_negative": "Log bucket'ındaki nesneler diskte düz metin olarak saklanıyor."
    },
    {
      "kind": "negation",
      "query_positive": "alarm tetiklendi",
      "query_negative": "alarm hiç tetiklenmedi",
      "doc_positive": "Yük testi sırasında yüksek CPU alarmı tetiklendi.",
      "doc_negative": "Yük testi sırasında yüksek CPU alarmı hiç tetiklenmedi.",
      "paraphrase_positive": "Yük testi sırasında yüksek CPU için nöbetçiye bildirim geldi.",
      "paraphrase_negative": "Yük testi sırasında kullanım zirve yapsa da yüksek CPU için kimseye bildirim gelmedi."
    },
    {
      "kind": "negation",
      "query_positive": "bucket'ta public erişim engelli",
      "query_negative": "bucket'ta public erişim engelli değil",
      "doc_positive": "Statik dosya bucket'ında public erişim engelli.",
      "doc_negative": "Statik dosya bucket'ında public erişim engelli değil.",
      "paraphrase_positive": "Statik dosya bucket'ı herkese açık anonim istekleri reddediyor.",
      "paraphrase_negative": "Statik dosya bucket'ındaki dosyaları herkes kimlik bilgisi olmadan indirebiliyor."
    },
    {
      "kind": "negation",
      "query_positive": "iş güvenle yeniden denenebilir",
      "query_negative": "iş güvenle yeniden denenemez",
      "doc_positive": "İçe aktarma işi idempotent olduğu için güvenle yeniden denenebilir.",
      "doc_negative": "İçe aktarma işi idempotent olmadığı için güvenle yeniden denenemez.",
      "paraphrase_positive": "İçe aktarma işini iki kez çalıştırmak veriyi değiştirmiyor, tekrar çalıştırmak zararsız.",
      "paraphrase_negative": "İçe aktarma işini iki kez çalıştırmak satırları çoğaltıyor, tekrar çalıştırmak tehlikeli."
    },
    {
      "kind": "antonym",
      "query_positive": "migration başarılı oldu",
      "query_negative": "migration başarısız oldu",
      "doc_positive": "Orders tablosundaki şema migration'ı hatasız şekilde başarılı oldu.",
      "doc_negative": "Orders tablosundaki şema migration'ı hatalarla başarısız oldu.",
      "paraphrase_positive": "Orders tablosunun şema değişikliği sorunsuz uygulandı.",
      "paraphrase_negative": "Orders tablosunun şema değişikliği hata verip iptal edildi."
    },
    {
      "kind": "antonym",
      "query_positive": "disk kullanımı azaldı",
      "query_negative": "disk kullanımı arttı",
      "doc_positive": "Temizlik işinden sonra log diskindeki kullanım azaldı.",
      "doc_negative": "Temizlik işinden sonra log diskindeki kullanım arttı.",
      "paraphrase_positive": "Temizlik işinden sonra log diskinde daha fazla boş alan var.",
      "paraphrase_negative": "Temizlik işinden sonra log diskinde daha az boş alan var."
    },
    {
      "kind": "antonym",
      "query_positive": "güvenlik duvarı kuralı gelen trafiğe izin veriyor",
      "query_negative": "güvenlik duvarı kuralı gelen trafiği engelliyor",
      "doc_positive": "Yeni güvenlik duvarı kuralı 443 portundan gelen trafiğe izin veriyor.",
      "doc_negative": "Yeni güvenlik duvarı kuralı 443 portundan gelen trafiği engelliyor.",
      "paraphrase_positive": "443 portundaki trafik yeni güvenlik duvarı kuralından geçiyor.",
      "paraphrase_negative": "443 portundaki trafik yeni güvenlik duvarı kuralında düşürülüyor."
    },
    {
      "kind": "antonym",
      "query_positive": "node cluster'a katıldı",
      "query_negative": "node cluster'dan ayrıldı",
      "doc_positive": "worker-3 node'u yeniden başlatmadan sonra cluster'a katıldı.",
      "doc_negative": "worker-3 node'u yeniden başlatmadan sonra cluster'dan ayrıldı.",
      "paraphrase_positive": "Yeniden başlatmadan sonra worker-3 cluster'a geri döndü ve pod alabiliyor.",
      "paraphrase_negative": "Yeniden başlatmadan sonra worker-3 cluster'da görünmüyor ve pod alamıyor."
    },
    {
      "kind": "antonym",
      "query_positive": "root hesabında MFA açık",
      "query_negative": "root hesabında MFA kapalı",
      "doc_positive": "Root hesabında MFA açık.",
      "doc_negative": "Root hesabında MFA kapalı.",
      "paraphrase_positive": "Root olarak giriş yapmak ikinci bir doğrulama adımı istiyor.",
      "paraphrase_negative": "Root olarak giriş yapmak yalnızca parola istiyor."
    },
    {
      "kind": "antonym",
      "query_positive": "cache isabet oranı yükseldi",
      "query_negative": "cache isabet oranı düştü",
      "doc_positive": "TTL değiştirildikten sonra cache isabet oranı yükseldi.",
      "doc_negative": "TTL değiştirildikten sonra cache isabet oranı düştü.",
      "paraphrase_positive": "TTL değişikliğinden beri isteklerin daha fazlası cache'ten karşılanıyor.",
      "paraphrase_negative": "TTL değişikliğinden beri isteklerin daha azı cache'ten karşılanıyor."
    },
    {
      "kind": "antonym",
      "query_positive": "rollback onaylandı",
      "query_negative": "rollback reddedildi",
      "doc_positive": "4.2 sürümü için rollback talebi onaylandı.",
      "doc_negative": "4.2 sürümü için rollback talebi reddedildi.",
      "paraphrase_positive": "4.2 sürümünü geri alma isteğine yeşil ışık yakıldı.",
      "paraphrase_negative": "4.2 sürümünü geri alma isteği geri çevrildi."
    },
    {
      "kind": "antonym",
      "query_positive": "latency SLO sınırının içinde",
      "query_negative": "latency SLO sınırının üstünde",
      "doc_positive": "Arama API'sinin p99 latency değeri SLO sınırının içinde.",
      "doc_negative": "Arama API'sinin p99 latency değeri SLO sınırının üstünde.",
      "paraphrase_positive": "Arama API'si p99 latency hedefini tutturuyor.",
      "paraphrase_negative": "Arama API'si p99 latency hedefini kaçırıyor."
    },
    {
      "kind": "state",
      "query_positive": "olay çözüldü",
      "query_negative": "olay hâlâ devam ediyor",
      "doc_positive": "Ödeme adımındaki latency olayı çözüldü.",
      "doc_negative": "Ödeme adımındaki latency olayı hâlâ devam ediyor.",
      "paraphrase_positive": "Ödeme adımındaki latency normale döndü ve olay kapatıldı.",
      "paraphrase_negative": "Ödeme adımındaki latency hâlâ bozuk ve olay açık duruyor."
    },
    {
      "kind": "state",
      "query_positive": "eski API hâlâ kullanılıyor",
      "query_negative": "eski API artık kullanılmıyor",
      "doc_positive": "v1 API'si hâlâ iki iç client tarafından kullanılıyor.",
      "doc_negative": "v1 API'si artık hiçbir iç client tarafından kullanılmıyor.",
      "paraphrase_positive": "İki iç client v1 API'sini çağırmaya devam ediyor.",
      "paraphrase_negative": "Hiçbir iç client v1 API'sini artık çağırmıyor."
    },
    {
      "kind": "state",
      "query_positive": "tüm replikalar sağlıklı",
      "query_negative": "replikaların hiçbiri sağlıklı değil",
      "doc_positive": "Redis cluster'ının tüm replikaları sağlıklı.",
      "doc_negative": "Redis cluster'ının replikalarının hiçbiri sağlıklı değil.",
      "paraphrase_positive": "Redis replikalarının her biri healthcheck'ten geçiyor.",
      "paraphrase_negative": "Redis replikalarının her biri healthcheck'te kalıyor."
    },
    {
      "kind": "state",
      "query_positive": "restore veri kaybı olmadan tamamlandı",
      "query_negative": "restore veri kaybıyla tamamlandı",
      "doc_positive": "Veritabanı restore işlemi veri kaybı olmadan tamamlandı.",
      "doc_negative": "Veritabanı restore işlemi veri kaybıyla tamamlandı.",
      "paraphrase_positive": "Veritabanı restore edildi ve bütün kayıtlar eksiksiz.",
      "paraphrase_negative": "Veritabanı restore edildi ama bazı kayıtlar kayboldu."
    }
  ]
}