Rene Van den Heuvel, Global Product Expert, Axiell:
When learning about a new system, it’s impossible to remember each and every feature that the system offers, especially when those features are less obvious in the UI. This can also be true for keeping up with all the features in new releases.
One feature of Axiell Collections that some users may not be aware of or that may be under-used, a feature that is somewhat hidden but powerful nonetheless, is the ability to search in linked datasets.
This wonderful search functionality is best explained using examples. For instance:
- I need to find exhibition records that feature objects that were made by creators that were born in Melbourne.
- I need to find objects that were involved in outgoing loans that ended in 1990.
- I need to find film posters of films that have Tom Hanks listed as an actor.
The generic functionality that is available for this allows the user to search in linked databases/datasets and it is available in the Advanced Search tab. It does take a little preparation to build a query that gives the right result. One thing that needs to be done first, is to look up the field names in the linked database that you would like to search. For now, you need to take note of these fields or simply remember their names. In a future version of Axiell Collections, we plan on making this easier.
A step by step approach explains how to build a query that returns the expected result for the sample questions.
Example 1: I need to find exhibition records that feature objects that were made by creators that were born in Melbourne.
As we’re looking for exhibitions records, we’ll need to run the query in the Exhibitions database, but it does still contain search criteria from the creator record. We need to look at what data is part of the search question and where this data is stored in the database. When these search criteria are stored in other databases than the current Exhibition database, we need to understand how records are related in the database. In this case, we’re looking at three databases: Exhibitions, Object catalogue and Persons & Institutions. The query will include fields from all three databases and the first step is to find out what those field names are. Don’t be intimidated by this lengthy explanation. It is likely you already know some of this so you can skip these sections.
Step 1: Understanding how databases relate and which fields are involved
In the Exhibitions database, find the field that links to object records. If you don’t know this already, simply go to the screen tab where these links are managed and hover the mouse pointer over the field area (alternatively, right-click in the field and choose Properties). This will tell you that the field name is called object.object_number. See screen capture below.
Next, we need to know which field in the object record contains the creator name. This is a commonly used field but, if unknown, the same methodology can be used to find out. This field name is called creator. We need to use this field, because this is the field that links to the creator record where we can find the birthplace of the creator. It will become part of the query that we’re about to assemble.
Finally, we need to find out what the field name is that holds the birthplace of the creator. To find out, we go to a creator record in the Persons and Institutions database and follow the same methodology. Go to the screen tab that holds the field and hover over the field data area with the mouse pointer to make Axiell Collections show the field name, which is birth.place.
Step 2: Enter the query
In the Exibitions database, open the Advanced Search tab of the search function.
In the Search Statement Area you can enter the query. The query starts with the field that links exhibition records to object records.
Normally, the next thing to enter in a query would be an operator such as = (equals), but when searching in linked records we need to use the – and > characters, that is: ->
The -> connector either means that a query will be following or that another linked field is to follow.
In this case we want to reach creator records so we’ll need to enter the field that links an object to a creator record.
object.object_number -> creator
The last part of the query makes Axiell Collections select all creators that are born in Melbourne. To add that query, we use the connector characters again followed by the query on birthplace.
object.object_number -> creator -> birth.place = melbourne
When running this query, Axiell Collections will return all exhibition records that have linked objects that have a creator that was born in Melbourne.
Example 2: I need to find objects that were involved in outgoing loans that ended in 1990.
In this example, we’re looking for object records so the advanced query will run from the object catalogue. The loan status and date field that we need to check are managed in the loans database. Again, we need to lookup the field names of the field that links to the loans database and the field names of the status and date fields in the loans database.
The query will then look like this:
loan.out.number -> (loan_status = concluded and contract.period.end = 1990*)
Field loan.out.number is the field that links object records to outgoing loan records. The field loan_status is an enumerative field that has a list of fixed possible values of which ‘concluded’ is one of them. The field contract.period.end holds the end date of the loan contract in the loans record. The query part after the -> needs to be put between brackets because it contains multiple search criteria.
The * behind 1990 is a wildcard for everything that may come after 1990 ensuring all dates in 1990 are included.
Example 3: I need to find film posters of films that have Tom Hanks listed as an actor.
In this example, we’re looking for film posters that are managed in the object catalogue, so this is where we run our query. The query, however, includes fields from linked film records, namely the cast and cast type fields. To build the query you need to look up these field names in the film catalogue, in case you don’t know them already. These field names can be included in the query via the field that links object records to film records. The query syntax to reach fields in the linked dataset is via that field. The advanced query for this example is:
object_name = ‘film poster’ and related_object.reference -> (cast.name = ‘hanks, tom’ when cast.credit_type = actor)
related_object.reference is the field that links object records to, for example, film records in the film catalogue. Via this field we can reach and use the fields cast.name and cast.credit_type if we use the special connection characters -> . The query section after the -> connector is in fact a normal query that you could run directly in the film catalogue. Make sure to place this part of the query between brackets.