Fresnel - Display Vocabulary for RDF: Core
Fresnel is a simple, browser-independent vocabulary for specifying how to display an RDF model and how to style it using existing style languages such as CSS.
Displaying RDF in a human-friendly manner by way of an RDF display vocabulary is done differently in every application. Recognizing the general need for displaying RDF and wanting to avoid reinventing the wheel with each new application, the authors jointly developed Fresnel as an extensible ontology of core RDF display concepts.
Fresnel's design goals are to create an ontology that is:
- useful for rendering different output formats like HTML, SVG, PDF, plain text, and others,
- applicable across different RDF display paradigms, (nested box-based textual representation à la XHTML+CSS, node-link diagram, etc.),
- built on existing Web technology,
- extensible for more specialized needs,
- easy to learn and use.
Fresnel's two foundational concepts are lenses and formats. Lenses define which properties of an RDF resource are displayed and how these properties are ordered. Fresnel formats determine how the selected properties are rendered by specifying RDF-specific formatting attributes and by providing hooks to CSS, which is used to specify fonts, colors, margins, borders, and other decorative elements.
Fresnel adheres to a strict separation between data selection and formatting. The Fresnel rendering process can be decomposed in three steps:
- Selection: the parts of the RDF graph to be displayed are selected and ordered using Fresnel lenses. The result of the selection step is an ordered tree of RDF nodes, not containing any formatting information yet.
- Formatting: Fresnel formats are then applied to the tree, adding formatting information and hooks to CSS classes to nodes of the tree.
- Output Generation: the result of the second step is rendered into the appropriate output format.
Possible output formats include:
- HTML documents including inline CSS styling instructions or referencing external stylesheets (for use e.g. in Longwell),
- SVG documents including inline CSS styling instructions or referencing external stylesheets (for use e.g. in IsaViz),
- XML trees referencing external CSS stylesheets (e.g. for being transformed further using XSLT as part of a Cocoon  pipeline),
- PDF documents,
- plain text documents,
- interactive rich clients such as Haystack.
The choice of what output format to support, and how to interpret the formatted tree produced by the second step to produce the actual output (i.e., the third step), is a prerogative of each application. Fresnel expresses RDF presentation knowledge in a declarative way; Fresnel applications should take all formatting information into account, but are free to interpret and adapt them in a way that is appropriate w.r.t their fundamental representation paradigm (e.g. nested box-based textual representation à la XHTML+CSS, node-link diagram, etc.). In other words, Fresnel does not dictate how to transform the tree resulting from the formatting step into an actual target document of the chosen output format.