Copyright © 2007-2011 FAST Project Consortium (FP7-ICT-2007-1-216048).
This work is licensed under a Creative Commons Attribution License. This copyright applies to the FAST Gadget Ontology (FGO) and accompanying documentation in RDF. Regarding underlying technology, FGO uses W3C's RDF technology, an open Web standard that can be freely used by anyone.
The EU FAST Project (FP7-ICT-2007-1-216048) sets out to develop end-user-focussed tools for building intelligent, interconnected Web gadgets. In a visual development environment, users can drag & drop building blocks, customise them and link them together to create their own, custom-built gadget, which they can then deploy to a gadget platform like iGoogle or EZWeb.
Internally, each gadget and its building blocks are defined in RDF, using the terminology defined by this document: the FAST gadget ontology (FGO). The overview section lists all classes and properties defined in the FGO. For a more detailed introduction to FAST (including a more extensive PDF version of the FGO documentation), its architecture, software prototypes, etc., we would like to direct you to the collection of FAST Documentation documents.
One of the main ideas of FAST is that each gadget consists of so-called screens: individual units of interaction, which the user of the gadgets visits one after the other. E.g., in a gadget for buying something in an online store, there could be a login screen, followed by a search screen, a selection screen and finally a check-out screen. Each screen has its own building blocks, such as a form or a any number of operators. In order for the screens to interact with services like the online store, they are linked to resources, which are basically wrappers around backend web services. Several screens together build a so-called screenflow, which can then be packaged and deployed as the actual gadget the end user will see. The layering of all these basic concepts can be seen in the figure below.
The next figure looks closer at the features of individual screens. These are forms, resources and operators, which are all specialisations of the general screen_component concept. Each such screen component may or may not have an action or trigger associated with them, which declaratively define their behaviour in terms of their own functionality or functionality they can trigger in other building blocks.
Regarding their implementation, different kinds of building blocks in FAST can either be defined hard-coded as a piece of source code, or they can be defined declaratively in the terms of the FAST ontology (using pipes, operators, etc.). In the former case, a building block such as a screen would have been implemented and added to the FAST platform by an engineer, whereas in the latter case, ordinary users of the FAST platform would have assembled the building block using the tools available in the GVS. This principle is reflected in the figure below, showing how certain kinds of building blocks aggregate either a Definition or Code, whereas other kinds of building blocks are always hard-coded. It should be noted that, in theory, there is no reason why not any kind of building block could be defined either way. However, the concrete set of building blocks which can be defined declaratively or in code is changing dynamically according to the current state and plans of the FAST project.
Another central concept in FAST is the idea that, rather than explicitly defining the order in which screens are shown to the user in a gadget, the order is determined automatically. This happens through the use of pre-conditions and post-conditions: a screen will only show up once all its pre-conditions are fulfilled, and it will produce post-conditions for other screens once the user is done with it. This idea is extended from screens to other kinds of building blocks in FAST, to determine the general flow of data. The figure below illustrates how the different kinds of building blocks relate to the concepts of pre- and post-conditions. While all building blocks can essentially have such conditions, only screens and screen flows directly aggregate both. However, in the case of the three different kinds of screen components (form, resource and operator), the relation to a pre-condition is only established through their actions, which represent their basic functionality. For all building blocks, both pre- and post-conditions are entirely optional.
This ontology defines terms for modelling semantic, interoperable gadgets or widgets. It has been developed as part of the EU project 'FAST' (FAST AND ADVANCED STORYBOARD TOOLS), FP7-ICT-2007-1-216048.
Classes: | Action | BackendService | BuildingBlock | Condition | Form | FormElement | Library | Operator | Pipe | Resource | Screen | ScreenComponent | ScreenFlow | Trigger | WithCode | WithDefinition | WithPostConditions | WithPreConditions |
Properties: | contains | from | hasAction | hasClone | hasCode | hasForm | hasFormElement | hasIcon | hasLanguage | hasLibrary | hasOperator | hasPattern | hasPatternString | hasPostCondition | hasPreCondition | hasPrototype | hasResource | hasScreenshot | hasTrigger | isPositive | to | uses |
Ontology terms grouped in broad categories
Conditions |
FAST Building Blocks |
Action
Label | Action |
---|---|
sub-class-of |
fgo:BuildingBlock
|
in-range-of |
fgo:hasAction
|
status | testing |
An action represents a specific routine which will be performed when a certain condition is fulfilled within a certain screen component. Examples are methods of a Web service (e.g., getItem) or functionality to update or change the contents of a form.
Look for usage of this class on Sindice.
BackendService
Label | Backend Service |
---|---|
sub-class-of |
fgo:BuildingBlock
|
status | testing |
A Web service which provides data and/or functionality to a screen. The actual backend service is external to FAST, and only available through a wrapper (the service Resource).
Look for usage of this class on Sindice.
BuildingBlock
Label | BuildingBlock |
---|---|
super-class-of |
fgo:Action , fgo:BackendService , fgo:Condition , fgo:FormElement , fgo:Library , fgo:Pipe , fgo:Screen , fgo:ScreenComponent , fgo:ScreenFlow , fgo:Trigger
|
in-domain-of |
fgo:contains , fgo:hasClone , fgo:hasIcon , fgo:hasPrototype , fgo:hasScreenshot , fgo:uses
|
in-range-of |
fgo:contains , fgo:hasClone , fgo:hasPrototype
|
status | testing |
Anything that is part of a gadget. Tentatively anything that can be 'touched' and moved around in the FAST IDE, from the most complex units such as screen flows, down to atomic form elements like a button or a label in a form.
Look for usage of this class on Sindice.
Condition
Label | Condition |
---|---|
sub-class-of |
fgo:BuildingBlock
|
in-domain-of |
fgo:hasPattern , fgo:hasPatternString , fgo:isPositive
|
in-range-of |
fgo:from , fgo:hasPostCondition , fgo:hasPreCondition , fgo:to
|
status | testing |
The pre- or post-condition of a building block. If the building block is a screen flow, each target platform will use these conditions in its own way, or may also ignore them. E.g., in EzWeb pre- and post-conditions correspond to the concepts of slot and event. A condition is made up of individual facts, where each fact is represented internally as an RDF triple, usually involving a variable of blank node.
Look for usage of this class on Sindice.
Form
Label | Form |
---|---|
sub-class-of |
fgo:ScreenComponent
|
in-domain-of |
fgo:hasFormElement
|
in-range-of |
fgo:hasForm
|
status | testing |
A form is the visual aspect of a screen: its user interface. Each form is made up of individual form elements.
Look for usage of this class on Sindice.
FormElement
Label | Form Element |
---|---|
sub-class-of |
fgo:BuildingBlock
|
in-range-of |
fgo:hasFormElement
|
status | testing |
Form elements are UI elements in a particular screen, such as buttons, lists or labels.
Look for usage of this class on Sindice.
Library
Label | Library |
---|---|
sub-class-of |
fgo:BuildingBlock
|
in-domain-of |
fgo:hasLanguage
|
in-range-of |
fgo:hasLibrary
|
status | testing |
Libraries are references to external code libraries required for the execution of a particular building block at runtime.
Look for usage of this class on Sindice.
Operator
Label | Operator |
---|---|
sub-class-of |
fgo:ScreenComponent
|
in-range-of |
fgo:hasOperator
|
status | testing |
Operators are intended to transform and/or modify data within a screen, usually for preparing data coming from service resources for the use in the screen's interface. Operators cover different kinds of data manipulations, from simple aggregation to mediating data with incompatible schemas.
Look for usage of this class on Sindice.
Pipe
Label | pipe or connector |
---|---|
sub-class-of |
fgo:BuildingBlock
|
in-domain-of |
fgo:from , fgo:to
|
status | testing |
Pipes are used to explicitly define the flow of data within a screen, e.g., from service resource to operator to a specific form element.
Look for usage of this class on Sindice.
Resource
Label | Resource |
---|---|
sub-class-of |
fgo:ScreenComponent
|
in-range-of |
fgo:hasResource
|
status | testing |
A service resource in FAST is a wrapper around a Web service (the backend service), which makes the service available to the platform, e.g., by mapping its definition to FAST facts and actions.
Look for usage of this class on Sindice.
Screen
Label | Screen |
---|---|
sub-class-of |
fgo:BuildingBlock
|
in-domain-of |
fgo:hasForm , fgo:hasOperator , fgo:hasResource
|
status | testing |
An individual screen; the basic unit of user interaction in FAST. A screen is the interface through which a user gets access to data and functionality of a backend service.
Look for usage of this class on Sindice.
ScreenComponent
Label | Screen Component |
---|---|
super-class-of |
fgo:Form , fgo:Operator , fgo:Resource
|
sub-class-of |
fgo:BuildingBlock
|
in-domain-of |
fgo:hasAction , fgo:hasTrigger
|
status | testing |
Screens are made up of screen components, which fundamentally include service resources, operators and forms.
Look for usage of this class on Sindice.
ScreenFlow
Label | Screen Flow |
---|---|
sub-class-of |
fgo:BuildingBlock
|
status | testing |
A set of screens from which a gadget for a given target platform can be generated.
Look for usage of this class on Sindice.
Trigger
Label | Trigger |
---|---|
sub-class-of |
fgo:BuildingBlock
|
in-range-of |
fgo:hasTrigger
|
status | testing |
Triggers are the flip-side of actions. Certain events in a building block can cause a trigger to be fired. Other building blocks within the same screen, which are listening to it, will react with an action.
Look for usage of this class on Sindice.
WithCode
Label | With Code |
---|---|
union-of |
fgo:Form , fgo:Operator , fgo:Resource , fgo:Screen
|
in-domain-of |
fgo:hasCode , fgo:hasLibrary
|
status | testing |
Any kind of building block that can be defined as a whole through code.
Look for usage of this class on Sindice.
WithDefinition
Label | With Definition |
---|---|
union-of |
fgo:Form , fgo:Screen
|
status | testing |
Any kind of building block that can be defined declaratively in the GVS.
Look for usage of this class on Sindice.
WithPostConditions
Label | With Post-condition |
---|---|
union-of |
fgo:Screen , fgo:ScreenComponent , fgo:ScreenFlow
|
in-domain-of |
fgo:hasPostCondition
|
status | testing |
Those kinds of building blocks which can have post-conditions.
Look for usage of this class on Sindice.
WithPreConditions
Label | With Pre-condition |
---|---|
union-of |
fgo:Action , fgo:Screen , fgo:ScreenFlow
|
in-domain-of |
fgo:hasPreCondition
|
status | testing |
Those kinds of building blocks which can have pre-conditions.
Look for usage of this class on Sindice.
contains
Label | contains |
---|---|
Type | owl:ObjectProperty |
super_property_of |
fgo:hasForm , fgo:hasFormElement , fgo:hasOperator , fgo:hasResource
|
domain |
fgo:BuildingBlock
|
range |
fgo:BuildingBlock
|
status | testing |
Many kinds of components in FAST can contain other components: screenflows contain screens, screens contain forms, operators and resources, forms contain form elements, etc.
Look for usage of this property on Sindice.
from
Label | from |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:Pipe
|
range |
fgo:Condition
|
status | testing |
This property defines the starting point of a pipe within a screen.
Look for usage of this property on Sindice.
hasAction
Label | has action |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:ScreenComponent
|
range |
fgo:Action
|
status | testing |
This property indicates which actions are associated and can be perfomed within a screen component.
Look for usage of this property on Sindice.
hasClone
Label | has clone |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:BuildingBlock
|
range |
fgo:BuildingBlock
|
inverse_of |
fgo:hasPrototype
|
status | testing |
Links the prototype of a building block as used in the palette or catalogue of available building blocks to its clone, as used in a particular screen flow or screen.
Look for usage of this property on Sindice.
hasCode
Label | has code |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:WithCode
|
range | foaf:Document |
status | testing |
This property links to the executable code of a particular building block (currently screens or screen components).
Look for usage of this property on Sindice.
hasForm
Label | has form |
---|---|
Type | owl:ObjectProperty |
sub_property_of |
fgo:contains
|
domain |
fgo:Screen
|
range |
fgo:Form
|
status | testing |
If a screen is defined declaratively, this property links it to its form (i.e., its visual user interface).
Look for usage of this property on Sindice.
hasFormElement
Label | has form element |
---|---|
Type | owl:ObjectProperty |
sub_property_of |
fgo:contains
|
domain |
fgo:Form
|
range |
fgo:FormElement
|
status | testing |
If a form is defined declaratively, its elements are linked to it with this property.
Look for usage of this property on Sindice.
hasIcon
Label | has icon |
---|---|
Type | owl:ObjectProperty |
sub_property_of | foaf:depiction |
domain |
fgo:BuildingBlock
|
range | foaf:Image |
status | testing |
A small graphical representation of any FAST component or sub-component.
Look for usage of this property on Sindice.
hasLanguage
Label | has language string |
---|---|
Type | owl:DatatypeProperty |
domain |
fgo:Library
|
range | xsd:string |
status | testing |
This property defines the programming language a particular programming library uses.
Look for usage of this property on Sindice.
hasLibrary
Label | has library |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:WithCode
|
range |
fgo:Library
|
status | testing |
This property indicates which programming libraries are used by the code of a screen component.
Look for usage of this property on Sindice.
hasOperator
Label | has operator |
---|---|
Type | owl:ObjectProperty |
sub_property_of |
fgo:contains
|
domain |
fgo:Screen
|
range |
fgo:Operator
|
status | testing |
If a screen is defined declaratively, this property links it to an operator it might contain.
Look for usage of this property on Sindice.
hasPattern
Label | has pattern |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:Condition
|
range | rdfs:Resource |
status | testing |
This property links the abstract representation of a fact (i.e., an RDF triple) in FAST to a graph resource containing the actual triple.
Look for usage of this property on Sindice.
hasPatternString
Label | has pattern string |
---|---|
Type | owl:DatatypeProperty |
domain |
fgo:Condition
|
range | xsd:String |
status | testing |
This property links to the textual representation of a fact (i.e., an RDF triple), e.g., in N3.
Look for usage of this property on Sindice.
hasPostCondition
Label | has post-condition |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:WithPostConditions
|
range |
fgo:Condition
|
status | testing |
This property links certain type of building blocks to their post-condition, i.e., the facts that are produced once the building block has been executed.
Look for usage of this property on Sindice.
hasPreCondition
Label | has pre-condition |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:WithPreConditions
|
range |
fgo:Condition
|
status | testing |
This property links certain type of building blocks to their pre-condition, i.e., the facts that need to be fulfilled in order for the building block to be reachable.
Look for usage of this property on Sindice.
hasPrototype
Label | has prototype |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:BuildingBlock
|
range |
fgo:BuildingBlock
|
inverse_of |
fgo:hasClone
|
status | testing |
Links the clone of a building block as used in a particular screen flow or screen to its prototype, as used in the palette or catalogue of available building blocks.
Look for usage of this property on Sindice.
hasResource
Label | has resource |
---|---|
Type | owl:ObjectProperty |
sub_property_of |
fgo:contains
|
domain |
fgo:Screen
|
range |
fgo:Resource
|
status | testing |
If a screen is defined declaratively, this property links it to its service resource (i.e., its backend).
Look for usage of this property on Sindice.
hasScreenshot
Label | has screenshot |
---|---|
Type | owl:ObjectProperty |
sub_property_of | foaf:depiction |
domain |
fgo:BuildingBlock
|
range | foaf:Image |
status | testing |
An image which shows a particular screen or screenflow in action, to aid users in deciding which screen or screenflow to choose out of many.
Look for usage of this property on Sindice.
hasTrigger
Label | has trigger string |
---|---|
Type | owl:DatatypeProperty |
domain |
fgo:ScreenComponent
|
range |
fgo:Trigger
|
status | testing |
This property links a buildiong block to a trigger.
Look for usage of this property on Sindice.
isPositive
Label | is positive |
---|---|
Type | owl:DatatypeProperty |
domain |
fgo:Condition
|
range | xsd:boolean |
status | testing |
Facts can be set to a specific scope: design time, execution time, or both of them. This property defines how they have to be taken into account by the inference engine or reasoner.
Look for usage of this property on Sindice.
to
Label | to |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:Pipe
|
range |
fgo:Condition
|
status | testing |
This property defines the end point of a pipe within a screen.
Look for usage of this property on Sindice.
uses
Label | uses |
---|---|
Type | owl:ObjectProperty |
domain |
fgo:BuildingBlock
|
range | rdfs:Resource |
status | testing |
This property indicates concepts used within a building block, without being a pre- or post-condition.
Look for usage of this property on Sindice.