Graph terminology: vertex, node, edge, arc
Precisely speaking, what is the difference between the graph terms of ("vertex" vs. "node") and ("edge" vs. "arc")?
I have read that "node" and "arc" should be used when the graph is strictly a tree.
If there is a precise rule or protocol, please cite a reference.
The distinction between vertex and node seems to me to be mostly about discipline (e.g. whether you come from combinatorics or computer science) and is irrelevant. The distinction between edge and arc can sometimes be relevant depending on who's using it: combinatorialists sometimes use "edge" to mean "undirected edge" and "arc" to mean "directed edge," although this usage is not universal.
You can take a look at "Introduction to Graph Theory" of Douglas B. West.
At page 3/Example 1.1.5 of the Second Edition:
The terms "vertex" and "edge" arise from solid geometry. A cube has vertices and edges, and these form the vertex set and edge set of a graph.
At page 55/Remark 1.4.8 of the Second Edition:
We often use the same names for corresponding concepts in the graph and digraph models. Many authors replace "vertex" and "edge" with "node" and "arc" to discuss digraphs, but this obscures the analogies. Some results have the same statements and proofs; it would be wasteful to repeat them just to change terminology (especially in Chapter 4).
Also, a graph G can be modeled using a digraph D in which each edge uv E E(G) is replaced with UV, vu E E(D). In this way, results about digraphs can be applied to graphs. Since the notion of "edge" in digraphs extends the notion of "edge" in graphs, using the same name makes sense.
So according to this book, vertices and edges are for undirected graphs due to the analogy with solid geometry and node and arcs are for directed graphs.
In computer science, "node" and "edge" are used in both cases. I think the only mistake you could make is to use the term "arc" for undirected graph.
My readings suggests "arc" and "edge" are conceptually the same. Yet, LEMON ( http://lemon.cs.elte.hu/trac/lemon )has separate functions/methods for arcs & edges. I have played with it but not enough to understand the difference, in their usage.
As I was wondering the same, I stumbled upon some extra information. I'm reading a book about Computational Geometry.
In this book a graph is drawn within a polygon, to avoid ambiguity they used edges to talk about parts of the shape and arcs to talk about the graph.
The book says the following
$\dots$ let $G$ be a graph associated with a traingulation, whose arcs are the edges of the polygon $\dots$