The so-called Orléans Sale is a major touchstone in European provenance studies. This query drills down on the auction-event
, getting to individual paintings and then providing information on their trajectories (chains of ownership) going forward.
Related entries: Getting from auction events to individual lots (0003).
Introduction
This SPARQL query was the basis for generating an alluvial flow chart that was used in the May 11, 2025 Getty Provenance Index Remodel launch event (see below. Credit: Giulia Taurino) A key difference between what is visualized there, versus this query, is that her visualiztion tracks all paintings, by all artists, involved in the sale (narrowing to three artists via post-SPARQL data processing). The query below focuses in particular on the works of Paolo Veronese (see Step Two).
Query
PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
PREFIX la: <https://linked.art/ns/terms/>
SELECT ?painting_label ?artist ?seller ?buyer ?timespan ?current_owner WHERE
{
# Step 1: Get all of the paintings from this auction event
?auction_of_lot ?p <https://data.getty.edu/provenance/64b214a8-9870-30a5-841b-46f3e2530202> .
?auction_of_lot rdfs:label ?auction_of_lot_label .
?auction_of_lot crm:P67i_is_referred_to_by ?stock_book .
?stock_book crm:P129_is_about ?painting .
?painting rdfs:label ?painting_label .
OPTIONAL {?painting crm:P52_has_current_owner [rdfs:label ?current_owner] .} .
# Step 2: Find the paintings by Veronese
?painting crm:P108i_was_produced_by ?production_event .
?production_event crm:P9_consists_of ?production_sub_event .
?production_sub_event crm:P14_carried_out_by <https://data.getty.edu/provenance/defc6f67-9c9d-363f-919c-356d2ea8463d> .
# Step 3: Get the sale history of each painting
?acquisition_event crm:P24_transferred_title_of ?painting .
?acquisition_event rdfs:label ?acquisition_event_label .
OPTIONAL {?acquisition_event crm:P22_transferred_title_to [rdfs:label ?buyer].} .
OPTIONAL {?acquisition_event crm:P23_transferred_title_from [rdfs:label ?seller].} .
?acquisition_event crm:P4_has_time-span [crm:P82a_begin_of_the_begin ?timespan] .
FILTER NOT EXISTS {FILTER CONTAINS (?acquisition_event_label, "Subsequent").}
FILTER NOT EXISTS {FILTER CONTAINS (?seller, "Orléans").}
}
ORDER BY ?painting ?timespan
Commentary
There’s a trick to each step, so let’s go over them. The query illustrates a couple of principles.
Step One
- Line 6: When drilling down on an
auction-event
—which is what the Orléans sale is—it is crucial that users understand the connection betweenauction-events
,auctions-of-lots
, andlots
. Commentary on this relationship can be found in Getting from auction events to individual lots (0003). Reading0003
will help to make some sense of what follows. However, in the current example, we follow a different path fromauction-event
topainting
. This is because, while all sorts of data on the sale are contained at theauction-event
,auction-of-lot
, andlot
levels, none of it relates directly to thepainting
itself. Information on paintings is found along a separate path, described below. - '
auction_events
are made up ofauction-of-lots
(again, see0003
—in this case, these are described as “Private Contract Sale of Object Set” with a stock number and reference number appended to the end: see for example). Theauction-of-lots
have to be connected topaintings
by stockbook entries (P67i_is_referred_to_by
). It is the stockbooks that connect to paintings (P129_is_about
). So instead of a single jump, one needs to jump across two resources to connect the Orleans auction to all of the associated paintings.
- Line 6–7: “The Wobble.” This method employs “the Wobble,” which is just a fancy way of refering to a backwards-then-forwards movement from one graph to another. Consider the first element—the looking-backwards—to be equivalent to Arches’ “Related Resources.” Because we begin with a particular
auction event
and need to get back to the resources that refer to it, we put the Orléans Sale (in particular, its URI) into the object position in Line 6, and the putativeauction of lots
into the subject position. This produces a whole host ofauction-of-lot
activities in the results. The Wobble is completed via the subsequent step (Line 7), where thoseauction of lots
become the basis for “wobbling” back in the other direction, hitting all of the resources specified by eachauction of lot
. In this case, we delimited this by using the predicatecrm:P67i_is_referred_to_by
, which limits us to entries in textual sources (in this case, stock books).
Step Two
- Line 13–14: A few words about the relationship between
paintings
,production events
, andproduction sub-events
. One has to negotiate them in several steps, in order to get toartists
. The relationship is as follows.
As you can see, the painting
resource contains information, specified by P108i_was_produced_by
, about a production-event
. That activity contains multiple production sub-events
, which link via P9_consists_of
(Line 14).
2. Line 15: Once we get to production sub-event
, we can access the artist via the P14_carried_out_by
property. In this case, we insert the URI for Paolo Veronese. However, in principle, replacing that with a variable artist
would return all artists.
Step Three
- Line 17: We need to Wobble again, putting the
painting
into the object position and getting all of the subjects related through theP24_transferred_title_of
property. In this case, each one ought to yield at least oneacquisition_event
. - Line 19–21: From there we complete the Wobble, getting information on
buyers
,sellers
, andtimespans
, using the relevant properties. - Line 22–23: After this we have a series of filters to remove elements that simply do not work for our query. Anything with ‘subsequent’ in its title is duplicative of results we are already getting, and we do not need sales in which Orléans is the seller—since that is our starting point.