{- | Description : Web Ontology Language OWL2 Copyright : (c) Otto-von-Guericke University of Magdeburg License : GPLv2 or higher, see LICENSE.txt The "OWL2" directory contains the OWL2 instance of "Logic.Logic". The data for this instance is found in "OWL2.Logic_OWL2". /Abstact Syntax/ The syntax for OWL2 is represented using Haskell datatypes. It is defined both in OWL2.AS - which contains the entities and expressions (<http://www.w3.org/TR/owl2-syntax/>) and in OWL2.MS - which contains the frames (<http://www.w3.org/TR/owl2-manchester-syntax/>). As the official Manchester Syntax cannot express some of the valid OWL2 axioms, the Haskell datatypes for frames were extended to also accomodate these. /Parser/ The parsing of an OWL ontology happens in two main steps. First, the ontology is converted to XML, using the Java parser found in "OWL2.java". Then, the XML is parsed into the Haskell datatypes (see "OWL2.XML"). The top-level function which combines the two steps is found in "OWL2.ParseOWLAsLibDefn". The parser for the Het-CASL representation is found in "OWL2.Parse" and "OWL2.ManchesterParser" which take as argument an ontology in our extended Manchester Syntax and convert it into the Haskell datatypes. /Pretty printing/ This is done in "OWL2.Print" (for the "AS.hs" datatypes) and in "OWL2.ManchesterPrint" (fot the "MS.hs" datatypes). The output is written in our extended Manchester Syntax. A LaTeX output is not available, yet. /Static Analysis/ The file "OWL2.StaticAnalysis" repairs the ontology after parsing and then produces the final axioms and signature needed for hets analysis. /Provers/ There are two of these for OWL2, namely Pellet and FACT++, written in Java. The call for them happens in "OWL2.ProvePellet" and "OWL2.ProveFact". The input for the provers is XML syntax, which comes from "OWL2.XMLConversion". The conservativity check is implemented in "OWL2.Conservativity" and uses the Java- written locality checker. /Comorphisms/ There are three implemented comorphsims: from OWL2 to CASL and Common Logic and from DMU to OWL2. /Profiles and sublogics/ There are three OWL2 profiles: EL, QL and RL. In "OWL2.Profiles", an ontology is taken as argument and analysed, in order to see in which of the profiles it fits, while in "OWL2.Sublogics", the reasoning complexity of the ontology is computed. /Miscellaneous/ "OWL2.Function" provides a class for functions which go through all the Haskell datatypes and which are structurally equivalent (except maybe on what they do with the IRIs or entities). Currently, morphism mapping, prefix renaming and IRI expansion are implemented there. "OWL2.ColimSign" and "OWL2.Taxonomy" provide signature colimits and taxonomy extraction, respectively. -} module OWL2 where