private string NodeId(string key)
{
if (DotIdExpression.IsMatch(key)) return key;
string generatedId;
if (keyToNode.TryGetValue(key, out generatedId))
{
return generatedId;
}
generatedId = NextId("N");
keyToNode[key] = generatedId;
WriteNode(generatedId, "label", key);
return generatedId;
}