////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        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);
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public LexicalFactors(ArtifactSet pArtSet)
        {
            vArtSet   = pArtSet;
            vSessProv = new SessionProvider();

            SemanticFactors.AssertWord(vArtSet, AntonymWordId, "antonym");
            SemanticFactors.AssertWord(vArtSet, DerivationWordId, "derivation");
            SemanticFactors.AssertWord(vArtSet, PertainWordId, "pertain");
            SemanticFactors.AssertWord(vArtSet, ParticipleWordId, "participle");
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public CustomFactors(ArtifactSet pArtSet)
        {
            vArtSet   = pArtSet;
            vSessProv = new SessionProvider();

            SemanticFactors.AssertWord(vArtSet, PartOfSpeechWordId, "part of speech");
            SemanticFactors.AssertWord(vArtSet, NounWordId, "noun");
            SemanticFactors.AssertWord(vArtSet, VerbWordId, "verb");
            SemanticFactors.AssertWord(vArtSet, AdjectiveWordId, "adjective");
            SemanticFactors.AssertWord(vArtSet, AdverbWordId, "adverb");

            SemanticFactors.AssertWord(vArtSet, SynsetWordId, "synset");
            SemanticFactors.AssertWord(vArtSet, WordNet31WordId, "WordNet3.1");
        }