Working with the new Type Editor [SORRY GERMAN]

3 views
Skip to first unread message

Jörg Richter

unread,
Jul 20, 2011, 12:52:01 PM7/20/11
to deepa...@googlegroups.com

as first usage information about the new type editor I attach a recent conversation here. It is in german, sorry.


On Jul 8, 2011, at 17:24, Jörg Richter wrote:

> Topicmaps- und Type-Editor Plugins sind standardmäßig installiert und funktional.
> Optional zu installierende Plugins gibt es derzeit nicht (bzw. sind noch nicht für die 4.0 angepaßt).
>
> Meinst Du mit "Ansicht der Datenverknüpfungen" das Navigieren entlang der Assozationen?
> Das wird auf allen Ebenen (Content, Application-Modell, Meta-Modell) bereits unterstützt.
> Immer wenn ein Topic angeklickt ist, siehst Du rechts unter "Associations" alle seine Assoziationen als Links.
> Anklicken eines Links deckt den assoziierten Topic und die Assoziation auf.
> So kannst Du die kompletten Strukturen als Topicmap sichtbar machen.
> Z.B. kannst Du von einer Instanz zu ihrem Typ (blaue Quadrate) navigieren, und dann alle anderen Instanzen dieses Typs sehen.
> Oder meinst Du was anderes?
>
> Das spektakuärste ist im Moment wahrscheinlich der Typ-Editor.
> Hier ein paar Usage-Infos dazu (der Typ-Editor ist noch nicht voll intuitiv ;-)
>
> Ein Typ erzeugst Du mit "New Topic Type ..." aus dem Create-Menu.
> Gebe bei "Topic Type" einen menschenlesbaren Type-Namen ein (ruhig mit Leerzeichen).
> Gebe bei "URI" eine eindeutige (Wichtig!) URI für den Typ ein.
> Wähle bei "Data Type" aus, ob es ein simpler Typ ist ("Text", "Number", "Boolean", "HTML"), oder ein komplexer Typ ("Composite").
> "Save" nicht vergessen.
>
> Für simple Typen kannst Du jetzt sofort Instanzen erzeugen.
>
> Für komplexe Typen kannst Du jetzt die Child-typen erzeugen und mit dem Parent-Typ assoziieren.
> Assoziation erzeugen (wie üblich) mit Rechtsklick auf einen Topic, dann "Associate" (die Richtung ist egal).
> Jetzt mußt Du den Assoziationstyp und die Rollen der beiden Typen einstellen.
> Klicke die Assoziation an, dann "Edit".
> Bei "Association Type" wähle aus "Composition Definition" oder "Aggregation Definition".
> Bei "Role Type" des Parent-Typs wähle aus "Whole Type".
> Bei "Role Type" des Child-Typs wähle aus "Part Type".
> "Save" nicht vergessen.
>
> Wenn Du jetzt eine Instanz anlegst siehst Du ein komplexes Fourmular.
> Bei aggregierten Child-Typs erhälst Du eine Combo-Box aus der Du eine vorhandene Instanz auswählen kannst oder eine neue eingeben kannst.
> "Save nicht vergessen".
>
> Die Instanz erscheint in der Map und Du kannst von dort auch entlang den Child-Instanzen navigieren.
> Man sieht also, daß jeder Wert als eigener Topic repräsentiert ist (und nicht mehr als Property).
>
> Komplexe Typen können beliebig tief verschachtelt sein.
> Es gibt aber noch eine Einschränkung: der Child-Typ einer "Aggregation Definition" darf selbst nicht "Composite" sein (sondern nur simple). Bei "Composition Definition" hingegen gibt es keine Einschränkung.
>
> Und eine Sache wird vom Formular-Generator/Prozessor noch nicht unterstützt: Many-Cardinalitäten.
> Many-Relationships kannst Du derzeit nur manuell durch Verbinden der Instanzen abbilden.
>
> Du kannst Typen jederzeit umbenennen, ihre URI ändern, oder neue Child-Typen ranhängen. Die Inhalte bleiben erhalten.
>
> Ach ... es gibt noch jede Menge Details ... mal sehen wie weit ihr kommt :)
> Bei Fragen helfe ich gerne weiter.
>
> Noch eine Kleinigkeit: zum Runterfahren "stop 0" in der Felix-Shell eingeben. Das beendet den Jetty-Webserver und fährt die DB sauber runter.
>
> Viel Spaß + Grüße
> Jörg
>
>
>
> On Jul 8, 2011, at 16:51, Juergen Neumann wrote:
>
>> Hallo Jörg,
>>
>> vielen Dank! Das hat soweit erst mal geklappt. Gibt es noch irgendwas
>> schickes, was darüber hinaus schon zu zeigen wäre? Vielleicht gib es
>> schon irgendein weiteres Plugin? Oder wie sieht es mit einem Type-Editor
>> oder einer Ansicht der Datenverknüpfungen aus?
>>
>> LG
>>
>> Juergen

Jörg Richter

unread,
Jul 20, 2011, 12:56:52 PM7/20/11
to deepa...@googlegroups.com

On Jul 8, 2011, at 20:03, Jörg Richter wrote:

> On Jul 8, 2011, at 18:06, Juergen Neumann wrote:
>
>>> Gebe bei "Topic Type" einen menschenlesbaren Type-Namen ein (ruhig mit Leerzeichen).
>>> Gebe bei "URI" eine eindeutige (Wichtig!) URI für den Typ ein.
>>

>> Kannst Du mir bitte ein Beispiel für eine eindeutige URI schicken.
>
> Das ist ein beliebiger Textstring (ohne Leer- und Sonderzeichen) der global eindeutig ist.
> Die Konvention ist: <domain>.<project>.<type>, also z.B:
> freifunknet.geomap.access_point
> eu.junes.task_management.to_do
> Wieviele Punkte darin vorkommen ist egal.


>
>>> Wähle bei "Data Type" aus, ob es ein simpler Typ ist ("Text", "Number", "Boolean", "HTML"), oder ein komplexer Typ ("Composite").
>>> "Save" nicht vergessen.
>>>
>>> Für simple Typen kannst Du jetzt sofort Instanzen erzeugen.
>>>
>>> Für komplexe Typen kannst Du jetzt die Child-typen erzeugen und mit dem Parent-Typ assoziieren.
>>> Assoziation erzeugen (wie üblich) mit Rechtsklick auf einen Topic, dann "Associate" (die Richtung ist egal).
>>> Jetzt mußt Du den Assoziationstyp und die Rollen der beiden Typen einstellen.
>>> Klicke die Assoziation an, dann "Edit".
>>> Bei "Association Type" wähle aus "Composition Definition" oder "Aggregation Definition".
>>

>> Kannst Du mir hierzu noch mal kurz die wesentlichen Unterschiede
>> schicken? Was ist eine Composition, was eine Aggregation? Was hat welche
>> Auswirkungen?
>
> Beides sind Teil-Ganzes Beziehungen.
> Kompositions-Teile werden mit dem Ganzen gelöscht. Aggregations-Teile nicht.
> Ein Kompositions-Teil gehört zu genau einem Ganzen, wird also nicht mehrfach verknüpft.
> Aggregations-Teile können mit mehreren Ganzen verknüpft sein.
> Beispiel für eine Komposition ist ein Buch-Titel: wenn das Buch gelöscht wird, wird auch der Titel-Topic gelöscht.
> Beispiel für eine Aggregation ist "Country" (als Teil einer Adresse): wenn die Adresse gelöscht wird, bleibt der Country-Topic erhalten. Das Country-Topic existiert nur einmal und ist mit mehreren Address-Topics verknüpft.
>
> Das DM Page Panel rechts zeigt immer ein Ganzes an (Info page oder Formular).
> Für Aggregation-Typen wird im Formular eine Combobox generiert. Damit kann der User z.B. im Address-Formular (was wiederum, auch indirekt, in ein Person-Formular eingebettet sein kann) ein vorhandenes Land auswählen, oder ein neues eingeben (oder auch ein vorhandenes nochmal eingeben, das macht keinen Unterschied). Der Formular-Prozessor erzeugt dann den entsprechenden Topic-Baum bzw. die Verknüpfungen.
>
>> Was mich auch irritiert ist Folgendes:
>>
>> Ich habe eine neue Instanz vom Typ Person angelegt. Da habe ich alle
>> Felder ausgefüllt. Meinem Verständnis nach müsste ich doch jetzt Germany
>> als Instanz vom Typ Land (Country) finden können? Es wird aber immer nur
>> auf meiner Person referenziert. Was mache ich falsch, bzw. verstehe ich
>> dabei noch nicht? Warum wird mir Germany nicht als eigene Instanz
>> (Topic) angezeigt?
>
> Du machst nichts falsch. Es gibt den Germany-Topic und Du kannst ihn über Navigation von der Person-Instanz aus aufdecken. Aber es stimmt: wenn Du nach "Germany" suchst (per Such-Funktion) dann erhälst Du eine Liste der Personen aus diesem Land und nicht die direkten Country-Instanzen. Das kommt daher, daß "Country" (indirekt) Teil einer Person ist, aber nicht als "Search Unit" deklariert ist. Die Searchable Unit ist die Person.
>
> Die zugrundeliegende Fragestellung ist, welche Einheiten in Suchergebnissen präsentiert werden sollen. Ein Beispiel: wenn man "13187" sucht möchte man wahrscheinlich, nicht einen "Postal Code"-Topic angezeigt bekommen, sondern eine größere Einheit. Das könnten z.B. die Adressen sein, die diese PLZ enthalten. Oder das könnten die Personen zu diesen Adressen sein. Oder es könnten die Workspaces zu diesen Personen sein. Wo soll also der Cut gemacht werden auf dem Weg nach oben in der Struktur-Hierarchie? Diese Frage ist Domänen-anhängig und läßt sich nicht allgemein beantworten.
>
> Zu diesem Zweck wurde das "Searchable Unit"-Konzept in das Meta-Modell aufgenommen. Dieses Flag kann individuell zu jedem Typ gesetzt werden. Standardmäßig ist es so konfiguriert, daß die Typen, die auch im Create-Menu auftauchen als Searchable Units behandelt werden, und alle anderen nicht. Daher enthält Deine Ergebnis-Liste keine Country-Topic.
>
> Derzeit ist das "Searchable Unit"-Setting nicht über die GUI editierbar. Dazu fehlt aber nicht viel, und dieses Feature könnte in Kürze realisiert werden.
>
> -----------------------------
>
> Hier noch Infos dazu, wie die komplexen Topic-Strukturen entstehen und wie sie navigiert werden können (das hatte ich geschrieben bevor ich Deine Frage richtig verstanden habe):
>
> Ein Country-Topic ist mit dem Person-Topic nicht direkt assoziiert, sondern entsprechend der verschachtelten Person-Typ-Definition, 3 Schritte weit entfernt:
>
> Eine Person hat mehrere "Address Entries" (Komposition)
> Ein "Address Entry"
> hat ein "Address Label" (Aggregation) -- sowas wie "home" oder "work"
> und eine "Address" (Komposition)
> Eine Address hat (u.a.) ein "Country" (Aggregation)
>
> Das heißt, Deine Person-Instanz ist erstmal mit einer "Address Entry" Instanz assoziiert. Diese ist mit einer "Address" Instanz assoziiert, und diese wiederum ist mit der Country-Instanz verbunden.
>
> Daß das auf der untersten Ebene so ist, ist Ausdruck davon, daß wir keine Properties mehr haben, sondern typisierte (simple) Topics, die zu komplexen Topic-Strukturen zusammengefaßt werden um ein "Ganzes" zu repräsentieren.
>
> Die Navigation im Interface arbeitet erstmal nur direkt auf diesem untersten Layer, d.h. immer nur 1 Schritt auf einmal.
>
> Im Moment entspricht diese low-level Navigation also nicht der Intuition, denn es ist umständlich von der Person zum Land zu navigieren, aber es geht. Und was derzeit garnicht geht, ist die Beantwortung der intuitiven Frage "Wer kommt noch aus diesem Land", denn vom Land kommt man ja erstmal zu den "Address"-Topics und nicht zu den Personen.
>
> Hier ein Hinweis, wie Du diese komplexen Strukturen aufdecken kannst. Ungünstig ist derzeit, daß Instanzen von komplexen Typen manchmal kein sprechendes Label haben sondern nur eine Nummer. Wenn Du in der "Associations"-Liste, die rechts angezeigt wird, die Maus über einen Topic (Icon oder Link) bewegst, wird in einem Tooltip angezeigt, von welchem Typ dieser Topic ist. So kannst Du, wenn Du die Typ-Struktur kennst, gezielt navigieren.
>
> Klick mal den blauen Quadraten entlang, um die komplexe Typ-Definition aufzudecken. Und drücke mal "Edit" wenn Du auf einem komplexen Typ stehst, dann siehst die alle seine Child-Typen auf einen Blick (inklusive Assoziationstypen und Kardinalitäts-angeben).
>
> Auf dieser elementaren 1-Schritt Navigation/Visualisierung könnten später higher-level mehr-Schritt Navigation/Visualisierung aufgebaut werden. Ob diese immernoch komplett aus dem Modell automatisch erzeugt werden kann, oder ob das eher Domänen-spezifisch ist, bzw. wie das Meta-Modell dazu aussieht, kann ich noch nicht sagen. Da ist noch einiges Kopfzerbrechen notwendig. Ich denke daß wir da spannendes Neuland betreten, das einiges Innovationspotential hat.
>
> Grüße
> Jörg

Reply all
Reply to author
Forward
0 new messages