-
Notifications
You must be signed in to change notification settings - Fork 31
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
Location Verification Implementation Guidelines #85
Comments
@alpaycetin74 Yes, that is exactly the proposal. There are 2 problems:
From a technical point of view, implementing this formula is feasible. Concern is more about from a Product/UX perspective |
In the figure on the left, the network provided area has a much larger radius than the request area, so there is a good chance the real location falls outside the requested area. I think it makes sense the matchrate is calculated as a small value in this case. |
Comments raised during meeting on August 1st:
|
Hello If I got it right @alpaycetin74 the 'formulae' to calculate the matchRate should be a bit more complex - something like this: There is indeed a risk that often the matchRate is low. In your diagram in left @jlurien - when the requested surface is too small to the network surface checked I guess we should ask for a larger surface in the request. Alternatively, another option could be to internally calculate the matchRate - not provide it - but instead in the response for True/False provides a 'confidenceRatio'. If matchRate between 1 to 0.51 (for example) we answer True with confidence status = matchRate Happy to discuss this. |
We may all agree that cases where network accuracy is low are the problematic ones. The proposal to introduce a confidence rate along with True/False is interesting. With bad accuracy, matchRate will be low (below 0,50) and answer would be False in almost all cases. However, with PARTIAL as it is now, there will be few cases where response is TRUE 100%, so we may have PARTIAL answers in most cases. |
I tend to think API performance is more related to the intersection area/network provided area ratio. Other than that, returning FALSE with 1-matchRate is an interesting approach. Instead of saying "we are slightly sure it matchesé , we say "we are pretty much sure it won't match". It is a nice trick to give the impression we are confident in what we are doing :) |
I feel the specification should also document the math behind the calculations on arriving at the result so that the response is uniform across implementations. As we see here in this discussion there is lot of ambiguity and everytime I look at it my interpretation differs. @bigludo7 rightly started putting some math details here and it would be a good idea to document it in the spec for each of the cases. |
Agree that we should have the implementation guidelines documented, but first we have to agree on them. Definitely something required prior to release any v1 |
I think the implementation guidelines document is very useful. But there is a problem: the criteria are worded differently to the YAML definition (02.0-wip). This leads to ambiguity, and at least in one case, a different decision. Here's a comparison:
Two concerns:
The YAML says: The network locates the device within the requested area, the verification result is TRUE. Since the request area is within the Network location area, the answer is TRUE – because the actual device location within the Request Area will always be part of - or 'within' - the superset of all locations in the Network location area. But the guidelines document says: _ “Request Area within Network Area” as “PARTIAL”. _ “Request Area within Network Area” is the scenario in the diagram above., so according to guidelines, the answer is PARTIAL. Hence we have a different answer depending on the wording of the criterion (YAML vs Guidelines), and until both documents use the same wording we have ambiguity.
"The requested area may not match the area where the network locates the device" - "may not" is not definitive. "The requested area is outside the area where the network locates the device" is clearer Recommendation: we use one set of criteria for both the guidelines and the YAML, and include the guideline illustrations in the API document. |
Thanks @Kevsy, as @alpaycetin74 mention, the wording in the spec has been (hopefully) improved in the latest PR. Regarding your specific comments, please see inline:
We may need to clarify the wording if it leads to confusion, but the scenario in the picture should be PARTIAL. The yaml says for TRUE: "the network locates the device within the requested area", which means that the "network area" (= the area where the network locates the device) is within the "requested area", so it is wrong to assume that this is "Since the request area is within the Network location area,", cause is the opposite. It should not be TRUE, but PARTIAL, because the operator cannot assure that the device is exactly within the requested area, because the network area is bigger.
The latest version of location-verification uses the wording:
We may change that to "is outside" if it is more clear. As an AP from the last meeting, we are going to prepare a document for the implementation guidelines, trying to be more descriptive. Any suggestion to make it more understandable is very welcome, specially from native speakers. |
Thanks - yes, my point was that the (main branch) wording led to a different interpretation from the Guidelines. It may help to have a formal declaration at the end of the YAML, after the 'plain language' definition, e.g. Let R = the set of all possible locations within the Requested Area The following conditions lead to the verification results stated:
|
@Kevsy |
yes - see the earlier illustration from @alpaycetin74 |
Hello, that was my opinion, but we had not reached a consensus back then. There is no description in the rc spec about calculating the matchRate yet. |
Yes, that formula is also what is proposed in the document attached to this issue (matchRate (%) = Intersection Area / Network Area). In the last meeting we concluded that it may not be perfect but it is the one with more consensus so far, so it is convenient to reflect this officially in order to have consistent implementations. If we design a better formula in the future we may adopt it. |
Thanks. We recently rephrased the explanations in the spec, based on the suggestions by @alpaycetin74 |
I think a formal description is really helpful.
|
@Marcus-MMJ Good catch! Thanks for the fix :) |
I think that the current phrasing in the PR consolidates all the discussion. Please take a final look so everything's fine. Thanks for the constructive feedback. |
In the case of:
So that the Network is fully including the requested Area, what would than be the matchRate ? (based on {
"verificationResult": "PARTIAL",
"matchRate": 100,
"lastLocationTime": "2023-09-07T10:40:52Z"
} But that does not make really sense as the device can be located on the "other side" of the circle. wdyt @jlurien ? |
But in this cas @maxl2287 at the question: Does the device is in the R area we could answer yes with a 100% certitude right? so for me matchRate=100 make sense. |
Let's say the network provides a huge radius (like a cell) where the device is located. N = Location Area of the Device provided by the Network (1.) - here the device is located exactly in the verification area = 100% |
Sorry @maxl2287 I'v mistunderstood
|
It's as @bigludo7 explains. Regarding your original assumption, (R ∩ N) / N * 100), in this case if R is totally within N, then (R ∩ N) is R, so matchRate is ratio R / N, being R <<< N --> matchRate <<< 1 |
Problem description
There is no clear guideline about how to implement the response to location-verification, when result is PARTIAL, and it is not obvious how to calculate the matchRate
Expected action
Trigger discussion and agree on some guidelines for common implementation.
An initial proposal is presented, to cover several scenarios that may happen. Also with comments and concerns.
Additional context
Word Document:
Location Verification Implementation Guidelines.docx
The text was updated successfully, but these errors were encountered: