Domanda

Ho un'applicazione che riceve una serie di dati che caratterizzano i processi spaziali e temporali tridimensionali.Quindi filtra questi dati e crea azioni che vengono poi inviate ai processi che eseguono le azioni.Risciacqua e ripeti.

Al momento dispongo di una raccolta di filtri personalizzati che eseguono molti calcoli spaziali/temporali complicati.

Molte volte, mentre parlo del mio sistema con i dipendenti della mia azienda, mi chiedono se sto utilizzando un motore di regole.

Devo ancora trovare un motore di regole che sia in grado di ragionare bene temporalmente e spazialmente.(Cose come:Quando mai due entità 3D si avvicinano?L'entità 3D A è mai contenuta nella regione 3D B?Se l'entità C è vicina all'entità D ma orientata all'indietro rispetto a C, eseguire l'azione D.)

Ho guardato Drools, Cyc, Jess in passato (diciamo 3-4 anni fa).E' tempo di riesaminare lo stato dell'arte.Eventuali suggerimenti?Conosci qualche standard che supporti questo tipo di ragionamento?Qualche standard di fatto?Qualche applicazione?

Grazie!

È stato utile?

Soluzione

Premessa: ricorda che un file basato su SQL1 DBMS è un motore di inferenza (abbastanza capace), come si può vedere da questi confronti tra SQL e Prolog:

Per affrontare in modo specifico le tue applicazioni spazio-temporali, questo libro ti aiuterà a:

Cioè, combinando la Teoria degli Intervalli e delle Relazioni è possibile ragionare efficacemente sui problemi spazio-temporali (vedi 5.2 Applicazioni degli intervalli).

Naturalmente, se il vostro DBMS basato su SQL non è (ancora) dotato di operatori di intervallo (e altro) sarà necessario estenderlo opportunamente (attraverso procedure di archiviazione e/o funzioni definite dall'utente - UDF).

Aggiornamento: sfogliando il foglio ha sottolineato nei commenti di timemirror (Verso un linguaggio di query spaziale 3D per i modelli di informazioni edilizie) fanno essenzialmente quello che ho accennato sopra:

(ultima pagina)

CONCETTI DI IMPLEMENTAZIONE

L'implementazione del sistema di tipo astratto in un linguaggio di query verrà eseguita sulla base del linguaggio di query SQL, che è uno standard ampiamente consolidato nel campo dei database di oggetti-relazionali.L'International Standard SQL: 1999 estende il modello relazionale per includere aspetti orientati agli oggetti, come la possibilità di definire tipi di dati astratti complessi con metodi integrati.

Non sono d'accordo con la terminologia "database relazionale a oggetti" (per motivi fuori tema qui) ma penso che il resto sia pertinente.


Aggiornamento: una citazione riguardante il 3D e la teoria degli intervalli dal libro sopra citato:

NOTA:Tutti gli intervalli discussi finora possono essere considerati monodimensionali.Tuttavia, potremmo voler combinare due intervalli monodimensionali per formare un intervallo twodimensionale.Ad esempio, un diagramma rettangolare di terra potrebbe essere considerato un intervallo bidimensionale, perché è, per definizione, un oggetto con lunghezza e larghezza, ognuno dei quali è fondamentalmente un intervallo unidimensionale misurato lungo un po 'di asse.E naturalmente, Possiamo estendere questa idea a qualsiasi numero di dimensioni.Ad esempio, un edificio (piuttosto semplice!) Potrebbe essere considerato un intervallo tridimensionale:È un oggetto con lunghezza, larghezza e altezza o in altre parole un cuboide.(Più realisticamente, un edificio potrebbe essere considerato un insieme di diversi cuboidi che si sovrappongono in vari modi.) E così via.In quanto segue, tuttavia, limiteremo la nostra attenzione agli intervalli monodimensionali in particolare, salvo le dichiarazioni esplicite al contrario e ometteremo la qualifica "monodimensionale" per la semplicità.

Nota

  1. scrissi Basato su SQL e non relazionale perché ci sono modi per utilizzare tali DBMS che si discostano completamente dalla teoria relazionale.

Altri suggerimenti

Questo è il ragionamento spaziale ... un paio di modelli, ma 9DE-IM è ormai accettato da OGC e attuato in PostGIS e di altri strumenti di programmazione.

PostGIS implementa un motore di ragionamento spaziale sulla base dimensionalmente esteso 9 modello intersezione ... 9DE-IM ..

http://postgis.refractions.net/documentation /manual-svn/ch04.html#DE-9IM controllare la setta 4.3.6.1. Teoria ...


Così fa il (suite e Net topologia per C # ecc) Java Topology Suite ...

http: // docs .codehaus.org / display / GEOTDOC / Point + Set + teoria + e + il + DE-9IM + Matrix

In particualr controllare la roba geometry.relate .. come ad esempio

booleano isRelated = geometry.relate (geometrica 2, "T * T *** T **")

È possibile verificare i rapporti, o filtrare i dati basati su di essi. Funziona con p.ti, linee, poligoni ecc ...


Questo potrebbe aiutare su roba temporale ..

http://citeseerx.ist .psu.edu / viewdoc / scaricare? doi = 10.1.1.87.4643 & rep = rep1 & type = pdf

Scopri SpatialRules a http://www.objectfx.com/ . Si tratta di un processore di eventi complessi geospaziali per il 2D e 3D.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top