Seite 1 von 2

Verfasst: Montag 22. September 2008, 12:29
von dor_neue
Antwort war:
Einlesen - stures einlesen z.B. einer Textdatei - keine Weiterverarbeitung vorbereitet

Parsen - einen speziellen Teil aus einer z.B. Textdatei herausnehmen und das weiterverarbeiten (z.B. bei einer XML-Datei die Punkt 'Temperatur')

Mappen - übernehmen der ganzen struktur und Hirachie um damit später weiter arbeiten zu können.

Also is in seinen Augen ein XML-parser wie DOM ein Mapper da er ja alle Daten verarbeitet, auch die, die man nicht sofort brauch...


Ich danke Euch für Eure Hilfe und Eure Vorschläge - hat mir geholfen vorbereitet in das Gespräch zu gehen...

Verfasst: Montag 22. September 2008, 13:54
von Leonidas
Also ich finde ja die Unterscheidung zwischen Parsen und Mappen ziemlich arbiträr. Oftmals ist es auch nicht so einfach, Daten selektiv zu parsen, bei XML muss man ja immer auch gucken ob die Anfangstokens entsprechende Endtokens haben.

Verfasst: Montag 22. September 2008, 14:59
von dor_neue
wie gesagt, das war seine Interpretation und die stimmt ja auch zum großen Teil mit der überein was ich so gefunden habe. Schade finde ich es nach wie vor, dass es zum Thema mappen keine Definition gibt wie beim parsen der Fall.
Sowas kann eben Missverständnisse vermeiden - auch wenn die Software, die sich schreibe wohl eher kleiner Fehler enthalten kann, das relativ kompakt und klein...

PS: ich setz mal voraus, dass arbitär sowas wie fließend bzw. willkürlich ist...
Denn Synonyme finde ich dafür keine - auch dar Duden lässt mich da nen bissel im Stich...

Verfasst: Montag 22. September 2008, 15:07
von Leonidas
dor_neue hat geschrieben:PS: ich setz mal voraus, dass arbitär sowas wie fließend bzw. willkürlich ist...
Denn Synonyme finde ich dafür keine - auch dar Duden lässt mich da nen bissel im Stich...
Ja, das war damit gemeint; ich habe es nur falsch geschrieben.

Verfasst: Montag 22. September 2008, 16:48
von BlackJack
@dor_neue: Also ich finde die Beschreibung von "Parsen" falsch. Die Weiterverarbeitung gehört IMHO nicht dazu und nur bestimmte Teile "parsen" eigentlich auch nicht. Ein Parser im Sinne des Gebiets Übersetzerbau, bekommt eine Eingabe und parst die entweder ganz oder gar nicht, d.h. Abbruch mit Fehler wenn die Struktur der Eingabe nicht stimmt.

Das was Du als Erklärung bei "Mappen" stehen hast, also zum Beispiel eine komplette XML-Datei in ein DOM umsetzen, ist für mich "Parsen". So etwas machen ja zum Beispiel XML-Parser. Die heissen nicht umsonst *so* und nicht XML-Mapper.

Und zu "Mappen" gibt's ja eine Definition, nämlich "Abbilden" von einem Wert auf einen anderen, oft äquivalenten Wert. Beispiel Object-Relational Mapping (ORM) oder Dictionaries.

Verfasst: Dienstag 23. September 2008, 07:16
von dor_neue
BlackJack hat geschrieben: Und zu "Mappen" gibt's ja eine Definition, nämlich "Abbilden" von einem Wert auf einen anderen, oft äquivalenten Wert.
Ich weiß was Du meinst, aber diese Definition gibt es eben nicht - leider...
Somit kann jeder den Begriff ein wenig anders auslegen - Problem dabei - ich muss mit meinem Dozenten arbeiten und mir somit angewöhnen welche Fachbegriffe er wann verwendet. Eine Korrektur klingt zwar einfach, aber wer sich mal an seine Schulzeit zurückerinner und überlegt wie es war den Lehrer zu belehrern - weißt was ich meine?!?

Somit bleibt für mich ein Berg Eindrücke die ich hier zu dem Thema sammeln konnte und das Wissen wie es andere Leute verstehen wenn ich sage eine XML-Datei parsen oder mappen.
Grundsätzlich würde ich auch mappen mittlerweile mehr als Abbildung verstehen - hab auch ein Beispiel gelesen gehabt mit binären schreiben von structs in Datei (unter C) und das wiederauslesen wurde dann als mappen bezeichnet - ich glaube das kommt meiner Definition am nächsten (oder eben Dein Beispiel mit Hibernate unter Java)

Verfasst: Dienstag 23. September 2008, 07:49
von BlackJack
Doch diese Definition gibt es. "to map" und "abbilden" sind Fachbegriffe in der Mathematik und damit auch in der Informatik. Es ist halt bloss ein sehr allgemeiner Begriff, da sich sehr vieles als Abbildung auffassen lässt. Funktionen bilden Werte auf andere ab, Dictionaries bilden Schlüssel auf Werte ab, Listen bilden Indizes auf Werte ab, ORMs bilden Objekte auf Datenbankinhalte ab und umgekehrt, usw.

Verfasst: Dienstag 23. September 2008, 16:59
von keppla
Auch ich kann mich dem anschliessen, dass Mapping (mindestens auch) ein Fachbegriff für "Abbildung" ist. Typische Mappings aus den Vorlesungen waren hashfunktionen.
Den Unterschied zwischen Mapping und Parsing sehe ich da, dass ich beim Mapping erwarten würde, dass die Mächtigkeit einer eingabemenge die der ausgabemenge ist (korrigiert mich).
Beim Parsing kann aus mehreren Eingabeelementen ein Eusgabelement entstehen (z.b. aus vielen zeichen ein token, aus tokens ausdrücke, etc).

Verfasst: Mittwoch 24. September 2008, 12:21
von Panke
Auch ich kann mich dem anschliessen, dass Mapping (mindestens auch) ein Fachbegriff für "Abbildung" ist. Typische Mappings aus den Vorlesungen waren hashfunktionen.
Den Unterschied zwischen Mapping und Parsing sehe ich da, dass ich beim Mapping erwarten würde, dass die Mächtigkeit einer eingabemenge die der ausgabemenge ist (korrigiert mich).
Eine typische Hashfunktion wär für die Mächtigkeitsgeschichte schon ein Gegenbeispiel.

Verfasst: Mittwoch 24. September 2008, 15:20
von keppla
Eine typische Hashfunktion wär für die Mächtigkeitsgeschichte schon ein Gegenbeispiel.
Ok, ich habe hier "menge" etwas ungenau genutzt.
Gemeit war, dass ich für jeden Eingabewert genau einen Ausgabewert habe, auch wenn ich vielleicht bei mehreren Eingaben die gleiche Ausgabe bekomme. Um das mal besser zu formulieren:

Code: Alles auswählen

assert len(some_list) == len( map(hash_function, some_list) )
Du meintest sowas wie

Code: Alles auswählen

assert not len(set(some_list)) == len( set(map(hash_function, some_list) )

Verfasst: Donnerstag 25. September 2008, 10:42
von Panke
Ach, so hast du das gemeint. Also mir würde das als Begriffsdefinition für 'mapping' nicht reichen. Mein Vorschlag wäre ja, so schwammige Begriffe schlichtweg zu vermeiden und bei Konfrontation mit ihnen einfach nachzufragen.

Verfasst: Donnerstag 25. September 2008, 11:12
von Pekh
Wie wäre es mit folgendem Ansatz:

mappen: Abbilden von etwas (in diesem Fall einem Dateiinhalt) auf etwas anderes (in diesem Fall eine Datenstruktur). Definiert sind Ausgang und Ziel, nicht aber der Weg dorthin (Was, aber nicht wie).

parsen: Sehe ich mehr als eine Beschreibung des Weges, als die Frage wie ich die eine Struktur umwandele.

Mappen wäre also eine mathematische/funktionale Beschreibung des Vorgangs, Parsen eine algorithmische.

Verfasst: Freitag 26. September 2008, 08:10
von dor_neue
Pekh hat geschrieben:Wie wäre es mit folgendem Ansatz:

mappen: Abbilden von etwas (in diesem Fall einem Dateiinhalt) auf etwas anderes (in diesem Fall eine Datenstruktur). Definiert sind Ausgang und Ziel, nicht aber der Weg dorthin (Was, aber nicht wie).

parsen: Sehe ich mehr als eine Beschreibung des Weges, als die Frage wie ich die eine Struktur umwandele.

Mappen wäre also eine mathematische/funktionale Beschreibung des Vorgangs, Parsen eine algorithmische.
würde ja heißen, dass jeder Parser eigentlich auch ein Mapper ist...
Neee, die Definition find ich doof :P