Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements to the Place type #582

Open
evanp opened this issue Feb 16, 2024 · 3 comments
Open

Improvements to the Place type #582

evanp opened this issue Feb 16, 2024 · 3 comments
Labels
needs-fep Needs a FEP

Comments

@evanp
Copy link
Collaborator

evanp commented Feb 16, 2024

In working on the Primer for the Place type, we discussed

These are some improvements that would be useful for the Place type, possibly with FEPs.

  • Specificiation of a coordinate reference system (CRS)
  • Support for standard vocabularies: Geonames, Open Street Maps, ISO, ...
  • Relative level of altitude
  • Unit values in altitude and radius
  • Polygons and multipolygons
  • Fictional places
  • Containment hierarchies (is part of, has parts)
  • Best practice for including schema.org
@evanp evanp added the needs-fep Needs a FEP label Feb 16, 2024
@sebilasse
Copy link

sebilasse commented Nov 25, 2024

Trying to describe first how we use it for our Clients now
[described at Berlin Fediday, Public Spaces AMS, the german book etc.]

before I forget it; what gives all our apps superpowers is very easy:
extend the ActivityPub JSON LD with the wikidata LD vocabluary
Whenever not otherwise mentioned any special property comes from wikidata via @context.
This gives us the possibility to describe the concrete planet and all of its happy trees.
In wikidata the whole vocabulary is self explaining cause for both properties and entities you get all the labels in all the languages for nameMap, summaryMap, contentMap and it gives you all the knowledge, links and interlinks and can act as a common database for fedi knowledge in both ways. And can be used in the client directly (demo video of a WIP Link Component in the end).
btw: Co-organized the official ActivityPub Confs 2019/2020 and much more events but would really do an interdisciplinary workshop for wikidata, Open Street Map and AP community.

  • Fictional places

For all Clients, especially redaktor CMS and the Public Spaces public broadcaster thing :
The distinction between facts and alternative facts (previously factual vs. fictional) should be a major type or property in today's social media gifts.

📍 It is done in all of our Clients by a type because we would really like to give each user the ability to mark all the things (especially e.g. Article) fictional or factual:
{"type": ["Article", "redaktor:Factual"]} or {"type": ["Place", 'redaktor:Fictional']}

Otherwise e.g. presidents can simply say "I could not indicate it" …
It is not a mandatory thing but a possibility.
We wrote some stuff for fairness/justice in fedi and described some problems and the major one is:
How could we make it immutable to prevent cheating?

🔸 conclusion
We should give each user the choice to indicate wheather any content is factual or fictional.


  • Specificiation of a coordinate reference system (CRS)

In the AP apps TaxiTeam for german yellow cabs, bike or car cooperatives etc.
(german yellow cab president was other guy in BER talk) ...

📍 How does the client taxiteam deal with it?
Our coordinate reference system (CRS) is geohash.
There might be better ones but the way we use it is for federated geocoding and should be easy understandable
https://en.wikipedia.org/wiki/Geohash
https://www.geohash.es/

Just very short, when a new geocoding service registers it must at least submit 1 geohash <6 characters (ca. 4x5 km) and updates / adds itself a Collection. All services get the update. The benefit is that smaller services might be more precise.
For example for cabs there is an all-germany server but each cab service geocodes their Driving area and drivers can add e.g. road conditions or a Service adds traffic metrics etc.

🔸 conclusion
we use geohash in its most readable format

  • Support for standard vocabularies: Geonames, Open Street Maps, ISO, ...

📍 Extensively used, also in redaktor or menschys (for refugees and mutual help)
Our @context therefore defines special properties, this is a typical random street address (in general all our data is assembled from at least geonames [sometimes outdated], OSM and wikidata [with both we fell in love] )
some properties like type left out for shortness

 "Q1359609#N3867202883": {
    "id": "Q1359609#N3867202883",
    "partOf": "Q1359609#ludgerusstrasse_albersloh",
    "name": [
      "Ludgerusstraße 1, Albersloh"
    ],
    "streetAddress": "Ludgerusstraße 1",
    "postalCode": "48324",
    "osm": "node/3867202883",
    "lat": 51.8684811,
    "lon": 7.73658,
    "dist": "Q1359609",
    "nr": "1",
    "geohash": "u1jx043eg3sj",
    "pid": "W39366048"
 }

For ISO things we do also have a cache from wikidata and use the shortest possible ISO as id.
For other well known things we use the wikidata id, see an example for a language from wikidata in the end.

🔸 conclusion
extending @context ?

Specifies the measurement units for the radius and altitude properties on a Place object. If not specified, the default is assumed to be "m" for "meters".
Domain: Place
Range: "cm" | " feet" | " inches" | " km" | " m" | " miles" | xsd:anyURI

  • Polygons and multipolygons
    📍 Very short: We link to the .geojson with the polygons and multipolygons and can be directly linked against e.g. Open Street Map or similar software.

  • Relative level of altitude
    📍 We thought about that but did not come to a conclusion.
    Recently I saw a fantastic reportage about vertical megacities (we don't have them close to the Netherlands) which made me think about using the floor property from wikidata but for relative we had also no use case yet.

  • Containment hierarchies (is part of, has parts)
    📍 What is wrong with as:items and as:partOf ?
    https://www.w3.org/TR/activitystreams-vocabulary/#dfn-items
    https://www.w3.org/TR/activitystreams-vocabulary/#dfn-partof

Why is partOf a functional property ?
Can't the same page appear in multiple Collections?

The Planet ("Earth") {"id": "Q2"} is a Collection with the Continents as items.
The Continent Oceania is a {"type": ["Collection", "CollectionPage"], "partOf": "Q2" }
It has e.g. Countries as items and so on and so on down to the Street Address.

I find it nice and understandable.
🔸 conclusion for me that's solved


attachments

{
  "id": "fr",
  "type": [
    "Profile",
    "redaktor:Factual",
    "redaktor:Language",
    "schema:Language"
  ],
  "wikidata": "Q150",
  "describes": [
    "http://www.wikidata.org/entity/Q150"
  ],
  "updated": "2022-11-12T17:08:08Z",
  "nameMap": {
    "es": "francés",
    "pt": "francês",
    "de": "Französisch",
    "en": "French",
    "fr": "français",
    "und": "langue française"
  },
  "alternativeNameMap": {
    "fr": [
      "fr",
      "langue française",
      "langue de Molière",
      "fra"
    ],
    "pt": [
      "linguagem francesa",
      "idioma francês",
      "língua francesa"
    ],
    "es": [
      "fr",
      "frances",
      "fra"
    ],
    "de": [
      "französische Sprache",
      "fr"
    ],
    "en": [
      "French language",
      "fr",
      "fra",
      "(fr)"
    ]
  },
  "summaryMap": {
    "fr": "langue romane",
    "pt": "língua românica",
    "es": "lengua romance",
    "de": "romanische Sprache",
    "en": "Romance language"
  },
  "tag": [
    {
      "type": "Hashtag",
      "name": "francais"
    },
    {
      "type": "Hashtag",
      "name": "Fransızca"
    },
    {
      "type": "Hashtag",
      "name": "fr"
    }, 
    ... ...
  ],
  "url": [
    {
      "type": "Link",
      "name": "French language",
      "hreflang": "en",
      "href": "https://en.wikipedia.org/wiki/French_language",
      "mediaType": "text/html"
    },
    {
      "type": "Link",
      "name": "profile",
      "href": "https://www.academie-francaise.fr",
      "mediaType": "text/html",
      "rel": "profile"
    }, ... ...
  ],
  "image": [
    {
      "type": "Image",
      "url": [
        {
          "type": "Link",
          "href": "https://upload.wikimedia.org/wikipedia/commons/8/8d/French_phrasebook_banner_Sign_in_Geneva.jpg",
          "context": [
            "http://www.wikidata.org/prop/direct/P948"
          ],
          "mediaType": "image/jpg"
        }
      ]
    },
    {
      "type": "Image",
      "url": [
        {
          "type": "Link",
          "href": "https://upload.wikimedia.org/wikipedia/commons/4/49/Map-Francophone_World.svg",
          "context": [
            "http://www.wikidata.org/prop/direct/P1846"
          ],
          "mediaType": "image/svg+xml"
        }
      ]
    },
    {
      "type": "Image",
      "url": [
        {
          "type": "Link",
          "href": "https://upload.wikimedia.org/wikipedia/commons/8/8d/JO199411392.png",
          "context": [
            "http://www.wikidata.org/prop/direct/P18"
          ],
          "mediaType": "image/png"
        }
      ]
    }
  ],
  "icon": [],
  "speakerCount": 208157220,
  "speakerRank": 18,
  "speakerPercent": 2.6009898787954517,
  "ISO639_2": [
    "fre",
    "fra"
  ],
  "capitalizationFor": [
    "Q147276"
  ],
  "statusUNESCO": [
    "Q20672086"
  ],
  "typology": [
    "Q651641",
    "Q178435",
    "Q7888569",
    "Q7200373",
    "Q318917",
    "Q74835210",
    "Q48612"
  ],
  "groupISBN": "978-2",
  "attributedTo": [
    "Q161806",
    "Q2166029",
    "Q2578454"
  ],
  "ISO639_3": [
    "fra"
  ],
  "country": [
    "FR",
    "BE",
    "CH", ... ...
  ],
  "nativeName": "langue française",
  "ISO639_1": "fr",
  "category": [
    "https://commons.wikimedia.org/wiki/French language"
  ],
  "hasMood": [
    "Q473746",
    "Q682111",
    "Q22716",
    "Q625581",
    "Q179230",
    "Q814722"
  ],
  "writingSystem": [
    "Q8229"
  ],
  "historyOfTopic": [
    "Q3137250"
  ],
  "hasTense": [
    "Q52434245"
  ],
  "sound": [
    "https://commons.wikimedia.org/wiki/Lb-franséisch.ogg",
    "https://commons.wikimedia.org/wiki/Fr-français.ogg",
    "https://commons.wikimedia.org/wiki/En-us-French.ogg",
    "https://commons.wikimedia.org/wiki/LL-Q33890 (nso)-Mohau-Sefora.wav",
    "https://commons.wikimedia.org/wiki/Es-mx-Francés.ogg"
  ],
  "LoCAuthorityId": [
    "sh85051829"
  ],
  "LoCVocabId": [
    "languages/fre"
  ],
  "statusEthnologue": [
    "Q29051543"
  ],
  "osmTag": [
    "Key:language:fr"
  ],
  "linguaLibreId": "Q21",
  "video": [
    "https://commons.wikimedia.org/wiki/WIKITONGUES- Maxime speaking Québecois French.webm",
    "https://commons.wikimedia.org/wiki/WIKITONGUES- Christian speaking New England French.webm"
  ],
  "audio": [
    "https://commons.wikimedia.org/wiki/2016-10-24 De nouvelles images de l'atmosphère de Mars.ogg"
  ],
  "hasDetect": true,
  "common": true,
  "locales": {
    "Latn": [
      "FR"
    ],
    "Dupl": [
      "ZZ"
    ]
  },
  "direction": "ltr",
  "status": "living",
  "scope": "individual"
}
Bildschirmaufnahme.2024-08-25.17.20.33.mp4

@sebilasse
Copy link

sebilasse commented Nov 26, 2024

addendum:
If „Fictional Places“ rather meant the handling than the designation:

I think there is just 1 special thing but this isn't covered by AS yet.
You can have fictional names, summaries, contents and all kind of fictional media
(can be human or [please not] inhuman aka AI) …

A fictional Place can have the same latitude | longitude | altitude | radius | CRS as long it is still 3 dimensional.
All of this is just a blank canvas.
What would make the Place visually "fictional" are the Tiles for a map.
E.g. our Map gets a geojson with any location from the Object. This is very powerful for mapping.
If all of these are fictional, we still do not want to show the real San Diego Zoo Tiles, we want to show all the facilities of the cyborg and dinosaurs party.

So, we would need a rel or type for url to a Tile Server and the ability to specify x,y,z in the url template and the mediaType of the tiles.
This would also be nice for e.g. Game use cases …

@here
Copy link

here commented Dec 20, 2024

These use cases feel related to Geosocial Taskforce subject at focus https://github.com/swicg/geosocial/ . Added a note referencing this issue to swicg/geosocial#14 to help include these ideas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-fep Needs a FEP
Projects
None yet
Development

No branches or pull requests

3 participants