• Menu
  • Overview
  • Standard
  • For Developers

Decals Documentation

Decals represent properties of an object in a way that can be interpreted by computers. Decals are associated with an object, not embedded in it, and can include instructions that a computer can follow to update the properties, retrieve related properties, and look up related information.

Decals express metadata (and paradata) in ways that intelligent systems can process.

Whereas traditional metadata is machine-readable, it is typically not machine-interpretable, and it is typically static rather than dynamic. Here are examples that illustrate the differences:

  1. Many web pages are tagged with key words, which are important for search engines. Using today’s methods, these key words are embedded in static tags that and must be updated when the content of the page is updated. A decal, on the other hand, can reference a web service that generates the key words from the content of the page.
  2. Suppose the title of a video is “estimating sums of three-digit numbers.” Today, this may be encoded in the video file in a way that allows software to read and display the title. This enables a teacher see the title on a list of search results, from which she can surmise how the video relates to the lessons she is teaching, to math standards, and to her students. Decals enable machines to do the same. A decal can point to a service that computes how closely the video is related to any lesson and not only tag the video with a math standard (as could be done with traditional metadata) but also provide a means to look up the test scores of students on related standards.

Decals are an implementation of Schema.org that enables metadata, paradata, and other forms of data to "call home" and perform actions on remote servers through Web Services.

This portable, web services approach enables Decals to be stored by any system that can store a JSON object and, when it comes in contact with a Decals-enabled process, the data can be refreshed, embedded operations can retrieve data in real time, and other potential actions can be exposed to users or developers.

Decals is meant to address issues surrounding updating remote data, stale data, de-duplication, and making data actionable by users and machines.

Decals are encoded using the JSON-LD and the Schema.org schema. They use the potentialAction property to describe Web Service methods. This combination of type, properties, and methods enable more C++/C#/Java-like objects on the web.

Decals store information as unambiguous data or URL references (using the sameAs property), define their type using the @type parameter, and use simple JSON web services described by potentialAction to remotely execute (using the decal to fill in parameters) Web Service methods, fulfilling all the requirements of a true object.

Decals are meant to be portable facades, and, through appropriate potentialActions and code, have the ability to synchronize themselves with their original source system. Users can interact with decals through through a Decal Viewer, and applications can parse decals and act on them, enabling semi-decentralized execution on critical objects that may be shared with hundreds of systems.

Try out a decal

Below is a decal. This decal can be embedded in any web page and used by any system that understands decals to retrieve this particular property of the page.

Each time you click on an action, a new decal is being generated on a remote computer and sent to yours, where it is displayed using the Web Viewer. Hover over a button for an explanation.

The below decal is a representation of keywords generated by an Eduworks Web Service. You may click the dogear to see the data behind it, or click an action, which will generate new decals and take you to the Web Viewer.

This decal was auto-generated using some keyword extraction algorithms at Eduworks. The dogear will take you to the data, where the actions are defined.

The action targets are defined as sameAs references to remote EntryPoints. If you open up those URLs, you can see the EntryPoints for the web services. Actions invoke these web services and interpret the results. This page does not support the changing of this decal, so we take you to the Web Viewer.

Demos

These demonstrations go over three major use cases, and show off the flexibility and power of Decals.

The demonstrations below show three different embedded decals in this web page. Do note that all data that shows up in a decal is contained in the decal itself. These demos simply add some style to the decal data.

The following client-side demonstrations were written in Javascript. There are server components that mostly just generate a decal and perform CRUD operations. You should be able to use Decals after viewing the examples (and studying the javascript, developer tools, and responses.)

  • Web Viewer
  • The first demonstration is the web viewer, which emphasizes looking at a decal outside of any particular system.
  • Go to Example
  • Generation, Storage and Retreival
  • This second demonstration shows the ability to create, store, and retreive decals in a remote system.
  • Go to Example
  • Search
  • The third demonstration allows you to search a repository of about 200 CNN News Articles.
  • Go to Example