Rules Engine für räumliche und zeitliche Argumentation?
-
20-09-2019 - |
Frage
Ich habe eine Anwendung, die eine Anzahl von Bezugspunkten empfängt, die 3-dimensionale räumliche und zeitliche Prozesse zu charakterisieren. Er filtert dann diese Bezüge und erstellte Aktionen, die dann an Prozesse gesendet, die die Aktionen auszuführen. Spülen und wiederholen.
Zur Zeit habe ich eine Sammlung von benutzerdefinierten Filtern, die eine Menge von komplizierten räumlichen / zeitlichen Berechnungen durchführen.
Viele Male, wie ich mein System für Einzelpersonen in meinem Unternehmen diskutieren, sie zu fragen, ob ich eine Regel-Engine bin mit.
Ich habe noch eine Regel-Engine zu finden, der Grund auch zeitlich und räumlich der Lage ist. (Dinge wie:?. Wann sind zwei 3D-Einheiten je enger ist die 3D-Einheit A jemals in 3D-Bereich B enthält Wenn Unternehmen C in der Nähe von Einheit D sind aber orientiert nach hinten relativ zu C dann Aktion D durchführen)
Ich habe in geifert sieht, Cyc, Jess in der Vergangenheit (vor 3-4 Jahren sagen). Es ist Zeit, um erneut zu prüfen, den Stand der Technik. Irgendwelche Vorschläge? Irgendwelche Normen, dass Sie wissen, dass die Unterstützung dieser Art der Argumentation? Irgendwelche defacto Standards? Alle Anwendungen?
Danke!
Lösung
Premise - denken Sie daran, dass ein SQL-basierte 1 DBMS ist ein (durchaus in der Lage) Inferenzmaschine, wie aus diesen Vergleich zwischen SQL und Prolog zu sehen:
Um Adresse speziell auf Ihre räumlich-zeitlichen Anwendungen, wird dieses Buch helfen:
- temporale Daten und das Relationale Modell - eine eingehende Untersuchung die Anwendung von Intervall und Relation Theorie , um das Problem des Temporal Database Management.
Das heißt, die Kombination von Interval und Relation Theorie ist möglich Argumentation über räumlich-zeitliche Probleme effektiv (siehe 5.2 Anwendungen der Intervalle ).
Natürlich, wenn Ihr SQL-basierten DBMS ist (noch) nicht mit Intervall (und andere) die Betreiber müssen Sie es entsprechend erweitern ( über Shop-Verfahren und / oder Benutzerdefiniert Funktionen -. UDF)
Update: Skimming das Papier wies darauf hin, in den Kommentaren von timemirror ( Towards a 3D Spatial Query Language für Building Information Model ) sie im wesentlichen, was ich berührte oben:
(letzte Seite)
UMSETZUNG KONZEPTE
Die Umsetzung der abstrakten Typ-System in eine Abfragesprache Willen auf der Grundlage der Abfrage durchgeführt werden Sprache SQL, die eine weit ist etablierter Standard auf dem Gebiet der objektrelationalen Datenbanken. Das internationaler Standard SQL: 1999 erweitert das relationale Modell umfassen objektorientierte Aspekte, wie wie die Möglichkeit, komplexe zu definieren abstrakte Datentypen mit integrierten Methoden.
Ich bin nicht mit der „objektrelationalen Datenbank“ Terminologie übereinstimmen (zum Grund Wegthema hier), aber ich denke, der Rest relevant ist.
Update: ein Zitat regardind 3D und Intervall-Theorie aus dem Buch oben zitierten:
Hinweis: Alle der Intervalle diskutiert so weit kann man sich als sein eindimensional. Aber wir könnten wollen zwei eindimensionale kombinieren Intervalle einen zweidimensionalen zu bilden Intervall. Zum Beispiel ist ein rechteckiger Gelände könnte wie folgt beschrieben werden ein zweidimensionales Intervall, weil es ist per definitionem ein Objekt mit Länge und Breite, von denen jedes im Grunde ein eindimensionales Intervall entlang irgendeiner Achse gemessen. Und von Natürlich können wir diese Idee zu einem erweitern Anzahl der Dimensionen . Zum Beispiel kann ein (Ziemlich einfach!) Gebäude könnte sein, gilt als eine dreidimensionale Intervall: Es ist ein Gegenstand mit einer Länge, Breite und Höhe, oder mit anderen Worten ein Quader. (Mehr realistisch, ein Gebäude könnte als eine Reihe von betrachtet werden mehrere solche Quader, die überlappen in verschiedene Art und Weise.) Und so weiter. In was folgt, jedoch werden wir unsere beschränken Aufmerksamkeit auf eindimensionale Intervallen Insbesondere Sperrung explizite Aussagen im Gegenteil, und wir wird auslassen die „eindimensionale“ Qualifikation für Einfachheit.
Hinweis
- Ich schrieb SQL-basierte und nicht relationale , weil es Möglichkeiten gibt, solche DBMSes zu verwenden, die vollständig aus relationaler Theorie abweichen.
Andere Tipps
Dies ist Spatial Reasoning ... ein paar Modelle, aber 9DE-IM wird nun von OGC und implementiert in PostGIS und anderen Programmiertool akzeptiert.
PostGIS implementiert ein räumliches Denken Motor basierend auf Dimensionen ausgedehntes 9 Schnittmodell ... 9DE-IM ..
http://postgis.refractions.net/documentation /manual-svn/ch04.html#DE-9IM überprüfen Sekte 4.3.6.1. Theorie ...
So funktioniert die Java Topology Suite (und Net Topology Suite für C # usw.) ...
In particualr Check-out der geometry.relate Sachen .. wie
boolean isRelated = geometry.relate (geometrie2 "T * T *** T **")
Sie können die Beziehungen testen, oder Filterdaten basierend auf sie. Arbeiten mit pts, Linien, Polygone usw. ...
Dies könnte helfen auf zeitliche Sachen ..
http://citeseerx.ist .psu.edu / viewdoc / download? doi = 10.1.1.87.4643 & rep = rep1 & type = pdf
Schauen Sie sich SpatialRules unter http://www.objectfx.com/ . Es ist ein geospatial komplexer Ereignisprozessor für 2D und 3D.