Package net.sf.tweety.logics.dl.parser
Class DlParser
- java.lang.Object
-
- net.sf.tweety.commons.Parser<DlBeliefSet,DlAxiom>
-
- net.sf.tweety.logics.dl.parser.DlParser
-
public class DlParser extends net.sf.tweety.commons.Parser<DlBeliefSet,DlAxiom>
This class implements a parser for the description logic ALC (attributive concept language with complements). The input syntax is based on the input syntax of the Racer reasoner.
Note: Racer is built for the description logic SRIQ(D) (= the DL that corresponds to the OWL2 language), which is more expressive than ALC. SRIQ(D)-exclusive elements like inverse roles, role hierarchies and at-least restrictions are not supported by this parser. Furthermore, the syntax of universal and existential restrictions is different for reasons of simplification (see BNF).
The input syntax for an ALC knowledge base is given by the following BNF (starting symbol is KB):
KB ::== SIGNATURE FORMULAS
SIGNATURE ::== "signature(" (CONCEPT_DECLAR)? (ROLE_DECLAR)? (INDIVIDUAL_DECLAR)? ")"
CONCEPT_DECLAR ::== ("\n")* "atomic-concepts(" (CONCEPTNAME)* ")"
ROLE_DECLAR ::== ("\n")* "roles(" (ROLENAME)* ")"
INDIVIDUAL_DECLAR ::== ("\n")* "individuals(" (CONSTANTNAME)* ")"
AXIOMS ::== ("\n" AXIOM)*
AXIOM ::== "instance " " " CONSTANTNAME " " CONCEPT | "related " CONSTANTNAME " " CONSTANTNAME " " ROLENAME |
"implies " " " CONCEPT " " CONCEPT | "equivalent" CONCEPT " " CONCEPT
CONCEPT ::== "(" CONCEPT ")" | CONCEPTNAME | "not " CONCEPT | "*top*" | "*bottom*" | "top" | "bottom" |
"and " CONCEPT " " CONCEPT | "or " CONCEPT " " CONCEPT |
"forall " ROLENAME " " CONCEPT | "exists " ROLENAME " " CONCEPT
where CONCEPTNAME, ROLENAME, CONSTANTNAME are sequences of
symbols from {a,...,z,A,...,Z,0,...,9} with a letter at the beginning
excluding {"top","bottom"}.- Author:
- Anna Gessler, Matthias Thimm
-
-
Constructor Summary
Constructors Constructor Description DlParser()
-
Method Summary
Modifier and Type Method Description DlSignaturegetSignature()Returns the signature of this parser.DlBeliefSetparseBeliefBase(Reader reader)DlAxiomparseFormula(Reader reader)voidsetSignature(DlSignature signature)Sets the signature for this parser.voidtokenize(Stack<Object> stack, int c)This method reads one character from the given reader and appropriately tokenizes it.
-
-
-
Method Detail
-
parseBeliefBase
public DlBeliefSet parseBeliefBase(Reader reader) throws IOException, net.sf.tweety.commons.ParserException
- Specified by:
parseBeliefBasein classnet.sf.tweety.commons.Parser<DlBeliefSet,DlAxiom>- Throws:
IOExceptionnet.sf.tweety.commons.ParserException
-
parseFormula
public DlAxiom parseFormula(Reader reader) throws IOException, net.sf.tweety.commons.ParserException
- Specified by:
parseFormulain classnet.sf.tweety.commons.Parser<DlBeliefSet,DlAxiom>- Throws:
IOExceptionnet.sf.tweety.commons.ParserException
-
tokenize
public void tokenize(Stack<Object> stack, int c)
This method reads one character from the given reader and appropriately tokenizes it.- Parameters:
stack- used for monitoring the read itemsc- token from stream
-
setSignature
public void setSignature(DlSignature signature)
Sets the signature for this parser.- Parameters:
signature- a DL signature.
-
getSignature
public DlSignature getSignature()
Returns the signature of this parser.- Returns:
- the signature of this parser.
-
-