@startuml together { package "(rdf4j-repository-api)\nrepository" { interface Repository interface "Repository\nConnection" as RepositoryConnection } package "(rdf4j-repository-api)\nrepository.base" { class AbstractRepository Repository <|.. AbstractRepository } } together { package "(system-core)\nanswering" { interface OntopQueryEngine } package "(system-core)\nanswering.connection" { interface OntopConnection OntopQueryEngine .> OntopConnection: <<creates>> } package "(reformulation-core)\nanswering.reformulation.input" { interface RDF4JInputQueryFactory } } package "" as settings <<Rectangle>> { package "(rdf4j)\nrdf4j.repository" #FFFFEE { interface OntopRepository { httpCacheHeaders: HTTPCacheHeaders {static} defaultRepository(\n OntopSystemConfiguration):\n OntopVirtualRepository } Repository <|-- OntopRepository } package "(rdf4j)\nrdf4j.repository.impl" #FFFFEE { class OntopRepositoryConnection { ctor(OntopRepository,\n OntopConnection,\n RDF4JInputQueryFactory,\n OntopSystemSettings) reformulate(String): String } RepositoryConnection <|.. OntopRepositoryConnection OntopRepositoryConnection ..> OntopConnection OntopRepositoryConnection ..> RDF4JInputQueryFactory class OntopVirtualRepository { ctor(OntopSystemConfiguration) } OntopVirtualRepository ..> OntopQueryEngine OntopVirtualRepository ..> RDF4JInputQueryFactory OntopRepository <|.. OntopVirtualRepository AbstractRepository <|-- OntopVirtualRepository OntopVirtualRepository .> OntopRepositoryConnection: <<creates>> } } @enduml