This paper presents a revised version of the syntax for OWL Lite and OWL DL.
The differences from the published Abstract Syntax are slight; the differences in the mapping rules are greater; the expression of OWL Lite and OWL DL as RDF graphs is completely different. The latter motivates most of the other differences.
There are also differences arising from:
The syntaxes used in this paper are processed using SWI-Prolog; specifically the triple tables are generated from the abstract syntax and mapping rules.
The source code is included. It can be run by the following sequence of commands:
[jjc@jjc jjc]$ cd ass [jjc@jjc ass]$ pl -G8m % /home/jjc/ass/.plrc compiled 0.00 sec, 268 bytes Welcome to SWI-Prolog (Version 5.0.10) Copyright (c) 1990-2002 University of Amsterdam. SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Please visit http://www.swi-prolog.org for details. For help, use ?- help(Topic). or ?- apropos(Word). ?- [load]. % program/loader compiled 0.00 sec, 4,432 bytes % program/ops compiled 0.00 sec, 1,292 bytes % program/util compiled 0.00 sec, 2,656 bytes % program/syntax compiled 0.00 sec, 9,752 bytes % program/map compiled 0.01 sec, 35,260 bytes % program/html compiled 0.01 sec, 35,644 bytes % program/out compiled 0.00 sec, 9,272 bytes % grammar/lite compiled 0.00 sec, 12,536 bytes % grammar/dl compiled 0.00 sec, 3,560 bytes % grammar/mapping compiled 0.01 sec, 38,120 bytes % grammar/builtin compiled 0.00 sec, 4,432 bytes % grammar/uri compiled 0.00 sec, 2,048 bytes % load compiled 0.03 sec, 160,000 bytes Yes ?- time(compMapping). % 3,670,705 inferences in 6.57 seconds (558707 Lips) Yes ?- time(out). Creating out/lite-syntax.html Creating out/lite-mapping.html Creating out/lite-triples.html Creating out/dl-syntax.html Creating out/dl-mapping.html Creating out/dl-triples.html % 44,446,523 inferences in 32.71 seconds (1358805 Lips) Yes ?-
It is also possible to modify the grammars and rerun to get different tables etc. However, the separation between the program and the grammars is not as clean as I would like, and some aspects of the grammar are builtin to the program. (e.g. the start symbol, some of the categories).
Update diff list
Modify proof for datatypes ... currently slightly buggy.
The main item on the to-do list is correspondences proofs.