in OWL2DTDL/Program.cs [1124:1158]
private static JObject ToJsonLd(Graph dtdlModel)
{
JArray initialJsonLd;
using (TripleStore entitiesStore = new TripleStore())
{
entitiesStore.Add(dtdlModel);
JsonLdWriterOptions writerOptions = new JsonLdWriterOptions();
writerOptions.UseNativeTypes = true;
JsonLdWriter jsonLdWriter = new JsonLdWriter(writerOptions);
initialJsonLd = jsonLdWriter.SerializeStore(entitiesStore);
}
// Configure and run JSON-LD framing and compacting
JsonLdProcessorOptions options = new JsonLdProcessorOptions();
options.UseNativeTypes = true;
options.Base = new Uri("https://example.org"); // Throwaway base, not actually used
JObject frame = new JObject(
new JProperty("@type", DTDL.Interface.AbsoluteUri)
);
JObject context;
using (StreamReader file = File.OpenText(@"DTDL.v2.context.json"))
using (JsonTextReader reader = new JsonTextReader(file))
{
context = (JObject)JToken.ReadFrom(reader);
}
JObject framedJson = JsonLdProcessor.Frame(initialJsonLd, frame, options);
JObject compactedJson = JsonLdProcessor.Compact(framedJson, context, options);
compactedJson["@context"] = new JValue(DTDL.dtdlContext);
return compactedJson;
}