Aristotle API - Integration to Legacy Systems


I am interested in examples of how Aristotle has successfully integrated with Legacy Systems. I am based in Ireland and work as a Information Architecture Lead for the Irish Health Service Executive (HSE) and would like to learn about how the tool has been integrated to legacy systems through the API and the steps involved. Thankyou Martin.

1 Like

Hey Martin thanks for joining the community.

@Michael has demonstrated some examples he’s developed using the API here:

And @Waylon and @Adrian have some examples on authenticating through the API that might be useful here:

There are a few questions on the community from other end users as well, so there should be a lot of helpful answers for you!

Hi Martin,

I’ve worked on a few API operations maintaining our metadata holdings.

One thing I worked on was using the API to synchronise metadata holdings between Aristotle (our master) and Cloudera Navigator in a Data Lake environment (mirror containing only a subset of Aristotle’s holdings).

To do this, I used graphQL to gather all the information I needed about a group of distributions of interest.

  1. With a nominated list of distribution UUID’s, call graphQL to get from each distribution a complete list of:
  • Data Elements contained therein
  • Value Domains of each Data Element
  • Permissible Values of that Value Domain if applicable
  1. For each distribution, generate a json file compatible with the Cloudera Navigator API.
  2. FTP the json files to a Unix server which has access to Cloudera.
  3. BASH script on the unix server calls the Cloudera Navigator restful API and store each json file containing all the new Aristotle data.

As far as technologies go, to invoke graphQL in Aristotle I’m just using VBA.
To load JSON files into Cloudera, I’m using a BASH script invoked from a Unix machine.

Are you interested in examples of the graphQL query I call to gather distribution/dataelement/valuedomain information?

Other things I’ve worked are aimed at making maintaining metadata within Aristotle a little easier. For example, we had to consolidate two identical value domains that were linked to a large number of data elements. It made no sense to have two separate value domains, and it would be painful to use the Aristotle UI to click through every link and merge one into the other. So I just wrote a few API calls to discover all the links that need updating, and make the changes (swapping the old value domain for the new). Similar routines swap data elements within distributions and so on. But this isn’t about integration with legacy systems, just maintenance.

Hope this is useful. If there’s something more specific that I can go into detail with, just let me know.

Warm regards,


Hi Michael and Sam thanks very much for your replies.

It is great to get a heads up on the tools being used to access the API.

Is most of the work you have carried out Micheal based on linking metadata to a data lake?

Do you have examples of this and the domain e.g. Health, Social Services? they are related to?

I would be interested in examples of the graphQL query you call to gather distribution/dataelement/valuedomain information.

I would also be interested in understanding the steps involved in linking a legacy DB schema to Aristotle is this possible? Have you done this?

Thank you


Hi Martin,
Sorry for not replying sooner, I’ve had my head buried in Python and am working on shifting my API work to this language.

Most of the linking to other systems has been to our data lake currently. I’m interested in dropping some extracted metadata into some landing tables (maybe SQL Server or Postgres, whatever I can get my hands on really) and look into migrating content to other tools from there.

Other API work I have done is the administrative kind of functions I wrote about earlier.

I’ll post again with a simple query on gathering distribution/dataelement/valuedomain information, about to fall alseep :), just passed midnight.

Warm regards,


Here’s a little query where you specify a dataset specification uuid of interest, and retrieve a few details of interest, including:

  • Dataset Specification details
  • Data Elements linked to it
  • Current registration details of each of those Data Elements
  • Value Domain of each of those Data Elements
  • Permissible Values of each of those Data Elements

It’s a greedy query, reaching for a lot of information, which is why I limit it to processing just 1 dataset specification uuid. Should give you an idea of how you can apply it elsewhere.