从dotNetRDF导出压缩的JSON-LD

本文关键字:JSON-LD 压缩 dotNetRDF | 更新日期: 2023-09-27 17:56:58

我在.NET中使用dotNetRDF进行RDF,但据我所知,它没有JSON-LD序列化。

特别是JSON-LD的压缩版本与RDF/XML,TriX相比具有较小的开销和可读性的巨大优势

因此,由于没有直接的方法可以从dotNetRDF导出JSON-LD,我正在考虑一个可以将dotNetRDF理解的格式转换为JSON-LD的转换器。像RDF/XML,RDF/JSON(注意:它与JSON-LD不同),TriX,N-Quads等格式。

您推荐哪种转换器?哪个支持压缩版本?它也应该能够从JSON-LD转换为其他格式。也许有一个 .NET 库?

从dotNetRDF导出压缩的JSON-LD

我的解决方案使用库 json-ld.net 将dotNetRDF的NQuads输出转换为JSON-LD:

var tripleStore = ...
var nQuads = VDS.RDF.Writing.StringWriter.Write(tripleStore, new NQuadsWriter());
var contextMap = JObject.Parse(@"{
          '@context' : {
            'model': 'http://localhost/model/',
            'rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
            'xsd':  'http://www.w3.org/2001/XMLSchema#',
            'model:age': {
              '@type': 'xsd:int'
            }
          }
        }");
var parser = new NQuadRDFParser();
var rdfDataset = parser.Parse(nQuads);
var jArray = new JsonLdApi().FromRDF(rdfDataset);
var jObjectCompacted = JsonLdProcessor.Compact(jArray, new Context(contextMap), new JsonLdOptions());
var jsonLd = jObjectCompacted.ToString();