/dokieli

:bulb: dokieli is a clientside editor for decentralised article publishing, annotations and social interactions

Primary LanguageJavaScriptOtherNOASSERTION

dokieli

Join the chat at https://gitter.im/linkeddata/dokieli

There is no root, authority, or centralisation here. Control yourself!

dokieli is a decentralized article authoring, annotation, and social notification tool which works from a Web browser. While it is a general purpose tooling to write articles, it is fully compliant with the Linked Research initiative and principles, and provides features and interactions for scholarly communication.

dokieli's architecture is progressively enhanced such that articles are accessible anywhere from a text-browser to Firefox Nightly. Articles and annotations can be curled and dereferenced to get the complete content in HTML and RDF. Articles can be authored both online and offline.

Where applicable, dokieli can employ participant's e.g., authors, reviewers, commenters, WebID and personal online datastores to store and give different access controls to the information to different participants. Similarly, anyone that wants to annotate can store their notes at a Webspace in which they control.

Features

  • In-browser document authoring and formatting, and semantic enrichments (RDFa annotations)
  • Information is represented and retrieved following the Linked Data design principles
  • Employs WebID, WebID+TLS, Web Access Control/ACL and personal online datastore where applicable (compliant with Linked Data Platform and Solid servers)
  • Uses author's information from their online profile (WebID)
  • Creation of new documents from any existing dokieli document - part of self-replication
  • Save document and its dependencies to a new location (anywhere on the Web with LDP support) - part of self-replication
  • Uses W3C Web Annotation Model and Activity Streams 2.0 vocabulary
  • Annotations (e.g., replies, peer-reviews, liking, resharing, bookmarking)
  • Inbox notifications for annotations and social sharing (implements W3C Linked Data Notifications)
  • Assign license (e.g., Creative Commons) to the contributions/annotations
  • Uses schema.org, SPAR Ontologies, PROV-O
  • Assignment of URI fragments (to whatever is of interest) so that other resources on the Web can reference
  • Embedding data blocks, e.g., Turtle, N-Triples, JSON-LD, TriG (Nanopublications)
  • Embedding of media objects, tables, and interactions
  • Automated references and citations (retrieves and reuses structured information)
  • Insertion of table of contents, figures, tables, abbreviations
  • Drag and drop to reorganize the document's sections and table of contents
  • In-browser local storage, and document exporting
  • Document metadata
  • Views for screen and print (e.g., ACM, LNCS) - yes, you can output to a paper user interface: PDF
  • .. and many more on the way

"Yea, okay, whatever, but it doesn't do x, y, z!" -- We hear ye! You are welcome to create issues, discuss, or pull requests. Make it so!

Screencasts

Also available on https://dokie.li/ (with captions):

Examples

See the growing list of examples in the wild in the wiki. Add the URLs of your articles or interactions to the list.

This repository is published and accessible from https://dokie.li/. dokie.li is intended to demo and exemplify what we can do with this technology. You are welcome to use and experiment with dokieli there, or anywhere else you come across a dokieli document.

For the scholars among us, see the authoring guidelines below. View the ACM guidelines using the LNCS typographical rules, and vice versa (see the menu) ;)

Design

There is nothing to install or setup, out of band tooling or account creations for its core functionality. The Web browser is the only requirement. It is entirely progressively enhanced (complete separation of structure/data, presentation, and behaviour layers): intended to minimize friction in publishing and consuming. Works on local machine, and is functional from ground up. Additional features can be used with the "pay-as-you-go" design approach e.g., if authors or reviewers have a WebID and a personal storage space, their feedback can be under their full control, meanwhile allowing who it can be visible to or writeable for. If they don't, or the authors don't wish to enable open dialogue, that's okay too.

It works towards acid test and user stories where authors and all Webizens can publish and consume, and participate in discussions meanwhile having human and machine-friendly information all within their control.

dokieli is not perfect, but it is intended to evolve based on our collective experience and pave the way for tooling with interopability in mind.

Dependencies

Again, dokieli is progressively enhanced ("pay-as-you-go"). You can always use curl or links/lynx from command-line and get all the content which includes triple statements in RDFa, and optionally in Turtle, N-Triples, JSON-LD, TriG (Nanopublications).

  • For the purpose of reading, the only requirement is to serve the HTML+RDFa and referenced files from a directory on your Web server. "Drag and drop"!
  • If you want to write the document from within your Web browser, well, .. you need a Web browser ;)
  • If you have a WebID and a personal online storage, you can author your documents wherever you like on the Web, and you can decide who gets to read and write, e.g., your co-authors, or reviewers.
  • If you want to work offline or on your local machine, open a dokieli file in your Web browser and edit. You have the option to export the document or use the Web browser's native local storage.

The libraries listed below are optional and progressively enhance the interactions.

License

Apache License, Version 2.0

How to contribute

  • Use it! Share your work with the others.
  • Enable your colleagues to do the same.
  • Join the dokieli chat for help and discussion.
  • Break things. Report issues and document. Resolve issues.
  • Optimize. Work on features.