Hi, Benjamin--

No problem. I'm obviously not all that good about quick response myself! :0

It seems to me that these two things (the relationship to LDP and the question 
of backend persistence) could be connected: is it not possible to choose LDP 
for the data storage abstraction layer for Annotator? Of course, we would 
probably have to pick at least one LDP implementation to package with Annotator 
as a choice for those who "choose not to choose" for themselves or for people 
who are just interested in playing with web annotation and don't need to think 
about production deployment.

If we chose LDP for the abstraction layer, then we could also choose a default 
component that can use whatever we think are appropriate concrete forms for 
persistence. (Benjamin Goering mentioned using widely-available RDBMSes, for 
example, which is certainly a good and common pattern, and plenty of LDP impls 
can use them.)

One reason I suggest this: if we choose for a lower-level persistence 
abstraction (e.g. working directly against an SQL backend) and given that the 
Web Annotation protocol extends LDP, we will find ourselves rewriting code that 
LDP implementations have already written and which already is tested in use.

ajs6f

> On Jan 15, 2019, at 9:55 AM, Benjamin Young <[email protected]> wrote:
> 
> Hey Adam!
> 
> First, huge apologies for letting this slip through the cracks caused by all 
> the holiday-ing (at least for me ;) )!
> 
> Second, you're spot on about Web Annotation Protocol being essentially an 
> extension of the Linked Data Platform (LDP) [1] spec. Also, Web Annotations, 
> being based on JSON-LD, can be stored into any triple store. The server-side 
> implementations tested by the W3C so far [2] have used the filesystem, a 
> relational database, or a JSON-friendly NoSQL database (MongoDB, Apache 
> CouchDB, PouchDB, etc).
> 
> Honestly, database selection is one of the things that has tripped me up in 
> contributing a server implementation. I want it to be database/store 
> agnostic, ideally, but that comes with it's own "tyranny of choice" among 
> data storage abstraction layers. 😋
> 
> In the end, it's up to the group to decide what to build and what to build on 
> and in what language...etc.
> 
> Most of the work has gone into the DOM connective tissue code, and I've 
> brought over some of the Web Annotation Data Model validation code [3]. 
> There's still more to do on all fronts. 😊
> 
> Let me know if you have thoughts on the plans here. Your experience with Jena 
> (both as a project and a tool) would be very helpful!
> 
> Cheers!
> Benjamin
> 
> 
> [1] https://www.w3.org/TR/ldp/
> [2] 
> https://github.com/w3c/test-results/tree/gh-pages/annotation-protocol#index-of-implementations-tested
> [3] 
> https://github.com/apache/incubator-annotator/blob/master/test/data-model.mjs
> 
> 
> --
> 
> http://bigbluehat.com/
> 
> http://linkedin.com/in/benjaminyoung
> 
> ________________________________
> From: ajs6f <[email protected]>
> Sent: Wednesday, January 2, 2019 4:14 PM
> To: [email protected]
> Subject: introduction
> 
> Hi, Annnotator folks!
> 
> My name is Adam Soroka and I'm a committer for Apache Jena. For a day job I 
> work at the Smithsonian Institution and I've been interested in semantic 
> technology for quite a while in the context of so-called cultural heritage. I 
> watched the W3C Web Annotation WG with interest and I was happy to see 
> extensions developed for the International Image Interoperability Framework 
> [1].
> 
> I'm still a little uncertain about the scope of the Annotator project. It 
> seems to include a node.js server component to store and manage annotations 
> as well as browser-side tooling. I was under the impression (very likely 
> wrong!) that annotations, as RDF graphs, could be stored in anything that can 
> store RDF (triplestores, etc.) and that in particular, LDP implementations 
> should be able to support the annotation protocol (almost?) directly. Is this 
> wrong? Are there special requirements on annotation servers that make it 
> appropriate to use a special-purpose part?
> 
> Thanks for any clarification/info/advice!
> 
> ajs6f
> 
> [1] https://iiif.io/api/annex/openannotation/index.html

Reply via email to