UISPIN is an RDF-based framework to describe user interfaces for rendering
Semantic Web data.
Dedicated properties such as ui:view are used to link RDFS/OWL
resources with user interface descriptions.
User interface components are described with the help of a declarative object
model that may contain SPARQL queries to dynamically insert data-driven
content.
These object models can be defined either in terms of RDF structures, or
with XML files similar to JSP and Flex documents.
The resulting UI object model can then be rendered into various target
platforms, in particular HTML and SVG.
The vision of Linked Data and the Semantic Web is to create an open network of information resources that is readable both for humans and machines. While this web of data is growing rapidly, there are few compelling user interfaces that would allow anyone to browse through the resulting information spaces. Existing applications are either hard-coded viewers against some specific vocabularies, or entirely generic, tabular data browsers that present RDF-based content in a uniform display of name/value pairs.
Those generic browsers typically rely on introspection into the data, and
possibly consult the associated ontologies and schemas to learn about the
available properties for a resource or class.
However, in order to avoid flat lists of properties, more information would
be needed than what is typically stored in an ontology.
For example, if a class defines properties ex:firstName and
ex:lastName, then it is currently almost impossible for a
browser to understand that those belong together and should be rendered
as text fields side by side.
UISPIN is an open framework that can be used to attach RDF-based metadata
to resources and classes to help generic browsers display attractive and
appropriate visualizations of RDF resources.
The basic idea is that dedicated properties such as ui:view
are used to link resources with ui:Elements, which provide
a platform-independent data model that can be rendered by native display
platforms such as HTML, SVG, GWT, Flex and Swing.
The UI elements can be driven by SPARQL queries represented using the
SPARQL Inferencing Notation (SPIN).
As a result of this, ontology designers can annotate their models with appropriate kinds of visualizations. Ontology users that explore a Linked Data space can benefit from those customized visualizations such as nicely laid-out forms, statistical charts and business intelligence reports. UISPIN supports the vision of dynamic business applications that adjust their behavior driven by the data and context.
The following figure outlines the architecture of the UISPIN specification.
The remainder of this overview describes each building block of this architecture in detail and with examples, starting at the bottom layers.
UISPIN is based on infrastructure provided by the SPARQL Inferencing Notation (SPIN). Knowledge of SPIN is helpful but not required to understand UISPIN. UISPIN uses the following SPIN constructs:
The UISPIN Core Vocabulary is an RDF Schema defining classes and properties for representing UISPIN elements and nodes. These classes and properties carry special semantics that are interpreted by UISPIN rendering engines to convert UISPIN models into target platform data structures (such as HTML).
The UISPIN HTML Vocabulary is an RDF Schema with classes and properties that form an RDF representation of HTML 4.01 elements, attributes and styles. Based on the UISPIN Core Vocabulary, the HTML Vocabulary can be used to create arbitrary HTML documents.
The UISPIN SVG Vocabulary is an RDF Schema with classes and properties that form an RDF representation of SVG Tiny 1.2 elements, attributes and styles. Based on the UISPIN Core Vocabulary, the SVG Vocabulary can be used to create arbitrary SVG documents.
UISPIN makes it easy to define new types of user interface components by subclassing other (core) classes. Such user-defined components are entirely declarative and therefore require no hard-coding in display engines. The UISPIN specification includes various libraries of such reusable components, including charts, RDF resource display elements and forms.
UISPIN is part of the SPIN Technology Stack that also includes SPIN and SPARQLMotion.