A man is working on top of a roof, working on the shingles.
A roofer at work.
A man working on the shingles is a roofer.
exists e2 e1 x1 x2 x3 x4.(n_shingle(x4) & for(e1,e2) & on(e2,x4) & Actor(e2,x1) & v_work(e2) & on(e1,x2) & of(x2,x3) & n_roof(x3) & n_top(x2) & Actor(e1,x1) & v_work(e1) & n_man(x1))
exists x1 x2.(a_topic(x1) & at(x1,x2) & n_work(x2) & n_roofer(x1))