DagSemTools/
├── src/
│ ├── Api/ # Core RDF graph, reasoning engine
│ ├── Parser/ # Base parser utilities
│ ├── Turtle.Parser/ # Turtle/TriG parser
│ ├── Manchester.Parser/# OWL Manchester syntax parser
│ ├── Sparql.Parser/ # SPARQL query parser
│ └── Datalog.Parser/ # Datalog rules parser
├── test/ # Unit and integration tests
└── grammars/ # ANTLR grammar definitions
- RDF Loading:
TriGParser.Parse()in Turtle.Parser - SPARQL Queries:
graph.AnswerSelectQuery()in Api - Reasoning:
Ontology.create().GetAxiomRules()in Api - Datalog:
graph.LoadDatalog()in Api
All parsers use ANTLR4:
- Grammar file (.g4) in grammars/
- Generated parser/lexer classes
- Visitor pattern for AST traversal
- Output: semantic objects in Api namespace
Input File (.ttl/.owl/.sparql)
↓
ANTLR Parser (grammars/)
↓
Visitor Pattern (src/*Parser/)
↓
Semantic Objects (src/Api/)
↓
Graph/Reasoning Engine
- RDF Graph: Base triple store with indexing
- Datalog Engine: Stratified evaluation with negation support
- OWL 2 RL: Compiled to Datalog rules
- SPARQL: Query evaluation over materialized graph
- Unit Tests: Individual parser components, grammar rules
- Integration Tests: Large real-world ontologies (IMF, GO, LIS-14)
- Compliance: W3C specification test suites where applicable