The Fabl Manual
Function Index
Class Index
Globals Index
Libraries
Contents

Title Page
Introduction
Sample Code
Architecture
Syntax
Strong Typing
Polymorphism
Operators
Help
Errors
Configuration
RDF
Namespaces
Owl
Datatypes
Resources
Dot ops
Coercion
Type Casting
nil

Types
string
id
int
double
boolean
Literal
Containers
Functions
void

Home
Regarding
The Path
Classes
Delegation
Functional Values
Read/Write
Load/Store
Libraries
Imports
CGI
Datatypes

As indicated earlier, RDF makes a distinction between general resources and literals. Literals include primitive data values such as strings, integers, and dates, and may only appear as the object of a triple, not its subject or predicate. A class whose members are literals is called a datatype. In Owl, datatypes are derived from the XML Schema Datatypes. For example, the class of ints has the URI:

http://www.w3.org/2000/10/XMLSchema#int 

otherwise known as xsd:int when using the standard namespaces.

This is the Fabl type int, as illustrated by:

int;
-->xsd:int

Fabl uses the variant of Owl called "Owl Full", which allows more freedom than the other Owl variants in the treatment of literals, and literal-valued properties and types. In Fabl, as in Owl Full, a datatype is a kind of class. In this manual, the terms "class" and "type" are used interchangably.

The other datatypes implemented in Fabl are xsd:string, xsd:double, xsd:boolean, rdfs:Literal and fabl:id (the Fabl global variables string,double, boolean, Literal, and id evaluate to these types). The last type in this list, fabl:id, is a new datatype introduced for use in the Fabl environment; the Owl standard allows definition of new datatypes.

When loading RDF files into Fabl, other datatypes are converted to the supported types as required according to the following scheme: Built-in types derived from xsd:integer are converted to xsd:int; types derived from xsd:string are converted to xsd:string; xsd:float is converted to xsd:double. There is no Fabl support as yet for the types not so far mentioned (eg xsd:date). This policy results in discarding some information in the loading process, and also is subject to failure (eg when a decimal is not in the range supported by int). But, as a practical matter, it is preferable to rejecting the data in question. Future releases of Fabl will add support for more of the XML Schema datatypes.

Details concerning Fabl support for the datatypes appear in the later sections.