Skip to content
Snippets Groups Projects
components.tex 2.62 KiB
Newer Older
  • Learn to ignore specific revisions
  • \section{Components}
    
    With various ULO/RDF files in place we have the aim of making the
    underlying data available for use with applications. For this, we
    should first make out the various components that might be involved in
    
    such a system. As a guide, figure~\ref{fig:components} illustrates the
    various components and their interplay.  We will now give an overview
    over all involved components. Each component will later be discussed
    in more detail, this section serves only for the reader to get a
    general understanding of the developed infrastructure and its
    topology.
    
    
    
    \begin{figure}[]\begin{center}
        \includegraphics{figs/components}
        \caption{Components involved in the \emph{ulo-storage} system.}\label{fig:components}
    \end{center}\end{figure}
    
    
    \begin{itemize}
    \item ULO/RDF data is present on various locations, be it Git
      repositories, available on web servers via HTTP or on the local disk
      of a user. Regardless where this ULO/RDF data is stored, a
      \emph{Collecter} collects these {ULO/RDF}. In the easiest case, this
      involves cloning a Git repository or crawling a file system for
      matching files.
    
    \item With streams of ULO/RDF files at the Collecter, this information
      then gets passed to the \emph{Importer}. The Importer imports
      triplets from files into some kind of permanent storage. For use in
      this project, the GraphDB~\cite{graphdb} triplet store was natural
      fit. In practice, both Collecter and Importer end up being one piece
      of software, but this does not have to be the case.
    
    \item Finally, with all triplets stored in a database, an
      \emph{Endpoint} is where applications access the underlying
      knowledge base. This does not necessarily need to be any specific
      software, rather the programming API of the database could be
      understood as an endpoint of its own. However, some thought should
      be put into designing an Endpoint that is convenient to use.
    \end{itemize}
    
    Additionally, one could think of a \emph{Harvester} component. Before
    we assumed that the ULO/RDF triplets are already available as
    such. Indeed for this project this is the case as we worked on already
    exported triplets from the Isabelle and Coq libraries. However, this
    does not need to be the case. It might be desirable to automate the
    export from third party formats to ULO/RDF and indeed this is what a
    Harvester would do.  It fetches mathematical knowledge from some
    remote source and then provides a volatile stream of ULO/RDF data to
    the Collecter, which then passes it to the Importer and so on. The big
    advantage of such an approach would be that exports from third party
    libraries can always be up to date and do not have to be initiated
    manually.