LUIS, change the culture and change also some function - azure-language-understanding

I'm learning Microsoft LUIS but I found a strange fedback using app in different cultures.
I'm italian so my app should have it-it as the culture but I saw that there are almost two things that are different from an app with culture en-us and one with culture it-it:
1) I can't use prebuild domains on italian app;
2) the entity "DateTimeV2" is not present and the first version of this entity don't seem work as well as DateTimeV2 used on the other app.
Could someone tell me if these difference could be caused because I have a free account?

At the moment DateTimeV2 is available for LUIS model based on model language. This limitation has no relation to paid or trial subscription and it is defined in this overview: Entities per culture
You might contribute to MS Recognizers-Text GitHub project to have all entities in Italian too.
The prebuilt domains are slightly different concept. You can create "own domain" as one of your LUIS applications. Once you are satisfied you may export the application definition to json
and then import this definition under new name when needed.

Related

Why are "machine-learned" entities and "descriptors" missing from LUIS?

Please see the screen below. In my LUIS authoring console, I seem to be missing the "machine-learned" entity type as well as the "descriptors" option in my left nav rail. The tutorials I am following--all recent as of this post--are showing that I need to use these options.
Have these options been deprecated or something? What am I missing?
Thanks in advance.
It looks like you're using the luis.ai portal instead of preview.luis.ai portal.
Creating entities in luis.ai portal:
Creating entities in preview portal:
There has been a change in how one models LUIS entities with the move from v2 to v3 LUIS API versions. LUIS is moving away from different types of entities towards instead moving to using a single ML entity to encapsulate a concept. The ML entity can have children entities to help describe or restrict what would be identified as that parent ML entity.
Changes in preview version of the LUIS portal are planned to switch over sometime post-Microsoft Build (2020) Conference.
Also it appears "descriptor" will be renamed to "feature" as well.

MS Bot Framework class names and label IDs are changed

I've been using MS bot framework - Chat bot in my project, and I've made some customization in the UI and other features of the Bot.
Most of my customization are based on the Class Names and Label IDs of the chat window
Example:
I've customized the place holder text of the chat input area as follows.
document.querySelectorAll('[aria-label="Sendbox"]')[0].placeholder = "Type your question";
It worked fine for a while and suddenly today it throws an error, after debugging i found that the label name has change from Sendbox to Message input box. Hence I need to change my code to
document.querySelectorAll('[aria-label="Message input box"]')[0].placeholder = "Type your question";
similarly, the class name also change in many places, one example is, earlier the class name for the bot message contains content and now its changed to markdown
So I'd like to know,
Why its getting changed,
Based on what it will changes, and importantly
How to avoid these changes
Unfortunately, you are at the mercy of Web Chat. Classes (and other components) are subject to change, which the Web Chat team does document, and therefore shouldn’t be relied upon, exclusively.
Sample 02.branding-styling-and-customizing/b.idiosyncratic-manual-styles demonstrates how a developer can implement customizations via Web Chat’s “createStyleSet”. This method is non-standard and considered NOT to be a best practice by the Web Chat team. It is made available, however, for the developer that needs to make specific changes beyond what Web Chat offers thru its default styling options.
It is not recommended because of the possibility of breaking changes when new versions of Web Chat are published.
This is equally true for any external projects that rely upon Web Chat and its inner workings, such as yours. (To be fair, this could happen with any application being relied upon. The Web Chat team is, at least, kind enough to inform you.)
As to why classes and the like change...any number of reasons. Most likely, there is a new feature or features being rolled in. Using the same classes, which might be used elsewhere or might include associated stylings or functionalities, may no longer be feasible or appropriate in a given instance.
Hope of help!

Best Practice Restful API Naming Conventions

We have a currently a large API which serves many different clients and apps. As we want to move forward, we are in discussion to split up our API endpoint into dedicated ones.
Our base-URL is like this api.domain.com/{apiVersion}
With this, we serve for example our main App and an Reseller App:
Users Endpoint: api.domain.com/v1/users
Resellers Endpoint: api.domain.com/v1/resellers/sales
Our Idea is to change that either into:
api.domain.com/users
api.domain.com/resellers/sales
or into:
users.domain.com
resellers.domain.com/sales
I didn't find any good best practices on that, so maybe some has an interesting link or some opinion on that matter.
My preference would be api.domain.com/..., as everything is an API and you dont have to change the base url, but the second one makes it more dedicated imho.
Thanks in advance.
It might be useful to review Roy Fielding on Versioning, Hypermedia, and REST.
Unfortunately, versioning interface names only manages change for the API owner’s sake. That is a myopic view of interface design: one where the owner’s desire for control ignores the customer’s need for continuity.
....
It is always possible for some unexpected reason to come along that requires a completely different API, especially when the semantics of the interface change or security issues require the abandonment of previously deployed software. My point was that there is no need to anticipate such world-breaking changes with a version ID. We have the hostname for that. What you are creating is not a new version of the API, but a new system with a new brand.
(emphasis added)
You can also review Fielding's slides from Evolve '13

Implement geo XACML using Authzforce and host it on heroku

I'm completely new to both the topics. Can someone help me with step by step tutorials to implement them?
An alternative to both of them can also be suggested.
First a word of warning: GeoXACML spec was written as an extension to XACML 2.0, since it was the last version of XACML at the time (last GeoXACML version dates back to 2011). Now, AuthzForce only supports XACML 3.0. Yet, this is no big deal, the XACML 2.0 terms and model elements used in GeoXACML can be adapted to XACML 3.0 easily (few changes to XACML schema in particular). If you have issues with that process, let us know. I strongly recommend to migrate to XACML 3.0 anyway, if you are still using XACML 2.0.
Back to the original question, assuming you agree to use GeoXACML with XACML 3.0, you can implement it in AuthzForce with just two kinds of AuthzForce extensions:
XACML Data-Types: as the name suggests, this is the kind of extension you have to implement in AuthzForce to support the new Data Types defined in section 6.3.1 of the GeoXACML spec v1.0.1. See the wiki page on AuthzForce's github repo to learn how to develop such extension.
XACML Functions: as the name suggests, this is the kind of extension you have to implement in AuthzForce to support the new Functions defined in section 6.3.2 of the GeoXACML spec v1.0.1. See the wiki page on AuthzForce's github repo to learn how to develop such extension.
With that, I think you're covered.
If you have AuthzForce-specific issues with the development of the extensions, please use one of the support channels mentioned on the github (or github issues).
I've reviewed your question and your comments throughout this thread. I understand you are new to XACML altogether. With that in mind, I will seek to elevate your understanding of XACML and how to integrate GeoXACML or generally implement geographical constraints in your policy in my answer.
Understanding XACML
The XACML policy language is as expressive as a natural language. For example, consider the following sentence:
Jane Doe wants to view a confidential document at work during regular
business hours.
A sentence like this includes four grammatical building blocks:
– a subject
– an action
– a resource
– the environment in which the request is made
Each of these “building blocks” can be described using attributes.
To create the authorization policies for an organization, you will want to collect the requirements from the individuals responsible for defining information security policies.
Next you would take the policies provided by the personnel responsible for authorization policies and identify the attributes.
We typically look at defining:
Short name: the user-friendly name of an attribute e.g. role or
citizenship. It is the name usually displayed in editors and
reporting tools.
Namespace: the context to which the attribute belongs. Namespace
follows the reverse domain name notation naming convention, like we
use in Java. So, if we have com.organization.user, we can append a
short name like role to create the fully qualified XACML attribute
identifier com.organization.role.
Category: a concept that comes straight from XACML that states an
attribute always belongs to a category. There are 4 commonly used
categories: subject, action, resource, and environment; they are
defined in step 2 of our tutorial.
Data type: a classification of the data. Attribute values can be of
different types in XACML. The most commonly used are string, integer,
and Boolean. There over a dozen data types available to choose from.
Value range: an optional field to specify a pattern or range of
provided values. Attribute values may be completely random (e.g. a
user’s first name). Others belong to a fixed list of values e.g.
state names or a pattern e.g. zip codes.
For more information on implementing ABAC in an organization, please check out the blog post I wrote on my employer's website here: https://www.axiomatics.com/blog/intro-to-attribute-based-access-control-abac/
I also have an article on my personal blog based on a StackOverflow question, "How to authorize specific resources based on users who created those in REST, using annotations?". The answer provides another good overview of XACML and ABAC in general.
Regarding GeoXACML and geographical constraints in general
I'm not sure of your exact use case, but I want to mention that ipAddress is a data type in XACML, in case it is suitable for your use case (i.e. your systems encounter ip addresses that are not routed through VPNs or other ip obfuscating methods, etc.). The list of data types can be found here: http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html.
I'm not aware of any software that offers GeoXACML out of the box with an enterprise grade XACML implementation. What we can offer here at Axiomatics - my employer - is to extend our software, Axiomatics Policy Server, for you to include GeoXACML or even other geographical features to your taste. (Note: When my colleague David Brossard was suggesting in an above comment that you "try Axiomatics PS," it stood for Axiomatics Policy Server.)
The "X" in XACML stands for extensible. And, indeed, the model is extensible enough to offer the flexibility that is required to perform such actions.
The XACML Core Specification version 3.0 actually has a section named XACML extension points, which list all the points where the XACML model and schema can be extended with new semantic. The extension points are:
Category
AttributeId
DataType
FunctionId
MatchId
ObligationId
AdviceId
PolicyCombiningAlgId
RuleCombiningAlgId
StatusCode
SubjectCategory
You can follow up with any questions here on StackOverflow or through the contact pages on the provided websites.
Best,
Michael

asp.net core identity pages (Razor class library) - Need them in spanish

I need to implement a website which will only be in use by Spanish speaking users.
I created a new asp.net core web application using individual user accounts (stored in app).
So far so good. The only problem is that the Identity Pages (Register, login, etc..) all display in English.
I would like to have these pages display in Spanish with the least amount of effort on my side.
I would like to avoid scaffolding if possible.
I would like to avoid having to localize all strings if possible.
I am hoping this Razor Class Library is available in different cultures.
So far I have unfortunately not been able to find a localized version of the Identity Pages in Spanish.
Does anyone know if they are at all available?
Thanks!

Resources