Git Product home page Git Product logo

datasette-reconcile's People

Contributors

drkane avatar jbpressac avatar nicokant avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

datasette-reconcile's Issues

fts_table setting is ignored

The fts_table setting in the metadata.json is ignored, the plugin uses db.fts_table(table) which does introspection to find fts tables.

example:

{
    "databases": {
        "common": {
            "tables": {
                "species": {
                    "fts_table": "species_fts",
                    "plugins": {
                        "datasette-reconcile": {
                            "name_field": "ValidScientificName"
                        }
                    }
                }
            }
        }
    }
}

Clarify URL pattern to use

Currently uses /<database>/<table>/reconcile - but this could conflict in the case when a table has a row with id "reconcile".

Problem to use the plugin

Hello,
Thank you for your plugin. I successfully installed the plugin with Datasette 0.55 and modified the metadata.json file to add a reconcilation service on one table.

The /-/reconcile URL returns:

{
  "versions": [
    "0.1",
    "0.2"
  ],
  "name": "PRELIB Personnes reconciliation",
  "identifierSpace": "http://rdf.freebase.com/ns/type.object.id",
  "schemaSpace": "http://rdf.freebase.com/ns/type.object.id",
  "defaultTypes": "personne",
  "view": "/prelib/prelib_personne/{{id}}"
}

And /-/reconcile?queries={"q1":{"query":"Christophe"},"q2":{"query": "Hers"}} successfully returns candidates.

However, when I try to add the service in OpenRefine (Reconcile > Start reconciling > Add Standard Service and add the /-/reconcile URL), OpenRefine displays an error message: Error contacting recon service: parsererror : Error: jQuery111105708109859784188_1614767957684 was not called -

Do you have any suggestions to solve the problem ?

Thank you,

'Add standard service' stuck to guess-types-of-column

Hello,
Following #13 (thank you for solving the issue), I have a new problem: when I try to add the service in OpenRefine (Reconcile > Start reconciling > Add Standard Service and add the /-/reconcile URL), OpenRefine displays a spinner and nothing occurs. The OpenRefine console is stuck to the instruction: POST /command/core/guess-types-of-column.

I may send you the URL of the reconciliation service in a mail, if you wish (I would like to keep this URL private).

Thank you,

view_url datasette-compatible escaping

Hi! Thanks for sharing such a useful plugin :)

I found out that IDs containing special characters are not escaped correctly in the URL when the endpoint is datasette itself (which is the default). For example, datasette will fail to load http://localhost/db/table/FA3/N/819, but it would work with http://localhost/db/table/FA3~2FN~2F819

I think an alternative variable should be made available, which is escaped according to Datasette, which should also be the default.

def tilde_encode(s: str) -> str:
    "Returns tilde-encoded string - for example ``/foo/bar`` -> ``~2Ffoo~2Fbar``"
    return "".join(_tilde_encoder(char) for char in s.encode("utf-8"))

-- https://github.com/simonw/datasette/blob/f0fadc28ddb9f82e5cc1ecaa51e8a342eb6dc528/datasette/utils/__init__.py#L1166-L1168

Implement types

Currently types are included as strings, and are not used in filtering results.

According to the spec types should be implemented as a JSON object with id and value fields.

Additional parameter to configure the view

Hello,
As for the Wikidata reconcile API, the view template for entities could not have the same domain as the reconciliation API (OpenRefine displays Wikidata candidates with an URL as https://www.wikidata.org/wiki/{{id}}). Would it be possible to add a new plugin configuration item to eventually replace the datasette instance URL (as specified below) for the "view" by a combination of a domain given as parameter and the id_field.

To be more concise, would it be possible to modify the domain of the URLs of the candidates:

2021-05-28 18_32_04-Diaz Levriou troet xlsx - OpenRefine

Thanks,

Add matching features

https://reconciliation-api.github.io/specs/latest/#dfn-matching-feature

A matching feature is a numerical or boolean value which can be used to determine how likely it is for the candidate to be the correct entity. It contains the following fields:

id
A string which identifies the feature, such as "name_tfidf" or "pagerank". This id must be unique among all the matching features returned for a given candidate;
value
The value of the feature for the candidate, which can be any boolean or numerical value.

Multiple matching features are often used in combination to provide the final matching score (available in the score field). By exposing individual features in their responses, services make it possible for clients to compute matching scores which fit their use cases better.

view URL should be absolute

Hello,
Thank you for v0.2.0 release. It works fine with OpenRefine. However, the suggested alignments have no active links (the tags have no href):

2021-03-30 10_10_20-Window

This is probably due to the fact that the url of the view in the manifest should be absolute:

"view": {"url": "http://www.example.com/database/table/{{id}}"}

the current version looks like:

"view": {"url": "/database/table/{{id}}"}

Might be solved using https://docs.datasette.io/en/stable/internals.html?highlight=absolute#absolute-url-request-path in get_view_url ?

def get_view_url(ds, database, table):

Allow filtering by properties

https://reconciliation-api.github.io/specs/latest/#structure-of-a-reconciliation-query

properties
Optionally, a map from property identifiers to a list of property values (or list of property values). These are used to further filter the set of candidates (similar to a WHERE clause in SQL), by allowing clients to specify other attributes of entities that should match, beyond their name in the query field. How reconciliation services handle this further restriction ("must match all properties" or "should match some") and how it affects the score, is up to the service;

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.