Re: Reconciling without names

In Freebase API, (and still somewhere in old Google Refine code) we
supported just the /mid call.
So the query would look just like

{"query":"/m/02mjmr"}
{"query":"%2Fm%2F02mjmr"}

Hmm, we still have the Recon command for it around:
https://github.com/OpenRefine/OpenRefine/blob/2.6-alpha1/main/src/com/google/refine/commands/recon/ReconMatchSpecificTopicCommand.java

For Reconciliation API, I think it would be best to allow querying directly
for an identifier as in my example above.  It may or may not include an
"identiferSpace" or "schemaSpace".
For the schemaSpace, I would like to see it kept simple such as /*/
And for identifierSpace, I have no opinions.

In GraphQL terms, it might look something like this:

{
  schemaSpace : {
    id: '02mjmr '
  }
}

in detail it could look like this:

{
  "/m" : {
    id: '02mjmr '
  }
}

or without schemeSpace, simply

{ id: '02mjmr' }

Incidentally, the Freebase.java file within here might be of use to you as
well for historical context...
https://github.com/OpenRefine/OpenRefine/blob/2.6-alpha1/extensions/freebase/module/MOD-INF/libsrc/google-api-services-freebase-v1-rev25-1.13.2-beta-sources.jar

Thad
https://www.linkedin.com/in/thadguidry/


On Sun, Nov 10, 2019 at 5:45 AM Antonin Delpeuch <antonin@delpeuch.eu>
wrote:

> Hi all,
>
> I would like to discuss one use case that I think the current API does
> not serve well, I think.
>
> The reconciliation API assumes that reconciliation queries contain at
> least a name (as basic search query). It is then possible to add other
> constraints (type, properties). However in many situations the user does
> not have any name to supply.
>
> The most common situation where this is a problem is when the user has
> access to a unique identifier, supported by the reconciliation service
> as a property. Supplying such a unique identifier as a property in a
> reconciliation query should be enough to identify the candidates, but in
> the current API a name also has to be provided.
>
> Currently, for Wikidata reconciliation, unique identifiers have priority
> over the search query, so if you find yourself in this situation you can
> use any random gibberish as name. If there is an exact match via some
> unique identifier that you supplied, the name will be ignored.
>
> Example:
>
> {"query":"a347682ebf327cbd37e834","properties":[{"pid":"P3500","v":"53616"}]}
> will return the item with Ringgold identifier "53616" even if the query
> has nothing to do with its name.
>
> However that is not extremely intuitive or user-friendly… So in a future
> version of the protocol I would be interested in making those sort of
> queries more natural.
>
> Any thoughts about how it should work?
>
> Cheers,
> Antonin
>
>

Received on Sunday, 10 November 2019 17:13:28 UTC