-
Notifications
You must be signed in to change notification settings - Fork 24
Implement "type_strict" #4
Comments
Hmm, Its not used on OpenReconcile... \source-archive\open-reconcile\trunk\reconcile\src\com\googlecode\openreconcile\server\Query.java
\source-archive\open-reconcile\trunk\reconcile\src\com\googlecode\openreconcile\server\ReconcileMatching.java I've reached out to David Huynh (original Freebase Reconcile server author) to find out for sure how or if he used to handle that "type_strict" parameter. |
We don't have any idea what this is, so let's just forget about it. |
This would actually be useful for #29. |
A lot of what was used in the Freebase reconciliation service derives from capabilities which were available in the Freebase Search API and Freebase Suggest, but the Freebase Search API was always woefully underdocumented with many more capabilities in the code than the docs. This isn't in the seach API docs, but I don't remember if it was in the search API or something implemented separately by Refine. In any case, the description in the issue is correct, I believe, except that "intersection" isn't how I think of the "all" case. Given a list of types, candidates for "all" are required to have every type on the list, whereas "any" means that only a single type from the list is needed. As you guessed, "should" uses the types for scoring, but doesn't do a hard filter on them. |
@tfmorris Sorry, I should have updated this issue after I found the info 3 years ago. Actually, I did eventually remember that Andi Vajda and I documented on the Freebase Wiki very well and had to use my email search to find what it was called, "filter constraints".... that eventually got translated into the official API docs... It's combining behavior is documented here (scroll down just a bit):
|
This would be very useful for the Cita add-on for Zotero, which uses openrefine-wikibase to fetch matching QIDs from Wikidata for bibliographic works. Strict and flexible type matching are both important in Cita: if matching is too strict, items classified with the wrong type in Zotero may return no matches, and users may create duplicates; if matching is too flexible, QIDs returned may correspond to items with the same name but of other type (diegodlh/zotero-cita/issues/101), and users may end up working on the wrong item. As a workaround, I will implement two calls to openrefine-wikibase: one for a specific item type, and a second one for a more general item type; and treat any matches from this second call as partial matches. |
@diegodlh good to know! There are various proposals in this issue about what this parameter should do. It would be super useful if you could describe precisely how this should work for it to be useful for your use case. |
@thadguidry: can you point me to the description of what each value of "type_strict" should do?
I can see that it expects "any", "all" or "should", but I'm not sure what they mean. I think the interface currently implements the "any" mode: items have to match at least one type provided (so, the union). I guess "all" means the intersection of the provided types. About "should", I suppose it becomes a soft constraint? How is it specified?
The text was updated successfully, but these errors were encountered: