Skip to content
  • Categories
  • Recent
  • Popular
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB-ActivityPub Bridge Test Instance

  1. Home
  2. Categories
  3. Social Web Foundation
  4. places.pub

places.pub

Scheduled Pinned Locked Moved Social Web Foundation
activitypubgeographicalgeographygeosocialopenstreetmaps
12 Posts 10 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • evanprodromou@socialwebfoundation.orgE This user is from outside of this forum
    evanprodromou@socialwebfoundation.orgE This user is from outside of this forum
    evanprodromou@socialwebfoundation.org
    wrote last edited by
    #1

    I’m making an initial version of places.pub available today. places.pub is a collection of Place objects suitable for use in geosocial applications on the ActivityPub network.

    Part of my work in the Social Web Community Group at the W3C has been participation in the GeoSocial Task Force. This is a sub-group of the SocialCG that focuses on implementing user stories in ActivityPub related to the intersection of geographical systems and social networking, for example, tagging an image with the place it represents, or checking in to a location.

    One important need for geosocial software is that all objects in ActivityPub, including Place objects, need to have a permanent URL as their id property, which shares the description of that object in Activity Streams 2.0 format. However, there isn’t a good dataset of geographical objects — countries, states or provinces or regions, cities, buildings, businesses, parks, streets — available in AS2 on the Web right now. That is slowing down experimentation in the Geosocial Task Force.

    Using the service

    So, I worked on making places.pub for geosocial hackers to experiment with. It’s a service that exposes places from the amazing OpenStreetMap collection of data as AS2 objects on the Web. So, given an OpenStreetMap object like the Rogers Centre Ottawa, it provides an AS2 version suitable for use in geosocial activities in ActivityPub. It also has a rudimentary search mechanism, although I think most users will want to use the Nominatim service for searching the OpenStreetMap database, and then map the IDs onto places.pub.

    Once you know the places.pub ID for a place, you can use it for geotagging objects, people, activities, or using special geosocial activity types like check in, check out, and travel. There is a good list of examples on the places.pub home page, but obviously this is not an exhaustive list!

    How it is built

    This wasn’t my first time trying to build places.pub; I’d done two earlier versions with different architectures and the same interface. The first time out, about 7 years ago, I created a full NodeJS server that used a full mirror of the OpenStreetMap database, so I didn’t need to hit the OSM API to fetch data. It worked pretty well, but it was really expensive — hundreds of dollars per month to keep a database server of that size running and synched.

    I tried a second version a few months ago, which did batch generation of AS2 Place objects from the OpenStreetMap exports, and then uploaded them to the S3 service at Amazon Web Services. This was a whole lot cheaper, but it took a long time to download, convert, and re-upload the data.

    This third implementation, with source code available on GitHub, is a little bit easier than both. Instead of sloshing the huge OSM dataset back and forth, I used the version of the data stored in the Google Cloud Public Datasets system on BigQuery. This let me ignore the effort of moving data, and just focus on giving it a good ActivityPub-compatible interface using a Google Cloud Run function. It seems to work pretty nicely.

    Next steps

    I’d love to see some experimentation with using places.pub for geosocial activity in the social web. I’m going to work on some implementations in my own ActivityPub software. If you find problems with the software, please add an issue on GitHub or let me know on the Fediverse at @evanprodromou.

    raucao@kosmos.socialR jszym@cosocial.caJ simon@en.osm.townS ultrazool@mastodon.scotU djh@chaos.socialD 5 Replies Last reply
    0
    • evanprodromou@socialwebfoundation.orgE evanprodromou@socialwebfoundation.org

      I’m making an initial version of places.pub available today. places.pub is a collection of Place objects suitable for use in geosocial applications on the ActivityPub network.

      Part of my work in the Social Web Community Group at the W3C has been participation in the GeoSocial Task Force. This is a sub-group of the SocialCG that focuses on implementing user stories in ActivityPub related to the intersection of geographical systems and social networking, for example, tagging an image with the place it represents, or checking in to a location.

      One important need for geosocial software is that all objects in ActivityPub, including Place objects, need to have a permanent URL as their id property, which shares the description of that object in Activity Streams 2.0 format. However, there isn’t a good dataset of geographical objects — countries, states or provinces or regions, cities, buildings, businesses, parks, streets — available in AS2 on the Web right now. That is slowing down experimentation in the Geosocial Task Force.

      Using the service

      So, I worked on making places.pub for geosocial hackers to experiment with. It’s a service that exposes places from the amazing OpenStreetMap collection of data as AS2 objects on the Web. So, given an OpenStreetMap object like the Rogers Centre Ottawa, it provides an AS2 version suitable for use in geosocial activities in ActivityPub. It also has a rudimentary search mechanism, although I think most users will want to use the Nominatim service for searching the OpenStreetMap database, and then map the IDs onto places.pub.

      Once you know the places.pub ID for a place, you can use it for geotagging objects, people, activities, or using special geosocial activity types like check in, check out, and travel. There is a good list of examples on the places.pub home page, but obviously this is not an exhaustive list!

      How it is built

      This wasn’t my first time trying to build places.pub; I’d done two earlier versions with different architectures and the same interface. The first time out, about 7 years ago, I created a full NodeJS server that used a full mirror of the OpenStreetMap database, so I didn’t need to hit the OSM API to fetch data. It worked pretty well, but it was really expensive — hundreds of dollars per month to keep a database server of that size running and synched.

      I tried a second version a few months ago, which did batch generation of AS2 Place objects from the OpenStreetMap exports, and then uploaded them to the S3 service at Amazon Web Services. This was a whole lot cheaper, but it took a long time to download, convert, and re-upload the data.

      This third implementation, with source code available on GitHub, is a little bit easier than both. Instead of sloshing the huge OSM dataset back and forth, I used the version of the data stored in the Google Cloud Public Datasets system on BigQuery. This let me ignore the effort of moving data, and just focus on giving it a good ActivityPub-compatible interface using a Google Cloud Run function. It seems to work pretty nicely.

      Next steps

      I’d love to see some experimentation with using places.pub for geosocial activity in the social web. I’m going to work on some implementations in my own ActivityPub software. If you find problems with the software, please add an issue on GitHub or let me know on the Fediverse at @evanprodromou.

      raucao@kosmos.socialR This user is from outside of this forum
      raucao@kosmos.socialR This user is from outside of this forum
      raucao@kosmos.social
      wrote last edited by
      #2

      @evanprodromou I'm wondering why it isn't preferable for OpenStreetMap to provide this data directly. Since they are the stewards and custodians of the entire data set, it would only make sense that other people on the Web depend on OSM's domain instead of a third party, no?

      evanprodromou@socialwebfoundation.orgE strypey@mastodon.nzoss.nzS 2 Replies Last reply
      0
      • evanprodromou@socialwebfoundation.orgE evanprodromou@socialwebfoundation.org

        I’m making an initial version of places.pub available today. places.pub is a collection of Place objects suitable for use in geosocial applications on the ActivityPub network.

        Part of my work in the Social Web Community Group at the W3C has been participation in the GeoSocial Task Force. This is a sub-group of the SocialCG that focuses on implementing user stories in ActivityPub related to the intersection of geographical systems and social networking, for example, tagging an image with the place it represents, or checking in to a location.

        One important need for geosocial software is that all objects in ActivityPub, including Place objects, need to have a permanent URL as their id property, which shares the description of that object in Activity Streams 2.0 format. However, there isn’t a good dataset of geographical objects — countries, states or provinces or regions, cities, buildings, businesses, parks, streets — available in AS2 on the Web right now. That is slowing down experimentation in the Geosocial Task Force.

        Using the service

        So, I worked on making places.pub for geosocial hackers to experiment with. It’s a service that exposes places from the amazing OpenStreetMap collection of data as AS2 objects on the Web. So, given an OpenStreetMap object like the Rogers Centre Ottawa, it provides an AS2 version suitable for use in geosocial activities in ActivityPub. It also has a rudimentary search mechanism, although I think most users will want to use the Nominatim service for searching the OpenStreetMap database, and then map the IDs onto places.pub.

        Once you know the places.pub ID for a place, you can use it for geotagging objects, people, activities, or using special geosocial activity types like check in, check out, and travel. There is a good list of examples on the places.pub home page, but obviously this is not an exhaustive list!

        How it is built

        This wasn’t my first time trying to build places.pub; I’d done two earlier versions with different architectures and the same interface. The first time out, about 7 years ago, I created a full NodeJS server that used a full mirror of the OpenStreetMap database, so I didn’t need to hit the OSM API to fetch data. It worked pretty well, but it was really expensive — hundreds of dollars per month to keep a database server of that size running and synched.

        I tried a second version a few months ago, which did batch generation of AS2 Place objects from the OpenStreetMap exports, and then uploaded them to the S3 service at Amazon Web Services. This was a whole lot cheaper, but it took a long time to download, convert, and re-upload the data.

        This third implementation, with source code available on GitHub, is a little bit easier than both. Instead of sloshing the huge OSM dataset back and forth, I used the version of the data stored in the Google Cloud Public Datasets system on BigQuery. This let me ignore the effort of moving data, and just focus on giving it a good ActivityPub-compatible interface using a Google Cloud Run function. It seems to work pretty nicely.

        Next steps

        I’d love to see some experimentation with using places.pub for geosocial activity in the social web. I’m going to work on some implementations in my own ActivityPub software. If you find problems with the software, please add an issue on GitHub or let me know on the Fediverse at @evanprodromou.

        jszym@cosocial.caJ This user is from outside of this forum
        jszym@cosocial.caJ This user is from outside of this forum
        jszym@cosocial.ca
        wrote last edited by
        #3

        @evanprodromou Someone has to integrate this with @elonjet stat 😛

        1 Reply Last reply
        0
        • raucao@kosmos.socialR raucao@kosmos.social

          @evanprodromou I'm wondering why it isn't preferable for OpenStreetMap to provide this data directly. Since they are the stewards and custodians of the entire data set, it would only make sense that other people on the Web depend on OSM's domain instead of a third party, no?

          evanprodromou@socialwebfoundation.orgE This user is from outside of this forum
          evanprodromou@socialwebfoundation.orgE This user is from outside of this forum
          evanprodromou@socialwebfoundation.org
          wrote last edited by
          #4

          @raucao Absolutely! I’d love to work with OSM to set up an API service in their domain. I think showing the value and usage first helps to make that case.

          1 Reply Last reply
          0
          • evanprodromou@socialwebfoundation.orgE evanprodromou@socialwebfoundation.org

            I’m making an initial version of places.pub available today. places.pub is a collection of Place objects suitable for use in geosocial applications on the ActivityPub network.

            Part of my work in the Social Web Community Group at the W3C has been participation in the GeoSocial Task Force. This is a sub-group of the SocialCG that focuses on implementing user stories in ActivityPub related to the intersection of geographical systems and social networking, for example, tagging an image with the place it represents, or checking in to a location.

            One important need for geosocial software is that all objects in ActivityPub, including Place objects, need to have a permanent URL as their id property, which shares the description of that object in Activity Streams 2.0 format. However, there isn’t a good dataset of geographical objects — countries, states or provinces or regions, cities, buildings, businesses, parks, streets — available in AS2 on the Web right now. That is slowing down experimentation in the Geosocial Task Force.

            Using the service

            So, I worked on making places.pub for geosocial hackers to experiment with. It’s a service that exposes places from the amazing OpenStreetMap collection of data as AS2 objects on the Web. So, given an OpenStreetMap object like the Rogers Centre Ottawa, it provides an AS2 version suitable for use in geosocial activities in ActivityPub. It also has a rudimentary search mechanism, although I think most users will want to use the Nominatim service for searching the OpenStreetMap database, and then map the IDs onto places.pub.

            Once you know the places.pub ID for a place, you can use it for geotagging objects, people, activities, or using special geosocial activity types like check in, check out, and travel. There is a good list of examples on the places.pub home page, but obviously this is not an exhaustive list!

            How it is built

            This wasn’t my first time trying to build places.pub; I’d done two earlier versions with different architectures and the same interface. The first time out, about 7 years ago, I created a full NodeJS server that used a full mirror of the OpenStreetMap database, so I didn’t need to hit the OSM API to fetch data. It worked pretty well, but it was really expensive — hundreds of dollars per month to keep a database server of that size running and synched.

            I tried a second version a few months ago, which did batch generation of AS2 Place objects from the OpenStreetMap exports, and then uploaded them to the S3 service at Amazon Web Services. This was a whole lot cheaper, but it took a long time to download, convert, and re-upload the data.

            This third implementation, with source code available on GitHub, is a little bit easier than both. Instead of sloshing the huge OSM dataset back and forth, I used the version of the data stored in the Google Cloud Public Datasets system on BigQuery. This let me ignore the effort of moving data, and just focus on giving it a good ActivityPub-compatible interface using a Google Cloud Run function. It seems to work pretty nicely.

            Next steps

            I’d love to see some experimentation with using places.pub for geosocial activity in the social web. I’m going to work on some implementations in my own ActivityPub software. If you find problems with the software, please add an issue on GitHub or let me know on the Fediverse at @evanprodromou.

            simon@en.osm.townS This user is from outside of this forum
            simon@en.osm.townS This user is from outside of this forum
            simon@en.osm.town
            wrote last edited by
            #5

            @evanprodromou adding #OpenStreetMap

            1 Reply Last reply
            0
            • evanprodromou@socialwebfoundation.orgE evanprodromou@socialwebfoundation.org

              I’m making an initial version of places.pub available today. places.pub is a collection of Place objects suitable for use in geosocial applications on the ActivityPub network.

              Part of my work in the Social Web Community Group at the W3C has been participation in the GeoSocial Task Force. This is a sub-group of the SocialCG that focuses on implementing user stories in ActivityPub related to the intersection of geographical systems and social networking, for example, tagging an image with the place it represents, or checking in to a location.

              One important need for geosocial software is that all objects in ActivityPub, including Place objects, need to have a permanent URL as their id property, which shares the description of that object in Activity Streams 2.0 format. However, there isn’t a good dataset of geographical objects — countries, states or provinces or regions, cities, buildings, businesses, parks, streets — available in AS2 on the Web right now. That is slowing down experimentation in the Geosocial Task Force.

              Using the service

              So, I worked on making places.pub for geosocial hackers to experiment with. It’s a service that exposes places from the amazing OpenStreetMap collection of data as AS2 objects on the Web. So, given an OpenStreetMap object like the Rogers Centre Ottawa, it provides an AS2 version suitable for use in geosocial activities in ActivityPub. It also has a rudimentary search mechanism, although I think most users will want to use the Nominatim service for searching the OpenStreetMap database, and then map the IDs onto places.pub.

              Once you know the places.pub ID for a place, you can use it for geotagging objects, people, activities, or using special geosocial activity types like check in, check out, and travel. There is a good list of examples on the places.pub home page, but obviously this is not an exhaustive list!

              How it is built

              This wasn’t my first time trying to build places.pub; I’d done two earlier versions with different architectures and the same interface. The first time out, about 7 years ago, I created a full NodeJS server that used a full mirror of the OpenStreetMap database, so I didn’t need to hit the OSM API to fetch data. It worked pretty well, but it was really expensive — hundreds of dollars per month to keep a database server of that size running and synched.

              I tried a second version a few months ago, which did batch generation of AS2 Place objects from the OpenStreetMap exports, and then uploaded them to the S3 service at Amazon Web Services. This was a whole lot cheaper, but it took a long time to download, convert, and re-upload the data.

              This third implementation, with source code available on GitHub, is a little bit easier than both. Instead of sloshing the huge OSM dataset back and forth, I used the version of the data stored in the Google Cloud Public Datasets system on BigQuery. This let me ignore the effort of moving data, and just focus on giving it a good ActivityPub-compatible interface using a Google Cloud Run function. It seems to work pretty nicely.

              Next steps

              I’d love to see some experimentation with using places.pub for geosocial activity in the social web. I’m going to work on some implementations in my own ActivityPub software. If you find problems with the software, please add an issue on GitHub or let me know on the Fediverse at @evanprodromou.

              ultrazool@mastodon.scotU This user is from outside of this forum
              ultrazool@mastodon.scotU This user is from outside of this forum
              ultrazool@mastodon.scot
              wrote last edited by
              #6

              @evanprodromou *cries in locative media packets*

              evan@cosocial.caE 1 Reply Last reply
              0
              • evanprodromou@socialwebfoundation.orgE evanprodromou@socialwebfoundation.org

                I’m making an initial version of places.pub available today. places.pub is a collection of Place objects suitable for use in geosocial applications on the ActivityPub network.

                Part of my work in the Social Web Community Group at the W3C has been participation in the GeoSocial Task Force. This is a sub-group of the SocialCG that focuses on implementing user stories in ActivityPub related to the intersection of geographical systems and social networking, for example, tagging an image with the place it represents, or checking in to a location.

                One important need for geosocial software is that all objects in ActivityPub, including Place objects, need to have a permanent URL as their id property, which shares the description of that object in Activity Streams 2.0 format. However, there isn’t a good dataset of geographical objects — countries, states or provinces or regions, cities, buildings, businesses, parks, streets — available in AS2 on the Web right now. That is slowing down experimentation in the Geosocial Task Force.

                Using the service

                So, I worked on making places.pub for geosocial hackers to experiment with. It’s a service that exposes places from the amazing OpenStreetMap collection of data as AS2 objects on the Web. So, given an OpenStreetMap object like the Rogers Centre Ottawa, it provides an AS2 version suitable for use in geosocial activities in ActivityPub. It also has a rudimentary search mechanism, although I think most users will want to use the Nominatim service for searching the OpenStreetMap database, and then map the IDs onto places.pub.

                Once you know the places.pub ID for a place, you can use it for geotagging objects, people, activities, or using special geosocial activity types like check in, check out, and travel. There is a good list of examples on the places.pub home page, but obviously this is not an exhaustive list!

                How it is built

                This wasn’t my first time trying to build places.pub; I’d done two earlier versions with different architectures and the same interface. The first time out, about 7 years ago, I created a full NodeJS server that used a full mirror of the OpenStreetMap database, so I didn’t need to hit the OSM API to fetch data. It worked pretty well, but it was really expensive — hundreds of dollars per month to keep a database server of that size running and synched.

                I tried a second version a few months ago, which did batch generation of AS2 Place objects from the OpenStreetMap exports, and then uploaded them to the S3 service at Amazon Web Services. This was a whole lot cheaper, but it took a long time to download, convert, and re-upload the data.

                This third implementation, with source code available on GitHub, is a little bit easier than both. Instead of sloshing the huge OSM dataset back and forth, I used the version of the data stored in the Google Cloud Public Datasets system on BigQuery. This let me ignore the effort of moving data, and just focus on giving it a good ActivityPub-compatible interface using a Google Cloud Run function. It seems to work pretty nicely.

                Next steps

                I’d love to see some experimentation with using places.pub for geosocial activity in the social web. I’m going to work on some implementations in my own ActivityPub software. If you find problems with the software, please add an issue on GitHub or let me know on the Fediverse at @evanprodromou.

                djh@chaos.socialD This user is from outside of this forum
                djh@chaos.socialD This user is from outside of this forum
                djh@chaos.social
                wrote last edited by
                #7

                @evanprodromou This is an amazing initiative!! 🌍

                The small problem with OpenStreetMap IDs is that they're not stable. This can happen for example:

                - a node/way keeps its id but gets moved around, or

                - a new node/way gets created with a new id but it really describes the same previously deleted object

                There are various systems to come up with stable IDs all with their own pros and cons but no good one-fits-all solution.

                Maybe fine for a prototype for now but we need to keep this in mind.

                doudouosm@en.osm.townD becha@social.v.stB 2 Replies Last reply
                0
                • djh@chaos.socialD djh@chaos.social

                  @evanprodromou This is an amazing initiative!! 🌍

                  The small problem with OpenStreetMap IDs is that they're not stable. This can happen for example:

                  - a node/way keeps its id but gets moved around, or

                  - a new node/way gets created with a new id but it really describes the same previously deleted object

                  There are various systems to come up with stable IDs all with their own pros and cons but no good one-fits-all solution.

                  Maybe fine for a prototype for now but we need to keep this in mind.

                  doudouosm@en.osm.townD This user is from outside of this forum
                  doudouosm@en.osm.townD This user is from outside of this forum
                  doudouosm@en.osm.town
                  wrote last edited by
                  #8

                  @djh @evanprodromou Indeed, and this documentation might help: https://wiki.openstreetmap.org/wiki/Permanent_ID

                  1 Reply Last reply
                  0
                  • raucao@kosmos.socialR raucao@kosmos.social

                    @evanprodromou I'm wondering why it isn't preferable for OpenStreetMap to provide this data directly. Since they are the stewards and custodians of the entire data set, it would only make sense that other people on the Web depend on OSM's domain instead of a third party, no?

                    strypey@mastodon.nzoss.nzS This user is from outside of this forum
                    strypey@mastodon.nzoss.nzS This user is from outside of this forum
                    strypey@mastodon.nzoss.nz
                    wrote last edited by
                    #9

                    @raucao
                    > it would only make sense that other people on the Web depend on OSM's domain instead of a third party, no?

                    Especially when that third party depends on a Goggle service;

                    "If you want to run your own instance, you need to use Google Cloud Run functions or a compatible service (if those exist)."

                    places.pub

                    favicon

                    (places.pub)

                    I'm hoping there's plans to fix that @evanprodromou?=

                    evanprodromou@socialwebfoundation.orgE 1 Reply Last reply
                    0
                    • ultrazool@mastodon.scotU ultrazool@mastodon.scot

                      @evanprodromou *cries in locative media packets*

                      evan@cosocial.caE This user is from outside of this forum
                      evan@cosocial.caE This user is from outside of this forum
                      evan@cosocial.ca
                      wrote last edited by
                      #10

                      @ultrazool @evanprodromou I don't get it

                      1 Reply Last reply
                      0
                      • djh@chaos.socialD djh@chaos.social

                        @evanprodromou This is an amazing initiative!! 🌍

                        The small problem with OpenStreetMap IDs is that they're not stable. This can happen for example:

                        - a node/way keeps its id but gets moved around, or

                        - a new node/way gets created with a new id but it really describes the same previously deleted object

                        There are various systems to come up with stable IDs all with their own pros and cons but no good one-fits-all solution.

                        Maybe fine for a prototype for now but we need to keep this in mind.

                        becha@social.v.stB This user is from outside of this forum
                        becha@social.v.stB This user is from outside of this forum
                        becha@social.v.st
                        wrote last edited by
                        #11

                        @djh @evanprodromou cc @meileaben

                        1 Reply Last reply
                        0
                        • strypey@mastodon.nzoss.nzS strypey@mastodon.nzoss.nz

                          @raucao
                          > it would only make sense that other people on the Web depend on OSM's domain instead of a third party, no?

                          Especially when that third party depends on a Goggle service;

                          "If you want to run your own instance, you need to use Google Cloud Run functions or a compatible service (if those exist)."

                          places.pub

                          favicon

                          (places.pub)

                          I'm hoping there's plans to fix that @evanprodromou?=

                          evanprodromou@socialwebfoundation.orgE This user is from outside of this forum
                          evanprodromou@socialwebfoundation.orgE This user is from outside of this forum
                          evanprodromou@socialwebfoundation.org
                          wrote last edited by
                          #12

                          @strypey @raucao Did you read the article you are replying to? It explains how this is built and why it is on Google Cloud.

                          https://socialwebfoundation.org/2025/04/29/places-pub/

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Login or register to search.
                          Powered by NodeBB Contributors
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Popular