コード例 #1
0
 private static void Reload(StoreCascadingInt store)
 {
     store.Build(TestingPhotoPersons.data.Generate().SelectMany(ele =>
     {
         string id = ele.Name + ele.Attribute("id").Value;
         var seq   = Enumerable.Repeat(
             new TripleStrOV(id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
                             new OV_iri(ele.Name.LocalName)), 1)
                     .Concat(ele.Elements().Select(subele =>
         {
             XAttribute ratt    = subele.Attribute("ref");
             TripleStrOV triple = null;
             if (ratt != null)
             {
                 string r = (subele.Name == "reflected" ? "person" : "photo_doc") +
                            ratt.Value;
                 triple = new TripleStrOV(id, subele.Name.LocalName, new OV_iri(r));
             }
             else
             {
                 string value        = subele.Value; // Нужны языки и другие варианты!
                 bool possiblenumber = string.IsNullOrEmpty(value) ? false : true;
                 if (possiblenumber)
                 {
                     char c = value[0];
                     if (char.IsDigit(c) || c == '-')
                     {
                     }
                     else
                     {
                         possiblenumber = false;
                     }
                 }
                 triple = new TripleStrOV(id, subele.Name.LocalName,
                                          possiblenumber
                             ? (ObjectVariants) new OV_int(int.Parse(value))
                             : (ObjectVariants) new OV_string(value));
             }
             return(triple);
         }));
         return(seq);
     }));
     //  File.WriteAllText("../../../Databases/string based/photoPersons.ttl", store.ToTurtle());
 }