-
Notifications
You must be signed in to change notification settings - Fork 0
/
Sample9_CustomRDFParser.cs
70 lines (64 loc) · 2.06 KB
/
Sample9_CustomRDFParser.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System;
using JsonLD.Core;
using Newtonsoft.Json.Linq;
namespace JsonLD.Demo
{
public static class Sample9_CustomRDFParser
{
private static readonly string _serialized = Sample6_ToRDF.Run();
private class CustomRDFParser : IRDFParser
{
public RDFDataset Parse(JToken input)
{
// by public decree, references to example.org are normalized to https going forward...
var converted = ((string)input).Replace("http://example.org/", "https://example.org/");
return RDFDatasetUtils.ParseNQuads(converted);
}
}
internal static void Run()
{
var parser = new CustomRDFParser();
var jsonld = JsonLdProcessor.FromRDF(_serialized, parser);
Console.WriteLine(jsonld);
/*
Output:
[
{
"@id": "_:b0",
"http://schema.org/image": [
{
"@id": "http://manu.sporny.org/images/manu.png"
}
],
"http://schema.org/name": [
{
"@value": "Manu Sporny"
}
],
"http://schema.org/url": [
{
"@id": "http://manu.sporny.org/"
}
],
"@type": [
"http://schema.org/Person"
]
},
{
"@id": "https://example.org/ld-experts",
"http://schema.org/member": [
{
"@id": "_:b0"
}
],
"http://schema.org/name": [
{
"@value": "LD Experts"
}
]
}
]
*/
}
}
}