Events Interoperability: Validation, minimum requirements, common extensions

This thread should give an overview and discuss how current ActivityPub implementations that work with the Event object type handle them.

  1. Validation of events
  2. Minimum set of required attributes
  3. Common set of extended attributes.
3 Likes

I started a list to collect what different fediverse applications do when importing/validating an incoming remote event via ActivityPub.

This document is still likely far from being complete and correct. I hope it can be a good starting point.

2 Likes

What seems important:

  • Common handling of what events might get listed, and how they can be searched.
  • Way to handle event categories: common defaults and new ones as categories are very helpful filters for a search.
  • Way to sync the participant-count.
  • Common way to control per-object reply policy.
  • location
    • what types of address within the location should be supported
    • indicate that the event is solely online (and provide URL then)
  • Banner image
    • Whats the preferred “place” for it
    • Support of toot:focalPoint?
  • joinMode
  • Timezone control
  • Should contentMap, summaryMap, nameMap etc. be supported?

Proposals which include already implemented solutions will follow, feel free to add yours!

It would be cool if we could integrate something like this into one of my support tables.

This would be something to address depending on the results of #109 - Pastures: More debug-like or more production-like? - helge/funfedidev - Codeberg.org

Thanks for bringing this up. It took me some time to understand but seems great! After FOSDEM/OFFDEM I will come back to this, and ask you if I should need some more guidance, I hope thats O.K.

2 Likes

I think this thread could be a starting point for our discussion:

location

what types of address within the location should be supported ? indicate that the event is solely online (and provide URL then):

gancio example:
{
	"location": {
		"type": "Place",
		"name": "Nashville USA",
		"address": "Houston, Harris County, Texas, 77028, United States",
		"latitude": 29.8242366,
		"longitude": -95.2845581
	}
}
mobilizon example:
{
	"location": {
		"address": {
			"addressCountry": "France",
			"addressLocality": "Bourgoin-Jallieu",
			"addressRegion": "Isère",
			"postalCode": "38300",
			"streetAddress": "30 Avenue Alexandre Flemming",
			"type": "PostalAddress"
		},
		"id": "https://mobilizon.fr/address/e96ef587-9e7b-44ee-b96b-475b241adf5c",
		"latitude": 45.597374,
		"longitude": 5.243424,
		"name": "30 Avenue Alexandre Flemming",
		"type": "Place"
	}

}

  • location data (location name? address, what format? gps coords?)
  • online only events (attachment type link? isOnline attribute as mobilizon?)
  • mixed on/offline events (what about isOnline attribute then?)

at least a location or an attachment link are mandatory?
what about if we want to organize an event of which we do not yet know the location?
should we introduce a locationStatus like ['ONLINE', 'UNKNOWN', 'MIXED', 'IRL']?


Banner image

Whats the preferred “place” for it?

could we use attachments with type Document / Banner ?

Support of toot:focalPoint?

probably not mandatory?


joinMode

not mandatory?


Timezone control

not mandatory?


Should contentMap, summaryMap, nameMap etc. be supported?

not mandatory?


Common handling of what events might get listed, and how they can be searched.

should we implement a “follower only” event? how does this make any sense with applicationActor?


categories

Way to handle event categories: common defaults and new ones as categories are very helpful filters for a search.

starting point:

1 Like

other people have already done this work, Core Public Event Vocabulary and Event - Schema.org Type.

For example, with respect to the topic on the type of place: eventAttendanceMode - Schema.org Property

We should find a synthesis between what is specified there and some properties that already have a place in Activity Pub: for example for images I see that in schema.org format there is image attribute while in AP we already have attachment, I would stay on the latter.

1 Like

Friendica has implemented the events as well. See here for a list of fields we support:

2 Likes

Thanks for that! Do you maybe also know/can quickly point us to how Friendica validates incoming events?

There a also some schema proposals for event schedules here: Modelling Opportunity Data 2.0

1 Like

We simply store the values. There is not a lot f validation here.