/// <summary>Outputs the RDF dataset found in the given JSON-LD object.</summary> /// <remarks>Outputs the RDF dataset found in the given JSON-LD object.</remarks> /// <param name="input">the JSON-LD input.</param> /// <param name="callback"></param> /// <param name="options"></param> /// <exception cref="JsonLdError"></exception> public static async Task <object> ToRdfAsync(JToken input, IJsonLdTripleCallback callback, JsonLdOptions options) { JToken expandedInput = await ExpandAsync(input, options); var api = await JsonLdApi.CreateAsync(expandedInput, options); var dataset = api.ToRdf(); // generate namespaces from context if (options.useNamespaces) { JArray _input; if (input is JArray array) { _input = array; } else { _input = new JArray(); _input.Add((JObject)input); } foreach (var e in _input) { if (((JObject)e).ContainsKey("@context")) { dataset.ParseContext((JObject)e["@context"]); } } } if (callback != null) { return(callback.Call(dataset)); } if (options.format != null) { if ("application/nquads".Equals(options.format)) { return(new NQuadTripleCallback().Call(dataset)); } else { if ("text/turtle".Equals(options.format)) { return(new TurtleTripleCallback().Call(dataset)); } throw new JsonLdError(JsonLdError.Error.UnknownFormat, options.format); } } return(dataset); }
/// <exception cref="JsonLdError"></exception> public static Task <object> ToRdfAsync(JToken input, IJsonLdTripleCallback callback) { return(ToRdfAsync(input, callback, new JsonLdOptions(string.Empty))); }