I have a vector shape with many different sized polygons each possessing an own class name (for instance "houses", "houses with offices", etc ...)
I want to assign a new field to each polygon containing the name of the majority (higher proportion) of adjacent polygons attribute name. Ergo some kind of polygon neighborhood analysis.

The query should look to the attribute of each bordering polygon and change another fields value to the name which occurs the most. For instance the beige polygon in the middle of the above image is surrounded by polygons with the attribute "houses" and therefore it should get the attribute "houses". (Best would be if i can somehow display and save the proportion of different attributed polygons).
Does anyone have an idea or a tool how to accomplish this task? I am thankful for every partial or full solution. Any good way to solve this problem is appreciated!
I intend to use QGIS, but i can also switch to other tools (Arcgis 9, Grass, Saga, R, ...)



