Unterschied zwischen mappen - parsen - einlesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
dor_neue
User
Beiträge: 74
Registriert: Montag 16. Juni 2008, 18:51

Unterschied zwischen mappen - parsen - einlesen

Beitragvon dor_neue » Mittwoch 17. September 2008, 12:32

Was ist eigentlich der Unterschied zwischen:
- mappen
- parsen
- einlesen

einlesen:
Zeichen oder Byteweises Streaming bis der Vorgang abgeschlossen ist. Z.B. einlesen einer Textdatei oder einlesen von Tastatureingben

parsen:
Eingelesene Daten für Weiterverarbeitung nutzbar machen. Z.B. XML-Datei wird zeichenweise eingelesen und dann geparst. dabei wird die Struktur und Hirachie der XML-Datei auf ein Objekt bzw. eine Variable übertragen und ist dann in der Weiterverarbeitung der Daten abrufbar. So kann man dann gezielt sagen welchen Knoten man bei der XML-Datei auslesen möcht. (DOM)

mappen:
soll das gleiche wie parsen sein und genauso funktionieren - nur anders und mit anderem Ergebniss...


Genau deswegen frag ich jetzt mal hier nach. Kennt jemand den genauen Unterschied zwischen den einzelnen Vorgängen? Google is bei der Suche leider keine wirklich sehr große Hilfe - so gibt es zwar einen Stamm namens Parsen und es gibt Bewerbungsmappen - aber das hilft mir nicht beim beantworten meiner Frage...
BlackJack

Beitragvon BlackJack » Mittwoch 17. September 2008, 13:04

Ich weiss nicht ob es soviel Sinn macht "Unterschiede" zwischen den drei Begriffen zu suchen, weil es drei orthogonale Begriffe sind, die ausserdem, ausser bei "parsen", gar nicht so klar definiert sind. Unter "XML einlesen" kann man durchaus auch verstehen, dass da das Parsen mit enthalten ist.

Und "mappen" ist ein *sehr allgemeiner* Begriff, der zu deutsch "abbilden" heisst, und definitiv nicht das gleiche wie "Parsen" ist. Also einen Wert auf einen anderen abbilden, das erfüllt jede (mathematische) Funktion oder auch Dictionaries und Listen.
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Beitragvon sea-live » Mittwoch 17. September 2008, 15:22

Hast du denn ein aktuelles problem mit den 3 funktionen
in python gibt es für exel bereits fertige module csv reader zB die das alles für dich in einem satz erledigen
BlackJack

Beitragvon BlackJack » Mittwoch 17. September 2008, 15:29

@sea-live: Du kennst das Problem nicht, weisst aber das es mit Excel oder dem `csv`-Modul gelöst werden kann!? :shock:
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Mittwoch 17. September 2008, 18:10

BlackJack hat geschrieben:@sea-live: Du kennst das Problem nicht, weisst aber das es mit Excel oder dem `csv`-Modul gelöst werden kann!? :shock:

Muss eine neue Implementierung von /dev/glaskugel sein :-D
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Mittwoch 17. September 2008, 18:53

Hyperion hat geschrieben:Muss eine neue Implementierung von /dev/glaskugel sein :-D


Gibts da jetzt auch ne USB-Variante davon? Oder ist das nur wieder nen Emulator ? :O

Ich muss mich da BJ anschliessen, dass Definitionen von diesen schwammigen Begriffen nicht unbedingt sinnvoll sind.

Darf man denn fragen wie du zu einer so theoretischen Fragestellung kommst?

Ansonsten kann ich nur mit http://de.wikipedia.org/wiki/Parser dienen ;)
dor_neue
User
Beiträge: 74
Registriert: Montag 16. Juni 2008, 18:51

Beitragvon dor_neue » Donnerstag 18. September 2008, 10:54

Ähmm, mein Problemen mit den Begriffen ist:
Jeder benutzt diese und keiner weiß was es bedeutet!
Wenn mich jemand anschaut und mir sagt, er habe eine Text-Datei gemappt -> ?!?

Ich kann doch nicht Wörter benutzen wie ich will - es muss doch eine Richtlinien oder ähnliches geben...

Weitere Beispiele dafür:
dünsten - kochen
errichten - bauen
compilieren - interpretieren
löschen - vernichten
Information - Daten
Auto - PKW

Für jeden Begriff gibt es eine Abgrenzung zu anderen und jeder weiß, wenn er die Wörter wirklich kennt, was diese bedeuten. Ich halte es für wichtig, wenn ich über ein Thema rede, das ich dann auch entsprechende Begriffe verwende. Vor allem beim Programmieren ist die gleiche Kommunikationsgrundlage die wichtigste Grundlage um Informationen auszutauschen.

Hoffe Ihr konntet verstehen was ich suche und meine...
Trotzdem Danke für die Hilfe mit der CSV-Unterstützung - wenn ich in die Situation kommen sollte, diese zu brauchen schau ich in diesem Theard nochmal nach wie es hieß... :P
BlackJack

Beitragvon BlackJack » Donnerstag 18. September 2008, 11:10

Also ich hoffe, dass ich in der Regel weiss was die Begriffe bedeuten, die ich verwende.

Ausser "parsen" was ein definierter Fachbegriff ist (siehe Wikipedia-Artikel zu "Parser"), haben die anderen Begriffe eine sehr kontextabhängige Bedeutung, man kann also nicht sagen was sie bedeuten ohne den Zusammenhang zu kennen.

Wenn jemand sagt er hat eine "Textdatei gemappt", dann würde ich nachfragen was er damit meint. Ich würde vermuten, dass es hier um `mmap()` geht, aber 100%ig sicher wäre ich ohne weiter Informationen nicht. Diese Bedeutung von "Mappen" hat mit Parsen nichts zu tun, kann man also nicht vergleichen (Äpfel/Birnen). Und mit Einlesen in so fern, dass man eben nicht selbst einliesst, sondern so tut, als wenn die Daten der Datei im Speicher liegen würden. Das konkrete Einlesen, und eventuelle Schreiben, der Daten verschwindet also hinter einer Abstraktionsschicht.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 18. September 2008, 11:33

dor_neue hat geschrieben:Wenn mich jemand anschaut und mir sagt, er habe eine Text-Datei gemappt -> ?!?

Dann weißt du dass er sich entweder in einem solchen Umfeld aufhält was die für das Umfeld-spezifische Bedeutung von mappen in diesem Kontext Sinn ergibt oder das er Blödsinn redet ("Ich habe mir das Internet ausgedruckt").

dor_neue hat geschrieben:Ich kann doch nicht Wörter benutzen wie ich will - es muss doch eine Richtlinien oder ähnliches geben...

Doch, durchaus. Die Informationen die Wörter in natürlichen Sprachen kodieren sind (aus biologischer Sicht) degeneriert, d.h. die gleiche Information kann durch verschiedene Wörter ausgedrückt werden, dazu kommt, dass das gleiche Wort verschiedene Bedeutungen haben kann. Nehmen wir mal das englische Wort "match" als Beispiel. Das Wort kann sowohl für einen Wettkampf stehen, als auch für einen Suchtreffer bei Regulären Ausdrücken. natürliche Sprache hat Kontext und je nach Bedeutung werden die Wörter verständlich, so würde kaum jemand "Have you seen the match last night on TV?" mit "Hast du dir gestern den Suchtreffer gestern Abend im Fernsehen angesehen?" übersetzen - das wirkt ähnlich sinnfrei wie die frühen automatischen Computerübersetungen, die eher von humoristischen Wert waren.

dor_neue hat geschrieben:Für jeden Begriff gibt es eine Abgrenzung zu anderen und jeder weiß, wenn er die Wörter wirklich kennt, was diese bedeuten. Ich halte es für wichtig, wenn ich über ein Thema rede, das ich dann auch entsprechende Begriffe verwende. Vor allem beim Programmieren ist die gleiche Kommunikationsgrundlage die wichtigste Grundlage um Informationen auszutauschen.

Richtig. Aber auch "Programmierung" ist kein Einheitliches Thema, da gibt es auch Überschneidungen und verschiedene Kontexte. Und mappen kann je nach Kontext verschieden sein. Mappings sind etwa Datentypen die einzelne Elemente auf andere abbilden, auch kann man mittels Mapping ein Objekt mit einer Datenbanktabelle verbinden (siehe SQLAlchemy, wo es direkt "Mapper" gibt), als nächstes kommt dann die Funktion ``map()`` aus der funktionalen Programmierung, die jedes Element einer Liste durch eine definierte Funktion durchjagt und dann die Ausgaben in eine neue Liste schreibt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
dor_neue
User
Beiträge: 74
Registriert: Montag 16. Juni 2008, 18:51

Beitragvon dor_neue » Donnerstag 18. September 2008, 11:53

Die Frage nach den 3 Begriffen bezieht sich (jetzt mal ausnahmsweise) nicht auf Python.
Es geht hier im speziellen um einen Kollegen, der mappen für alles verwendet. Ich weiß aber, dass er richtig Ahnung hat von Programmierung. Ihn einfach zu fragen würde dazu führen, dass er mich fragt was ich darunter verstehe und mich dann nach der Lösung suchen lassne (is so ne Art Dozent für mich).
Also überspringe ich den Schritt - suche erst nach Definitionen / Bedeutungen etc. und frag ihn dann.
@Leonidas: Wie Du schon sagtest - Wörter können Unterschiedliche Bedeutungen haben (Hahn (Tier) - Hahn (Wasser-)) aber im Kontext wird der Sinn dann klar.
Wenn ich dem "Dozenten" zuhöre spricht er sowohl beim Einlesen von Textdateien als auch beim Einlesen aus einer Datenbank von Mappen. Auch beim Parsen einer XML-Datei oder bei jeder anderen Möglichkeit wenn Daten in das Programm kommen. Also muss es doch einen Grund haben - heißt mappen auch Daten auf Plausibilität zu prüfen und festzustellen ob es dort zu Fehlern kommt / kam?
Umschließt Parsen eine Plausibilitätsprüfung oder ist es das reine Datenstruktur erkennen und auf eine Variable abbilden.
Ich komm bei solchen "Kleinigkeiten" sehr schnell durcheinander - vermutlich auch weil ich diesem zu viel Beachtung bewohne. Für mich ist es aber nunmal nicht einfach mit: "Ja, hab ich glaube ich verstanden" abgetan - dafür ist mir meine Zeit und die des "Dozenten" einfach zu schade. Schließlich will keiner etwas 3 mal erklären oder erklärt bekommen - sondern schon nach der ersten Erklärung daruas Ergebnisse und Resultate erzeugen können.
BlackJack

Beitragvon BlackJack » Donnerstag 18. September 2008, 12:11

Wenn er "mappen" zu seinem Lieblingswort erkoren hat, was er überall verwendet, dann geh' ruhig auch mal davon aus, dass er es teilweise falsch und unpassend verwendet.

"Mappen" heisst nicht "überprüfen" sondern, wie schon gesagt, "abbilden".

Was genau meinst Du jetzt mit Plausibilitätsprüfung? Parser prüfen natürlich ob die Eingabe den Regeln entspricht und meckern, falls sie das nicht tun.
dor_neue
User
Beiträge: 74
Registriert: Montag 16. Juni 2008, 18:51

Beitragvon dor_neue » Donnerstag 18. September 2008, 12:48

BlackJack hat geschrieben:Parser prüfen natürlich ob die Eingabe den Regeln entspricht und meckern, falls sie das nicht tun.

Das meinte ich - danke!
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 18. September 2008, 12:54

dor_neue hat geschrieben:Also muss es doch einen Grund haben - heißt mappen auch Daten auf Plausibilität zu prüfen und festzustellen ob es dort zu Fehlern kommt / kam?

Nein, sowas nennt man validieren. Wie etwa HTML-Formulare, JVM Bytecode oder HTML-Markup.

dor_neue hat geschrieben:Umschließt Parsen eine Plausibilitätsprüfung oder ist es das reine Datenstruktur erkennen und auf eine Variable abbilden.

Wenn die Datenstruktur blödsinn ist (Syntaxfehler) dann kann man so etwas logischerweise nicht konvertieren.

dor_neue hat geschrieben:Für mich ist es aber nunmal nicht einfach mit: "Ja, hab ich glaube ich verstanden" abgetan - dafür ist mir meine Zeit und die des "Dozenten" einfach zu schade. Schließlich will keiner etwas 3 mal erklären oder erklärt bekommen - sondern schon nach der ersten Erklärung daruas Ergebnisse und Resultate erzeugen können.

Richtig. Aber es ist doch seltsam dass du uns fragst und nicht ihn, schließlich ist er der Dozent und nicht wir. Also jetzt nicht dass ich was dagegen habe, die Begriffe mit dir zu diskutieren, ich meine einfach so allgemein.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
dor_neue
User
Beiträge: 74
Registriert: Montag 16. Juni 2008, 18:51

Beitragvon dor_neue » Donnerstag 18. September 2008, 13:59

Ihn frage ich als nächstes aber:

dor_neue hat geschrieben:Ihn einfach zu fragen würde dazu führen, dass er mich fragt was ich darunter verstehe und mich dann nach der Lösung suchen lassne (is so ne Art Dozent für mich).
Also überspringe ich den Schritt - suche erst nach Definitionen / Bedeutungen etc. und frag ihn dann.


Mal sehen was er unter den Begriffen versteht...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 18. September 2008, 14:17

dor_neue hat geschrieben:Mal sehen was er unter den Begriffen versteht...

Ja, da bin ich auch gespannt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]