Fork me on GitHub

OpenLink Software logo

64px OSDE icon
The OpenLink Structured Data Editor (OSDE)

Why is OSDE Important?

The World Wide Web (or simply, the Web) was originally conceived as a Read-and-Write medium, but even now, with user-created content filling many web surfers' screens, most usage remains Read-Only.

OSDE bolsters the growing Write dimension by letting users create structured data using the familiar File Create → Save → Share pattern, without forcing a document storage location, i.e., documents created with OSDE may be stored to the desktop or to virtually anywhere in the cloud.

Features of OSDE

How do I use OSDE?

Overview

Metaphorically, as in the real-word:

  1. You write sentences to a document (e.g., a page in a book).
  2. Sentences in a page are grouped by paragraphs. OSDE groups statements by attribute (predicate) to emulate this concept.
  3. A document may be part of a collection — like one of many pieces of paper in a folder, pages in a chapter, or chapters in a book. When writing to a SPARQL server, OSDE treats each document as a named graph.

Somewhat more elaborately —

  • You write "entity → attribute → value" or "subject → predicate → object" sentences/statements to a document, which is identified by an HTTP-scheme URL.
  • Entity and Attribute (or, if you prefer RDF parlance, Subject and Predicate) are each identified by an HTTP URI, which may be absolute or relative to the document. Value (a/k/a Object) may be either a literal string or a URI.
  • Sentence/Statement collections are grouped by Attribute (Predicate), and this is the basis for optimistic concurrency hashes constructed for handling multi-user editing activity against the same document.

You can get started by creating a brand new document or applying edits to an existing document.

Using an existing OSDE Instance, Local or Hosted

Basic Usage

  1. Set a location for your document. This could be a folder to contain a new document, or the target document itself.
  2. Open your document from its location.
  3. Add or edit RDF Language statements using any of the view options — defaults are Statements, Entities, Attributes, Values. Configuration options let you change these to Statements, Subjects, Predicates, Objects.
  4. Save your document to your desktop (via download link) or to a remote cloud location that supports one of:
  5. Done.

Demonstration of Turtle Input

  1. Start OSDE with a New Document.

    PNG of OSDE demo starting point

  2. From the Action menu, select Input Turtle Directly. Paste or type your Turtle, and click Import.

    PNG of OSDE demo Turtle input

  3. Inspect and/or edit the imported data in Statements view.

    PNG of OSDE demo Statements view

  4. Inspect and/or edit the imported data in Entities (Subjects) view.

    PNG of OSDE demo Entities (Subjects) view

  5. Inspect and/or edit the imported data in Attributes (Predicates) view.

    PNG of OSDE demo Attributes (Predicates) view

  6. Inspect and/or edit the imported data in Values (Objects) view.

    PNG of OSDE demo Values (Objects) view

Usage Screencasts

Here are a couple of silent screencasts showing OSDE in action, through loose coupling to the OpenLink Structured Data Sniffer (OSDS), which exposes OSDE as its Annotation feature.

  • OpenLink RDF Editor Demo -- Open Data Flow

  • OSDS & OSDE Integration Demo — Beyond Bookmarking Annotation Feature

Deploying a new OSDE instance

If you don't have an existing OSDE instance, deployment takes just a few simple steps, which vary with your HTTP server. The same ZIP archive is used for deployment on all HTTP servers except Virtuoso, for which there's a VAD package.

Apache

  1. Download and install Apache (v2.x).
  2. Extract RDF Editor:

    unzip rdf_editor_pkg.zip -d [PATH]

  3. Add new drectory (/rdf-edtor) with RDF Editor to the server configuration.
  4. Start Apache Server.

    [APACHE HOME]/bin/httpd

  5. Load this URI in your web browser:

    http://localhost:[port]/rdf-editor/index.html

IIS

  1. Start IIS.
  2. Extract RDF Editor:

    unzip rdf_editor_pkg.zip -d [IIS Root Path]

  3. Load this URI in your web browser:

    http://localhost:[port]/rdf-editor/index.html

Node.js

  1. Download and install Node.js.
  2. Download and install NPM manager.
  3. Install the node.js http-server (a simple, zero-configuration command-line http server) globally, so that it may be run from the command line:

    npm install http-server -g

  4. Extract RDF Editor:

    unzip rdf_editor_pkg.zip -d [RDF Editor Path]

  5. Start the HTTP Server:

    http-server [RDF Editor Path]/rdf-editor [options]

  6. Load this URI in your web browser:

    http://localhost:[port]/index.html

Tomcat

  1. Download and install Tomcat (v8.x).
  2. Start Tomcat.

    [TOMCAT HOME]/bin/startup

  3. Extract RDF Editor:

    unzip rdf_editor_pkg.zip -d [TOMCAT HOME]/webapps/Root

  4. Load this URI in your web browser:

    http://localhost:[port]/rdf-editor/index.html

Virtuoso

  1. In the Virtuoso Conductor, navigate to the System Admin -> Packages tab, and use the Install Packages section to install the OSDE VAD package, called rdf_editor_dav.vad.
  2. OSDE will be available at a URL similar to that below, where cname is the {hostname}:{port-number} at which your Virtuoso instance is listening.

    http://{cname}/rdf-editor/index.html

Custom Crafting OSDE-Controlling URIs

You can use a XHR-oriented parameterized URL to load the Editor with a number of UI choices already made. Several examples follow the parameter details, all based on the URI Template —

http://{cname}/rdf-editor/#/editor(?uri,ioType,saveDocument,newDocument,view,newStatement,statement:subject,statement:predicate,statement:object)

URL Parameters

Custom URI Examples

[1] Open 'New Document' using 'Statements' view with specific 'Subject' for new statement

Place Editor in 'New Document' state with current entity identified by <https://s3.amazonaws.com/webid-sandbox/Profile/Basic-Identity-Claims-And-Profile-Document.ttl#i> as the Subject of the initial statement, using 'Statements' view

http://linkeddata.uriburner.com/rdf-editor/#/editor?newDocument=true&statement:subject=https:%2F%2Fs3.amazonaws.com%2Fwebid-sandbox%2FProfile%2FBasic-Identity-Claims-And-Profile-Document.ttl%23i&view=statements

[2] Open 'New Document' using 'Entities' view with specific 'Subject' for new statement

Place Editor in 'New Document' state with current entity identified by <https://s3.amazonaws.com/webid-sandbox/Profile/Basic-Identity-Claims-And-Profile-Document.ttl#i> as the Subject of the initial statement, using 'Entities' view

http://linkeddata.uriburner.com/rdf-editor/#/editor?newDocument=true&statement:subject=https:%2F%2Fs3.amazonaws.com%2Fwebid-sandbox%2FProfile%2FBasic-Identity-Claims-And-Profile-Document.ttl%23i&view=subjects

[3] Open 'New Document' using 'Attributes' view with specific 'Subject' for new statement

Place Editor in 'New Document' state with current entity identified by <https://s3.amazonaws.com/webid-sandbox/Profile/Basic-Identity-Claims-And-Profile-Document.ttl#i> as the Subject of the initial statement, using 'Attributes' view

http://linkeddata.uriburner.com/rdf-editor/#/editor?newDocument=true&statement:subject=https:%2F%2Fs3.amazonaws.com%2Fwebid-sandbox%2FProfile%2FBasic-Identity-Claims-And-Profile-Document.ttl%23i&view=predicates

[4] Open 'New Document' using 'Values' view with specific 'Subject' for new statement

Place Editor in 'New Document' state with current entity identified by <https://s3.amazonaws.com/webid-sandbox/Profile/Basic-Identity-Claims-And-Profile-Document.ttl#i> as the Subject of the initial statement, using 'Values' view

http://linkeddata.uriburner.com/rdf-editor/#/editor?newDocument=true&statement:subject=https:%2F%2Fs3.amazonaws.com%2Fwebid-sandbox%2FProfile%2FBasic-Identity-Claims-And-Profile-Document.ttl%23i&view=values

[5] Open existing document in 'Statements' view with specific 'Subject' for new statement

Opens up <https://s3.amazonaws.com/webid-sandbox/Profile/Basic-Identity-Claims-And-Profile-Document.ttl> in the Editor, using Statements view, with <https://s3.amazonaws.com/webid-sandbox/Profile/Basic-Identity-Claims-And-Profile-Document.ttl#i> set as the subject of an additional statement

http://linkeddata.uriburner.com/rdf-editor/#/editor?uri=https:%2F%2Fs3.amazonaws.com%2Fwebid-sandbox%2FProfile%2FBasic-Identity-Claims-And-Profile-Document.ttl&statement:subject=https:%2F%2Fs3.amazonaws.com%2Fwebid-sandbox%2FProfile%2FBasic-Identity-Claims-And-Profile-Document.ttl%23i&view=statements