cybop-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cybop-developers] knowledge path with index instead of method "access/g


From: Christian Heller
Subject: [cybop-developers] knowledge path with index instead of method "access/get"
Date: Tue, 17 Jul 2012 18:09:04 +0200
User-agent: KMail/1.13.7 (Linux/3.2.0-3-amd64; KDE/4.8.4; x86_64; ; )

Hallo Herr Gallus,

[..]
> Allerdings helfe ich mir gerade noch mit einen "Dirty
> Hack", um den gewünschten Part aus den cybol-Dateien zu holen. In der
> 'translate_specification.cybol', welche sich im 'logic' verzeichniss
> befindet, hole ich einen von mir direkt addressierten 'part'. Zum Erfüllen
> meiner ToDo's benötige ich eine entsprechende Methode die den 'part' anhand
> eines übergebenen Index holt.
> Ich hatte mir etwas in der folgenden Art vorgestellt (Ich hoffe Sie auch):
> <part name="get_specification_by_index" channel="inline" encoding="utf-8"
> language="text/cybol" format="access/get" model="">
>     <property name="result" channel="inline" encoding="utf-8"
> language="text/cybol" format="path/knowledge" model=".temp_specification"/>
>     <property name="model" channel="inline" encoding="utf-8"
> language="text/cybol" format="path/knowledge" model=".specification"/>
>     <property name="index" channel="inline" encoding="utf-8"
> language="text/cybol" format="path/knowledge"
> model=".temporary.loop_index"/>
> </part>

nach längerer Überlegung bin ich zu dem Schluss gekommen, dass eine
"access/get"-Operation in CYBOL ungünstig ist. Um eine solche zu
realisieren, gäbe es prinzipiell zwei Möglichkeiten:

1) Zeiger als CYBOL Format (Typ) einführen, z.B. "path/pointer"

Dann könnte man im CYBOI "low level" einen Zeiger auf den gewünschten
Baumknoten (auf den der angegebene Index verweist) kopieren in das
"Model" des angegebenen Zielknotens ("result" property).

Nachteil:
a) Damit würde die Zeigerfreiheit von CYBOL verloren gehen.
b) Das "model" des Zielknotens müsste zerstört werden, wobei mir die
Konsequenzen nicht ganz klar sind, falls das "model" woandershin verweist.
c) Gestattet man CYBOL-Entwicklern, mit Zeigern zu hantieren, könnte auch
die automatische Rubbish (Garbage) Collection in CYBOI gefährdet werden.
Daher möchte ich von Zeigern in CYBOL die Finger lassen.

2) Kopieren des Quellknotens in einen Zielknoten

Eine jetzt schon vorhandene Möglichkeit ist, den Quellknoten in einen
Zielknoten des Formates (Types) "element/part" zu kopieren.

Nachteil:
Es wird eine Stufe bzw. ein Knoten (mit dem Namen des Quellknotens)
mehr unter dem Zielknoten eingeführt.

Beispiel:
.specification.logic.test_1
(ein Part mit dem Namen "test_1")
wird kopiert nach:
.wui.index.body.list
was im Ergebnis zu einem Knoten mit folgendem Namen führt:
.wui.index.body.list.test_1
Dann hängt man eine gewünschte Eigenschaft an, z.B.:
.wui.index.body.list.test_1#description

Problem:
Der Knotenname ist nicht vorhersehbar und dadurch nicht verwendbar.
Sie können ".wui.index.body.list.test_1" nicht sinnvoll in einer
Schleife verwenden, weil der nächste Knoten vielleicht "test_2" heißt.

3) Pfad in den Wissensbaum mit Indexangabe

Aus diesem Grunde schlage ich eine neue Idee vor:
Die "access/get"-Methode wird aus CYBOI und CYBOL komplett entfernt.
(Sie wurde bisher sowieso noch nicht verwendet.)
Statt dessen wird es eine Möglichkeit geben, in einen "path/knowledge"
einen Index (ähnlich XPath) einzubauen, z.B. so:

.specification.logic.[0]

Weitere Unterknoten oder Eigenschaften kann man trotzdem anhängen, z.B.:

.specification.logic.[0]#description

Der Punkt . oder Raute # vor den eckigen Klammern ist nach wie vor nötig,
um anzudeuten, ob sich der Index auf das Model oder die Properties bezieht.
Die Implementierung wird noch ein wenig Zeit brauchen ...

-- 
Reform our monetary system!
Use community currencies!
Central banks like Fed are private. Let the state issue money!
http://www.humane-wirtschaft.de/beitraege/in-english/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]