-1

我在 .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 库来解决这个问题?

4

1 回答 1

2

我使用库 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();
于 2015-06-18T13:35:42.040 回答