Skip to content

Acropolis

Mo McRoberts edited this page Mar 8, 2018 · 7 revisions

Introduction

Acropolis is a toolkit for building and maintaining knowledge graphs. The Acropolis stack powers the BBC's Research & Education Space and Datalab projects.

Research & Education Space

RES's purpose is to construct a knowledgebase of Linked Open Data, a reasonable amount of which (thanks in part to our intervention) ought to concern or relate to creative works with associated accessible (subject to licensing/access controls) media assets which may be presented in a variety of ways, and in doing so always represent the origins of the data and ensure where possible that applications can retrieve it, both because RES won't always retain the finer (domain-specific) detail, and because RES doesn't claim to be authoritative.

Datalab

Components

Build system support macros

URI parsing and manipulation library

Client access library for services speaking AWS protocols

Client access library for SPARQL-savvy graph stores

Client access library for SQL databases

Self-balancing cluster library

Should be renamed to libappconfig and have logging elements removed (replaced with liblogging)

Web crawler

RDF-oriented workflow processing server

Linked Data server

  • Support GET requests including a structured request payload? (JSON?)
    • Can this be implemented without breaking caching? Is there a Vary: body?
    • More trouble than it's worth?
    • Should be a POST? But then breaks semantics?
  • Other HTTP methods should be at least handled; it should then be up to the engine to decide what to do.
    • e.g., Patchwork could accept S/MIME-signed PUT requests to enqueue graphs for processing?
  • Configurable routing (e.g., send different URI patterns to different engines)
    • Incoming URI and query-parameter transformation
    • It should be straightforward to implement this with neglible loss of efficiency

Knowledge-base processing engine for Twine

Knowledge-base server engine for Quilt

  • Add support for multiple ?uri=URI query-parameters, return a single RDF doc containing all of the requested entities.
    • Add a configurable soft-limit for the number of URIs which will be processed in a single query