Skip to content

Instantly share code, notes, and snippets.

@tomasklapka
Last active August 29, 2015 14:08
Show Gist options
  • Save tomasklapka/4f17c7facf4345bb91aa to your computer and use it in GitHub Desktop.
Save tomasklapka/4f17c7facf4345bb91aa to your computer and use it in GitHub Desktop.
GAPI - component diagram
@startuml
() "GAPI client" <<browser>> as GAPIClient
package "GAPI Web" {
() "Passenger" <<node module>> as Passenger
() "Template Engine" <<node module>> as TemplateEngine
[HTTP Server] as WebServer
[REST 2 SPARQL] <<node module>> as REST2SPARQL
[SPARQL-client] <<sparql-client node module>> as WebSPARQLClient
[Response Convertor] <<node module>> as Convertor
GAPIClient -down- WebServer: HTTP
WebServer -left-> REST2SPARQL: REST Request
WebServer .left.> Passenger: use
REST2SPARQL -down-> WebSPARQLClient: SPARQL Query
WebSPARQLClient -left-> Convertor: SPARQL Query Response
Convertor -up-> WebServer: Response data
WebServer -down-> WebSPARQLClient: SPARQL Query
Convertor .down.> TemplateEngine: use for HTML
note left of Convertor
Convertor transforms SPARQL Query Response
according to Accept HTTP Header.
Formats to be used: RDF/XML, N3, Turtle, JSON-LD,
JSON, SPARQL Query Result, HTML...
end note
}
() "GAPI Core Interface" as CoreInterface
WebSPARQLClient --down-- CoreInterface
note right of CoreInterface
can be programaticaly passed SPARQL Query
directly to GAPI Query Engine or through
SPARQL client - endpoint layer
end note
note left of REST2SPARQL
implementation of
http://www.w3.org/TR/sparql11-http-rdf-update/
end note
package "GAPI Core" {
[SPARQL Query engine] as QueryEngine
[Transformational middleware] <<pluginable node module>> as Middleware
[SPARQL-client] <<sparql-client node module>> as SPARQLClient
() "SPARQL Parser" <<node module>> as Parser
() "SPARQL Serializer" <<node module>> as Serializer
QueryEngine -up- CoreInterface
QueryEngine -right-> Middleware: SPARQL Query
Middleware -left-> QueryEngine: SPARQL Query (transformed)
QueryEngine -down-> SPARQLClient: SPARQL Query
SPARQLClient -up-> QueryEngine: SPARQL Query Response
Middleware .down.> Parser: use
Middleware .down.> Serializer: use
}
() "RDF Store's SPARQL-endpoint" <<any>> as Store
SPARQLClient -down- Store
note top of Middleware
Middleware components analyzes
SPARQL Queries and can do transformations.
Planned modules: Auth, Quota
end note
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment