Exemple #1
0
        public void LoadTurtle(string filepath)
        {
            DateTime tt0 = DateTime.Now;

            Load(filepath);
            Console.WriteLine("Load ok. Duration={0} sec.", (DateTime.Now - tt0).Ticks / 10000000L); tt0 = DateTime.Now;


            PrepareArrays();
            Console.WriteLine("PrepareArrays ok. Duration={0} sec.", (DateTime.Now - tt0).Ticks / 10000000L); tt0 = DateTime.Now;

            // Упорядочивание otriples по s-p-o
            otriples.Root.SortByKey <SubjPredObj>(rec => new SubjPredObj(rec), new SPOComparer());
            Console.WriteLine("otriples.Root.Sort ok. Duration={0} sec.", (DateTime.Now - tt0).Ticks / 10000000L); tt0 = DateTime.Now;

            //SPOComparer spo_compare = new SPOComparer();
            SPComparer sp_compare = new SPComparer();

            // Упорядочивание otriples_op по o-p
            otriples_op.Root.SortByKey <SubjPred>(rec =>
            {
                object[] r = (object[])rec;
                return(new SubjPred()
                {
                    pred = (string)r[1], subj = (string)r[2]
                });
            }, sp_compare);
            Console.WriteLine("otriples_op Sort ok. Duration={0} sec.", (DateTime.Now - tt0).Ticks / 10000000L); tt0 = DateTime.Now;

            // Упорядочивание dtriples_sp по s-p
            dtriples_sp.Root.SortByKey(rec =>
            {
                object[] r = (object[])rec;
                return(new SubjPred()
                {
                    pred = (string)r[1], subj = (string)r[0]
                });
            }, sp_compare);
            Console.WriteLine("dtriples_sp.Root.Sort ok. Duration={0} sec.", (DateTime.Now - tt0).Ticks / 10000000L); tt0 = DateTime.Now;


            if (filescale)
            {
                // Создание шкалы (Надо переделать)
                CreateScale();
                //ShowScale();
                oscale.Clear();
                oscale.Fill(new object[0]);
                foreach (int v in scale.Values())
                {
                    oscale.Root.AppendElement(v);
                }
                oscale.Flush();
                CalculateRange(); // Наверное, range считается в CreateScale()
            }
            Console.WriteLine("CreateScale ok. Duration={0} sec.", (DateTime.Now - tt0).Ticks / 10000000L); tt0 = DateTime.Now;

            // Создание "широкой" таблицы
            ewt.Load();
            Console.WriteLine("ewt.Load() ok. Duration={0} sec.", (DateTime.Now - tt0).Ticks / 10000000L); tt0 = DateTime.Now;

            // Вычисление кеша. Это можно не делать, все равно - кеш в оперативной памяти
            ewtHash.Load();
            Console.WriteLine("ewtHash.Load() ok. Duration={0} sec.", (DateTime.Now - tt0).Ticks / 10000000L); tt0 = DateTime.Now;
        }