@linos@MastodonEngineering@dansup@pfefferle@helge@mkljczk@laurin objects and their types respectively have a N:1-relation. which scenario would require it to be a N:M relation? is this a "the fields of my object fulfill the interfaces of more than one type"-thing? is this mentioned anywhere in the specs?
@linos Generally, applications should look for properties they understand, and ignore object types. This practice is known as duck typing. In case of location you can parse name and optionally coordinates. Now your peers can use any type they want, or skip it altogether - as long as name is present you will have something to work with.
I think there are good examples, where it might be useful.
E.g. take an Event. You have the location, but it is online. So you don't add a Place, but rather an schema.org/VirtualLocation. It also has a Name and a URL. If you also give it the type Place applications that do not know about VirtualLocation can still receive it.
I am just about finishing a FEP draft. I hope I don't miss something! I'd say let's keep discussing on socialhub once it's submitted?!
@laurin@linos isVirtualLocation is self explanatory. [Place, VirtualLocation] is not - is it "Place and VirtualLocation", "Place or VirtualLocation", something else?
More importantly, no one in Fediverse uses multi-typing, we use properties to extend standard objects. Introduction of multi-typing creates a lot of work for everyone.
@silverpill@linos I see the point about compatibility with apps that do not follow the spec here. Why would you say, it is cleaner though, to add a property only, over adding a second type?
For both cases: If I wanted to be thorough, I'd go and add this property to an RDF ontology. I'd expect the ontology to define that type and the property associated with it. So in the end, it'd be a multi-type along with a definition of the property that is linking to a video, for example.