public string FormatEnumerationFull(DocEnumeration docEnumeration, bool fullListing)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("ifc:" + docEnumeration.Name);
sb.AppendLine("\trdf:type owl:Class ;");
if (!fullListing)
{
//possibly add the items in a oneof
sb.AppendLine("\towl:equivalentClass");
sb.AppendLine("\t\t[");
sb.AppendLine("\t\t\trdf:type owl:Class ;");
sb.AppendLine("\t\t\towl:oneOf ");
sb.AppendLine("\t\t\t\t( ");
foreach (DocConstant docConst in docEnumeration.Constants)
{
sb.AppendLine("\t\t\t\tifc:" + docConst.Name.ToUpper() + " ");
}
//close oneof
sb.AppendLine("\t\t\t\t) ");
sb.AppendLine("\t\t] ; ");
}
sb.AppendLine("\trdfs:subClassOf expr:ENUMERATION .");
sb.AppendLine();
// define individuals
if (fullListing)
{
foreach (DocConstant docConst in docEnumeration.Constants)
{
string indivLocalUri = docConst.Name.ToUpper();
if (!addedIndividuals.Contains(indivLocalUri))
{
addedIndividuals.Add(indivLocalUri);
sb.AppendLine("ifc:" + indivLocalUri);
sb.AppendLine("\trdf:type " + "ifc:" + docEnumeration.Name + " , owl:NamedIndividual ;");
sb.AppendLine("\trdfs:label \"" + docConst.Name.ToUpper() + "\" .");
sb.AppendLine();
}
else
{
sb.AppendLine("ifc:" + indivLocalUri);
sb.AppendLine("\trdf:type " + "ifc:" + docEnumeration.Name + " .");
sb.AppendLine();
}
}
}
return sb.ToString();
}