示例#1
0
        internal TLiteralNode(string rest_line, TGraph g)
        {
            this.g = g;
            // Последняя двойная кавычка
            int lastqu = rest_line.LastIndexOf('\"');

            // Значение данных
            var sdata = rest_line.Substring(1, lastqu - 1);

            // Языковый специализатор:
            int    dog  = rest_line.LastIndexOf('@');
            string lang = "";

            if (dog == lastqu + 1)
            {
                lang = rest_line.Substring(dog + 1, rest_line.Length - dog - 1);
            }

            string datatype = "";
            int    pp       = rest_line.IndexOf("^^");

            if (pp == lastqu + 1)
            {
                //  Тип данных
                string qname = rest_line.Substring(pp + 2);
                //  тип данных может быть "префиксным" или полным
                if (qname[0] == '<')
                {
                    datatype = qname.Substring(1, qname.Length - 2);
                }
                else
                {
                    datatype = TTurtleParser.GetEntityString(g, qname);
                }
            }
            Literal lit =
                datatype == "http://www.w3.org/2001/XMLSchema#integer" ?
                new Literal()
            {
                Vid = LiteralVidEnumeration.integer, Value = int.Parse(sdata)
            } :
            (datatype == "http://www.w3.org/2001/XMLSchema#date" ?
             new Literal()
            {
                Vid = LiteralVidEnumeration.date, Value = DateTime.Parse(sdata).ToBinary()
            } :
             (new Literal()
            {
                Vid = LiteralVidEnumeration.text, Value = new Text()
                {
                    Value = sdata, Lang = "en"
                }
            }));
            long off = g.AddLiteral(lit);

            this.ocode = off;
        }
示例#2
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Start");
            string path   = @"..\..\..\Databases\";
            TGraph gra    = new TGraph(path);
            bool   toload = false;

            if (toload)
            {
                TTurtleParser parser = new TTurtleParser();
                parser.Load(gra, @"D:\home\FactographDatabases\dataset\dataset1M.ttl");
            }
            else
            {
                Tracer(gra);
            }
        }
示例#3
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Start");
            string   path        = @"..\..\..\Databases\";
            string   datasetpath = @"D:\home\FactographDatabases\dataset\";
            DateTime tt0         = DateTime.Now;
            TGraph   gra         = new TGraph(path);

            Console.WriteLine("Построение графа: {0} мс.", (DateTime.Now - tt0).Ticks / 10000L); tt0 = DateTime.Now;
            bool toload = true;

            if (toload)
            {
                tt0 = DateTime.Now;
                TTurtleParser parser = new TTurtleParser();
                parser.Load(gra, datasetpath + "dataset100M.ttl");
                Console.WriteLine("TOTAL: {0} мс.", (DateTime.Now - tt0).Ticks / 10000L); tt0 = DateTime.Now;
            }
            else
            {
                Tracer(gra, datasetpath + @"tracing100th.xml");
            }
        }