Graphviz is relatively easy although I admit the documentation often makes it look like starting a fusion reactor. It's got a billion options you can apply if you want things complicated.
However, simple stuff is fairly easy. This is an input file which will generate your example diagram;
digraph g {rankdir = "LR""George Washington""Cows""George Washington" -> "Cows" [ label="hate" ]"Cows" -> "George Washington" [ label="love" ]}
You run the thing by saying;
dot test.dot -Tsvg -o test.svg
There's also -Tpng and -Tps to get PNG and postscript outputs.
Example input/output/makefile at; http://www.fysh.org/~katie/gv-docs/