private static bool ConvertSite(GeneralUris generalUris, XmlReader r, SequentialTurtleWriter w) { Uri subjectUri; string address; if (r.MoveToAttribute("Address")) { SiteInfo info; if (GlobalData.Sites.TryGetValue(r.Value, out info)) { address = r.Value; subjectUri = generalUris.CreateSiteUri(info); w.StartTriple(subjectUri); w.AddToTriple(generalUris.IsMetaSiteProperty, info.IsMetaSite); w.AddToTriple(generalUris.LanguageProperty, info.IsEnglishSite ? "en" : info.Language); } else { return(false); } } else { r.MoveToElement(); ConsoleHelper.WriteErrorLine("No Address attribute found on element {0}. Skipping element.", r.ReadOuterXml()); return(false); } w.AddToTriple(generalUris.TypeProperty, generalUris.SiteInfoType); w.AddToTriple(generalUris.WebsiteProperty, new Uri("http://" + address)); if (r.MoveToAttribute("Name")) { w.AddToTriple(generalUris.LabelProperty, r.Value); w.AddToTriple(generalUris.TitleProperty, r.Value); } if (r.MoveToAttribute("Description")) { w.AddToTriple(generalUris.DescriptionProperty, r.Value); } if (r.MoveToAttribute("ParentAddress")) { SiteInfo parentInfo; if (GlobalData.Sites.TryGetValue(r.Value, out parentInfo)) { w.AddToTriple(generalUris.ParentSiteProperty, generalUris.CreateSiteUri(parentInfo)); } else { ConsoleHelper.WriteWarningLine("Unknown parent site {0}; skipping information.", r.Value); } } return(true); }
private static void WriteBadgesLists(GeneralUris generalUris, string destDir, VDS.RDF.INamespaceMapper nsMapper) { ConsoleHelper.WriteMilestone("Writing lists of badges ..."); using (var destWriter = new SequentialTurtleWriter(File.CreateText(Path.Combine(destDir, "_badges.ttl")), nsMapper)) { foreach (var siteBadges in GlobalData.GetBadgesPerSite()) { Uri siteUri = generalUris.CreateSiteUri(siteBadges.Item1); SiteUris uris = new SiteUris(generalUris, siteBadges.Item1); foreach (string badgeName in siteBadges.Item2) { WriteBadgeInfo(uris, badgeName, destWriter); } } GlobalData.UpdateStats(destWriter); } Console.WriteLine(" done."); }
public SiteUris(GeneralUris generalUris, SiteInfo site) { if (generalUris == null) { throw new ArgumentNullException("generalUris"); } if (site == null) { throw new ArgumentNullException("site"); } this.generalUris = generalUris; this.site = site; stackExchangeSite = generalUris.CreateSiteUri(site); BaseUri = new Uri(generalUris.SiteDataPrefix, site.Name + (site.IsMetaSite ? "-meta" : "") + "/"); tagPrefix = new Uri(BaseUri, "tag/"); badgePrefix = new Uri(BaseUri, "badge/"); }