Schrift
[thread]4555[/thread]

MORK - Forschungen (Gle: ZUsammenstellung des Wissens über Mork



<< |< 1 2 3 >| >> 21 Einträge, 3 Seiten
renee
 2004-01-02 21:50
#40758 #40758
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe im anderen Thread einen Link gepostet, der vom "Erfinder" von MORK ist und ein wenig "Grammatik" erklärt\n\n

<!--EDIT|renee|1104695573-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
mättu
 2005-01-05 21:09
#40759 #40759
User since
2004-12-12
30 Artikel
BenutzerIn
[default_avatar]
Habe gerade gestern mit meinem Script aus dem anderen thread eine ganze excel-Tabelle Mailadressen importiert.
Hat voll gefunzt! Etwa 5 Minuten anpassen des Scripts, so dass es das xls-gelesen und dort alles mit @ gematcht hat und schon waren alle Adressen im Thunderbird.
War ganz überrascht und fast ein bisschen stolz ;-)
Und sehr froh, denn so wird die Sache langsam spannend und nützlich.
kabel
 2005-05-18 09:22
#40760 #40760
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
weil es z.b. nicht gut skaliert?
-- stefan
Gast Gast
 2005-06-09 11:41
#40761 #40761
Hab jetzt die Sourcen für MORK in den Firefox/Thunderbird Sourcen gefunden. Sind im Unterverzeichnis db\mork.
Vielleicht kann man damit ein Export/Import-Tool schreiben. Kann leider auch kein C++. Bis jetzt nur VB und Java.
mättu
 2004-01-02 19:05
#40762 #40762
User since
2004-12-12
30 Artikel
BenutzerIn
[default_avatar]
Hallo Leute

Hier diskutieren wir über MORK.
Was es ist, wie es funktioniert, wozu es nützlich (!) ist.

Hier meine Forschungsergebnisse der letzten Tage:

-Mork ist eine Art Datenbanksystem, das von Mozilla verwendet wird. Es dient zum Speichern der Adressbücher im Mailprogramm und der history im Browser.

-Mork wird vom Publikum im Internet als das schlimmste, schrecklichste, unintelligenteste Ablageformat angesehen, dass man je gesehen hat. Bemerkungen darüber sind extrem spöttisch oper hasserfüllt.

- Mork ist voll verwirrend. Es verwendet die selben Zeichen für verschiedene Zwecke, Informationen werden so kompliziert gespeichert und komprimiert, dass man schwer alles versteht.

- Grundsätzlich wird Mork in ASCII abgespeichert. Es kann von "jedem Editor" gelesen und geschrienen werden. Es verwendet ein seltsamen "Schlüssel-Wert"-System. Dabei haben die Schlüssel hexadezimale Zahlen als Werte, die auch in ASCII-Zeichen gespeichert werden. Das Ganze ist eingepackt in runde Klammern.
Code: (dl )
(8A=Mein Eintrag)


Zusammengehörende Blöcke von runden Klammern werden mit spitzen Klammern eingefasst. Zum Teil auch mit geschweiften und mit eckigen. Wer weiss, warum wo welche stehen..
Code: (dl )
<(B8=Custom4)(B9=Notes)(BA=LastModifiedDate)(BB=RecordKey)>


Es können auch Schlüssel sich auf Schlüssel eines anderen Blocks beziehen. Und da wird es verwirrend:
Code: (dl )
(^89^82)


Oder eine Zuweisung kann leer sein:
Code: (dl )
(^83=)


Daneben hat es plötzlich schleierhafte Zeichen, die irgend etwas markieren (wahrscheinlich):
Code: (dl )
(k^BE:c)(s=9)



Zum Adressbuch von Thunderbird:

Das Adressbuch ist in 3 Teile aufgeteilt. Am besten ist es, wenn du ein neues Adressbuch mit 1 Eintrag gründest und es mit einem Editor ansiehst.

Teil 1 enthält zuerst eine Bemerkung (glaube ich) und gibt sich zu erkennen:
Code: (dl )
// <!-- <mdb:mork:z v="1.4"/> -->


Dann folgt in der Block_eröffnung "<"eine mir schleierhafte Erklärung (a=c) und als Kommentar (//) die Angabe vom iso 8859-1, die es laut Posts aus anderen Foren gar nicht mal einhält.
Code: (dl )
< <(a=c)> // (f=iso-8859-1)


Anschliessend folgt Block 1 mit der Initialisierung aller Felder, die eine Adresskarte in TB hat (Hier nur der Beginn und das Ende:)
Code: (dl )
1
2
3
(B8=Custom4)(B9=Notes)(BA=LastModifiedDate)(BB=RecordKey)
...
(B5=Custom1)(B6=Custom2)(B7=Custom3)>

Am Ende dann der Schluss des Blocks 1 mit ">".
Offenbar spielt die Reihenfolge innerhalb des Blocks keine Rolle, auch nicht Linienumbrüche.

Soweit ist es einfach und in jedem Adressbuch gleich. Nun aber wird es echt komisch. (Ich habe nicht verstanden, was das soll, darum sag ich nicht "voll daneben")

Wenn nur einzelne Karten gespeichert sind (so wie in deinem erstellten Beispiel), folgt jetzt so eine komischer Block, von dem ich nicht weiss, was er soll.
Code: (dl )
1
2
3
<(80=0)>
{1:^80 {(k^BE:c)(s=9)}
[1:^82(^BD=0)]}

Gefolgt von der Adress-Karte (mit krytischer Eröffnung!):
Code: (dl )
@$${1{@

Und den Daten (Fragt mich nicht über Details):
Code: (dl )
<(83=1)(81=)(82=hallo@bello.ch)>

Wenn du noch Vor-und Nachnamen eingegeben hast, sind die auch mit weiteren Schlüsseln gespeichert.
Bestimmt merkst du jetzt, warum ich das System doof finde. Die Schlüssel haben in diesem Block wieder die selben Zahlen wie oben bei der Initialisierung der Kategorien..

Und schliesslich der Zuweisung aller Schlüssel aus Block 1 (Initialisierung) zu den Schlüsseln aus Block 2 (einzelne Karte). Und zwar auch dann, wenn gar kein Wert gespeichert ist. Man müsste doch meinen, wenn die Reihenfolge keine Rolle spielt, sollte man auch keine leeren Werte speichern müssen, nebenbei..
Hier also nur Anfang und Schluss (mit krytischer Einleitung und kryptischem Schluss):
Code: (dl )
1
2
3
4
5
6
{-1:^80 {(k^BE:c)(s=9)} 
[1:^82(^BD=1)]
[-1(^83=)(^84=)(^85=)(^86^80)
...
(^BB=1)]}
@$$}1}@

Was genau passiert ist mir in Einleitung und Schluss wie gesagt nicht klar, nur dass "-1" und "1" die erste Karte zu meinen scheinen. Der Mittelteil ist klar. (Schlüssel-Schlüssel-Zuweisungen, siehe oben)

Wenn du jetzt tief durchgeatmet hast, etwas Kühles zu Trinken besorgt hast und Lust hast auf grosses Kopfschütteln, füg deinem Adressbuch einen zweiten Eintrag hinzu. NUR EINEN!

Aha! Alles klar, denkst du. Jetzt kommt einfach unten ein zweiter Block hinzu, alles klar. Wenn du jetzt abenteuerlustig bist, kannst du etwas damit herumspielen und Werte verschieben, verändern usw. und sehen, was Thunderbird damit macht. Achtung! Beim Speichern muss TB immer geschlossen sein, sonst ist das File gesperrt.

Wunderbar habe ich gedacht, so wie du vielleicht und habe die 3. Karte mit copy&paste selbst hergestellt. Aber oh Schreck! TB konnte das Adressbuch nicht mehr lesen!
Wenn du jetzt in TB einen dritten Eintrag hinzufügst, entdeckst du die geheimnisvolle Welt des MORK erst richtig. Jawoll! Er "komprimiert" die Daten! Warum und wieso weiss der Himmel. Auf den ersten Blick scheint er damit Platz zu sparen und man möchte ein lobendes Wort verschwenden. Verschwenden! Schau mal ein langes Adressbuch an und sag dann deine Meinung. MORK mischt das zusammengefasste Format mit den Einzeleinträgen. Himmel hilf!

Wie gesagt, vielleicht habe ich es auch nur nicht richtig verstanden.. Allerdings findet man im Internet nicht wirklich einer , der für MORK eine Lanze brechen möchte. Es ist wie mit MS: Weils läuft, schimpfen nur ein paar, aber so richtig toll finden tuts keiner.

Zum "zusammengefassten" Format:
Zuerst kommen die Informationen zu den einzelnen Karten, denen aufsteigende Nummern verliehen werden. (Eigentlich hex, aber es scheint MORK egal zu sein, wenn man auch nur Dezimalzahlen verwendet. MORK ist tollerant!)
Code: (dl )
1
2
<(87=3)(81=)(82=hallo@bello.ch)(80=0)(83=1)(84=abc@def.de)(85=2)
(86=gaga@mork.biz)>

Und oh Wunder! Die kryptischen Einleitungen und Schlüsse sind verschwunden. Vielleicht ist der liebe Zauberer gekommen oder der böse Drache. Hauptsache, sie sind weg und stören nicht mehr. Mein böser Verdacht ist aber vielmehr, dass es sie gar nicht wirklich braucht, wenn man sie weglassen kann, und sie nur dazu dienen irgendwelche geheimnisvollen Gelüste des bösen MORK zu befriedigen..
(Ich habe nur Mailadressen gespeichert, natürlich könntest du auch Vornamen speichern usw. Die Zahlen werden dann einfach immer grösser und nie dürfen zwei den selben Schlüssel haben, sonst ignoriert MORK den Rest oder wird unlesbar.)

Nach den Informationen wieder eine lustige Einleitung mit Klammern auf, Klammern zu, mir schleierhaften Zuweisungen und bestimmt ganz wichtigen Informationen drin.
Code: (dl )
1
2
{1:^80 {(k^BE:c)(s=9)} 
[1:^82(^BD=3)]


Und jetzt das beste: Zu jeder Karte ein vollständiger Block mit allen Schlüssel-Schlüssel-Zuweisungen wie im Beispiel mit nur 1 Karte. Weil du's begriffen hast nur die erste Karte.
Code: (dl )
1
2
3
4
5
6
[1(^83=)(^84=)(^85=)(^86=)(^87=)(^88=)(^89^82)(^8A^82)(^8B=)(^8C=)
(^8D=)(^8E=0)(^8F=)(^90=)(^91=)(^92=)(^93=)(^94=)(^95=)(^96=)(^97=)
(^98=)(^99=)(^9A=)(^9B=)(^9C=)(^9D=)(^9E=)(^9F=)(^A0=)(^A1=)(^A2=)
(^A3=)(^A4=)(^A5=)(^A6=)(^A7=)(^A8=)(^A9=)(^AA=)(^AB=)(^AC=)(^AD=)
(^AE=)(^AF=)(^B0=)(^B1=)(^B2=)(^B3=)(^B4=)(^B5=)(^B6=)(^B7=)(^B8=)
(^B9=)(^BA=0)(^BB=1)]

Spannend ist die viertletzte Zuweisung auf der ersten Linie:
Code: (dl )
(^89^82)

Sie sagt: "89 aus Block 1 (=Primary Email) gehört zu 82 aus Block 2 (=hallo@bello.ch). Schlicht göttlich.
Der letzte Eintrag "(^BB=1)" scheint zu sagen, dass wir uns in der ersten Karte befinden, was wir aber schon längst wissen, denn schliesslich beginnt alles mit der Zahl 1 (Gleich nach der eckigen Klammer). Clevere werden bemerken, dass das Minus vor der 1 (aus der "Einzelspeicherung") verschwunden ist. Was auch hier den Schluss zulässt, dass es eigentlich unnötig war.

Auf jeden Fall.

Nun zur guten Nachricht: Auch wenn MORK bei grossen Adressbüchern immer nur einige Karten in der zusammengefassten Form speichert und einige zuunterst in der Einzelspeicherung, ist es möglich, alles in zusammengefasster Speicherung zu schreiben.
Wie schon erwähnt muss man auch nicht unbedingt hex-Schlüssel verwenden in den Informationen in Block 2.
Spiel doch mal ein wenig herum mit einer foreach-Schleife, die 5 oder 10 oder 100 Einträge mit zufälligen Mailadressen oder Vornamen oder usw. füllt.
Du musst lediglich daran denken, genau die richtige Anzahl Blöcke Schlüssel-Schlüssel-Zuweisungen (Block 3) zu haben. Die kryptische Einleitung kannst du einfach abschreiben.

So lange man nur "von aussen" ins Adressbuch schreibt, ist alles wunderbar. Mischt man aber das "Reinfummeln" mit ordentlichem Einfügen via TB-Adressbuch-Verwaltung, gibt es ein göttliches, unlesbares Durcheinander, weil TB natürlich immer wieder zur gemischten Speicherung zurückkehrt.

Für mich war es spannend, zu "morksen" und es dient meinen Zwecken, von aussen (mit perl natürlich) ein lesbares Adressbuch zu schreiben. Interessant wäre es sicher, das Ganze so weiter zu entwickeln, dass volles Lesen und Schreiben möglich würde. Die Idee CPAN-Modul ist sicher grossartig. Wenn ich doch sehr hoffe, dass die Arbeit bald überflüssig wird, weil Mozilla zu einer vernünftigen (bekannten) Datenbank wechselt, für die bereits Anbindungen bestehen.

Zum Schluss ein paar Probleme & Fragen, die ich euch vorläufig gerne zum Weitertüfteln überlassen würde:
- Lösch mal eine Karte und schau, was MORK jetzt tut!
- Nach welcher Logik entscheidet er sich für eine der beiden Speicherungsarten?
- Welche Logik steckt hinter den Block-Einleitungen?

Wär mir ein Vergnügen, von euch zu lesen.
Vielleicht gründen wir sogar eine MORK-Community und treffen uns bald in einem tiefen, unheimlichen Zauberwald zum ersten MORKCOM-Treffen. An einem Freitag-dem-13., zu Vollmond und an Wintersonnwende, versteht sich.

GRMORKGRÜÜSSSSEEEE (Mit tiefer, lauter, gefährlicher Stimmer)
M.
esskar
 2004-01-02 20:40
#40763 #40763
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich find das interessant!
gibt es ne grammatik dazu?
esskar
 2004-01-02 22:16
#40764 #40764
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Mork Grammatik
Sieht doch machbar aus!
esskar
 2004-01-02 22:37
#40765 #40765
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[E|B
,02.01.2005, 21:35]Erinnert mich stark an die Syntax von Backus-Naur, oder meine ich nur?

klar; das ist immer so.
Gast Gast
 2005-04-19 13:14
#40766 #40766
Hallo, ich interessiere mich gezwungenermaßen auch für das Mork-Format. Soll für meinen Chef E-Mail-Adressen aus einer Access-Datenbank mit seinem Mozilla/Thunderbird-Adressbuch synchronisieren. Den Text vom "Erfinder" habe ich auch gelesen und dachte mir zu Beginn, das Format sei vielleicht ja gar nicht so schlecht. (Der Erfinder scheint irgendwie Ahnung von KI/Ontlogien zu haben, mit denen ich mich zufällig etwas beschäftigt habe. Zuerst mal wird der begriffliche Rahmen definiert, danach die Atome - kennt Ihr Prolog? -, dann die Zuordnung dazwischen. Oder so ähnlich. *g*) Was mich bei einem solch kryptischen Format wie Mork aber die Haare raufen lässt, ist eine Bemerkung im Entwickler-Bereich von Mozilla, die da lautet:

[warning: there might be some inaccuracies in these two docs because changes that were made after the docs where written.]

In dem einführenden Text fehlen leider etliche Infos. Das Format scheint sich geändert zu haben. Abgesehen davon ist es ja nicht mal echtes Mork: laut Erfinder ist es ein abgespecktes Format, echtes Mork ist komplizierter!

Na ja, ich werde jetzt erst mal das im anderen Thread befindliche Perl-Skript testen, mir würde es nämlich reichen, ein komplettes Adressbuch von "außen" neu zu erstellen. Nur, dass ich nicht bloß einzelne Adressen, sondern Mailing-Listen erstellen muss.

Habt Ihr Euch mal angesehen, was bei Mailing-Listen mit der Datei passiert? Das ist dann so halb gehangen, jedenfalls bei mir: eine Adresse ist irgendwie komprimiert gespeichert (im oberen Teil), eine andere Adresse hingegen ist direkt in der Reihe für die Liste gespeichert. Und niemand weiß mal wieder, wann das eine oder wann das andere zum Tragen kommt. Schon gar nicht, warum.

Soviel also zum Thema "XML wird den Austausch von Daten erleichtern und kann auch von Menschen interpretiert werden".

So'n Quatsch: lasst uns doch lieber alles auf Mork umstellen!
Gast Gast
 2005-04-19 13:41
#40767 #40767
Falls Ihr das noch nicht gefunden haben solltet:

http://www.erys.org/resume/netscape/mork/why.html

An alle, die Mork für einen schlechten Scherz halten: es war offensichtlich vom Autor beabsichtigt! :-)
<< |< 1 2 3 >| >> 21 Einträge, 3 Seiten



View all threads created 2004-01-02 21:50.