Giter VIP home page Giter VIP logo

gnaf's Introduction

gnaf

Introduction

This project:

  • loads the G-NAF data set into a relational database and search engine;
  • provides JSON web services to access the database and search engine; and
  • provides a demonstration web user interface using the web services.

Users of gnaf-search should note the suggested preprocessing for query strings.

Project Structure

These sub-directories contain sub-projects:

  1. gnaf-util: common code
  2. gnaf-db: scripts to load the G-NAF data set into a relational database and Slick "Functional Relational Mapping" bindings for the database. The README.md discusses the H2 database and G-NAF data.
  3. gnaf-extractor: queries the database to produce JSON address data
  4. gnaf-lucene: common code for indexing and searching G-NAF with Lucene. The README.md discusses the search techniques used.
  5. gnaf-indexer: loads JSON address data into a Lucene index
  6. gnaf-search: JSON web service to search the Lucene index
  7. gnaf-test: queries the database to produce test address data with many variations, scripts to perform bulk lookups of the test data and evaluate results
  8. gnaf-db-service: JSON web service providing access to the G-NAF database
  9. gnaf-contrib: a JSON web service providing access to the gnafContrib database of user supplied geocodes
  10. gnaf-ui: static files providing a demonstration web user interface using gnaf-search, gnad-db-service and gnaf-contrib.

Nature of Sub-projects:

  • 1, 2 & 4 produce a jar file of library code used by other sub-projects
  • 3, 5 & 7 produce command line programs packaged as a onejar. This is a jar file containing all dependencies and run simply with: java -jar {filename.jar}
  • 6, 8 & 9 produce JSON web services also packaged as a onejar. These are run as above (not in a servlet container). They produce Swagger API documentation at /api-docs/swagger.json.

The top level directory provides:

  • the sbt build for the Scala code in projects 1-9 (no build is required for 10); and
  • src/main/script/run.sh to run everything, but first:
    • take a look as its intended as executable documentation and you may not wish to run it all each time
    • install tools

Install Tools

To run the Scala code install:

  • a JRE e.g. from openjdk-8 (version 8 or higher is required by some dependencies);
  • the build tool sbt.

To develop Scala code install:

  • the above items (you may prefer to install the full JDK instead of just the JRE but I think the JRE is sufficient);
  • the Scala IDE.

Dependencies

Running and Usage

See src/main/script/run.sh.

Build

Automatic builds are available at: https://t3as-jenkins.it.csiro.au/ (only within the CSIRO network).

The command:

sbt clean test one-jar dumpLicenseReport

from the project's top level directory cleans out previous build products, runs unit tests, builds one-jar files and creates license reports on dependencies.

Develop With Eclipse

The command:

sbt update-classifiers eclipse

uses the sbteclipse plugin to create the .project and .classpath files required by Eclipse (with source attachments for dependencies).

Software License

This software is released under the CSIRO BSD license - see Licence.txt. Each of the sub-projects lists its dependencies and their licenses in 3rd-party-licenses.html.

Data License

Incorporates or developed using G-NAF ©PSMA Australia Limited licensed by the Commonwealth of Australia under the Open Geo-coded National Address File (G-NAF) End User Licence Agreement.

gnaf's People

Contributors

meh9 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.