Improve JSON-LD representation for Address and add it to the docs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
parent
039846d465
commit
39b7a5b948
|
@ -111,3 +111,61 @@ Example:
|
||||||
"url": "http://mobilizon1.com/events/8cf76e9f-c426-4912-9cd6-c7030b969611"
|
"url": "http://mobilizon1.com/events/8cf76e9f-c426-4912-9cd6-c7030b969611"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### location
|
||||||
|
|
||||||
|
We use Schema.org's `location` property on `Event`.
|
||||||
|
[The ActivityStream vocabulary to represent places](https://www.w3.org/TR/activitystreams-vocabulary/#places) is quite limited so instead of using `Place` from ActivityStreams we use `Place` from Schema.org.
|
||||||
|
|
||||||
|
A [Schema.org `Place` type](https://schema.org/Place) has [an `address` property](https://schema.org/address), which we assume to be [of `PostalAddress` type](https://schema.org/PostalAddress) and [a `geo` property](https://schema.org/geo), which is assumed to be of [`GeoCoordinates` type](https://schema.org/GeoCoordinates).
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"@context": [
|
||||||
|
"...",
|
||||||
|
{
|
||||||
|
"GeoCoordinates": "sc:GeoCoordinates",
|
||||||
|
"Place": "sc:Place",
|
||||||
|
"PostalAddress": "sc:PostalAddress",
|
||||||
|
"address": {
|
||||||
|
"@id": "sc:address",
|
||||||
|
"@type": "sc:PostalAddress"
|
||||||
|
},
|
||||||
|
"addressCountry": "sc:addressCountry",
|
||||||
|
"addressLocality": "sc:addressLocality",
|
||||||
|
"addressRegion": "sc:addressRegion",
|
||||||
|
"geo": {
|
||||||
|
"@id": "sc:geo",
|
||||||
|
"@type": "sc:GeoCoordinates"
|
||||||
|
},
|
||||||
|
"location": {
|
||||||
|
"@id": "sc:location",
|
||||||
|
"@type": "sc:Place"
|
||||||
|
},
|
||||||
|
"postalCode": "sc:postalCode",
|
||||||
|
"sc": "http://schema.org#",
|
||||||
|
"streetAddress": "sc:streetAddress",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"id": "http://mobilizon2.com/events/945f350d-a3e6-4bcd-9bf2-0bd2e4d353c5",
|
||||||
|
"location": {
|
||||||
|
"address": {
|
||||||
|
"addressCountry": "France",
|
||||||
|
"addressLocality": "Lyon",
|
||||||
|
"addressRegion": "Auvergne-Rhône-Alpes",
|
||||||
|
"postalCode": "69007",
|
||||||
|
"streetAddress": "10 Rue Jangot",
|
||||||
|
"type": "PostalAddress"
|
||||||
|
},
|
||||||
|
"geo": {
|
||||||
|
"latitude": 4.8425657,
|
||||||
|
"longitude": 45.7517141,
|
||||||
|
"type": "GeoCoordinates"
|
||||||
|
},
|
||||||
|
"id": "http://mobilizon2.com/address/bdf7fb53-7177-46f3-8fb3-93c25a802522",
|
||||||
|
"name": "10 Rue Jangot",
|
||||||
|
"type": "Place"
|
||||||
|
},
|
||||||
|
"type": "Event"
|
||||||
|
}
|
||||||
|
```
|
|
@ -37,6 +37,26 @@ defmodule Mobilizon.Service.ActivityPub.Utils do
|
||||||
"category" => "sc:category",
|
"category" => "sc:category",
|
||||||
"uuid" => "sc:identifier",
|
"uuid" => "sc:identifier",
|
||||||
"maximumAttendeeCapacity" => "sc:maximumAttendeeCapacity",
|
"maximumAttendeeCapacity" => "sc:maximumAttendeeCapacity",
|
||||||
|
"location" => %{
|
||||||
|
"@id" => "sc:location",
|
||||||
|
"@type" => "sc:Place"
|
||||||
|
},
|
||||||
|
"Place" => "sc:Place",
|
||||||
|
"PostalAddress" => "sc:PostalAddress",
|
||||||
|
"GeoCoordinates" => "sc:GeoCoordinates",
|
||||||
|
"address" => %{
|
||||||
|
"@id" => "sc:address",
|
||||||
|
"@type" => "sc:PostalAddress"
|
||||||
|
},
|
||||||
|
"geo" => %{
|
||||||
|
"@id" => "sc:geo",
|
||||||
|
"@type" => "sc:GeoCoordinates"
|
||||||
|
},
|
||||||
|
"addressCountry" => "sc:addressCountry",
|
||||||
|
"addressRegion" => "sc:addressRegion",
|
||||||
|
"postalCode" => "sc:postalCode",
|
||||||
|
"addressLocality" => "sc:addressLocality",
|
||||||
|
"streetAddress" => "sc:streetAddress",
|
||||||
"mz" => "https://joinmobilizon.org/ns#",
|
"mz" => "https://joinmobilizon.org/ns#",
|
||||||
"repliesModerationOptionType" => %{
|
"repliesModerationOptionType" => %{
|
||||||
"@id" => "mz:repliesModerationOptionType",
|
"@id" => "mz:repliesModerationOptionType",
|
||||||
|
|
Loading…
Reference in a new issue