Moteur de règles pour le raisonnement spatial et temporel?
-
20-09-2019 - |
Question
I ai une application qui reçoit un certain nombre de repères qui caractérisent les processus 3 spatiales et temporelles dimensions. Il filtre alors ces points de référence et crée des actions qui sont ensuite envoyés aux processus qui exécutent les actions. Rincer et répéter.
À l'heure actuelle, j'ai une collection de filtres personnalisés qui effectuent beaucoup de calculs spatiaux / temporels complexes.
Plusieurs fois que je discute de mon système à des personnes dans mon entreprise, ils demandent si j'utilise un moteur de règles.
Je dois encore trouver un moteur de règles qui est capable de bien raisonner temporellement et spatialement. (Des choses comme:?. Quand les deux entités 3D jamais fermer Est entité 3D A jamais contenu dans la région 3D B Si l'entité C est proche entité D mais orientée vers l'arrière par rapport à C, puis effectuer une action D)
Je l'ai regardé Drools, Cyc, Jess dans le passé (par exemple il y a 3-4 ans). Il est temps de réexaminer l'état de l'art. Aucune suggestion? Toutes les normes que vous savez de ce soutien ce genre de raisonnement? Toutes les normes? Defacto Toutes les applications?
Merci!
La solution
Prémisse - rappelez-vous qu'une SQL basée sur 1 SGBD est un moteur d'inférence (tout à fait capable), comme on peut le voir à partir de ces comparaisons entre SQL et Prolog:
Pour répondre spécifiquement à vos applications spatio-temporelles, ce livre contribuera à:
- DONNÉES TEMPORELLE ET LE MODÈLE RELATIONNEL - une enquête détaillée sur l'application des Intervalle et Relation théorie au problème de la gestion de base de données temporelle.
C'est, combinant intervalle et théorie des relations est possible de raisonner sur les problèmes spatio-temporels efficacement (voir 5.2 Applications de intervalles ).
Bien sûr, si votre SGBD basé sur SQL ne sont pas (encore) équipé d'intervalle (et d'autres) opérateurs vous devez étendre de façon appropriée ( via magasin-procédures et / ou définis par l'utilisateur - fonctions. UDFs)
Mise à jour: écrémage papier a souligné dans les commentaires par timemirror ( Vers une Query Language 3D spatiale pour les modèles d'information construction ) ils font essentiellement ce que je touchais au-dessus:
(dernière page)
CONCEPTS DE MISE EN ŒUVRE
La mise en œuvre de l'abstrait système de type dans un langage de requête être effectuée sur la base de la requête langage SQL, qui est largement norme établie dans le domaine de bases de données objet-relationnel. le Norme internationale SQL: 1999 étend le modèle relationnel inclure des aspects orientés objet, tels comme la possibilité de définir complexe types de données abstraits avec intégré méthodes.
Je ne suis pas d'accord avec la terminologie « base de données objet-relationnel » (pour des raisons ici hors-sujet) mais je pense que le reste est pertinent.
Mise à jour: une citation regardind théorie 3D et l'intervalle du livre cité ci-dessus:
NOTE: Tous les intervalles discutés peut jusqu'à présent être considéré comme une dimension. Cependant, nous pourrions veulent combiner deux unidimensionnelle intervalles pour former un à deux dimensions intervalle. Par exemple, une forme rectangulaire parcelle de terrain peut être considéré comme un intervalle à deux dimensions, car il est, par définition, un objet longueur et en largeur, dont chacune est fondamentalement un intervalle unidimensionnel mesurée suivant un certain axe. Et de Bien sûr, nous pouvons étendre cette idée à tout nombre de dimensions . Par exemple, un bâtiment (assez simple!) pourrait être considéré comme un en trois dimensions Intervalle: Il est un objet de longueur, la largeur et la hauteur, ou en d'autres termes un cuboïde. (De façon plus réaliste, un bâtiment peut être considéré comme un ensemble de plusieurs de ces parallélépipèdes qui se chevauchent dans de diverses manières.) Et ainsi de suite. En quoi follows, cependant, nous allons limiter notre attention à intervalles unidimensionnels en particulier, à moins explicite déclarations contraires, et nous omettra la « unidimensionnelle » qualificatif pour la simplicité.
Remarque
- J'ai écrit basé sur SQL et non relationnelle parce qu'il ya des façons d'utiliser ces DBMSes qui s'écartent complètement de la théorie relationnelle.
Autres conseils
est Raisonnement Spatial ... est maintenant accepté quelques modèles mais 9DE-IM par l'OGC et mis en œuvre PostGIS et d'autres outils de programmation.
PostGIS met en oeuvre un moteur de raisonnement spatial basé sur 9 dimensions étendue modèle d'intersection ... 9DE-IM ..
http://postgis.refractions.net/documentation /manual-svn/ch04.html#DE-9IM vérifier secte 4.3.6.1. Théorie ...
Alors Java ne Topology Suite (et suite Net Topologie pour C #, etc) ...
particualr vérifier les choses de geometry.relate .. tels que
booléen isRelated = geometry.relate (geometry2, "T * T *** T **")
Vous pouvez tester les relations ou les données de filtrage basées sur eux. Fonctionne avec pts, lignes, polygones etc ...
Cela pourrait aider sur des choses temporelles ..
Consultez SpatialRules http://www.objectfx.com/ . Il est un processeur d'événements complexes géospatiale en 2D et 3D.