public static JToken JsonFromGraph2(IGraph graph, string rootType, JToken context) { System.IO.StringWriter stringWriter = new System.IO.StringWriter(); IRdfWriter rdfWriter = new JsonLdWriter(); rdfWriter.Save(graph, stringWriter); stringWriter.Flush(); JToken flattened = JToken.Parse(stringWriter.ToString()); return flattened; }
public static JObject JsonFromGraph(IGraph graph, string rootType, JToken context) { System.IO.StringWriter stringWriter = new System.IO.StringWriter(); IRdfWriter rdfWriter = new JsonLdWriter(); rdfWriter.Save(graph, stringWriter); stringWriter.Flush(); JObject frame = new JObject(); frame.Add("@context", context); frame.Add("@type", rootType); //frame.Add("@embed", false); JToken flattened = JToken.Parse(stringWriter.ToString()); JObject framed = JsonLdProcessor.Frame(flattened, frame, new JsonLdOptions()); JObject compacted = JsonLdProcessor.Compact(framed, context, new JsonLdOptions()); return compacted; }
async Task<JObject> MakeCatalogEntry(string nuspecLocation) { Uri baseAddress = new Uri("http://tempuri.org/test"); HttpClient client = new HttpClient(); XDocument original = XDocument.Load(await client.GetStreamAsync(nuspecLocation)); XDocument nuspec = NormalizeNuspecNamespace(original, GetXslt("XSLT.normalizeNuspecNamespace.xslt")); IGraph graph = CreateNuspecGraph(nuspec, baseAddress, GetXslt("XSLT.nuspec.xslt")); // Compact JSON-LD projection of RDF JToken frame = GetJson("Context.package.json"); using (var writer = new StringWriter()) { IRdfWriter jsonLdWriter = new JsonLdWriter(); jsonLdWriter.Save(graph, writer); writer.Flush(); JToken flattened = JToken.Parse(writer.ToString()); JObject framed = JsonLdProcessor.Frame(flattened, frame, new JsonLdOptions()); JObject compacted = JsonLdProcessor.Compact(framed, frame["@context"], new JsonLdOptions()); compacted.Remove("@context"); return compacted; } }