Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
???:L "pair" kenn ich nur von C++ - In Java müßte man sich den, und somit auch Triple, vermutlich selbst schreiben - außer wenn man bei einer Websuche zufällig eine frei verfügbare Implementierung findet....
Na, das scheint bei den Standard-Dingen dabei zu sein.
Egentlich brauche ich mehr so etwas baumartiges, perforamntes, das man ohne weiteres serialisieren kann, für Datenstrukturen der Art:
key => complex value
key => other key => complex value
key => other key => damn 3th key => complex value
@pktm: Am besten, du erklärst uns nicht, wie du etwas machen willst, sondern was du machen willst. Mir scheint nämlich, als wäre schon der Ansatz etwas umständlich/falsch.
Keine Ahnung, was Du genau willst, aber wenn Du ein Pair(x, y) bilden kannst, dann kannst Du doch ein Triple(x, y, z) durch ein Pair(x, Pair(y, z)) oder ein Pair(Pair(x, y), z)) simulieren.
Ja, ich hab jetzt auch ein Tripple aus 2 Pairs gebildet.
Das zu erklären, was ich machen will, hilft glaube ich nicht sonderlich viel weiter, aber ich versuche es mal.
Ich erstelle ein System zum Cachen von Ergebnissen, die von Anfragen an eine Ontologie kommen.
Die Anfragen richten sich nach einer eigens dafür implementierten Anfragesprache.
Elemente einer Anfrage können die Frage nach Konzepten oder Eigenschaften von Konzepten in der Ontologie sein.
Sowohl Konzepte als auch EIgenschaften können einem Namensraum zugeordnet werden.
Es ergeben sich folgende KOmbinationen von Anfragemöglichkeiten:
a) Konzept
b) Namensraum mit Konzept
c) Eigenschaft & Wert
d) Namensraum mit Eigenschaft & Wert
Um jetzt den Cache zu erstellen brauche ich Datenstrukturen, in der ich die bestandteile der Anfragen und deren Ergebnisliste speichern kann. Da die einzelnen Bestandteile der Anfrage recht frei benannt sein können möchte ich mich nciht auf Stringmanipulationen verlassen, und bin deshalb zur Trennung der Bestandteile durch Datenstrukturen übergegangen.
Es gibt daher einen Cache für alle Konzepte, der aus einer einfachen Map<String,X> besteht. X ist eine spezielle Klasse für die Ergebnisse.
Jetzt brauche ich das aber auch noch für b): Namensräume mit Konzepten. Da hab ich ne Map<Pair<String,String>,X> genommen.
Und dann gibt es das ganze noch für die Eigenschaften, zu denen immer noch ein Wert gehört. Ergebnis sich also nochmal ein Cache aus Map<Pair<String, Pair<String,String>>,X>, übersetzt: Map<Pair<Namensraum,Pair<Eiogenschaft,Wert>>,Ergebnis>.
Das ganze muss serialisierbar sein. Arrays als Schlüssel für ne Map funtkionieren übrigens nicht, das hab ich schon getestet.
Schön wäre daher, wenn ich eine Baumstruktur hätte, in der ich folgendes ablegen kann:
Code:
Cache (Wurzel)
=> Konzepte
=> Eigenschaften
-> Werte von Eigenschaften
=> Namensräume
-> Konzepte
-> Eigenschaften
* Werte von Eigenschaften
Das ist dann eine Baumstruktur.
Bislang hab ich einfach mehrere Hashtabels, die die einzelnen Dinge beinhalten. Abhängig von der Anfrage weiß ich, welche ich davon benutzen muss. Und ich kann die Sache so wie sie im Moment aussieht serialisieren.