Have you looked into Solid, https://solid.inrupt.com/, for a distributed data store model? For annotations, have you looked at https://web.hypothes.is/ which uses the web annotations standard? These are both fairly large efforts and could be useful to build on