rjtobin, Sorry I don't understand what happens if the two graphs have common vertices?
For example, in the algebra I described, you can do 1 -> (1 + 2) and this represents a graph with vertices {1,2} and two edges (1,1) and (1,2). How would that work with your matrix join?