> Η μετάφραση παρέχεται για διευκόλυνση. Κανονιστικό είναι το αγγλικό πρωτότυπο. # Χρυσό παράδειγμα: Acme HR ⇄ Government Tax ομοσπονδοποιούνται γύρω από ένα Πρόσωπο Αυτό είναι το **χρυσό παράδειγμα από άκρη σε άκρη**. Δύο κυρίαρχα σύμπαντα - η **Acme** (εργοδότης) και η **Government Tax** - ομοσπονδοποιούνται ώστε τα στοιχεία ενός εργαζομένου να μπορούν να χρησιμοποιηθούν για φορολογική δήλωση, χωρίς καμία πλευρά να παραδώσει την κυριότητα του μοντέλου ή των δεδομένων της. Μπορείτε να παρακολουθήσετε ένα και μόνο πρόσωπο σε όλη τη διαδρομή: > **Ταυτότητα → Αντιστοίχιση → Συμβόλαιο → Προβολή → Συγχρονισμός → Σύγκρουση.** Όλα εδώ είναι συγκεκριμένα και ελεγμένα από μηχανή: τα μετα-μοντέλα φέρουν πραγματικά Σημασιολογικά αποτυπώματα, η ομοσπονδία είναι πραγματική καταγραφή [MUFP](../../03-federation/MUFP-Messages.md), και τα δύο μοντέλα περνούν την επικύρωση V0-V4. ## Τα δύο σύμπαντα | | Acme | Government Tax | |--|------|----------------| | Μετα-μοντέλο | [`acme/employee-mm.muif.json`](acme/employee-mm.muif.json) | [`gov/taxpayer-mm.muif.json`](gov/taxpayer-mm.muif.json) | | Αντικείμενο | `employee.person` | `taxpayer.taxpayer` | | Ονόματα | `givenName`, `familyName` | `forename`, `surname` | | Αποτύπωμα | `sha256:0b4965f1…38c40` | `sha256:d51f639e…37ba6` | | Επικύρωση | [αναφορά](acme/validation-report.json) (V4) | [αναφορά](gov/validation-report.json) (V4) | Τα δύο μοντέλα περιγράφουν την ίδια πραγματικότητα με **διαφορετικά λεξιλόγια** - που είναι ακριβώς αυτό που οφείλει να γεφυρώσει η ομοσπονδία. ## Ακολουθήστε το νήμα 1. **Ταυτότητα** - ο ίδιος άνθρωπος είναι `employee:12345` στην Acme και `taxpayer:99821` στην Government Tax. Δεσμεύονται σε μία Κανονική Ταυτότητα μέσω του [`identity-binding.json`](identity-binding.json), με αντιστοίχιση στον κοινό φορολογικό αριθμό. 2. **Αντιστοίχιση** - τα λεξιλόγια ευθυγραμμίζονται μέσω του [`mapping/acme-to-gov.mapping.json`](mapping/acme-to-gov.mapping.json): `employee.familyName ≡ taxpayer.surname` κ.ο.κ. Η αντιστοίχιση καρφιτσώνει τα αποτυπώματα και των δύο πλευρών, οπότε ισχύει μόνο για αυτές ακριβώς τις εκδόσεις των μοντέλων. 3. **Συμβόλαιο** - η αποκάλυψη διέπεται από το [`contract.json`](contract.json) (`Federation`, σκοπός `tax-filing`, τρία επιτρεπόμενα πεδία, δεσμευμένο στον σκοπό, χωρίς περαιτέρω αποκάλυψη). Αποτύπωμα `sha256:44582ad8…28af0`. 4. **Προβολή** - η Acme δεν στέλνει ποτέ το αντικείμενο· στέλνει μια Προβολή ειδική για τον σκοπό, που εκθέτει μόνο τα τρία συμβατικά πεδία. 5. **Συγχρονισμός και σύγκρουση** - η Government Tax εντοπίζει ότι το `familyName = "Smith"` της Acme διαφωνεί με τη δική της εγγραφή `surname = "Smyth"`. Κατά τη [Διαφύλαξη σύγκρουσης](../../03-federation/Conflict-Resolution.md), η σύγκρουση καταγράφεται ως Συμβάν `Conflict` πρώτης τάξης, επιλύεται προς την έγκυρη τιμή, και **το συμβάν της σύγκρουσης κρατιέται στην ιστορία** (το Συμβάν επίλυσης το αναφέρει μέσω `causality`). Όλη η ανταλλαγή βρίσκεται στο [`transcript.json`](transcript.json) - 17 φάκελοι MUFP. Ως συνήθως, η πρώτη γνώση (η Προβολή) κινείται μόνο στο μήνυμα 14, αφού έχουν διευθετηθεί ταυτότητα, εμπιστοσύνη, συμβόλαιο και σχήμα. ## Επαλήθευση ```bash # fingerprints round-trip (mu-fingerprint, see ../../tools/) mu-fingerprint acme/employee-mm.muif.json # sha256:0b4965f1... mu-fingerprint gov/taxpayer-mm.muif.json # sha256:d51f639e... # models validate against the MUIF schemas npx ajv-cli validate -s ../../schemas/manifest.schema.json -r "../../schemas/*.schema.json" \ -d acme/employee-mm.muif.json --spec=draft2020 # every envelope validates against the MUFP envelope schema npx ajv-cli validate -s ../../schemas/mufp-envelope.schema.json -r "../../schemas/*.schema.json" \ -d transcript.json --spec=draft2020 ```