Giter Site home page Giter Site logo

hxlator's Introduction

HXLator

Browser-based tool to interactively convert spreadsheets into the Humanitarian eXchange Language (HXL) (see hxl.humanitarianresponse.info). The HXL project is an initiative by the United Nations Office for the Coordination of Humanitarian Affairs.

This project picks up the idea of the original HXLator developed during the International SpaceApp Challenge 2012 in Lausanne.

Based on PHP, using Bootstrap (Apache License 2.0), EasyRdf (BSD-3-Clause license) and PHPExcel (GNU LGPL license).

Demo

A working demo of the current state of the HXLator is available at hxl.humanitarianresponse.info/hxlator.

Setup

A server running PHP 5.2.1 or higher should be sufficient to run this project. Make sure PHP can write to the uploads folder.

hxlator's People

Stargazers

Emerson Rocha avatar RK Aranas avatar Luis Capelo avatar Vince avatar CJ Hendrix avatar Carsten Keßler avatar

Watchers

Mark Iliffe avatar James Cloos avatar Luis Capelo avatar Vince avatar

hxlator's Issues

Add property definition to to the mapping popup

Currently it gives: This property should refer to a Feature from one of our reference lists. We could add a popup (can you have popups within popups?) or second line:
Feature is defined as . . .

Handling multiple sheets

Currently, a translator only works for one sheet in a workbook. If there are several workbooks, the user would have to start over again for a second sheet (at least if the structure of that sheet is different).

I'm not sure whether this is an issue for the prototype or not (I tend to think it's not).

Horizontal scroll bar issue

In Chrome and Firefox, the horizontal scrollbar for the spreadsheet viewer that appears on the page is dead (doesn't do anything). If I scroll vertically to the bottom of the datasheet, a horizontal scroll bar will appear that does work. It seems to be embedded inside the spreadsheet viewer.

Emergency / report category check

Add a function that checks whether an emergency and report category have been selected on the first page. If possible, this check should be done via JS when the user clicks the upload button, before the data is sent to hxlate.php.

IE 8 issue (if we care)

I can't remember if we decided not to support IE 8 or not. I know we had a discussion about it.

In IE8, on the first step of the mapping, the Top Level Concepts never appear.

Multiple DataContainers

Solutions:

  1. Live with ValidityDates everywhere in hxlator
  2. Introduce a ValidityPeriod class (hxl:TimeSensistiveData??). All classes needing a ValidityPeriod should be sub-classes of ValidityPeriod
  3. Restrict certain properties from appearing in hxlator via a config file (also removes hxl:TopLevelConcept)
  4. Split hxlated data into datacontainers based on unique combinations of metadata fields. Move validity date properties to apply only to data containers.
  5. Dolce ontology separating temporal and spatial baseclasses.

Improve class pills loading

Minor issue: Rewrite the getClassPills function in hxlate.php so that it needs only one request to the triple store. It currently does one request for each recursion.

Stubborn user mapping data properties for what should be object properties

I'm not sure this is really an issue (at least no one that you are already aware of).

Since the APL's are not available in the lookup, I forced HXLator to map a data property for hxl:CurrentLocation with this result

. . . itarianresponse.info/data/displacedpopulations/undefined/lookup 1-B-/unknown hxl:currentLocation "@lookup 1-B-5" .

Problems in output rdf?

See the hxlate BFA 0503 First 2 rows.ttl file in the dropbox/otherstuff.

For our main example file, I hxlated just the first two rows and only f/0-5 and m/0-5.

It seems that the atLocation statements have been separated into a different population URI (lines 18-21).
The nationality statements are also in a different URI (lines 40-41).

Also, note that the APL for the second row (Dibissi) is not in the triple store (well, it's there under datatest, but that doesn't count, it's not in our real APL data). So when doing the looking for the term Dibissi, I clicked in the "start typing" box and then clicked Save mapping. The result is in line 33. The preferred behavior would be for this row to be skipped with some sort of notice to the user.

Restrict URI lookup

Restrict the URI lookup to resources that are of the correct type for the given property.

Finalize contact info

The error handler for when a submitted file is not a spreadsheet (and perhaps other places too) doesn't have any real contact info associated. We need to remember to do that later.

Add "back" button

We'll need some functionality that allows the user to go back to the previous step in the mapping. Ideally, this should also support going back through the browser's back button, so we might have to use history.js or the like.

Age Category Lookup issue

If we have two AgeCategorySets with the same name for one of the categories, I think it will be impossible to tell in the URI lookup window which one is from which group. How to handle that?

atLocation property does not always show

e.g. when selecting the AFL class on the first page, "atLocation" does not show in the list of properties, even though it is a property of hxl:BaseClass, which is a superclass of hxl:AFL. Probably an issue with the SPARQL query in properties4class.php.

No feedback given if a user saves mapping when no URI is found during lookup

In trying to map source to "Government", this value does not exist (yet) in our reference lists. Logically I should click cancel, but if I'm stubborn and click "Save Mapping", there is no feedback. And the naked turtle shows a lookup for this property (not sure if that is a error or not).

Perhaps we need to activate and deactivate the button when it is reasonable for a user to Save or not Save the mappings?

Language tweak

Change “any” to “a” in A simple online tool to convert a spreadsheet . . .

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.