Yes, there will most likely be clashes. We discussed namespaces before in A namespace for things defined in FEPs where I mentioned some options:
In addition to what you mention, I think we should avoid vendor-specific namespaces, unless well… they are purely relating to vendor-specific extensions. Right now the way these namespaces would proliferate would make little sense to me. I think a grouping into app-independent domains is necessary besides having an
asExt
for core vocabulary extensions, like e.g. ‘video’, ‘podcast’, ‘blog’, etc.[…]
As to how domain-specific namespaces might look like… euhh idk, maybe:
https://w3id.org/activitystreams/extension/video
https://w3id.org/activitystreams/extension/microblog
(now mastodontoot
)https://w3id.org/activitystreams/extension/microblog/posts
(alternative)
Just an example, of course. Namespace can be anything…
And in my next comment an example:
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "sc": "http://schema.org#", "video": "https://w3id.org/activitystreams/extension/video#", "framesPerSecond": { "@id": "video:framesPerSecond", "@type": "sc:Number" }, } ], "id": "https://conf.tube/w/daJwZp7HhQFK5v3B9L89oY", "type": "Video", "framesPerSecond": 60 }
In the same comment I also mentioned how Peertube currently uses their own app-specific namespace in the @context
and should I want to build an app in the same Social Video Platform domain, interoperable with Peertube but with one extra property, the current practice is that I would define yet another app-specific namespace… leading to a confusing proliferation of namespaces.