////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public static void InsertAllFactors()
        {
            var sessProv = new SessionProvider();

            var descMap = new Dictionary <WordNetEngine.SynSetRelation, DescriptorTypeId>();

            descMap.Add(WordNetEngine.SynSetRelation.Hypernym, DescriptorTypeId.IsA);

            using (ISession sess = sessProv.OpenSession()) {
                sess.CreateSQLQuery("DELETE FROM " + typeof(Factor).Name).UniqueResult();
                BuildWordNet.SetDbStateBeforeBatchInsert(sess);
            }

            ArtifactSet artSet;

            using (ISession sess = sessProv.OpenSession()) {
                artSet = new ArtifactSet(sess);
            }

            var sf = new SemanticFactors(artSet);

            sf.Start();

            var lf = new LexicalFactors(artSet);

            lf.Start();

            var cf = new CustomFactors(artSet);

            cf.Start();

            using (ISession sess = sessProv.OpenSession()) {
                BuildWordNet.SetDbStateAfterBatchInsert(sess);
            }
        }
        //SELECT Name, Disamb, COUNT(Name) FROM Artifact GROUP BY Name, Disamb HAVING COUNT(Name) > 1 ORDER BY COUNT(Name) DESC


        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public static void InsertWordAndSynsetArtifacts(ISession pSess)
        {
            pSess.CreateSQLQuery("DELETE FROM " + typeof(Artifact).Name + " WHERE 1=1").UniqueResult();
            BuildWordNet.SetDbStateBeforeBatchInsert(pSess);

            var nodes = new SemanticNodes(pSess);

            Console.WriteLine("Garbage collection...");
            GC.Collect();
            Console.WriteLine("Garbage collection complete");

            var iaa = new InsertAllArtifacts(nodes);

            Console.WriteLine("Garbage collection...");
            GC.Collect();
            Console.WriteLine("Garbage collection complete");

            iaa.Insert(pSess);

            BuildWordNet.SetDbStateAfterBatchInsert(pSess);
        }