This report describes an API for creating and maintaining a list of an actor's personal places.

This is required.

Introduction

Geosocial software lets people sharing information about their relationship with places. Activity Streams 2.0 defines a Place object type for representing places.

Places can be defined globally as part of a geographical vocabulary. For example, places.pub is a server that provides places from the OpenStreetMap service in ActivityPub format. These places are a shared resource for all ActivityPub users.

Some geosocial software lets users define personal places, like "Home", "Work", "School", "Favourite Tree" or "Mom's House". These places may be identical to places defined in a public vocabulary, with different and more personal names, images, and descriptions, or they may be distinct from any publicly-defined place.

This document defines how personal places can be created and managed ActivityPub.

User stories

This specification addresses the following user stories.

As an ActivityPub user, I'd like to create a place that is important in my own life, so that I can check in, share, comment on, or otherwise engage with the place.

As an ActivityPub user, I want to read the information about a friend's personal place, so that I can understand where she is checking into and what it means to her.

As an ActivityPub user, I want to edit a place, so I can update its location or metadata.

As an ActivityPub user, I want to delete a place I created, so it's no longer visible to anyone.

As an ActivityPub user, I want to get a list of the places that I've created, so I can find one that I'm interested in.

Creating a Place

To create a new place, the actor uses the ActivityPub social API. The client posts a Create activity to their own outbox, with a Place object as the object property.

Reading a Place

Like other ActivityPub objects, Place objects can be read using the id property.

Editing a Place

To edit a place, the actor uses the ActivityPub social API. The client posts a Update activity to their own outbox, with an existing Place object as the object property.

Deleting a Place

To delete a place, the actor uses the ActivityPub social API. The client posts a Delete activity to their own outbox, with an existing Place object as the object property.

Listing Personal Places

The actor's personal places can be listed in an ActivityPub OrderedCollection. The collection is ordered in reverse chronological order, with the newest places first.

The actor object can have a places property to indicate the user's places.

The collection can have a placesOf property to the actor whose places these are.

Terms

There are two new terms defined by this specification. The context document is at https://swicg.github.io/geosocial/geosocial.

places

URI: https://swicg.github.io/geosocial/geosocial#places
geosocial:places
places
Notes: The property value is an OrderedCollection of Place objects.
Domain: Object (an ActivityPub Actor)
Range: OrderedCollection
Functional: true

placesOf

URI: https://swicg.github.io/geosocial/geosocial#placesOf
geosocial:placesOf
placesOf
Notes: The property value is an ActivityPub actor for which the collection is the places collection.
Domain: OrderedCollection
Range: Object (an ActivityPub Actor)
Functional: true

This is required for specifications that contain normative material.