GraphGists

OMA is a famous architecture firm. OMA is a big firm, you have different people working together. These people have different positions inside a firm. For an outsider these relations are obsucure. When you think of a project like a theater. You say :'this is the work of Le Corbusier or OMA or Zaha Hadid', but who are the people working on the projects? and what project did they do? My graphigist is start of a framework in this new kind of architecture exploration.

Later I would like to add other firms. You have Zaha Hadid who started in OMA en created her own company it would be nice to see these relations.

Another cool thing is that you have different domains coming together. You have People, Projects, Firms,…​.

OMA is also interested in "data". So why not use data and graph to analyse an architect firm. Let start To see the projects visit https://oma.eu/projects So you can see them as a real project and not as node.

"I" took the data from their website and made a excel file.(Now i need to buy lots of beers, thx neo4j) "a graph file 8-)" I also choose to put the names and stuff without spaces it easier. i also have a excel with more data (stupid graphgist) send me an email, if you want to play with it, it is more fun…​

5g0ns0s

We have people. They worked on a Project. This Project has a status: completed, study etc. But the project also has tag this is something like a category. office, scenografie etc.. It is realy an easy db structure

I did not filter the null nodes it a bit stupid and i shoud delete them.(easier, but not the way to do it, dirty..)

MATCH (n:People {name:""})
DETACH DELETE n

First we search the most active person in the db. Of the projects they want to show.

Match(n:People)-[:hasWorked]->(r)
return n.name, count(r) Order by count(r)desc limit 10

What did Zaha Hadid do? Or what do they want to show?

Match(n:People{name:"ZahaHadid"})-[:hasWorked]->(r)
return  count(r), r.name

What did she work on? what is the status and the tag and who did she work with?

Match(n:People{name:"ZahaHadid"})-[:hasWorked]->(r)-[:hasStatus]->(s),(r)-[:hasTags]->(x), (r)<-[:hasWorked]-(p)
return   r.name ,s.status, x.name,collect(p.name)

What should she work on? A basis sugestion, We search for people who she worked together with, and to the project they put time in . A extra relation means they also where part in a different fase of the work process. So people can be longer in the work process.

(Maybe I could use weight as property on the relation and make a new excel where I have the data about wich part of the process they where part of the design process but my db is big enough)

Match(n:People{name:"ZahaHadid"})-[:hasWorked]->(r)-[:hasStatus]->(s), (r)<-[:hasWorked]-(p),(p)-[:hasWorked]->(b)
return   b, count(p) order by count(p) desc limit 10

What should she work on? A basis sugestion, We search for people who she worked together with, without taking into account the strength of the relation.

Match(n:People{name:"ZahaHadid"})-[:hasWorked]->(r)-[:hasStatus]->(s),(r)-[:hasTags]->(x), (r)<-[:hasWorked]-(p),(p)-[:hasWorked]->(b)
return   b.name, count(distinct(p)) as strength order by strength desc  limit 10

Oma what did they work on (or want to show)

Match(n:Tags)<-[v]-(x)
return n.name, count(v) order by count(v)desc limit 10

OMA what did they not work on (or don’t find interesting enough)

Match(n:Tags)<-[v]-(x)
return n.name, count(v)  order by count(v) limit 10

what did they complete

Match(r:Status{status:"completed"})
Match(r)<-[:hasStatus]-(x:Project)-[:hasTags]->(m)
return m.name, count(m)order by count(m) desc

hey what is de relation between zaha and xaveer

MATCH (Zaha:People { name:"ZahaHadid" }),(xavier:People { name:"XaveerdeGeyter" }), p = shortestPath((Zaha)-[*..5]-(xavier))
RETURN p

relation between Xaveer and Rem

MATCH (xaveer:People { name:"XaveerdeGeyter" }),(rem:People{name:"RemKoolhaas"})
, (rem)-[:hasWorked]->(p)
, (xaveer)-[:hasWorked]->(p)
RETURN rem,p,xaveer

I would say have fun…​ And keep the queries simple

Also for architects like me those little queries are rather interesting and can be used to study relations inside a Firm. You could also think about expanding the db because a lot of the OMA "People" started their own firm. So you could see who worked in what firm and really analyse the data. It is a new way of looking at the architecture firm.And not at static way. And this is just the start. It also nice for me because some of the people in DB I know their work, been to their lectures etc…​ So they are not just data. I could also be a node inside a graph.(Not in the OMA Graph) remember graphs are everywhere.8-)