Açık veri
Dizini indir
Dizin değiştirilebilir. Bildiği ve bir okuyucunun bilebileceği her şey tam bir dışa aktarım, yani döküm olarak yayımlanır; herkes indirip kendi dizinine yükleyebilir.
En son döküm
Bu site derlendiğinde en yeni döküm, şu anda alınan anlık görüntüydü: . Her gece 04:30 UTC’de yenisi yazılır ve latest.jsonher zaman en yenisini gösterir.
- sources.ndjson.gz
2 satır · 446 B
Her kaynak için bir satır.
sha256 0bb6045c5ba3c73d6756f3b5ec2e8910b28f147fd80f6403d542554f8879ba8c
- entities.ndjson.gz
24 satır · 1.9 KiB
Her varlık (birleştirilenler dahil) için bir satır.
sha256 1333fd9c883d4c4679a2288d874586caae364238233b04163aae8479bf72915c
- records.ndjson.gz
9 satır · 1.2 KiB
Her kayıt (geri çekilenler dahil) için bir satır.
sha256 cfdfb40fd5cdd941d65adbe559ca491261971ca328316741630d155e179a4600
- groupings.ndjson.gz
15 satır · 501 B
Her gruplama için bir satır.
sha256 5c562f31473d5f2b8f8551caca0f1cbb2d2f3e35f542af1e2ee6e5f35f3f261e
- merges.ndjson.gz
0 satır · 20 B
Her birleştirme (geri alınanlar dahil) için bir satır.
sha256 59869db34853933b239f1e2219cf7d431da006aa919635478511fabbfc8849d2
Bu dökümün dizini https://dumps.prodid.org/v1/2026-10-29/, manifesti 2026-10-29 04:30 UTC tarihinde yazılmış manifest.json. Lisansları index: CC0-1.0 ve claims: source olarak okunur.
Dökümler nerede tutulur
Bir döküm, yazıldığı sürümün altında, anlık görüntüsünün UTC tarihiyle adlandırılmış bir dizindir. v1/, manifesti ile kaynak ve varlık satırları v1 belgesi olan v1 dökümlerini tutar. İçinde beş veri dosyası ve bir manifest bulunur.
https://dumps.prodid.org/v1/<YYYY-MM-DD>/manifest.json
https://dumps.prodid.org/v1/<YYYY-MM-DD>/sources.ndjson.gz
https://dumps.prodid.org/v1/<YYYY-MM-DD>/entities.ndjson.gz
https://dumps.prodid.org/v1/<YYYY-MM-DD>/records.ndjson.gz
https://dumps.prodid.org/v1/<YYYY-MM-DD>/groupings.ndjson.gz
https://dumps.prodid.org/v1/<YYYY-MM-DD>/merges.ndjson.gz
https://dumps.prodid.org/v1/latest.jsonlatest.json en son yazılır. En yeni dökümün manifest.json dosyasının bir kopyasıdır; o dökümün her dosyası ve manifesti yerine oturduktan sonra yazılır. Ondan başlayan bir okuyucu, henüz orada olmayan bir dosyayı gösteren bir manifestle asla karşılaşmaz ve dizini manifestin kendi snapshot_at değerinden bulur.
Saklama. Günlük bir döküm 7 gün tutulur. Her UTC ayının ilk dökümü kalıcı olarak tutulur. Tutulan bir döküm asla yeniden yazılmaz: dizini, dosyaları ve manifesti bayt bayt olduğu gibi kalır.
v0 dökümleri. v1’den önce yazılan v0 dökümleri aynı saklama kuralıyla https://dumps.prodid.org/v0/ altında kalır ve v0/latest.json bunların sonuncusunu göstermeye devam eder. v0 şemalarına göre kalıcı olarak doğrulanırlar.
Manifest. Beş dosyanın her birini tam olarak bir kez adlandırır; dosyanın sunulduğu haliyle, sıkıştırılmış SHA-256’sı ve boyutuyla ve açıldığındaki satır sayısıyla. Yüklemeden önce her dosyayı özetine göre denetle. Şema https://prodid.org/schemas/v1/org.prodid.dump.json; vektörler /spec/fixtures/v1/dump altında.
Her dosya ne tutar
Her dosya gzip ile sıkıştırılmış NDJSON’dır, her satırda bir JSON nesnesi. Beşi de tutarlı tek bir anlık görüntüden okunur; bu yüzden birbirleriyle uyuşurlar: bir satırın adlandırdığı her kaynağın sources.ndjson.gz içinde kendi satırı, adlandırdığı her opid’in de entities.ndjson.gz içinde kendi satırı vardır.
| Dosya | Satır başına | Satır |
|---|---|---|
| sources.ndjson.gz | kaynak | Kaynağın durumu; tam olarak /source/{name} nasıl yanıtlıyorsa öyle. |
| entities.ndjson.gz | varlık (birleştirilenler dahil) | Varlık belgesi; tam olarak /id/{opid}?history=1 nasıl yanıtlıyorsa öyle, geri çekilen iddialar dahil. |
| records.ndjson.gz | kayıt (geri çekilenler dahil) | source, key, feed, opid, body, first_seen, last_seen, withdrawn_at. |
| groupings.ndjson.gz | gruplama | source, kind, key, opid. |
| merges.ndjson.gz | birleştirme (geri alınanlar dahil) | from, into, decided_at, reverted_at. |
Birleştirilmiş varlıklar
Birleştirilmiş bir opid çözücüde 308 döner; bu yüzden kopyalanacak kendi belgesi yoktur. Satırı, birleştirilmemiş olsaydı döneceği belgedir (kendi tanımlayıcıları ve iddiaları üzerinde kalır; birleştirmeyi geri alınabilir yapan da budur) ve bir üyesi daha vardır: merged_into, yani hayatta kalanın opid’i. Birleştirmeler zincirlenmez: hayatta kalan hiçbir zaman kendisi birleştirilmiş değildir.
Bir kayıt satırı
Dizinin tuttuğu haliyle tek bir kayıt. Her zaman UTC, ISO 8601.
| Alan | Ne olduğu |
|---|---|
| source | Kaynağın adı. |
| key | Kaydın o kaynaktaki key’i. |
| feed | Okunduğu akışın URL’si. Bir veri seti aktarımının yazdığı kayıtta yoktur. |
| opid | Çözüldüğü ürün birimi. |
| body | Yayıncının gönderdiği org.prodid.item, değiştirilmeden. |
| first_seen | Dizinin onu ilk okuduğu an. |
| last_seen | Dizinin onu son okuduğu an. |
| withdrawn_at | Yalnızca kayıt geri çekildiğinde bulunur. |
Bir gruplama satırı
Bir kaynağın gruplamasının hangi varlığa çözüldüğü. kind, family ya da variant’tır; key ise kaynağın kayıtlarının neye göre gruplandığıdır. Özetlenmeden açıkça yazılır; böylece başka bir uygulama kendi gruplamasını onunla eşleştirebilir.
family
{ "group": "<group>" }
bir yayıncı grubu için; grubu olmayan, kendi başına bir aile olan kayıt için { "key": "<key>" }.
variant
{ "family": <ailenin key’i>, "variant": { <eksen>: <değer>, … } }
kaydın varyantı; yoksa {}.
Bir birleştirme satırı
Tek bir birleştirme kararı: from birleştirilen opid, into hayatta kalan, decided_at kararın verildiği an ve reverted_at, yalnızca geri alındıysa bulunur.
Bir dökümün asla tutmadıkları
Bir döküm, çözücünün zaten söylediğinden fazlasını söylemez; artı yanıtlarının kurulduğu kayıtlar, gruplamalar ve birleştirmeler.
- Dizinin yalnızca lapse bildirimini göndermek için tuttuğu yayıncı iletişim adresi.
- Tarama günlüğü, tarayıcının hata metni ya da bir taramayla ilgili kaynak durumunun göstermediği başka herhangi bir şey.
- Bir birleştirmenin neden yapıldığı ya da kimin karar verdiği.
- Bir medya özetinin neden engellendiği.
- Medya baytları. Bir medya iddiasının media_url’i dosyayı gösterir ve engellenmiş bir özet sunulmaz.
- Dizinin iç satır tanımlayıcıları. Her satır bir kaynağı adıyla, bir varlığı opid’iyle anar.
- Yetki kararları ve kanıtları. Bir kaynağın satırı snapshot_at anında authoritative idiyse bunu söyler; ama dökümden yüklenen bir dizin, kendi işletmecisi bir yetki verene kadar hiçbir yetki tutmaz.
Lisanslar
İki kural var ve manifestin licenses alanı ikisini de belirtir.
index: CC0-1.0
Dizinin ürettiği her şey
opid’ler, tanımlayıcı eşlemeleri, aile ve varyant hiyerarşisi, gruplamalar ve birleştirmeler.claims: source
Her iddia ve her kayıt
Kendi kaynağının beyan ettiği lisans altında: o kaynağın
sources.ndjson.gziçindeki satırınınlicensedeğeri. Lisans beyan etmeyen bir kaynak hiçbir hak vermemiştir ve prodid onun adına hiçbir hak vermez.
Kendine ait keşif belgesi yayımlamayan açık bir veri seti, dizine dataset:<slug> adlı bir kaynak olarak girer; dizinin işletmecisi onu veri setinin herkese açık dışa aktarımından içe aktarır. Böyle bir kaynak her zaman unverified’dır ve license değeri veri setinin kendi lisansıdır. Kurallar şartnamede.
Kendi dizinine yükle
prodid-batch load-dump, bir v0 ya da v1 dökümünü aynı sürüme taşınmış boş bir PostgreSQL 18 veritabanına tek bir transaction içinde yükler. Bir dökümün tarihli dizinini, manifest.json dosyasını ya da bir latest.json alır; yerelden ya da HTTPS üzerinden.
git clone https://github.com/productdevbook/prodid.git && cd prodid
bun install --frozen-lockfile
export DATABASE_URL=postgres://<user>:<password>@<host>:<port>/<database>
bun run --filter '@prodid/db' migrate
PRODID_OPERATOR=<your name> bun apps/batch/src/cli.ts load-dump https://dumps.prodid.org/v1/latest.jsonHerhangi bir şey yazılmadan önce her dosya manifestteki sha256, bytes ve lines değerlerine göre denetlenir; uzak bir döküm önce geçici bir dizine indirilir. Boş olmayan bir veritabanı reddedilir. PRODID_OPERATOR, yüklenen birleştirmelerin karar vericisi olarak kaydedilir.
Bir dosyayı yüklemeden okumak için özetine göre denetle ve aç. Aşağıdaki özet, bu site derlendiğinde en son manifestte yazan özettir.
curl -sO https://dumps.prodid.org/v1/2026-10-29/sources.ndjson.gz
sha256sum sources.ndjson.gz
0bb6045c5ba3c73d6756f3b5ec2e8910b28f147fd80f6403d542554f8879ba8c sources.ndjson.gz
gunzip -c sources.ndjson.gz | head -n 1Kuralların tamamı şartnamede, Dumps başlığı altında.
Şartname yalnızca İngilizce yayımlanır ve bağlayıcı metin İngilizce olanıdır.