How robust is your spatial query
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

How robust is your spatial query ? PowerPoint PPT Presentation


  • 58 Views
  • Uploaded on
  • Presentation posted in: General

How robust is your spatial query ?. Yao Cui and Michael Ross Integrated Land Management Bureau Victoria, BC Martin Davis Refractions Research Inc. Victoria, BC. A formal taxonomy to express spatial intersections. FOSS4G 2007, Victoria, BC, Canada. What is an intersection taxonomy?

Download Presentation

How robust is your spatial query ?

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


How robust is your spatial query

How robust is your spatial query?

Yao Cui and Michael Ross

Integrated Land Management Bureau

Victoria, BC

Martin Davis

Refractions Research Inc.

Victoria, BC

A formal taxonomy to express

spatial intersections

FOSS4G 2007, Victoria, BC, Canada


How robust is your spatial query

  • What is an intersection taxonomy?

  • Why do we need this taxonomy?

  • How was the taxonomy created?

  • How was the taxonomy validated


Why do we need a taxonomy

Why do we need a taxonomy?

  • Started when the first version of Java Topology Suite (JTS) was developed by Martin Davis right here in Victoria, BC, back in 2001…

  • One of the objectives: to test JTS binary predicates


A list of binary predicates

A list of binary predicates

  • Equal

  • Disjoint

  • Intersects

  • Touches

  • Crosses

  • Within

  • Contain

  • Overlap


Java topology suite test builder

Java Topology Suite Test Builder


Adding another test case

Adding another test case


Adding another test case1

Adding another test case


Adding more cases

Adding more cases …


Now the questions

Now the questions:

  • How many more test cases?

  • How do we know if we have enough test cases?

  • How do we know if important representative test cases are not missing?

  • How are we going to define the different categories of spatial intersects?

  • How to organize these test cases?


We need four things

We need four things

  • Taxonomy to define and express intersection components

  • Taxonomy to express intersections

  • Taxonomy to help organizing the test cases

  • A grammar to define the taxonomy


How was the taxonomy created

How was the taxonomy created?

To search and define a path

to decompose a geometry


Geometry object model as defined by ogc sfs

Geometry Object Model(as defined by OGC SFS)


Combinations of geometric subtypes between geometry a and b

Combinations of Geometric Subtypes between Geometry A and B


Dimensionally extended nine intersection model de 9im

Dimensionally Extended Nine-Intersection Model (DE-9IM)

B

Source: Egenhofer and Clementini


How robust is your spatial query

B

A

B

A


Geometry decomposing

Geometry Decomposing

Geometry

Instantiable Geometry Types

Interior

Boundary

Exterior

Dimensions

Intersection Component


Intersection components in bnf

Intersection components in BNF


Examples of interior intersection components in bnf

Examples of Interior Intersection Components in BNF


Examples of boundary intersection components in bnf

Examples of boundary intersection components in BNF


Examples of polygon boundary intersection component in bnf

Examples of polygon boundary intersection component in BNF


Terminal definitions

Terminal Definitions


Examples of intersection components

Examples of Intersection Components


Hierarchy of taxonomy intersection components

Hierarchy of taxonomy intersection components

Geometry

Decomposing

Intersection Components


Examples of intersection components1

Examples of Intersection Components


Examples of intersection components in one dimension

Examples of Intersection Components in one dimension


Taxonomy examples on intersections

Taxonomy examples on Intersections


In summary

In summary

  • Defined an intersection taxonomy and equivalent formal language with a validator

  • Generated a list of over 60,000 potential test cases by enumerating through intersection components

  • Compiled 400 representative test cases and organized them by following the taxonomy


Intersectiontalk validator

IntersectionTalk Validator

  • Built a parser to validate the grammar of the predicate taxonomy

  • Written in GNU SmallEiffel usingGobo Eiffel Yacc and Gobo Eiffel Lex

    • Yacc takes a BNF grammar as input and generates a parser

  • Took only two hours to build

    • Most of that time was spent typing in the grammar


Yacc input grammar format very similar to ebnf

Yacc Input Grammar FormatVery Similar to EBNF

Intersection_Component: Interior_Component

| Boundary_Component

| Exterior_Component

;

Interior_Component: Interior_Component_0D

| Interior_Component_1D

| Interior_Component_1D SEPARATOR REVERSE

| INTERIOR

;

Interior_Component_0D: INTERIOR SEPARATOR CLOSE_POINT

| INTERIOR SEPARATOR Vertex_Choice

| INTERIOR SEPARATOR CLOSE_POINT Multipass

| INTERIOR SEPARATOR Vertex_Choice Multipass

;

Interior_Component_1D: INTERIOR SEPARATOR START_POINT TO END_POINT

| INTERIOR SEPARATOR END_POINT TO Vertex_Choice

| INTERIOR SEPARATOR CLOSE_POINT TO Vertex_Choice

| INTERIOR SEPARATOR Vertex_Choice TO Vertex_Choice

| INTERIOR SEPARATOR END_POINT TO Vertex_Choice Multipass

| INTERIOR SEPARATOR CLOSE_POINT TO Vertex_Choice Multipass

| INTERIOR SEPARATOR Vertex_Choice TO Vertex_Choice Multipass

| INTERIOR SEPARATOR END_POINT Multipass TO Vertex_Choice

| INTERIOR SEPARATOR CLOSE_POINT Multipass TO Vertex_Choice

| INTERIOR SEPARATOR Vertex_Choice Multipass TO Vertex_Choice

| INTERIOR SEPARATOR END_POINT Multipass TO Vertex_Choice Multipass

| INTERIOR SEPARATOR CLOSE_POINT Multipass TO Vertex_Choice Multipass

| INTERIOR SEPARATOR Vertex_Choice Multipass TO Vertex_Choice Multipass

;

……


Future work and the challenge

Future work and the challenge

  • More rigorous decomposing of intersection components?

  • Adding taxonomy for spatial operations and functions?

  • Automatically “grow” specific geometries: taxonomy grammar, rewriting rules (Koch and Mandelbrot), Chomsky grammars, L-systems (Lindenmayer), …?


Thank you

Thank you!

Link to JTS and JTS Validation Suite: http://www.vividsolutions.com/jts/jtshome.htm

Fore more information, contact Yao Cui

E-mail: [email protected]

Telephone: (250) 387-9310


  • Login