OSF Widgets Library

Introduction
The Semantic Component Library is a grouping (library) of Flex components or widgets that take record(s) description(s) and irXML schema(s) as input, and then output some (possibly interactive) visualization(s) of that record. Depending on the logic described in the input schema(s) and the input record(s) description(s), the Semantic Component may behave differently or provide presentation options to users.

Each Semantic Component delivers a very focused set of functionality or visualization. Multiple components may be combined on the same canvas for more complicated displays and controls.

If a Semantic Component extends an existing component, from another library (Flex framework or others), its main purpose is to transform the input data and schema structures to feed to the existing component that will display some information about the input record(s).

Data Structure
The data structure used by all Semantic Components is the structXML format (OSF Web Service's resulset format). This structure is the same as the one exchanged between OSF Web Service endpoints. It is composed of subjects (records) that are defined with properties and values. Values can be "data" values such as literals or "object" values that are reference to other subjects. The schema used to describe these resultsets of subjects are discussed in the next section.

Schema
Schemas are vocabularies used to describe the subjects of a resultset. They define the different types and attributes that can be used to describe a subject. The schemas are described using the irON schema specification. The serialization used to describe these irON schemas, and to feed to the semantic components, is the irXML serialization format.

More information can be read in the irON Specification.

Also more information about the irXML serialization format can be read in the irXML specification section.

If more than one schema is specified as input to a Semantic Component, all schemas will be merged together to create the complete conceptual structure used by the component.

The semantic components are driven by the SCO (Semantic Component Ontology) ontology. This ontology can be used to describe types and attributes of the irXML schemas fed to the Semantic Components.

Settings
Each Semantic Component has its own set of settings. Settings exists for all kind of purposes. All component settings are defined in an XML file that gets converted to a specification ("setting") class at runtime. This setting class is what is used during the entire component's life to behave differently depending on the specifics of the particular usage at a given time. This design allows a single setting to govern the operation for multiple use cases.

Settings are mainly used to define data access endpoints, specific behaviors (enable/disable specific functions, etc.) and undefinable styles in a skin (given theme or style).

All information about how the settings system works can be read on the Semantic Component Settings Architecture page.

All information about the available settings, per component, can be accessed on the Semantic Component Settings page.

Core
The core of the Semantic Component Library is composed of the data structure manipulated by all Semantic Component (the structXML resultset) and the conceptual structure (the irXML schema).

If a developer wants to input data from any system other than OSF Web Service instances, he should create a converter that will convert data from its system, into structXML data, and then use that converted data as the input for any tools based on the Semantic Component Library.

Additionally, the schema of any such external systems should also be converted (and probably enhanced according to the SCO Ontology) into a irXML schema.

Components
The Semantic Component Library include a series of components that extends existing components of the Flex framework, or that create new ones. Here are the specific document pages for each of these components:

Core Components

 * 1) sControl
 * 2) sMap
 * 3) sRelationBrowser
 * 4) sStory
 * 5) sBarChart
 * 6) sLinearChart
 * 7) sPieChart
 * 8) sGenericBox

Components Extending the Flex Framework

 * 1) sText
 * 2) sImage
 * 3) sHBox

Records Description and Components
There exists a strong relationship between record descriptions and the components of the layout of an application. In fact, in many cases, attributes describing a record get bound to particular elements (components) of an application layout. This is one nature of the Semantic Component: they behave according to the target record(s) and attribute(s) for given schema(s).

The mechanism by which records description get bound to layout elements, and related behavioral comportment, is described on the Semantic Component Layout page.

Theming Components
All Semantic Components can be themed by creating different skins for each of them. Most, if not all, parts of a component are accessible for theming via different style names that can be defined in CSS files.

A general discussion of the architecture and process of theming can be read on the Semantic Component Themes page

A list of all accessible style names, per component, can be accessed on the Semantic Components Style Names page.

Related External Libraries/Applications
Multiple external libraries and applications have been used to develop the Semantic Components. A complete list of reference to these external libraries and application is available on the Semantic Component External Libraries page.