Conformance matrix
How BellaDPP maps to the clauses of the six published CEN/CENELEC JTC 24 DPP standards. Every row either points to an endpoint/file or plainly says “not implemented”.
36 clauses · met: 34 · Last updated: 21 Ağustos 2026
EN 18216 — Data exchange
| Clause topic | Status | Evidence |
|---|---|---|
| Passport served in machine-readable form | Met | GET api/public/dpp/{identifier}/jsonld → PublicController.cs:95 (Bella.API/Controllers/PublicController.cs:95) |
| Anonymous (unauthenticated) access | Met | Tüm PublicController uçları [AllowAnonymous] |
| Content-type declaration | Met | /jsonld ve /credential application/ld+json döner; ana /dpp/{identifier} ucu Accept: application/ld+json ile anlamsal gövdeyi, YALNIZ application/json istendiğinde zarfsız saf pasaportu döner. Zarf ({success, data}) geriye dönük uyum için varsayılan kalır (PublicController.cs (Bella.API/Controllers/PublicController.cs)) |
| Content negotiation (format chosen by Accept header) | Met | GS1 Digital Link ucunda: Accept: application/ld+json → JSON-LD, aksi halde insan sayfasına 302 (Gs1DigitalLinkController.cs (Bella.API/Controllers/Gs1DigitalLinkController.cs)). /jsonld yolu geriye dönük uyumluluk için korunur. |
| Linkset | Met | Accept: application/linkset+json ile /01/{gtin}[/21/{serial}] RFC 9264 linkset döner: pasaport sayfası, JSON-LD, PDF, sertifikalar, (birim düzeyinde) EPCIS ve imzalıysa VC. Bağlantı tipleri tam GS1 URI'si (Gs1LinksetBuilder.cs (Bella.Business/Helpers/Gs1LinksetBuilder.cs), test: Gs1LinksetTests.cs (Bella.Tests/Business/Gs1LinksetTests.cs)) |
| Language selection | Met | ?lang= — tr/en/es/fr/zh, PublicDppManager.cs (Bella.Business/Concrete/PublicDppManager.cs) SupportedLanguages |
EN 18219 — Identifiers
| Clause topic | Status | Evidence |
|---|---|---|
| Product model identifier (GTIN / AI 01) | Met | Product.Gtin, kök düzeyde GET /01/{gtin} (+ api/public/gs1/… eski yol) |
| Item identifier (serial / AI 21) | Met | ProductItem, kök düzeyde GET /01/{gtin}/21/{serial} |
| Batch/lot identifier | Met | ProductItem.BatchNumber |
| Persistent passport identifier | Met | DppPassport.PassportIdentifier, JSON-LD'de dpp:passportIdentifier |
| Economic operator identifier | Met | did:web yayımcı kimliği (/.well-known/did.json) + Company.EuOperatorRegistrationNumber (EN 18219 kayıt numarası) ve Company.EconomicOperatorId (EORI). Registry gövdesinde economicOperator.registrationNumber olarak gider (RegistryManager.cs (Bella.Business/Concrete/RegistryManager.cs)) |
| Facility identifier | Met | Company.FacilityId — firma ekranından girilir, registry gönderiminde kullanılır; boşsa gönderim ön kontrolde DURDURULUR (sentetik URN üretilmez) |
| Gümrük emtia kodu (HS/TARIC) — Registry Md. 8 (2026/1778) | Met | Product.CommodityCode; ürün diyalogu + Excel içe/dışa aktarım; registry gövdesinde commodityCode. Boşsa gönderim ön kontrolde durur ve kuyrukta eksik olarak görünür |
| Parti↔model kimlik bağı — Registry Md. 8(4)-(5) (2026/1778) | Met | Registry gövdesinde identifiers{granularity=model, model, batch}; pasaport model düzeyinde, parti no varsa modele bağlı gider, olmayan düzey uydurulmaz |
| Sürüm içerik özeti — Registry kayıt kanıtı Md. 9 (2026/1778) | Met | DppVersion.ContentHash = SHA-256(anlık görüntü), yayında hesaplanır (IcerikOzeti.cs (Bella.Business/Helpers/IcerikOzeti.cs)); registry gövdesinde versionHash, sürüm listesinde contentHash |
EN 18220 — Data carrier
| Clause topic | Status | Evidence |
|---|---|---|
| Optical carrier generation | Met | QR (QRCoder, ECC Q, PNG+SVG) ve Data Matrix ECC 200 (ZXing, SVG) — QrManager.cs (Bella.Business/Concrete/QrManager.cs), VeriTasiyiciBuilder.cs (Bella.Business/Helpers/VeriTasiyiciBuilder.cs) |
| Carrier encodes a persistent web address | Met | GTIN varsa taşıyıcı {taban}/01/{gtin} kodlar (GS1 Digital Link, kök düzeyinde çözülür). GTIN yoksa iç adrese düşer ve panel bunu açıkça uyarır — sessizce standart dışı kod basılmaz. |
| Data Matrix | Met | ECC 200, kare biçim, SVG çıktı — GET api/dpp/{id}/carriers |
| NFC / RFID | Met | NDEF URI kaydı (TNF=1, RTD='U') hex olarak üretilir; etikete yazma işi kodlayıcı cihaza aittir (sunucunun donanım erişimi yok) |
| Carrier independence (same data from different carriers) | Met | Üç taşıyıcı da AYNI adresi taşır; testle korunur (VeriTasiyiciTests.cs (Bella.Tests/Business/VeriTasiyiciTests.cs)) |
EN 18221 — Data storage and redundancy
| Clause topic | Status | Evidence |
|---|---|---|
| Self-contained backup package | Met | BackupManager.cs (Bella.Business/Concrete/BackupManager.cs) — kimlikler + JSON-LD + VC + tüm versiyon snapshot'ları |
| Transferable to an independent third party | Met | Dpp:BackupEndpoint yapılandırıldıysa best-effort POST; yoksa operatör paketi indirir |
| Passport survives the operator disappearing | Met | Paket öz-yeterli — dış referans gerektirmez |
| Retention period declaration | Met | DppPassport.RetentionUntil — yayında hesaplanıp SAKLANIR (yayın tarihi + urun_omru_yil + Dpp:RetentionYears); JSON-LD'de dpp:retentionUntil ve /vocab'da tanımlı (DppSemanticBuilder.cs (Bella.Business/Helpers/DppSemanticBuilder.cs), test: JsonLd_SaklamaSuresiBeyani_CiktidaYerAlir) |
| Scheduled/automatic backups | Met | Hangfire recurring job dpp-scheduled-backup (her gece 02:30) → IBackupService.RunScheduledBackupAsync. Sağlayıcı ucu yoksa paketler Dpp:BackupDirectory altına DOSYA olarak yazılır; elle tetikleme POST api/backup/run |
EN 18222 — Lifecycle data and API
| Clause topic | Status | Evidence |
|---|---|---|
| Event model (EPCIS 2.0) | Met | EpcisManager.cs (Bella.Business/Concrete/EpcisManager.cs), bizStep/disposition |
| Item-level public event history | Met | GET api/public/epcis/01/{gtin}/21/{serial} → ham application/ld+json |
| Passport versioning | Met | DppPassport.Version, versiyon snapshot'ları ve fark görünümü |
| Downstream actors (repairer, recycler) writing events | Met | Tek kullanımlık, süreli, tek ürüne kapsamlı imzalı token (DownstreamActorToken.cs (Bella.Business/Helpers/DownstreamActorToken.cs)) → POST api/public/epcis/submit (anonim). Katkı moderasyon kuyruğuna düşer, onaylanana kadar public çıktıya girmez; kapsam ve tek kullanım testle korunur (AsagiAkisAktoruTests.cs (Bella.Tests/Business/AsagiAkisAktoruTests.cs)) |
| Ownership / transfer history | Met | ProductOwnership — birim düzeyi sahiplik zinciri; public pasaportta seri no ile çözülen görünümde (ProductOwnershipManager.cs (Bella.Business/Concrete/ProductOwnershipManager.cs)) |
EN 18223 — Semantic model
| Clause topic | Status | Evidence |
|---|---|---|
| JSON-LD output | Met | DppSemanticBuilder.cs (Bella.Business/Helpers/DppSemanticBuilder.cs) BuildJsonLd |
| Use of a common vocabulary | Met | schema.org terimleri doğrudan kullanılıyor (tekrarlanmıyor) |
| Own terms defined in a resolvable namespace | Met | Dpp:VocabularyUri → GET /vocab (VocabController.cs (Bella.API/Controllers/VocabController.cs)); çıktıdaki her dpp: terimi testle bu belgeye bağlı (JsonLd_HerDppTerimi_SozcukDagarcigindaTanimli) |
| GS1 Digital Link based @id | Met | @id = {base}/01/{gtin}, GTIN yoksa urn:bella:dpp:{identifier} |
| Mapping to the official EU DPP Core Ontology | Not possible yet | Ontoloji henüz yayımlanmadı. Yayımlandığında owl:equivalentProperty ile eşlenecek; sözcük dağarcığı belgesi bu sınırı kendi içinde beyan ediyor. |
| SHACL shapes (validation schema) | Partial | GET /shapes → SHACL NodeShape belgesi (DppShapesBuilder.cs (Bella.Business/Helpers/DppShapesBuilder.cs)); her pasaport için GET api/public/dpp/{identifier}/shacl-report → sh:ValidationReport. Şekiller ile doğrulayıcı TEK kaynaktan okur, ayrışamaz (test: ShaclSekilTests). Sınır: tam SHACL motoru değildir — desteklenen kısıtlar sh:datatype, sh:minCount, sh:maxCount, sh:minInclusive, sh:maxInclusive, sh:pattern, sh:minLength, sh:maxLength, sh:nodeKind, sh:in, sh:node; sh:or/sh:xone/sh:sparql/sh:qualifiedValueShape YOK ve belge bunu kendi içinde beyan eder. Dış RDF kütüphanesi bilerek eklenmedi (29.08.2026 kararı). |
Draft texts — no conformance claimed
The texts below are still drafts (prEN). Conformance with an unpublished standard cannot be declared; our implementation follows the draft but makes no claim.
- prEN 18239 — Katmanlı erişim
- prEN 18246 — Veri bütünlüğü
Source document: UYUMLULUK-HARITASI.md in the repository root