Skip to content
Snippets Groups Projects
components.md 1.67 KiB
Newer Older
  • Learn to ignore specific revisions
  • Components
    ==========
    
    This is a rough sketch of the involved components of this project.
    Look at `componets.png` for a little illustration of the involved
    components.
    
    `Collector`
    -----------
    
    * Given some source of ULO/RDF files (Git repository, HTTP server,
      local file system), the `Collector` processes/cleans up these files
      and forwards them to the `Importer`.
    
    * Implement core functionality as library with command line and web
      front end.
    
    * Can be implemented in any language. I'll probably pick Go as I'm
      pretty productive in it.
    
    
    `Harvester`
    -----------
    
    * Low Priority. Just an idea I had. But it might go against the idea
      of using MathHub as a centralized place for data.
    
    * Converts arbitrary source data (e.g. Coq) to ULO/RDF.
    
    * The generated RDF is *volatile*, it does not need to be stored to
      any repository. Rather it is directly forwarded to a `Collector`.
    
    * I'm not sure if this makes any sense actually as it might be
      difficult to track changes and so on.
    
    * Can be implemented in any language that makes sense for the given
      source format.
    
    `Importer`
    ----------
    
    * Essentially a wrapper around a database. Written in the language
      that best fits the database. In particular, GraphDB only has good
      Java/JVM programming support.
    
    * Accessed w/ a simple file upload API. You upload a file and get a
      path returned that shows you the current state of the import.
    
    `Endpoint`
    ----------
    
    * Again, like the `Importer`, this is a wrapper around the database.
    
    * Might be optional if applications accesses the database directly.
      Certainly when it comes to querying I will not introduce a custom API
      as querying is a problem way way more complicated than a simple
      import.