Symbol registerCollapsableTitle(Symbol symA, string child, string Type)
        {
            Symbol symB = new Symbol(child);
            if (symB.SymbolID[0] == 0 && symB.SymbolID[1] == 0) // simbol does not exists
            {
                symB.RegisterSymbolIfNotExists();
                Symbol symC = new Symbol(".NET framework 4 "+Type.ToUpper());
                if (symC.SymbolID[0] == 0 && symC.SymbolID[1] == 0) // category does not extsts
                {
                    symC.RegisterSymbolIfNotExists();
                }
                if (Type != "Class")
                {

                }
                Relation derivationRelation = new Relation(new int[] { 9999, 1, 1, 100 }); // is a
                derivationRelation.CreateRelationIfNotExists(symB.SymbolID, symC.SymbolID); // simB is a simC
            }

            //if (string.IsNullOrEmpty(parrent)) 
            if (symA == null) return symB;
            //Symbol symA = new Symbol(parrent);
            if (symA.SymbolID[0] == 0 && symA.SymbolID[1] == 0)
            {
                symA.RegisterSymbolIfNotExists();
            }
            Relation relation = new Relation(new int[] { 2, 100, 9998, 1 }); // include
            relation.CreateRelationIfNotExists(symA.SymbolID, symB.SymbolID);
            return symB;
        }
        Symbol registerNamespace(Symbol symA, string child)
        {
            Symbol symB = new Symbol(child);
            if (symB.SymbolID[0] == 0 && symB.SymbolID[1] == 0) // simbol does not exists
            {
                symB.RegisterSymbolIfNotExists();
                Symbol symC = new Symbol(".NET framework 4 NAMESPACE");
                if (symC.SymbolID[0] == 0 && symC.SymbolID[1] == 0) // category does not extsts
                {
                    symC.RegisterSymbolIfNotExists();
                }

                Relation derivationRelation = new Relation(new int[] { 9999, 1, 1, 100 }); // is a
                derivationRelation.CreateRelationIfNotExists(symB.SymbolID, symC.SymbolID); // simB is a simC
            }

            //if (string.IsNullOrEmpty(parrent)) 
            if (symA == null) return symB;
            //Symbol symA = new Symbol(parrent);
            if (symA.SymbolID[0] == 0 && symA.SymbolID[1] == 0)
            {
                symA.RegisterSymbolIfNotExists();
            }
            Relation relation = new Relation(new int[] { 2, 100, 9998, 1 }); // include
            relation.CreateRelationIfNotExists(symA.SymbolID, symB.SymbolID);
            return symB;
        }