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
Owl

Fabl's type system is based on the OWL Web Ontology Language (OWL, like RDF, is a w3c standard). OWL is an RDF vocabulary for expressing assertions about classes of RDF resources. It includes constructs for defining classes based on enumeration, set operations, and restrictions on the values of properties when applied to class members. Although any OWL statement can be legally asserted in the Fabl environment, Fabl only makes direct use of some kinds of OWL statements in its computation of the type of expressions. Fabl adds a few additional class construction primitives beyond those that appear in OWL.

This manual does not assume prior familiarity with OWL; as with RDF, OWL constructs will be explained as needed. Fabl includes a traditional programming language syntax for class definition - syntax that is implemented internally using Owl primitives. This syntax will remove the need to work directly at Owl level in many applications.

Owl extends class-related vocabulary that is present in the RDF standard itself, and in the RDF Vocabulary Description Language (RDFS). As an introduction, here are some of the basic terms from RDF, RDFS, and OWL. Each term links to the section in an online w3c document describing the term.

From the RDFS document:

rdfs:Resource The class of all resources

rdfs:Class The class of all classes

rdf:Property The class of properties

rdf:type The type of a resource is given by this property.

rdfs:range

rdfs:subClassOf A property of classes indicating that all members of the subject class are members of the object class as well.