rfc9264v2.txt | rfc9264.txt | |||
---|---|---|---|---|
skipping to change at line 416 ¶ | skipping to change at line 416 ¶ | |||
{ "linkset": | { "linkset": | |||
[ | [ | |||
{ "anchor": "https://example.net/bar", | { "anchor": "https://example.net/bar", | |||
"next": [ | "next": [ | |||
{"href": "https://example.com/foo"} | {"href": "https://example.com/foo"} | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 1: Simple Linkset Example | Figure 1: Simple linkset example | |||
The following example of a JSON-serialized set of links represents | The following example of a JSON-serialized set of links represents | |||
two links that share a link context and relation type but have | two links that share a link context and relation type but have | |||
different link targets. | different link targets. | |||
{ "linkset": | { "linkset": | |||
[ | [ | |||
{ "anchor": "https://example.net/bar", | { "anchor": "https://example.net/bar", | |||
"item": [ | "item": [ | |||
{"href": "https://example.com/foo1"}, | {"href": "https://example.com/foo1"}, | |||
{"href": "https://example.com/foo2"} | {"href": "https://example.com/foo2"} | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 2: Linkset with Two Links with the Same Context | Figure 2: Linkset with two links with the same context | |||
The following example shows a set of links that represents two links, | The following example shows a set of links that represents two links, | |||
each with a different link context, link target, and relation type. | each with a different link context, link target, and relation type. | |||
One relation type is registered, and the other is an extension | One relation type is registered, and the other is an extension | |||
relation type. | relation type. | |||
{ "linkset": | { "linkset": | |||
[ | [ | |||
{ "anchor": "https://example.net/bar", | { "anchor": "https://example.net/bar", | |||
"next": [ | "next": [ | |||
skipping to change at line 455 ¶ | skipping to change at line 455 ¶ | |||
] | ] | |||
}, | }, | |||
{ "anchor": "https://example.net/boo", | { "anchor": "https://example.net/boo", | |||
"https://example.com/relations/baz" : [ | "https://example.com/relations/baz" : [ | |||
{"href": "https://example.com/foo2"} | {"href": "https://example.com/foo2"} | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 3: Linkset with Two Links with Different Contexts | Figure 3: Linkset with two links with different contexts | |||
4.2.4. Link Target Attributes | 4.2.4. Link Target Attributes | |||
A link may be further qualified by target attributes as defined by | A link may be further qualified by target attributes as defined by | |||
Section 2 of [RFC8288]. Three types of attributes exist: | Section 2 of [RFC8288]. Three types of attributes exist: | |||
* Serialization-defined attributes as described in Section 3.4.1 of | * Serialization-defined attributes as described in Section 3.4.1 of | |||
[RFC8288]. | [RFC8288]. | |||
* Extension attributes defined and used by communities as allowed by | * Extension attributes defined and used by communities as allowed by | |||
skipping to change at line 529 ¶ | skipping to change at line 529 ¶ | |||
"next": [ | "next": [ | |||
{ "href": "https://example.com/foo", | { "href": "https://example.com/foo", | |||
"type": "text/html", | "type": "text/html", | |||
"hreflang": [ "en" , "de" ] | "hreflang": [ "en" , "de" ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 4: Linkset with "hreflang" and "type" Target Attributes | Figure 4: Linkset with "hreflang" and "type" target attributes | |||
4.2.4.2. Internationalized Target Attributes | 4.2.4.2. Internationalized Target Attributes | |||
In addition to the target attributes described in Section 4.2.4.1, | In addition to the target attributes described in Section 4.2.4.1, | |||
Section 3.4 of [RFC8288] also supports attributes that follow the | Section 3.4 of [RFC8288] also supports attributes that follow the | |||
content model of [RFC8187]. In [RFC8288], these target attributes | content model of [RFC8187]. In [RFC8288], these target attributes | |||
are recognizable by the use of a trailing asterisk in the attribute | are recognizable by the use of a trailing asterisk in the attribute | |||
name, such as "title*". The content model of [RFC8187] uses a | name, such as "title*". The content model of [RFC8187] uses a | |||
string-based microsyntax that represents the character encoding, an | string-based microsyntax that represents the character encoding, an | |||
optional language tag, and the escaped attribute value encoded | optional language tag, and the escaped attribute value encoded | |||
skipping to change at line 583 ¶ | skipping to change at line 583 ¶ | |||
"hreflang": [ "en" , "de" ], | "hreflang": [ "en" , "de" ], | |||
"title": "Next chapter", | "title": "Next chapter", | |||
"title*": [ { "value": "nächstes Kapitel" , | "title*": [ { "value": "nächstes Kapitel" , | |||
"language" : "de" } ] | "language" : "de" } ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 5: Linkset with "title" and "title*" Target Attributes | Figure 5: Linkset with "title" and "title*" target attributes | |||
The above example assumes that the German title contains an umlaut | The above example assumes that the German title contains an umlaut | |||
character (in the original syntax, it would be encoded as title*=UTF- | character (in the original syntax, it would be encoded as title*=UTF- | |||
8'de'n%c3%a4chstes%20Kapitel), which gets encoded in its unescaped | 8'de'n%c3%a4chstes%20Kapitel), which gets encoded in its unescaped | |||
form in the JSON representation. Implementations MUST properly | form in the JSON representation. Implementations MUST properly | |||
decode/encode internationalized target attributes that follow the | decode/encode internationalized target attributes that follow the | |||
model of [RFC8187] when transcoding between the "application/linkset" | model of [RFC8187] when transcoding between the "application/linkset" | |||
format and the "application/linkset+json" format. | format and the "application/linkset+json" format. | |||
4.2.4.3. Extension Target Attributes | 4.2.4.3. Extension Target Attributes | |||
skipping to change at line 649 ¶ | skipping to change at line 649 ¶ | |||
"foo": [ "foovalue" ], | "foo": [ "foovalue" ], | |||
"bar": [ "barone", "bartwo" ], | "bar": [ "barone", "bartwo" ], | |||
"baz*": [ { "value": "bazvalue" , | "baz*": [ { "value": "bazvalue" , | |||
"language" : "en" } ] | "language" : "en" } ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 6: Linkset with Extension Target Attributes | Figure 6: Linkset with extension target attributes | |||
4.2.5. JSON Extensibility | 4.2.5. JSON Extensibility | |||
The Web Linking model [RFC8288] provides for the use of extension | The Web Linking model [RFC8288] provides for the use of extension | |||
target attributes as discussed in Section 4.2.4.3. The use of other | target attributes as discussed in Section 4.2.4.3. The use of other | |||
forms of extensions is NOT RECOMMENDED. Limiting the JSON format in | forms of extensions is NOT RECOMMENDED. Limiting the JSON format in | |||
this way allows unambiguous round trips between links provided in the | this way allows unambiguous round trips between links provided in the | |||
HTTP "Link" header field, sets of links serialized according to the | HTTP "Link" header field, sets of links serialized according to the | |||
"application/linkset" format, and sets of links serialized according | "application/linkset" format, and sets of links serialized according | |||
to the "application/linkset+json" format. | to the "application/linkset+json" format. | |||
skipping to change at line 752 ¶ | skipping to change at line 752 ¶ | |||
link set. | link set. | |||
7.1. Set of Links Provided as "application/linkset" | 7.1. Set of Links Provided as "application/linkset" | |||
Figure 7 shows a client issuing an HTTP GET request against resource | Figure 7 shows a client issuing an HTTP GET request against resource | |||
<https://example.org/links/resource1>. | <https://example.org/links/resource1>. | |||
GET /links/resource1 HTTP/1.1 | GET /links/resource1 HTTP/1.1 | |||
Host: example.org | Host: example.org | |||
Figure 7: Client HTTP GET Request | Figure 7: Client HTTP GET request | |||
Figure 8 shows the response to the GET request of Figure 7. The | Figure 8 shows the response to the GET request of Figure 7. The | |||
response contains a "Content-Type" header field specifying that the | response contains a "Content-Type" header field specifying that the | |||
media type of the response is "application/linkset". A set of links, | media type of the response is "application/linkset". A set of links, | |||
revealing authorship and versioning related to resource | revealing authorship and versioning related to resource | |||
<https://example.org/resource1>, is provided in the response body. | <https://example.org/resource1>, is provided in the response body. | |||
The HTTP "Link" header field indicates the availability of an | The HTTP "Link" header field indicates the availability of an | |||
alternate representation of the set of links using media type | alternate representation of the set of links using media type | |||
"application/linkset+json". | "application/linkset+json". | |||
skipping to change at line 802 ¶ | skipping to change at line 802 ¶ | |||
; anchor="https://example.org/resource1", | ; anchor="https://example.org/resource1", | |||
<https://example.org/resource1?version=2> | <https://example.org/resource1?version=2> | |||
; rel="memento" | ; rel="memento" | |||
; type="text/html" | ; type="text/html" | |||
; datetime="Sun, 21 Jul 2019 12:22:04 GMT" | ; datetime="Sun, 21 Jul 2019 12:22:04 GMT" | |||
; anchor="https://example.org/resource1", | ; anchor="https://example.org/resource1", | |||
<https://authors.example.net/alice> | <https://authors.example.net/alice> | |||
; rel="author" | ; rel="author" | |||
; anchor="https://example.org/resource1#comment=1" | ; anchor="https://example.org/resource1#comment=1" | |||
Figure 8: Response to HTTP GET Includes a Set of Links | Figure 8: Response to HTTP GET includes a set of links | |||
7.2. Set of Links Provided as "application/linkset+json" | 7.2. Set of Links Provided as "application/linkset+json" | |||
Figure 9 shows the client issuing an HTTP GET request against | Figure 9 shows the client issuing an HTTP GET request against | |||
<https://example.org/links/resource1>. In the request, the client | <https://example.org/links/resource1>. In the request, the client | |||
uses an "Accept" header field to indicate that it prefers a response | uses an "Accept" header field to indicate that it prefers a response | |||
in the "application/linkset+json" format. | in the "application/linkset+json" format. | |||
GET links/resource1 HTTP/1.1 | GET links/resource1 HTTP/1.1 | |||
Host: example.org | Host: example.org | |||
Accept: application/linkset+json | Accept: application/linkset+json | |||
Figure 9: Client HTTP GET Request Expressing Preference for an | Figure 9: Client HTTP GET request expressing preference for an | |||
"application/linkset+json" Response | "application/linkset+json" response | |||
Figure 10 shows the response to the HTTP GET request of Figure 9. | Figure 10 shows the response to the HTTP GET request of Figure 9. | |||
The set of links is serialized according to the media type | The set of links is serialized according to the media type | |||
"application/linkset+json". | "application/linkset+json". | |||
HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
Date: Mon, 12 Aug 2019 10:46:22 GMT | Date: Mon, 12 Aug 2019 10:46:22 GMT | |||
Server: Apache-Coyote/1.1 | Server: Apache-Coyote/1.1 | |||
Content-Type: application/linkset+json | Content-Type: application/linkset+json | |||
Link: <https://example.org/links/resource1> | Link: <https://example.org/links/resource1> | |||
skipping to change at line 877 ¶ | skipping to change at line 877 ¶ | |||
] | ] | |||
}, | }, | |||
{ "anchor": "https://example.org/resource1#comment=1", | { "anchor": "https://example.org/resource1#comment=1", | |||
"author": [ | "author": [ | |||
{ "href": "https://authors.example.net/alice"} | { "href": "https://authors.example.net/alice"} | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 10: Response to the Client's Request for the Linkset | Figure 10: Response to the client's request for the linkset | |||
7.3. Discovering a Link Set via the "linkset" Link Relation Type | 7.3. Discovering a Link Set via the "linkset" Link Relation Type | |||
Figure 11 shows a client issuing an HTTP HEAD request against | Figure 11 shows a client issuing an HTTP HEAD request against | |||
resource <https://example.org/resource1>. | resource <https://example.org/resource1>. | |||
HEAD resource1 HTTP/1.1 | HEAD resource1 HTTP/1.1 | |||
Host: example.org | Host: example.org | |||
Figure 11: Client HTTP HEAD Request | Figure 11: Client HTTP HEAD request | |||
Figure 12 shows the response to the HEAD request of Figure 11. The | Figure 12 shows the response to the HEAD request of Figure 11. The | |||
response contains an HTTP "Link" header field with a link that has | response contains an HTTP "Link" header field with a link that has | |||
the "linkset" relation type. It indicates that a set of links is | the "linkset" relation type. It indicates that a set of links is | |||
provided by resource <https://example.org/links/resource1>, which | provided by resource <https://example.org/links/resource1>, which | |||
provides a representation with media type "application/linkset+json". | provides a representation with media type "application/linkset+json". | |||
HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
Date: Mon, 12 Aug 2019 10:45:54 GMT | Date: Mon, 12 Aug 2019 10:45:54 GMT | |||
Server: Apache-Coyote/1.1 | Server: Apache-Coyote/1.1 | |||
Link: <https://example.org/links/resource1> | Link: <https://example.org/links/resource1> | |||
; rel="linkset" | ; rel="linkset" | |||
; type="application/linkset+json" | ; type="application/linkset+json" | |||
Content-Length: 236 | Content-Length: 236 | |||
Content-Type: text/html;charset=utf-8 | Content-Type: text/html;charset=utf-8 | |||
Figure 12: Response to HTTP HEAD Request | Figure 12: Response to HTTP HEAD request | |||
7.4. Link Set Profiles | 7.4. Link Set Profiles | |||
The examples in this section illustrate the use of the "profile" | The examples in this section illustrate the use of the "profile" | |||
attribute for a link with the "linkset" link relation type and the | attribute for a link with the "linkset" link relation type and the | |||
"profile" attribute for a link set media type. The examples are | "profile" attribute for a link set media type. The examples are | |||
inspired by the implementation of link sets by GS1 (the standards | inspired by the implementation of link sets by GS1 (the standards | |||
body behind many of the world's barcodes). | body behind many of the world's barcodes). | |||
7.4.1. Using a "profile" Attribute with a "linkset" Link | 7.4.1. Using a "profile" Attribute with a "linkset" Link | |||
Figure 13 shows a client issuing an HTTP HEAD request against trade | Figure 13 shows a client issuing an HTTP HEAD request against trade | |||
item 09506000134352 at <https://id.gs1.org/01/9506000134352>. | item 09506000134352 at <https://id.gs1.org/01/9506000134352>. | |||
HEAD /01/9506000134352 HTTP/1.1 | HEAD /01/9506000134352 HTTP/1.1 | |||
Host: id.gs1.org | Host: id.gs1.org | |||
Figure 13: Client HTTP HEAD Request | Figure 13: Client HTTP HEAD request | |||
Figure 14 shows the server's response to the request of Figure 13, | Figure 14 shows the server's response to the request of Figure 13, | |||
including a "linkset" link with a "profile" attribute that has the | including a "linkset" link with a "profile" attribute that has the | |||
profile URI <https://www.gs1.org/voc/?show=linktypes> as its value. | profile URI <https://www.gs1.org/voc/?show=linktypes> as its value. | |||
Dereferencing that URI yields a profile document that lists all the | Dereferencing that URI yields a profile document that lists all the | |||
link relation types that a client can expect when requesting the link | link relation types that a client can expect when requesting the link | |||
set made discoverable by the "linkset" link. The link relation types | set made discoverable by the "linkset" link. The link relation types | |||
are presented in abbreviated form, e.g., <gs1:activityIdeas>, whereas | are presented in abbreviated form, e.g., <gs1:activityIdeas>, whereas | |||
the actual link relation type URIs are available as hyperlinks on the | the actual link relation type URIs are available as hyperlinks on the | |||
abbreviations, e.g., <https://www.gs1.org/voc/activityIdeas>. For | abbreviations, e.g., <https://www.gs1.org/voc/activityIdeas>. For | |||
skipping to change at line 946 ¶ | skipping to change at line 946 ¶ | |||
HTTP/1.1 307 Temporary Redirect | HTTP/1.1 307 Temporary Redirect | |||
Date: Mon, 27 Sep 2021 16:03:07 GMT | Date: Mon, 27 Sep 2021 16:03:07 GMT | |||
Server: nginx | Server: nginx | |||
Link: <https://id.gs1.org/01/9506000134352?linkType=all> | Link: <https://id.gs1.org/01/9506000134352?linkType=all> | |||
; rel="linkset" | ; rel="linkset" | |||
; type="application/linkset+json" | ; type="application/linkset+json" | |||
; profile="https://www.gs1.org/voc/?show=linktypes" | ; profile="https://www.gs1.org/voc/?show=linktypes" | |||
Location: https://example.com/risotto-rice-with-mushrooms/ | Location: https://example.com/risotto-rice-with-mushrooms/ | |||
Figure 14: Response to the Client's HEAD Request, including a | Figure 14: Response to the client's HEAD request, including a | |||
"profile" Attribute for the "linkset" Link | "profile" attribute for the "linkset" link | |||
7.4.2. Using a "profile" Parameter with a Link Set Media Type | 7.4.2. Using a "profile" Parameter with a Link Set Media Type | |||
Figure 15 shows a client issuing an HTTP HEAD request against the | Figure 15 shows a client issuing an HTTP HEAD request against the | |||
link set <https://id.gs1.org/01/9506000134352?linkType=all> that was | link set <https://id.gs1.org/01/9506000134352?linkType=all> that was | |||
discovered through the HTTP interactions shown in Section 7.4.1. | discovered through the HTTP interactions shown in Section 7.4.1. | |||
HEAD /01/9506000134352?linkType=all HTTP/1.1 | HEAD /01/9506000134352?linkType=all HTTP/1.1 | |||
Host: id.gs1.org | Host: id.gs1.org | |||
Figure 15: Client HTTP HEAD Request | Figure 15: Client HTTP HEAD request | |||
Figure 16 shows the server's response to the request of Figure 15. | Figure 16 shows the server's response to the request of Figure 15. | |||
Note the "profile" parameter for the "application/linkset+json" media | Note the "profile" parameter for the "application/linkset+json" media | |||
type, which has as its value the same profile URI | type, which has as its value the same profile URI | |||
<https://www.gs1.org/voc/?show=linktypes> as was used in Figure 14. | <https://www.gs1.org/voc/?show=linktypes> as was used in Figure 14. | |||
HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
Date: Mon, 27 Sep 2021 16:03:33 GMT | Date: Mon, 27 Sep 2021 16:03:33 GMT | |||
Server: nginx | Server: nginx | |||
Content-Type: application/linkset+json; | Content-Type: application/linkset+json; | |||
profile="https://www.gs1.org/voc/?show=linktypes" | profile="https://www.gs1.org/voc/?show=linktypes" | |||
Content-Length: 396 | Content-Length: 396 | |||
Figure 16: Response to the Client's HEAD Request, including a | Figure 16: Response to the client's HEAD request, including a | |||
"profile" Parameter for the "application/linkset+json" Media Type | "profile" parameter for the "application/linkset+json" media type | |||
7.4.3. Using a Link with a "profile" Link Relation Type | 7.4.3. Using a Link with a "profile" Link Relation Type | |||
Note that the response shown in Figure 16 from the link set resource | Note that the response shown in Figure 16 from the link set resource | |||
is equivalent to the response shown in Figure 17, which leverages the | is equivalent to the response shown in Figure 17, which leverages the | |||
"profile" link relation type defined in [RFC6906]. | "profile" link relation type defined in [RFC6906]. | |||
HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
Date: Mon, 27 Sep 2021 16:03:33 GMT | Date: Mon, 27 Sep 2021 16:03:33 GMT | |||
Server: nginx | Server: nginx | |||
Content-Type: application/linkset+json | Content-Type: application/linkset+json | |||
Link: <https://www.gs1.org/voc/?show=linktypes>; rel="profile" | Link: <https://www.gs1.org/voc/?show=linktypes>; rel="profile" | |||
Content-Length: 396 | Content-Length: 396 | |||
Figure 17: Response to the Client's HEAD Request, including a | Figure 17: Response to the client's HEAD request, including a | |||
"profile" Link | "profile" link | |||
A link with a "profile" link relation type as shown in Figure 17 can | A link with a "profile" link relation type as shown in Figure 17 can | |||
also be conveyed in the link set document itself. This is | also be conveyed in the link set document itself. This is | |||
illustrated by Figure 18. Following the recommendation that all | illustrated by Figure 18. Following the recommendation that all | |||
links in a link set document should have an explicit anchor, such a | links in a link set document should have an explicit anchor, such a | |||
link has the URI of the link set itself as the anchor and the profile | link has the URI of the link set itself as the anchor and the profile | |||
URI as the target. Multiple profile URIs are handled by using | URI as the target. Multiple profile URIs are handled by using | |||
multiple "href" members. | multiple "href" members. | |||
{ "linkset": | { "linkset": | |||
skipping to change at line 1014 ¶ | skipping to change at line 1014 ¶ | |||
] | ] | |||
}, | }, | |||
{ "anchor": "https://id.gs1.org/01/9506000134352", | { "anchor": "https://id.gs1.org/01/9506000134352", | |||
"https://gs1.org/voc/whatsInTheBox": [ | "https://gs1.org/voc/whatsInTheBox": [ | |||
{"href": "https://example.com/en/packContents/GB"} | {"href": "https://example.com/en/packContents/GB"} | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 18: A Linkset That Declares the Profile It Complies with, | Figure 18: A linkset that declares the profile it complies with, | |||
Using a "profile" Link | using a "profile" link | |||
8. IANA Considerations | 8. IANA Considerations | |||
8.1. Link Relation Type: linkset | 8.1. Link Relation Type: linkset | |||
The link relation type below has been registered by IANA in the "Link | The link relation type below has been registered by IANA in the "Link | |||
Relation Types" registry as per Section 4.2 of [RFC8288]: | Relation Types" registry as per Section 4.2 of [RFC8288]: | |||
Relation Name: linkset | Relation Name: linkset | |||
skipping to change at line 1346 ¶ | skipping to change at line 1346 ¶ | |||
"value": "Voyez-le en action!", | "value": "Voyez-le en action!", | |||
"language": "fr" | "language": "fr" | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 19: Using a Typed Link to Support the Discovery of a JSON- | Figure 19: Using a typed link to support the discovery of a JSON- | |||
LD Context for a Linkset | LD context for a linkset | |||
In order to obtain the JSON-LD context conveyed by the server, the | In order to obtain the JSON-LD context conveyed by the server, the | |||
user agent issues an HTTP GET against the link target of the link | user agent issues an HTTP GET against the link target of the link | |||
with the "http://www.w3.org/ns/json-ld#context" relation type. The | with the "http://www.w3.org/ns/json-ld#context" relation type. The | |||
response to this GET is shown in Figure 20. This particular JSON-LD | response to this GET is shown in Figure 20. This particular JSON-LD | |||
context maps "application/linkset+json" representations of link sets | context maps "application/linkset+json" representations of link sets | |||
to Dublin Core Terms [DCMI-TERMS]. Note that the "linkset" entry in | to Dublin Core terms [DCMI-TERMS]. Note that the "linkset" entry in | |||
the JSON-LD context is introduced to support links with the "linkset" | the JSON-LD context is introduced to support links with the "linkset" | |||
relation type in link sets. | relation type in link sets. | |||
HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
Content-Type: application/ld+json | Content-Type: application/ld+json | |||
Content-Length: 658 | Content-Length: 658 | |||
{ | { | |||
"@context": [ | "@context": [ | |||
{ | { | |||
skipping to change at line 1396 ¶ | skipping to change at line 1396 ¶ | |||
"language": "@language", | "language": "@language", | |||
"value": "@value", | "value": "@value", | |||
"hreflang": { | "hreflang": { | |||
"@id": "http://purl.org/dc/terms/language", | "@id": "http://purl.org/dc/terms/language", | |||
"@container": "@set" | "@container": "@set" | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
Figure 20: JSON-LD Context Mapping to Dublin Core Terms | Figure 20: JSON-LD context mapping to Dublin Core terms | |||
Applying the JSON-LD context of Figure 20 to the link set of | Applying the JSON-LD context of Figure 20 to the link set of | |||
Figure 19 allows transforming the "application/linkset+json" link set | Figure 19 allows transforming the "application/linkset+json" link set | |||
to an RDF link set. Figure 21 shows the latter represented by means | to an RDF link set. Figure 21 shows the latter represented by means | |||
of the "text/turtle" RDF serialization. | of the "text/turtle" RDF serialization. | |||
<https://example.com/en/defaultPage> | <https://example.com/en/defaultPage> | |||
<http://purl.org/dc/terms/format> | <http://purl.org/dc/terms/format> | |||
"text/html" . | "text/html" . | |||
<https://example.com/en/defaultPage> | <https://example.com/en/defaultPage> | |||
skipping to change at line 1467 ¶ | skipping to change at line 1467 ¶ | |||
<https://video.example> | <https://video.example> | |||
<http://purl.org/dc/terms/language> | <http://purl.org/dc/terms/language> | |||
"fr" . | "fr" . | |||
<https://video.example> | <https://video.example> | |||
<http://purl.org/dc/terms/title> | <http://purl.org/dc/terms/title> | |||
"See it in action!"@en . | "See it in action!"@en . | |||
<https://video.example> | <https://video.example> | |||
<http://purl.org/dc/terms/title> | <http://purl.org/dc/terms/title> | |||
"Voyez-le en action!"@fr . | "Voyez-le en action!"@fr . | |||
Figure 21: RDF Serialization of the Linkset Resulting from | Figure 21: RDF serialization of the linkset resulting from | |||
Applying the JSON-LD Context | applying the JSON-LD context | |||
Acknowledgements | Acknowledgements | |||
Thanks for comments and suggestions provided by Phil Archer, | Thanks for comments and suggestions provided by Phil Archer, | |||
Dominique Guinard, Mark Nottingham, Julian Reschke, Rob Sanderson, | Dominique Guinard, Mark Nottingham, Julian Reschke, Rob Sanderson, | |||
Stian Soiland-Reyes, Sarven Capadisli, and Addison Phillips. | Stian Soiland-Reyes, Sarven Capadisli, and Addison Phillips. | |||
Authors' Addresses | Authors' Addresses | |||
Erik Wilde | Erik Wilde | |||
End of changes. 22 change blocks. | ||||
29 lines changed or deleted | 29 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |