Skip to content

Components

roparz edited this page Feb 18, 2013 · 7 revisions

Components

Described below are the main, internally developed, specific components that make up the Splayce Law project.

Server

Law's server-side components are on Imaginatio/law, in a multi-component SBT project:

  • law-commons (java) contains basic, low-level utilities used in other components
  • law-model (scala) contains basic utility models
  • law-extractors (scala) implements the matching and extraction of law expressions (regex-based) ; also holds the common specifications for this extraction (also used by the client)
  • law-database (java) implements the Law indexing (from Legifrance source files) & searching mechanisms, exposed as a java API
  • law-backend (scala) provides a Web server exposing the law index as a REST API

The technology stack (not including server environment):

See project/Build.scala, other files in this directory, and each component's build.sbt for the exact dependencies.

The exposed REST API is documented on apiary.

Word Plugin Client

Law's client (a Microsoft Word 2007+ plugin) is located in Imaginatio/microsoft along with some other .NET modules:

  • Common contains common utilities
  • NLP has some NLP utilities
  • Law contains the specify implementation for Law plugin
  • other modules are not currently actively used (although loosely maintained for compatibility with Common)

The technology stack:

Visual Studio 2010 SP1 is the reference/recommended IDE, VS 2012's byte code being incompatible with Windows XP.

Web clients

Some HTML clients are under development in Imaginatio/law-web:

  • Web site
  • Browser extensions:
    • Firefox
    • Chrome
    • Safari
    • Opera (attempt not working so far)

Each client depends on some files in common directory. Use init.sh to copy/symlink these files for each project. Copied/symlinked files are gitignored.

Browser extensions are based on BabelExtLight, a fork of BabelExt, a cross-browser extension boilerplate. This fork remove some unused/useless features and keep only XHR (and cross-domain management) and style injection. See documentation for more information.

Technology stack:

If you got cfx, xar and crxmake installed, you just need to launch build.sh to build all extensions.

Web site

The Splayce Web site www.splayce.com is in Imaginatio/web:

  • imaginatio.fr (static HTML) has the company's Web site
  • splayce.com (PHP) holds the product Web site, including an administration interface

Technology stack:

Shared

Some items are used across several projects.

The main shared items are the law expression specifications/tests and regexes. Those are in the Law Server code base (in the law-extractor module) and imported by the Client.

Clone this wiki locally