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.