Quale relazione descrive due diverse astrazioni dello stesso set di dati

0

Mi chiedo se esiste un termine specifico per quando le rappresentazioni multiple sono equivalenti ai dati. Significa che è possibile trasferire i dati da una rappresentazione all'altra senza alcuna perdita di dati.

Come un modello di oggetti in memoria che può essere letto dai file di dati con la garanzia che se deserializzi e poi serializzi, che i file con cui hai iniziato e i file con cui hai finito saranno equivalenti.

Ci sono un paio di descrizioni di persone che vengono in mente: "roundtrip safe", "rappresentazione 1 a 1", "ORM", "astrazione senza perdite" .....

Pensavo che il termine omoiconico si applicasse. Ma, a quanto pare, l'omoiconicità ha a che fare con la rappresentazione , non uguale data .

    
posta Tormod 08.04.2016 - 20:58
fonte

1 risposta

1

Penso che tu stia cercando isomorfo .

Un "isomorfismo" è una mappatura 1-a-1 che preserva la struttura tra due gruppi di oggetti. Si dice che due oggetti sono isomorfi se un dato isomorfismo li mappa l'uno con l'altro.

Questo concetto di solito corrisponde alla nostra intuizione che i due set siano "diverse rappresentazioni della stessa cosa", incluso il fatto che qualsiasi cosa tu possa fare con una rappresentazione puoi farlo altrettanto facilmente con l'altra.

Per completezza: la parte "preservazione della struttura" significa che qualsiasi relazione che è vera per due membri in un insieme deve anche essere vera per i membri corrispondenti dell'altro detto. Dato che è un po 'astratto, considera l'insieme di numeri interi e l'insieme di stringhe che rappresentano gli interi (senza zeri iniziali o notazioni scientifiche o qualsiasi altra cosa che li renderebbe non-1-a-1). L'insieme di numeri interi ha una relazione maggiore di quella. Possiamo definire una relazione superiore alla relazione per l'insieme di stringhe che rappresentano numeri interi. Ora, se scegliamo la mappatura ovvia che corrisponde a 3 a "3" e così via, questa relazione viene conservata da quando x > y è anche il caso che stringGreaterThan (string (x), string (y)) sia vero. Se scegliamo una mappatura stupida che corrisponde a 1 a "3" e 2 a "-42" e così via, ci sono molti casi in cui x > y ma stringGreaterThan (string (x), string (y)) non è vero, il che significa che la mappatura non è un isomorfismo.

P.S. Nella programmazione "isomorfo" a volte ha un significato completamente diverso, vale a dire un codice che può essere eseguito sul client o sul server senza alcuna alterazione. Ma dovrebbe essere molto ovvio nel contesto se stai parlando della mappatura 1-a-1 o del codice client-o-server.

    
risposta data 08.04.2016 - 21:27
fonte

Leggi altre domande sui tag