Skip to content

Legend FAQs

Beeke-Marie Nelke edited this page Aug 30, 2021 · 12 revisions

General

What is the Legend Platform?

Legend is an open sourced end-to-end data management and data governance platform that enables both technical and non-technical users to develop data-centric applications and derive data-driven insights. It provides solutions to data problems that especially firms in the financial industry face on a day-to-day basis – namely gaining access to accurate, complete and timely information. Traditionally, complex financial data is hard to process efficiently and safely which is why data usually ends up scattered across organizational silos. Legend addresses these industry-wide data challenges with its intuitive approach to data modelling and processing. Legend provides both developers and non-developers with access to fast, easy and secure information via intuitive and self-service driven tools. It offers solutions for data discovery, transformation and delivery while ensuring the data consumed is of the highest quality. Legend’s most winning attributes are the easy-to-create data models which describe data in business-friendly terms. The platform is also backed by a powerful Execution Engine, which enables users to leverage their data models in numerous business workflows, and robust Change Management (SDLC), ensuring data models are governed and safe to use in live business processes.

Where can I find an overview of Legend?

Please visit the Legend website. https://legend.finos.org/docs/getting-started/getting-started-guide

Why should I use Legend?

Legend provides a full, end-to-end data platform experience covering the full life cycle of data. It will help you tackle various internal data problems - including but not limited to - access to accurate, complete and timely data as well as breaking down data silos. Front and center of the data platform is the data modeling tool Legend Studio which allows engineers and non-engineers alike to describe, connect, visualize, and query data to increase efficiency and cross-divisional collaboration. As Legend is open sourced, you can also connect to a variety of industry standards (such as the CDM) in the form of data models.

How can Legend expedite FinTech technology?

Firstly, through facilitating the collaborative development of industry standard models using Legend Studio which will help lower barriers to entry for FinTech companies. Secondly, as FinTech companies provide solutions to industry challenges, Legend can be used to help participants (buy and sell side) map and integrate with their solutions for easier adoption.

Is Legend linked to any Goldman Sachs infrastructure?

No, Legend can be installed and runs completely independent of GS infrastructure. GS consumes the open sourced version of Legend just as other financial institutions do.

Data Modeling

Complex Data Types: Does Legend support common complex data types that can be utilized by many models?

Yes, Legend supports common complex data types. For  example, you can define a Money class that can be re-used by many models. How? Users can create a common project and depend on it (note: project dependencies are not yet fully open sourced).

Common Classes: Does Legend support common classes that can be utilized by many models?

Yes, Legend supports common classes. See also question 1.a. Users can group common classes into a single project and depend on it (note: project dependencies are not yet fully open sourced).

Regular Expression matches: How do we add a regular expression check for a constraint? Example I want the property to be nonemptystring allowing only alpha & numeric.

This would be handled via the matches function in Legend PURE. It is not yet open sourced.

Uniqueness constraint: Is there any existing function that can be used to implement the uniqueness constraint on a model parameter? Can you share an example of how it could be used? 

Constraint syntax: uniqueEmployee: $this.employee->size() == $this.employee->distinct()->size() [Pending link to showcase model]

Re-usable constraints: How and where should I build reusable constraints to optimize the Modeling experience? For example, if all of my string properties are to be validated a certain way, how do I create reusable functions & reuse them?

Legend allows you to write constraints on classes that can be re-used. For example, if you define the constraint on "Money" class that the quantity must be greater than zero, then that constraint is checked when you perform queries on top of the "Money" class. Is is not possible to apply constraints on the primitive data types (e.g. string, number). The Legend team is looking into adding this feature. As a workaround, users can create a non-primitive class that resembles the primitive class.

Does Legend support tagging enterprise data models classes as URI (Uniform Resource Identifier)?

Yes, via Profiles which can be used to create and add stereotypes (=labels) and tagged values (=free-text additions) to build metadata extensions to your data models.

Does Legend allow you to express mutually exclusive classes/sub types? For example class1 "Married Person" and class2 "Unmarried Person".

This is not supported. However, Legend does allow you to express this exclusivity via constraints.

What are some general best practices for setting up the project structure in Legend for larger organizations?

This very much depends on how the organization wants to manage their data models. It may be recommended setting up projects along data domains with versioned dependencies between them. This facilitates change management. Legend supports workspaces for developers to implement features, but all changes are merged back to the master branch and releases are driven by the master.

Sharing & Integration of Data Models

Does Legend generate draft-07 Json schema from PDM

Yes, you have to be in the root class to be able to generate JSON Schema but as a user in the UI, you can simply click on the top right hand corner where it says FORM to produce any schema formats such as JSON, Protobuf, etc. You can also perform the same action via a Service call to SDLC & Legend Engine

Can data models be shared in a read-only format?

Yes, this is supported but users need to be added to the underlying GitLab project for authorization. Sharing diagrams as an endpoint/url is not supported but the data model as a whole is.

Do you have any specific information about how Legend integrates with the BI tools, which services does Legend provide to business intelligence tools, and how do the users of the BI tools benefit from these integrations?

Internally, the Legend Query and Cube components provide data to BI tools either through services (APIs) or as direct queries (by accessing the Legend platform using SQL through Presto). BI tools need curated/governed data and Legend can smoothly integrate with these tools (not replace them!) via pipelines. Legend Query is already open sourced and would allow you to build these integrations locally but the set up would be specific to your environment. Happy to discuss this in more detail with everyone who is interested.

Diagram

Does the diagram view support creating different colors or line formats to make the data model easier to read?

Not yet, but we will likely add in the future.

What improvements are planned for he Diagram view in Legend Studio?

We just reworked the diagram editor. You now interact with the diagram more intuitively and can directly create property, class, inheritance relationship in the diagram.

What UML class diagram features does Legend PURE support? 

The PURE language currently supports: Classes, Associations (with cardinality), Qualified Associations, Inheritance, Enumerations, Tagged Values, Stereotypes and Annotations.

Model import/export

Is their ability to export the list of attributes in a data model with their types, definitions etc.?

Legend allows exporting to a number of formats such as JSON Schema, Protobuf & AVRO but CSV or XLS is not yet supported.

Does Legend support importing JSON schema?

There are two formats supported by the Model Loader: Entity and Pure Protocol, JSON schemas are not currently fully supported (Legend team is working on it). Of the two, the Entity format is the most appropriate for model migration here since it is Pure agnostic and simpler. Examples of the Entity format may be created in Studio by selecting 'JSON' when viewing a model (in Forms mode), the result is wrapped in "content" element along with a "classifierPath".

Model-to-Model Mappings

Can we define a mapping between multiple source models to one target data model?

Yes, this is possible via the union operation. Please see example in the Legend showcase project (#4) [link to be added].

Installation

How can I install Legend ? Are installation docs available?

Please find the installation guide on the Legend website here: https://legend.finos.org/docs/installation/installation-guide

Where can I find the latest release of the Legend codebase?

Please refer to https://legend.finos.org/releases for finding the latest releases & release notes.

What options of deployment/installation are currently supported for Legend?

We currently support Maven install, AWS Docker Install, Docker Compose. See details here: https://legend.finos.org/docs/installation/installation-guide

Common Domain Model (CDM)

How can I access the CDM in Legend?

The CDM can only be accessed through the shared version of Legend hosted by FINOS. Access can be requested here: https://www.finos.org/legend The CDM will not be accessible via locally installed versions of Legend.

Legend Data Modeling Working Groups

How can I suggest enhancements to existing models in Legend Studio?

You can simply submit for review your proposed model changes within Studio, and the project members will get notified. If instead the enhancement needs collaboration and further discussion with members, then you can raise a Github issue in the Financial Objects Repository with the proposal, and the FINOS team will gauge interest from the community. https://github.com/finos/financial-objects/issues

What is the approval process for proposed changes to models maintained in the public instance of Legend (e.g. ISDA's CDM)?

Legend currently leverages Gitlab SDLC for approving and merging data model changes. Code review is initiated through Studio and changes are then able to be viewed in GitLab before approval. This means, model changes can be completely managed in the Studio UI. Generally, we encourage users working on data models to customize their own approval process leveraging out of the box GitLab functionality. For the CDM specifically, the ISDA ARC offer governance and review of changes before being able to commit back to the golden source in Rosetta.

Clone this wiki locally