public Triple(string subject, string property, string value)
{
if (string.IsNullOrWhiteSpace(subject)) throw new ArgumentNullException("subject");
if (string.IsNullOrWhiteSpace(property)) throw new ArgumentNullException("property");
if (string.IsNullOrWhiteSpace(value)) throw new ArgumentNullException("value");
if (subject.Contains("~") || property.Contains("~") || value.Contains("~")) throw new ArgumentException("Triples may not contains the '~' character");
this.Subject = subject;
this.Property = property;
this.Value = value;
}