public override void Visit(IWeightedTerm node)
        {
            if (node.Source != null)
            {
                node.Source.AcceptVisitor(this);
            }

            builder.Append("ISABOUT (");
            int index = 0;

            foreach (var pair in node.WeighedTerms)
            {
                if (index != 0)
                {
                    builder.Append(", ");
                }
                pair.Key.AcceptVisitor(this);
                if (pair.Value.HasValue)
                {
                    builder.AppendFormat(" WEIGHT ({0})", pair.Value.Value.ToString("F3", CultureInfo.InvariantCulture));
                }
                index++;
            }

            builder.Append(")");
        }
 public override void Visit(IWeightedTerm node)
 {
     throw new NotSupportedException();
 }
 public abstract void Visit(IWeightedTerm node);