Measuring Similarity in Causal Graphs: A Framework for Semantic and Structural Analysis