-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Get mapping recommendations via Reconciliation API #84
Comments
Two examples of Reconciliation requests against Wikidata in German: The source code is available here in Python. Same example from of Reconciliation requests against GND:
Relevant fields {
"reconciliationProviders": [
{
"scheme": "http://bartoc.org/en/node/18785",
"url": "https://lobid.org/gnd/reconcile",
"namespace": "http://d-nb.info/gnd/"
},
{
"scheme": "http://bartoc.org/en/node/1940",
"url": "https://lobid.org/gnd/reconcile",
"namespace": "http://www.wikidata.org/entity/"
}
]
} Further extension is possible to filter by entity type (after #57 has been implemented). |
These should appear as mapping recommendations (letter This feature depends on #168 to be implemented first. |
I'm currently trying to implement this as a provider, but I have trouble with Lobid's Reconciliation API. The Wikidata one seems to work fine, but I wasn't able to get a successful response from Lobid's API using axios, no matter what I tried. Any idea, @nichtich? |
Works well already with Wikidata. Example registry for config see top of reconciliation-api-provider.js.
I added a first implementation without adding a config entry yet. To test it, add the following registry entry to the config (for Wikidata): {
"uri": "http://coli-conc.gbv.de/registry/wikidata-reconciliation",
"notation": ["R"],
"prefLabel": {
"de": "Wikidata-Reconciliation",
"en": "Wikidata Reconciliation"
},
"provider": "ReconciliationApi",
"subject": [{
"uri": "http://coli-conc.gbv.de/registry-group/automatic-mappings"
}],
"scheme": {
"uri": "http://bartoc.org/en/node/1940"
},
"baseUrl": "https://tools.wmflabs.org/openrefine-wikidata/{language}/api",
"namespace": "http://www.wikidata.org/entity/"
} Note that the provider will only be shown if Wikidata is chosen on one side. The requests are pretty slow, but the results seem to be helpful. It already supports a local cache (just like the occurrences provider), both sides, and mapping types (currently exact match if While implementing this, I was wondering whether we should have one registry for each target scheme or rather create a wrapper API that receives for example the labels and target scheme and internally choses the right API endpoint. That would be one more thing to maintain though... Also, I'm pretty sure there's something wrong with lobid's Reconciliation API because adjusting the examples provided by the OpenRefine Wiki page does not work. I'll send them an email and ask for advice. |
ebc9bdf changes how the provider accesses the API, now supporting the lobid API. Unfortunately, the requests still get blocked by CORS, but I already sent them an email about that. |
They will add the appropriate header to the API. It's already working with their test system, but I will wait until they deployed the change into the production system before adding the registry to the default config. Afterwards, I would close this issue. |
OpenRefine Reconciliation API can be used to map labels to concepts. Reconciliation API endpoints are available at least for Wikidata and for GND (http://blog.lobid.org/2018/07/02/lobid-update.html) to start with. The recommendations could be shown alternative to occurrences or together with existing mappings in the mapping browser.
Field
match
andscore
can result in JSKOS mapping type (closeMatch or exactMatch?) andmappingRelevance
The text was updated successfully, but these errors were encountered: