kopia lustrzana https://github.com/Podcastindex-org/podcast-namespace
replace attribute with tag value on location/person
rodzic
15948ecf28
commit
7d2b95be7b
16
README.md
16
README.md
|
@ -24,7 +24,7 @@ will become the framework that the independent podcast community needs to delive
|
|||
|
||||
**Formalized** - This tag is frozen and listed in the XMLNS document. Any future changes to it's definition must maintain backwards compatibility.
|
||||
|
||||
**Finalized** - The tag is structurally stable and implementation/testing should be considered safe. Only language/wording changes should be expected.
|
||||
**Finalized** - The tag is structurally stable and implementation testing should be considered safe. Any breaking changes will be widely communicated.
|
||||
|
||||
**Open** - The tag/phase is open for discussion and collaboration.
|
||||
|
||||
|
@ -126,20 +126,20 @@ full implementation details.
|
|||
|
||||
### <u>Phase 2 (Open)</u>
|
||||
|
||||
- **\<podcast:person name="[name of person]" (role="[host,guest,etc.]") (group="[cast,writing,etc.]") (img="[uri of content]") (href="[uri to Podchaser/website/wiki/blog]") />** (finalized)
|
||||
- **\<podcast:person (role="[host,guest,etc.]") (group="[cast,writing,etc.]") (img="[uri of content]") (href="[uri to Podchaser/website/wiki/blog]") />**[name of person]**\</podcast:person>** (finalized)
|
||||
|
||||
Channel or Item (optional | multiple)
|
||||
|
||||
This element specifies a person of interest to the podcast. It is primarily intended to identify people like hosts, co-hosts and guests. Although, it is flexible enough to allow fuller credits to be given using the roles
|
||||
and groups that are listed in the [Podcast Taxonomy Project](https://podcasttaxonomy.com/).
|
||||
|
||||
- `name` (required) This is the full name or alias of the person.
|
||||
- Tag Value (required) This is the full name or alias of the person.
|
||||
- `role` (optional) Used to identify what role the person serves on the show or episode. This should be a reference to an official role within the Podcast Taxonomy Project list (see below). If `role` is missing then "host" is assumed.
|
||||
- `group` (optional) This should be a camel-cased, alphanumeric reference to an official group within the Podcast Taxonomy Project list. If `group` is not present, then "cast" is assumed.
|
||||
- `img` (optional) This is the url of a picture or avatar of the person.
|
||||
- `href` (optional) The url to a relevant resource of information about the person, such as a homepage or third-party profile platform. Please see the [example feed](example.xml) for possible choices of what to use here.
|
||||
|
||||
The maximum recommended string length of the node value is 128 characters.
|
||||
The maximum recommended string length of each attribute value, and the tag's node value is 128 characters.
|
||||
|
||||
The `role` and `group` tags are case-insensitive. So, "Host" is the same as "host".
|
||||
|
||||
|
@ -148,7 +148,7 @@ full implementation details.
|
|||
<br>
|
||||
|
||||
|
||||
- **\<podcast:location name="[humanly readable place name]" (geo="[geoURI]") (osmid="[OSM type][OSM id]") />** (finalized)
|
||||
- **\<podcast:location (geo="[geoURI]") (osm="[OSM type][OSM id](#OSM revision)") />**[humanly readable place name]**\</podcast:location>** (finalized)
|
||||
|
||||
Channel or Item (optional | multiple)
|
||||
|
||||
|
@ -156,11 +156,11 @@ full implementation details.
|
|||
|
||||
The tag has many use cases and is one of the more complex ones. You are **highly encouraged** to read the full [implementation document](location/location.md) before starting to code for it.
|
||||
|
||||
- `name` (required) This is a free-form string meant to be a human readable location. It may conform to conventional location verbiage (i.e. "Austin, TX"), but it shouldn't be depended on to be parseable in any specific way.
|
||||
- Tag Value (required) This is a free-form string meant to be a human readable location. It may conform to conventional location verbiage (i.e. "Austin, TX"), but it shouldn't be depended on to be parseable in any specific way.
|
||||
- `geo` (recommended) This is a latitude and longitude given in "geo" notation (i.e. "geoURI:30.2672,97.7431").
|
||||
- `osmid` (recommended) The Open Street Map identifier of this place, given using the OSM notation (i.e. "R113314")
|
||||
- `osm` (recommended) The Open Street Map identifier of this place, given using the OSM notation (i.e. "R113314")
|
||||
|
||||
The maximum recommended string length of all attribute values is 128 characters.
|
||||
The maximum recommended string length of each attribute value, and the tag's node value is 128 characters.
|
||||
|
||||
<br>
|
||||
|
||||
|
|
|
@ -37,22 +37,21 @@ This, therefore, means that the `<podcast:location>` tag is complex and has a nu
|
|||
|
||||
```
|
||||
<podcast:location
|
||||
name="[human-readable place name]"
|
||||
geo="[geo URI]"
|
||||
osmid="[OSM type][OSM id]"
|
||||
>
|
||||
osm="[OSM type][OSM id](#OSM revision)"
|
||||
>[human-readable place name]</podcast:location>
|
||||
```
|
||||
|
||||
This tag can exist at either the `<channel>` level, or the `<item>` level, or both. The maximum recommended string length of all attribute values is 128 characters.
|
||||
|
||||
<br>
|
||||
|
||||
#### `name` **required**
|
||||
#### Tag Node Value **required**
|
||||
|
||||
This is meant for podcast apps to display the name of the location that the podcast is about. Examples might be "Houses of Parliament", "Gitmo Nation" or "Ernest Murrow Theater, Chicago". This is not intended to be
|
||||
programmatically parsed and is for display only. For a programmatic designation of the location, use the geo URI or OSM IDs, below.
|
||||
|
||||
This field is a maximum of 128 characters. It may describe a real or fictional place. It should be in the same language as the podcast, as indicated in the <language> RSS tag: so a podcast in `en` should
|
||||
This value is a maximum of 128 characters. It may describe a real or fictional place. It should be in the same language as the podcast, as indicated in the <language> RSS tag: so a podcast in `en` should
|
||||
read "Eiffel Tower, Paris" and not "La Tour d'Eiffel".
|
||||
|
||||
<br>
|
||||
|
@ -69,15 +68,15 @@ read "Eiffel Tower, Paris" and not "La Tour d'Eiffel".
|
|||
|
||||
For information that may interest space travelers: the RFC does include an optional coordinate reference system for other planets, though these are not recommended to be used yet by the RFC.
|
||||
|
||||
The `geo` attribute is recommended to be used alongside an `osmid` attribute. Since OSM IDs are not guaranteed to be permanent (perhaps it's the ID of a building which is later demolished), the geo URI serves as a permanent point.
|
||||
The `geo` attribute is recommended to be used alongside an `osm` attribute. Since OSM IDs are not guaranteed to be permanent (perhaps it's the ID of a building which is later demolished), the geo URI serves as a permanent point.
|
||||
|
||||
Data within these attributes must relate to a real place. This tag must not be used for podcasts from or about fictional places.
|
||||
|
||||
<br>
|
||||
|
||||
#### `osmid` **recommended**
|
||||
#### `osm` **recommended**
|
||||
|
||||
From an [OpenStreetMap](https://en.wikipedia.org/wiki/OpenStreetMap) query. If a value is given for `osmid` it must contain both 'type' and 'id'.
|
||||
From an [OpenStreetMap](https://en.wikipedia.org/wiki/OpenStreetMap) query. If a value is given for `osm` it must contain both 'type' and 'id'.
|
||||
|
||||
- osm type: A one-character description of the type of OSM point. Valid is "N" (node); "W" (way); "R" (relation).
|
||||
- osm id: The ID of the OpenStreetMap feature that is described.
|
||||
|
@ -90,11 +89,11 @@ that is the best programmatic representation of the place being described. The d
|
|||
- The United States of America: [R148838](https://nominatim.openstreetmap.org/ui/details.html?osmtype=R&osmid=148838)
|
||||
- The Eiffel Tower in Paris: [W5013364](https://nominatim.openstreetmap.org/ui/details.html?osmtype=W&osmid=5013364)
|
||||
|
||||
The `osmid` is recommended to be used alongside a `geo` attribute. Since OSM IDs are not guaranteed to be permanent (perhaps it's the ID of a building which is later demolished), the geo URI serves as a permanent point. Exceptions are podcasts from or about fictional places. Data within these tags must relate to a real place.
|
||||
The `osm` is recommended to be used alongside a `geo` attribute. Since OSM IDs are not guaranteed to be permanent (perhaps it's the ID of a building which is later demolished), the geo URI serves as a permanent point. Exceptions are podcasts from or about fictional places. Data within these tags must relate to a real place.
|
||||
|
||||
If a developer uses the `osmid` tag, the canonical latlon is the one returned by OSM. It is intended that the `geo` attribute is used for simple display within a podcast app without any API usage: but for more advanced uses, like a geographic search, developers will ingest the full details from OpenStreetMap. The geo URI also offers a useful fallback should the `osmid` be removed.
|
||||
If a developer uses the `osm` tag, the canonical latlon is the one returned by OSM. It is intended that the `geo` attribute is used for simple display within a podcast app without any API usage: but for more advanced uses, like a geographic search, developers will ingest the full details from OpenStreetMap. The geo URI also offers a useful fallback should the `osmid` be removed.
|
||||
|
||||
_Caution: our definition of `osmid` is what OpenStreetMap calls "OSM type and OSM id". It must start with an alphabetical representation of the type, then the numerical ID. Do not use place_id, which is visible in
|
||||
_Caution: our definition of `osm` is what OpenStreetMap calls "OSM type and OSM id". It must start with an alphabetical representation of the type, then the numerical ID. Do not use place_id, which is visible in
|
||||
API calls - these are unique to each mirror of the OSM data._
|
||||
|
||||
<br>
|
||||
|
@ -117,40 +116,33 @@ For a podcast that is talking about the Eiffel Tower, but actually made in Birmi
|
|||
|
||||
```
|
||||
<podcast:location
|
||||
name="Eiffel Tower, Paris"
|
||||
geo="geo:48.858093,2.294694"
|
||||
osmid="W5013364"
|
||||
>
|
||||
osm="W5013364"
|
||||
>Eiffel Tower, Paris</podcast:location>
|
||||
```
|
||||
|
||||
For a podcast that is set in Gitmo Nation, a nickname used by the show for the United States of America:
|
||||
|
||||
```
|
||||
<podcast:location
|
||||
name="Gitmo Nation"
|
||||
geo="geo:39.7837304,-100.445882;u=3900000"
|
||||
osmid="R148838"
|
||||
>
|
||||
osm="R148838"
|
||||
>Gitmo Nation</podcast:location>
|
||||
```
|
||||
|
||||
The `geo` point uses an optional 'uncertainty' value here of 3,900 km, indicating that the "location" described here is up to 3,900km away from the point given (which is the rough width of the USA). The OSMID
|
||||
includes a more accurate bounding box and geoJSON.
|
||||
|
||||
For a podcast that is about Hogwarts (a fictional location), the `geo` and `osmid` must not be entered:
|
||||
For a podcast that is about Hogwarts (a fictional location), the `geo` and `osm` must not be entered:
|
||||
|
||||
```
|
||||
<podcast:location
|
||||
name="Hogwarts"
|
||||
>
|
||||
<podcast:location>Hogwarts"</podcast:location>
|
||||
```
|
||||
|
||||
For a podcast from Tesla upon landing on Mars:
|
||||
|
||||
```
|
||||
<podcast:location
|
||||
name="Tesla Base 3"
|
||||
geo="geo:37.786971,-122.399677;crs=Mars-2031"
|
||||
>
|
||||
<podcast:location geo="geo:37.786971,-122.399677;crs=Mars-2031">Tesla Base 3</podcast:location>
|
||||
```
|
||||
|
||||
(The coordinate reference system for Mars doesn't yet exist, but this shows the extensibility of this tag.)
|
||||
|
|
Ładowanie…
Reference in New Issue