# Chapter Seven: Querying at the conceptual level

_Queries by type and role, aggregates, and derivation rules_

If you are starting here, run the full schema and the data from [Chapter Six](../06-population-and-conformance/index.md) in an empty database.

TypeQL queries use the model’s types, roles and attributes. A query describes a pattern, and TypeDB returns every match in the data. Try writing each query yourself before reading it. Each one states its expected number of answers.

## [](#_by_type_polymorphically)By type, polymorphically

All countries and their names (7 answers):

```typeql
#!test[schema]
#{{
define

attribute name, value string;

### Places ###

attribute country_name, sub name;
attribute province_name, sub name;
attribute kabupaten_name, sub name;

entity place @abstract;

entity country,
  sub place,
  owns country_name @key;

entity province,
  sub place,
  owns province_name @key;

entity kabupaten,
  sub place,
  owns kabupaten_name @key;

### Places hierarchy ###

relation containment,
  relates parent @card(1),
  relates child @card(1);

entity country,
  plays containment:parent;
entity province,
  plays containment:child @card(0..1),   # at most one parent
  plays containment:parent;
entity kabupaten,
  plays containment:child @card(0..1);   # at most one parent

### Companies and facilities ###

attribute facility_name, sub name;
attribute mill_name, sub facility_name;
attribute refinery_name, sub facility_name;
attribute company_name, sub name;

entity legal_entity @abstract;

entity facility @abstract,
  sub legal_entity,
  plays ownership:owned @card(0..1);   # at most one owner
entity mill,
  sub facility,
  owns mill_name;
entity refinery,
  sub facility,
  owns refinery_name;

entity company,
  sub legal_entity,
  owns company_name @key,
  plays ownership:owner;

relation ownership,
  relates owner @card(1),
  relates owned @card(1);

# companies can also be owned (by a parent company)
entity company,
  plays ownership:owned @card(0..1);

### Commodities ###

attribute commodity_name,
  sub name,
  value string @values("PALM OIL", "REFINED PALM OIL");

entity commodity,
  owns commodity_name @key;

### Trade flow ###

attribute volume_tonnes, value double;
attribute deforestation_ha, value double;
attribute usd, value decimal;

relation trade_flow,
  relates origin @card(1),
  relates mill @card(1),
  relates refiner @card(0..1),   # optional
  relates exporter @card(1),
  relates importer @card(1),
  relates destination @card(1),
  relates commodity @card(1),
  owns volume_tonnes @card(1),
  owns deforestation_ha @card(1),
  owns usd @card(1);

entity kabupaten, plays trade_flow:origin;
entity mill, plays trade_flow:mill;
entity refinery, plays trade_flow:refiner;
entity company,
  plays trade_flow:importer,
  plays trade_flow:exporter;
entity country,
  plays trade_flow:destination;
entity commodity,
  plays trade_flow:commodity;
#}}
#!test[write]
#{{
insert

## Places ##
$country_indonesia isa country, has country_name "INDONESIA";
$country_spain isa country, has country_name "SPAIN";
$country_netherlands isa country, has country_name "NETHERLANDS";
$country_greece isa country, has country_name "GREECE";
$country_italy isa country, has country_name "ITALY";
$country_bulgaria isa country, has country_name "BULGARIA";
$country_belgium isa country, has country_name "BELGIUM";
$prov_kalimantan_timur isa province, has province_name "KALIMANTAN TIMUR";
$kab_mahakam_ulu isa kabupaten, has kabupaten_name "MAHAKAM ULU";
$kab_kutai_kartanegara isa kabupaten, has kabupaten_name "KUTAI KARTANEGARA";
$kab_berau isa kabupaten, has kabupaten_name "BERAU";
$kab_penajam_paser_utara isa kabupaten, has kabupaten_name "PENAJAM PASER UTARA";
$kab_paser isa kabupaten, has kabupaten_name "PASER";
$kab_kutai_timur isa kabupaten, has kabupaten_name "KUTAI TIMUR";

## Containment ##
containment (parent: $country_indonesia, child: $prov_kalimantan_timur);
containment (parent: $prov_kalimantan_timur, child: $kab_mahakam_ulu);
containment (parent: $prov_kalimantan_timur, child: $kab_kutai_kartanegara);
containment (parent: $prov_kalimantan_timur, child: $kab_berau);
containment (parent: $prov_kalimantan_timur, child: $kab_penajam_paser_utara);
containment (parent: $prov_kalimantan_timur, child: $kab_paser);
containment (parent: $prov_kalimantan_timur, child: $kab_kutai_timur);

## Commodities ##
$com_refined_palm_oil isa commodity, has commodity_name "REFINED PALM OIL";
$com_palm_oil isa commodity, has commodity_name "PALM OIL";

## Companies ##
$co_fangiono_agro_plantation_fap_agri isa company, has company_name "FANGIONO AGRO PLANTATION (FAP AGRI)";
$co_first_resources isa company, has company_name "FIRST RESOURCES";
$co_adhitya_serayakorita isa company, has company_name "ADHITYA SERAYAKORITA";
$co_kuala_lumpur_kepong_klk isa company, has company_name "KUALA LUMPUR KEPONG (KLK)";
$co_louis_dreyfus isa company, has company_name "LOUIS DREYFUS";
$co_ldc_east_indonesia isa company, has company_name "LDC EAST INDONESIA";
$co_triputra_agro_persada isa company, has company_name "TRIPUTRA AGRO PERSADA";
$co_astra_agro_lestari isa company, has company_name "ASTRA AGRO LESTARI";
$co_low_yat isa company, has company_name "LOW YAT";
$co_rea_holdings isa company, has company_name "REA HOLDINGS";
$co_wilmar isa company, has company_name "WILMAR";
$co_wilmar_nabati_indonesia isa company, has company_name "WILMAR NABATI INDONESIA";
$co_padasa_enam_utama isa company, has company_name "PADASA ENAM UTAMA";
$co_eagle_high_plantations isa company, has company_name "EAGLE HIGH PLANTATIONS";
$co_dharma_satya_nusantara_dsn isa company, has company_name "DHARMA SATYA NUSANTARA (DSN)";
$co_teladan_prima isa company, has company_name "TELADAN PRIMA";
$co_tsani_hutani_abadi_tha isa company, has company_name "TSANI HUTANI ABADI (THA)";
$co_sinar_mas isa company, has company_name "SINAR MAS";
$co_sinar_mas_agro_resources_and_technology isa company, has company_name "SINAR MAS AGRO RESOURCES AND TECHNOLOGY";
$co_golden_agri_international isa company, has company_name "GOLDEN AGRI INTERNATIONAL";
$co_widya isa company, has company_name "WIDYA";
$co_dharma_agung_wijaya_daw isa company, has company_name "DHARMA AGUNG WIJAYA (DAW)";
$co_casa_olearia_italiana_s_p_a isa company, has company_name "CASA OLEARIA ITALIANA S P A";
$co_ital_bi_oil_srl isa company, has company_name "ITAL BI OIL SRL";
$co_mp_evans isa company, has company_name "MP EVANS";
$co_winker_van_sinker_gmbh isa company, has company_name "WINKER VAN SINKER GMBH";
$co_sumber_hijau_utama isa company, has company_name "SUMBER HIJAU UTAMA";
$co_royal_golden_eagle isa company, has company_name "ROYAL GOLDEN EAGLE";
$co_aaa_oils_fats isa company, has company_name "AAA OILS & FATS";
$co_chellam_plantations isa company, has company_name "CHELLAM PLANTATIONS";
$co_mkh_berhad isa company, has company_name "MKH BERHAD";
$co_minanga isa company, has company_name "MINANGA";
$co_kutai_refinery_nusantara isa company, has company_name "KUTAI REFINERY NUSANTARA";
$co_kencana_agri isa company, has company_name "KENCANA AGRI";
$co_toba_bara isa company, has company_name "TOBA BARA";
$co_ptpn_iii isa company, has company_name "PTPN III";
$co_apical_middle_east_fzco isa company, has company_name "APICAL MIDDLE EAST FZCO";

## Facilities ##
$mill_borneo_bhakti_sejahtera isa mill, has mill_name "BORNEO BHAKTI SEJAHTERA";
$mill_citra_agro_kencana isa mill, has mill_name "CITRA AGRO KENCANA";
$mill_ketapang_agro_lestari isa mill, has mill_name "KETAPANG AGRO LESTARI";
$mill_jabontara_eka_karsa_jabon isa mill, has mill_name "JABONTARA EKA KARSA (JABON)";
$mill_dwiwira_lestari_jaya isa mill, has mill_name "DWIWIRA LESTARI JAYA";
$mill_muaratoyu_subur_lestari isa mill, has mill_name "MUARATOYU SUBUR LESTARI";
$mill_hutan_hijau_mas_berau isa mill, has mill_name "HUTAN HIJAU MAS (BERAU)";
$mill_satu_sembilan_delapan isa mill, has mill_name "SATU SEMBILAN DELAPAN";
$mill_yudha_wahana_abadi isa mill, has mill_name "YUDHA WAHANA ABADI";
$mill_borneo_indah_marjaya isa mill, has mill_name "BORNEO INDAH MARJAYA";
$mill_tunas_prima_sejahtera isa mill, has mill_name "TUNAS PRIMA SEJAHTERA";
$mill_rea_kaltim_plantations_cakra isa mill, has mill_name "REA KALTIM PLANTATIONS (CAKRA)";
$mill_hamparan_perkasa_mandiri isa mill, has mill_name "HAMPARAN PERKASA MANDIRI";
$mill_karyanusa_ekadaya_karyanusa_eka_daya_1 isa mill, has mill_name "KARYANUSA EKADAYA (KARYANUSA EKA DAYA 1)";
$mill_multi_makmur_mitra_alam_paser isa mill, has mill_name "MULTI MAKMUR MITRA ALAM (PASER)";
$mill_sawit_sukses_sejahtera isa mill, has mill_name "SAWIT SUKSES SEJAHTERA";
$mill_dharma_intisawit_nugraha_pom_3 isa mill, has mill_name "DHARMA INTISAWIT NUGRAHA (POM 3)";
$mill_cahaya_anugerah_plantation_feliza isa mill, has mill_name "CAHAYA ANUGERAH PLANTATION (FELIZA)";
$mill_dewata_sawit_nusantara_pom_6 isa mill, has mill_name "DEWATA SAWIT NUSANTARA (POM 6)";
$mill_kruing_lestari_jaya_sungai_perak isa mill, has mill_name "KRUING LESTARI JAYA (SUNGAI PERAK)";
$mill_harapan_rimba_raya_sei_kedang isa mill, has mill_name "HARAPAN RIMBA RAYA (SEI KEDANG)";
$mill_mulia_inti_perkasa isa mill, has mill_name "MULIA INTI PERKASA";
$mill_hanusentra_agro_lestari isa mill, has mill_name "HANUSENTRA AGRO LESTARI";
$mill_bima_palma_nugraha_pom_9 isa mill, has mill_name "BIMA PALMA NUGRAHA (POM 9)";
$mill_bima_agri_sawit_pom_10 isa mill, has mill_name "BIMA AGRI SAWIT (POM 10)";
$mill_kresna_duta_agroindo_muara_wahau isa mill, has mill_name "KRESNA DUTA AGROINDO (MUARA WAHAU)";
$mill_tapian_nadenggan_jak_luay isa mill, has mill_name "TAPIAN NADENGGAN (JAK LUAY)";
$mill_bumi_mas_agro_benuang isa mill, has mill_name "BUMI MAS AGRO (BENUANG)";
$mill_karya_prima_agro_sejahtera_pom_7 isa mill, has mill_name "KARYA PRIMA AGRO SEJAHTERA (POM 7)";
$mill_dharma_agrotama_nusantara_pom_2 isa mill, has mill_name "DHARMA AGROTAMA NUSANTARA (POM 2)";
$mill_swakarsa_sinarsentosa_pom_1 isa mill, has mill_name "SWAKARSA SINARSENTOSA (POM 1)";
$mill_pucuk_jaya isa mill, has mill_name "PUCUK JAYA";
$mill_anugerah_agung_prima_abadi isa mill, has mill_name "ANUGERAH AGUNG PRIMA ABADI";
$mill_maju_kalimantan_hadapan_seguntung isa mill, has mill_name "MAJU KALIMANTAN HADAPAN (SEGUNTUNG)";
$mill_jaya_mandiri_sukses_bangkirai isa mill, has mill_name "JAYA MANDIRI SUKSES (BANGKIRAI)";
$mill_dinamika_prima_artha isa mill, has mill_name "DINAMIKA PRIMA ARTHA";
$mill_kutai_balian_nauli isa mill, has mill_name "KUTAI BALIAN NAULI";
$mill_sawit_kaltim_lestari isa mill, has mill_name "SAWIT KALTIM LESTARI";
$mill_agri_eastborneo_kencana isa mill, has mill_name "AGRI EASTBORNEO KENCANA";
$mill_perkebunan_kaltim_utama_i isa mill, has mill_name "PERKEBUNAN KALTIM UTAMA I";
$mill_perkebunan_nusantara_xiii_long_pinang isa mill, has mill_name "PERKEBUNAN NUSANTARA XIII (LONG PINANG)";
$ref_adhitya_serayakorita isa refinery, has refinery_name "ADHITYA SERAYAKORITA";
$ref_ldc_east_indonesia isa refinery, has refinery_name "LDC EAST INDONESIA";
$ref_wilmar_nabati_indonesia_wina_gresik isa refinery, has refinery_name "WILMAR NABATI INDONESIA (WINA GRESIK)";
$ref_smart_tbk_tarjun_refinery_kernel_crushing_plant isa refinery, has refinery_name "SMART TBK (TARJUN REFINERY & KERNEL CRUSHING PLANT)";
$ref_smart_tbk_surabaya_refinery isa refinery, has refinery_name "SMART TBK (SURABAYA REFINERY)";
$ref_kutai_refinery_nusantara isa refinery, has refinery_name "KUTAI REFINERY NUSANTARA";

## Ownership ##
ownership (owner: $co_fangiono_agro_plantation_fap_agri, owned: $mill_borneo_bhakti_sejahtera);
ownership (owner: $co_first_resources, owned: $mill_citra_agro_kencana);
ownership (owner: $co_first_resources, owned: $mill_ketapang_agro_lestari);
ownership (owner: $co_kuala_lumpur_kepong_klk, owned: $mill_jabontara_eka_karsa_jabon);
ownership (owner: $co_triputra_agro_persada, owned: $mill_dwiwira_lestari_jaya);
ownership (owner: $co_triputra_agro_persada, owned: $mill_muaratoyu_subur_lestari);
ownership (owner: $co_kuala_lumpur_kepong_klk, owned: $mill_hutan_hijau_mas_berau);
ownership (owner: $co_kuala_lumpur_kepong_klk, owned: $mill_satu_sembilan_delapan);
ownership (owner: $co_triputra_agro_persada, owned: $mill_yudha_wahana_abadi);
ownership (owner: $co_astra_agro_lestari, owned: $mill_borneo_indah_marjaya);
ownership (owner: $co_low_yat, owned: $mill_tunas_prima_sejahtera);
ownership (owner: $co_rea_holdings, owned: $mill_rea_kaltim_plantations_cakra);
ownership (owner: $co_triputra_agro_persada, owned: $mill_hamparan_perkasa_mandiri);
ownership (owner: $co_astra_agro_lestari, owned: $mill_karyanusa_ekadaya_karyanusa_eka_daya_1);
ownership (owner: $co_padasa_enam_utama, owned: $mill_multi_makmur_mitra_alam_paser);
ownership (owner: $co_eagle_high_plantations, owned: $mill_sawit_sukses_sejahtera);
ownership (owner: $co_dharma_satya_nusantara_dsn, owned: $mill_dharma_intisawit_nugraha_pom_3);
ownership (owner: $co_teladan_prima, owned: $mill_cahaya_anugerah_plantation_feliza);
ownership (owner: $co_dharma_satya_nusantara_dsn, owned: $mill_dewata_sawit_nusantara_pom_6);
ownership (owner: $co_tsani_hutani_abadi_tha, owned: $mill_kruing_lestari_jaya_sungai_perak);
ownership (owner: $co_sinar_mas, owned: $mill_harapan_rimba_raya_sei_kedang);
ownership (owner: $co_widya, owned: $mill_mulia_inti_perkasa);
ownership (owner: $co_dharma_agung_wijaya_daw, owned: $mill_hanusentra_agro_lestari);
ownership (owner: $co_dharma_satya_nusantara_dsn, owned: $mill_bima_palma_nugraha_pom_9);
ownership (owner: $co_dharma_satya_nusantara_dsn, owned: $mill_bima_agri_sawit_pom_10);
ownership (owner: $co_sinar_mas, owned: $mill_kresna_duta_agroindo_muara_wahau);
ownership (owner: $co_sinar_mas, owned: $mill_tapian_nadenggan_jak_luay);
ownership (owner: $co_mp_evans, owned: $mill_bumi_mas_agro_benuang);
ownership (owner: $co_dharma_satya_nusantara_dsn, owned: $mill_karya_prima_agro_sejahtera_pom_7);
ownership (owner: $co_dharma_satya_nusantara_dsn, owned: $mill_dharma_agrotama_nusantara_pom_2);
ownership (owner: $co_dharma_satya_nusantara_dsn, owned: $mill_swakarsa_sinarsentosa_pom_1);
ownership (owner: $co_chellam_plantations, owned: $mill_pucuk_jaya);
ownership (owner: $co_triputra_agro_persada, owned: $mill_anugerah_agung_prima_abadi);
ownership (owner: $co_mkh_berhad, owned: $mill_maju_kalimantan_hadapan_seguntung);
ownership (owner: $co_eagle_high_plantations, owned: $mill_jaya_mandiri_sukses_bangkirai);
ownership (owner: $co_minanga, owned: $mill_dinamika_prima_artha);
ownership (owner: $co_chellam_plantations, owned: $mill_kutai_balian_nauli);
ownership (owner: $co_kencana_agri, owned: $mill_sawit_kaltim_lestari);
ownership (owner: $co_kencana_agri, owned: $mill_agri_eastborneo_kencana);
ownership (owner: $co_toba_bara, owned: $mill_perkebunan_kaltim_utama_i);
ownership (owner: $co_ptpn_iii, owned: $mill_perkebunan_nusantara_xiii_long_pinang);
ownership (owner: $co_adhitya_serayakorita, owned: $ref_adhitya_serayakorita);
ownership (owner: $co_ldc_east_indonesia, owned: $ref_ldc_east_indonesia);
ownership (owner: $co_wilmar, owned: $ref_wilmar_nabati_indonesia_wina_gresik);
ownership (owner: $co_sinar_mas, owned: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant);
ownership (owner: $co_sinar_mas, owned: $ref_smart_tbk_surabaya_refinery);
ownership (owner: $co_kutai_refinery_nusantara, owned: $ref_kutai_refinery_nusantara);
ownership (owner: $co_first_resources, owned: $co_adhitya_serayakorita);
ownership (owner: $co_louis_dreyfus, owned: $co_ldc_east_indonesia);
ownership (owner: $co_wilmar, owned: $co_wilmar_nabati_indonesia);
ownership (owner: $co_sinar_mas, owned: $co_sinar_mas_agro_resources_and_technology);
ownership (owner: $co_royal_golden_eagle, owned: $co_sumber_hijau_utama);
ownership (owner: $co_royal_golden_eagle, owned: $co_kutai_refinery_nusantara);

## Trade flows ##
trade_flow (origin: $kab_mahakam_ulu, mill: $mill_borneo_bhakti_sejahtera, refiner: $ref_adhitya_serayakorita, exporter: $co_adhitya_serayakorita, importer: $co_first_resources, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 2995.277, has deforestation_ha 893.5228, has usd 2965513.50dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_citra_agro_kencana, refiner: $ref_adhitya_serayakorita, exporter: $co_adhitya_serayakorita, importer: $co_first_resources, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 4443.522, has deforestation_ha 648.6825, has usd 4399367.94dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_ketapang_agro_lestari, refiner: $ref_adhitya_serayakorita, exporter: $co_adhitya_serayakorita, importer: $co_first_resources, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 2097.531, has deforestation_ha 122.5222, has usd 2076688.70dec;
trade_flow (origin: $kab_mahakam_ulu, mill: $mill_borneo_bhakti_sejahtera, refiner: $ref_adhitya_serayakorita, exporter: $co_adhitya_serayakorita, importer: $co_first_resources, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 631.914, has deforestation_ha 188.5065, has usd 815931.63dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_ketapang_agro_lestari, refiner: $ref_adhitya_serayakorita, exporter: $co_adhitya_serayakorita, importer: $co_first_resources, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 442.516, has deforestation_ha 25.8485, has usd 571380.30dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_citra_agro_kencana, refiner: $ref_adhitya_serayakorita, exporter: $co_adhitya_serayakorita, importer: $co_first_resources, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 937.45, has deforestation_ha 136.8526, has usd 1210442.46dec;
trade_flow (origin: $kab_berau, mill: $mill_jabontara_eka_karsa_jabon, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 3750.036, has deforestation_ha 916.7547, has usd 1311345.23dec;
trade_flow (origin: $kab_berau, mill: $mill_dwiwira_lestari_jaya, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 4383.054, has deforestation_ha 599.1417, has usd 1532704.27dec;
trade_flow (origin: $kab_penajam_paser_utara, mill: $mill_muaratoyu_subur_lestari, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 1487.523, has deforestation_ha 355.9507, has usd 520169.87dec;
trade_flow (origin: $kab_berau, mill: $mill_hutan_hijau_mas_berau, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 6350.131, has deforestation_ha 329.2421, has usd 2220569.06dec;
trade_flow (origin: $kab_berau, mill: $mill_satu_sembilan_delapan, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 3989.668, has deforestation_ha 292.0601, has usd 1395141.68dec;
trade_flow (origin: $kab_berau, mill: $mill_yudha_wahana_abadi, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 2186.825, has deforestation_ha 167.4221, has usd 764708.00dec;
trade_flow (origin: $kab_paser, mill: $mill_borneo_indah_marjaya, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 4551.417, has deforestation_ha 103.8013, has usd 1591579.17dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_tunas_prima_sejahtera, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 47.392, has deforestation_ha 0.0, has usd 9189.84dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_rea_kaltim_plantations_cakra, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 104.376, has deforestation_ha 0.0, has usd 20239.82dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_hamparan_perkasa_mandiri, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 3878.707, has deforestation_ha 0.0, has usd 2063160.98dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_tunas_prima_sejahtera, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 1066.284, has deforestation_ha 0.0, has usd 372867.38dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_karyanusa_ekadaya_karyanusa_eka_daya_1, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 4096.419, has deforestation_ha 0.0, has usd 1432471.25dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_hamparan_perkasa_mandiri, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 283.277, has deforestation_ha 0.0, has usd 54931.07dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_hamparan_perkasa_mandiri, refiner: $ref_ldc_east_indonesia, exporter: $co_ldc_east_indonesia, importer: $co_louis_dreyfus, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 6373.574, has deforestation_ha 0.0, has usd 2228766.59dec;
trade_flow (origin: $kab_mahakam_ulu, mill: $mill_borneo_bhakti_sejahtera, refiner: $ref_wilmar_nabati_indonesia_wina_gresik, exporter: $co_wilmar_nabati_indonesia, importer: $co_wilmar, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.683, has deforestation_ha 0.2039, has usd 703.14dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_jabontara_eka_karsa_jabon, refiner: $ref_wilmar_nabati_indonesia_wina_gresik, exporter: $co_wilmar_nabati_indonesia, importer: $co_wilmar, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.507, has deforestation_ha 0.1474, has usd 521.66dec;
trade_flow (origin: $kab_paser, mill: $mill_multi_makmur_mitra_alam_paser, refiner: $ref_wilmar_nabati_indonesia_wina_gresik, exporter: $co_wilmar_nabati_indonesia, importer: $co_wilmar, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.567, has deforestation_ha 0.1277, has usd 583.24dec;
trade_flow (origin: $kab_berau, mill: $mill_dwiwira_lestari_jaya, refiner: $ref_wilmar_nabati_indonesia_wina_gresik, exporter: $co_wilmar_nabati_indonesia, importer: $co_wilmar, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.818, has deforestation_ha 0.0983, has usd 841.94dec;
trade_flow (origin: $kab_berau, mill: $mill_sawit_sukses_sejahtera, refiner: $ref_wilmar_nabati_indonesia_wina_gresik, exporter: $co_wilmar_nabati_indonesia, importer: $co_wilmar, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.105, has deforestation_ha 0.0, has usd 107.85dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_dharma_intisawit_nugraha_pom_3, refiner: $ref_wilmar_nabati_indonesia_wina_gresik, exporter: $co_wilmar_nabati_indonesia, importer: $co_wilmar, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.663, has deforestation_ha 0.0, has usd 682.60dec;
trade_flow (origin: $kab_berau, mill: $mill_cahaya_anugerah_plantation_feliza, refiner: $ref_wilmar_nabati_indonesia_wina_gresik, exporter: $co_wilmar_nabati_indonesia, importer: $co_wilmar, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.481, has deforestation_ha 0.0, has usd 494.68dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_dewata_sawit_nusantara_pom_6, refiner: $ref_wilmar_nabati_indonesia_wina_gresik, exporter: $co_wilmar_nabati_indonesia, importer: $co_wilmar, destination: $country_greece, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.783, has deforestation_ha 0.0, has usd 805.11dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_kruing_lestari_jaya_sungai_perak, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 1006.29, has deforestation_ha 184.2338, has usd 1035461.22dec;
trade_flow (origin: $kab_paser, mill: $mill_multi_makmur_mitra_alam_paser, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 690.016, has deforestation_ha 143.8168, has usd 710018.44dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_harapan_rimba_raya_sei_kedang, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 732.265, has deforestation_ha 137.8934, has usd 753493.13dec;
trade_flow (origin: $kab_berau, mill: $mill_mulia_inti_perkasa, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 228.291, has deforestation_ha 79.2208, has usd 234909.36dec;
trade_flow (origin: $kab_berau, mill: $mill_hanusentra_agro_lestari, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 112.779, has deforestation_ha 35.1438, has usd 116048.53dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_bima_palma_nugraha_pom_9, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 882.972, has deforestation_ha 0.0, has usd 908568.98dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_bima_agri_sawit_pom_10, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 52.092, has deforestation_ha 0.0, has usd 65818.71dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_hamparan_perkasa_mandiri, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 109.297, has deforestation_ha 0.0, has usd 138097.38dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_bima_agri_sawit_pom_10, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 10.418, has deforestation_ha 0.0, has usd 10046.01dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_hamparan_perkasa_mandiri, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_golden_agri_international, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 21.859, has deforestation_ha 0.0, has usd 21078.02dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_kruing_lestari_jaya_sungai_perak, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_casa_olearia_italiana_s_p_a, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 19.369, has deforestation_ha 3.546, has usd 18400.18dec;
trade_flow (origin: $kab_paser, mill: $mill_multi_makmur_mitra_alam_paser, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_casa_olearia_italiana_s_p_a, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 13.281, has deforestation_ha 2.7681, has usd 12617.05dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_harapan_rimba_raya_sei_kedang, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_casa_olearia_italiana_s_p_a, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 14.094, has deforestation_ha 2.6541, has usd 13389.59dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_hamparan_perkasa_mandiri, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_casa_olearia_italiana_s_p_a, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 21.85, has deforestation_ha 0.0, has usd 20757.30dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_kresna_duta_agroindo_muara_wahau, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_casa_olearia_italiana_s_p_a, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 18.758, has deforestation_ha 0.0, has usd 17820.14dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_tapian_nadenggan_jak_luay, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_casa_olearia_italiana_s_p_a, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 28.634, has deforestation_ha 0.0, has usd 27202.02dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_kruing_lestari_jaya_sungai_perak, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_ital_bi_oil_srl, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 125.959, has deforestation_ha 23.0609, has usd 119661.40dec;
trade_flow (origin: $kab_paser, mill: $mill_multi_makmur_mitra_alam_paser, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_ital_bi_oil_srl, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 86.371, has deforestation_ha 18.0018, has usd 82052.13dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_harapan_rimba_raya_sei_kedang, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_ital_bi_oil_srl, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 91.659, has deforestation_ha 17.2604, has usd 87076.21dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_tapian_nadenggan_jak_luay, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_ital_bi_oil_srl, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 186.213, has deforestation_ha 0.0, has usd 176902.21dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_bima_agri_sawit_pom_10, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_ital_bi_oil_srl, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 67.724, has deforestation_ha 0.0, has usd 64337.89dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_bumi_mas_agro_benuang, refiner: $ref_smart_tbk_tarjun_refinery_kernel_crushing_plant, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_ital_bi_oil_srl, destination: $country_italy, commodity: $com_refined_palm_oil),
  has volume_tonnes 112.013, has deforestation_ha 0.0, has usd 106412.59dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_karya_prima_agro_sejahtera_pom_7, refiner: $ref_smart_tbk_surabaya_refinery, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_winker_van_sinker_gmbh, destination: $country_bulgaria, commodity: $com_refined_palm_oil),
  has volume_tonnes 1.319, has deforestation_ha 0.0017, has usd 2011.50dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_dharma_agrotama_nusantara_pom_2, refiner: $ref_smart_tbk_surabaya_refinery, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_winker_van_sinker_gmbh, destination: $country_bulgaria, commodity: $com_refined_palm_oil),
  has volume_tonnes 1.03, has deforestation_ha 0.0, has usd 1570.17dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_swakarsa_sinarsentosa_pom_1, refiner: $ref_smart_tbk_surabaya_refinery, exporter: $co_sinar_mas_agro_resources_and_technology, importer: $co_winker_van_sinker_gmbh, destination: $country_bulgaria, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.271, has deforestation_ha 0.0, has usd 413.32dec;
trade_flow (origin: $kab_berau, mill: $mill_jabontara_eka_karsa_jabon, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 7.796, has deforestation_ha 2.4198, has usd 9323.70dec;
trade_flow (origin: $kab_paser, mill: $mill_pucuk_jaya, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 5.674, has deforestation_ha 1.2781, has usd 6786.68dec;
trade_flow (origin: $kab_berau, mill: $mill_dwiwira_lestari_jaya, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 6.202, has deforestation_ha 1.1292, has usd 7417.41dec;
trade_flow (origin: $kab_berau, mill: $mill_anugerah_agung_prima_abadi, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 7.003, has deforestation_ha 1.1236, has usd 8375.93dec;
trade_flow (origin: $kab_penajam_paser_utara, mill: $mill_muaratoyu_subur_lestari, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 2.864, has deforestation_ha 0.6853, has usd 3425.27dec;
trade_flow (origin: $kab_berau, mill: $mill_maju_kalimantan_hadapan_seguntung, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 12.906, has deforestation_ha 0.0, has usd 15436.48dec;
trade_flow (origin: $kab_kutai_kartanegara, mill: $mill_jaya_mandiri_sukses_bangkirai, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 0.027, has deforestation_ha 0.0, has usd 31.90dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_dinamika_prima_artha, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 7.533, has deforestation_ha 0.0, has usd 9009.11dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_kutai_balian_nauli, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 6.572, has deforestation_ha 0.0, has usd 7860.73dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_rea_kaltim_plantations_cakra, exporter: $co_sumber_hijau_utama, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_palm_oil),
  has volume_tonnes 4.521, has deforestation_ha 0.0, has usd 5407.57dec;
trade_flow (origin: $kab_berau, mill: $mill_hanusentra_agro_lestari, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 20.651, has deforestation_ha 6.4351, has usd 31876.11dec;
trade_flow (origin: $kab_paser, mill: $mill_pucuk_jaya, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 21.199, has deforestation_ha 4.7749, has usd 32723.02dec;
trade_flow (origin: $kab_berau, mill: $mill_jabontara_eka_karsa_jabon, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 15.46, has deforestation_ha 4.414, has usd 23864.17dec;
trade_flow (origin: $kab_berau, mill: $mill_dwiwira_lestari_jaya, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 23.149, has deforestation_ha 4.2149, has usd 35732.90dec;
trade_flow (origin: $kab_berau, mill: $mill_anugerah_agung_prima_abadi, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 26.165, has deforestation_ha 4.1978, has usd 40387.45dec;
trade_flow (origin: $kab_berau, mill: $mill_sawit_kaltim_lestari, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_netherlands, commodity: $com_refined_palm_oil),
  has volume_tonnes 19.701, has deforestation_ha 0.0, has usd 30410.82dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_agri_eastborneo_kencana, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 0.975, has deforestation_ha 0.0, has usd 1187.11dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_bima_palma_nugraha_pom_9, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 28.521, has deforestation_ha 0.0, has usd 34717.39dec;
trade_flow (origin: $kab_berau, mill: $mill_perkebunan_kaltim_utama_i, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 2.93, has deforestation_ha 0.0, has usd 3566.36dec;
trade_flow (origin: $kab_penajam_paser_utara, mill: $mill_perkebunan_nusantara_xiii_long_pinang, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_aaa_oils_fats, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 1.366, has deforestation_ha 0.0, has usd 1662.28dec;
trade_flow (origin: $kab_berau, mill: $mill_hanusentra_agro_lestari, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_apical_middle_east_fzco, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 47.703, has deforestation_ha 14.865, has usd 36342.51dec;
trade_flow (origin: $kab_paser, mill: $mill_pucuk_jaya, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_apical_middle_east_fzco, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 48.97, has deforestation_ha 11.0298, has usd 37308.09dec;
trade_flow (origin: $kab_berau, mill: $mill_jabontara_eka_karsa_jabon, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_apical_middle_east_fzco, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 35.713, has deforestation_ha 10.1963, has usd 27207.95dec;
trade_flow (origin: $kab_berau, mill: $mill_dwiwira_lestari_jaya, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_apical_middle_east_fzco, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 53.475, has deforestation_ha 9.7363, has usd 40739.71dec;
trade_flow (origin: $kab_penajam_paser_utara, mill: $mill_perkebunan_nusantara_xiii_long_pinang, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_apical_middle_east_fzco, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 3.943, has deforestation_ha 0.0, has usd 3004.06dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_bima_agri_sawit_pom_10, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_apical_middle_east_fzco, destination: $country_spain, commodity: $com_refined_palm_oil),
  has volume_tonnes 50.463, has deforestation_ha 0.0, has usd 38444.95dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_hamparan_perkasa_mandiri, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_apical_middle_east_fzco, destination: $country_belgium, commodity: $com_refined_palm_oil),
  has volume_tonnes 68.691, has deforestation_ha 0.0, has usd 54162.89dec;
trade_flow (origin: $kab_kutai_timur, mill: $mill_agri_eastborneo_kencana, refiner: $ref_kutai_refinery_nusantara, exporter: $co_kutai_refinery_nusantara, importer: $co_apical_middle_east_fzco, destination: $country_belgium, commodity: $com_refined_palm_oil),
  has volume_tonnes 1.829, has deforestation_ha 0.0, has usd 1441.84dec;
#}}
#!test[read, count=7]
match $c isa country, has country_name $n;
```

All facilities, with each one’s own type (47 answers):

```typeql
#!test[read, count=47]
match
  $f isa facility;
  $f isa! $t;
```

`isa facility` matches instances of `facility` and all its subtypes. `isa!` matches the exact type only, so `$f isa! $t` binds `$t` to each facility’s most-specific type. The same query against `legal_entity` would return companies too, with only the type name changed.

Counting facilities by type (2 answers: 41 mills and 6 refineries):

```typeql
#!test[read, count=2]
match
  $f isa facility;
  $f isa! $t;
reduce $count = count groupby $t;
```

The same question in SQL

How you ask this in SQL depends on how the generalization was mapped. With one table per subtype:

```sql
SELECT 'mill' AS type, name FROM mill
UNION ALL
SELECT 'refinery' AS type, name FROM refinery;
```

Add a third kind of facility and this query, and every other query over all facilities, must change. With a single table and a type column, the query is simpler, but the subtypes' own attributes become nullable columns. The TypeQL query depends only on the conceptual model.

## [](#_by_role)By role

Trade flows by country of first import (6 answers):

```typeql
#!test[read, count=6]
match
  $tf isa trade_flow, links (destination: $country);
  $country has country_name $name;
reduce $count = count groupby $name;
```

`links (destination: $country)` matches a relation through one role. A pattern only needs to name the roles it uses.

The crude flows, those without a refiner (10 answers):

```typeql
#!test[read, count=10]
match
  $tf isa trade_flow;
  not { $tf links (refiner: $r); };
```

`not { …​ }` excludes the matches of its pattern, which is how to ask about an optional role. The SQL equivalent is `WHERE refinery_id IS NULL`, which works only because the optional role was mapped to a nullable column.

## [](#_a_sustainability_question)A sustainability question

Which importers are most exposed to deforestation? Total the deforestation exposure of each importer’s flows (9 answers):

```typeql
#!test[read, count=9]
match
  $tf isa trade_flow, links (importer: $i), has deforestation_ha $d;
  $i has company_name $importer;
reduce $total_ha = sum($d) groupby $importer;
sort $total_ha desc;
```

The top three are Louis Dreyfus (2,764 ha), First Resources (2,016 ha) and Golden Agri International (580 ha).

Clauses form a pipeline: `match` finds the flows, `reduce` aggregates them, and `sort` orders the result.

## [](#_derivation_rules)Derivation rules

Ownership can be nested: a company can own a company that owns a refinery. Who owns the refinery LDC East Indonesia, directly or through one intermediary (2 answers)?

```typeql
#!test[read, count=2]
match
  $f isa facility, has name $facility_name;
  $facility_name == "LDC EAST INDONESIA";
  { ownership (owned: $f, owner: $c); }
  or {
    ownership (owned: $f, owner: $middle);
    ownership (owned: $middle, owner: $c);
  };
  $c has name $company_name;
```

The answer is LDC East Indonesia and its parent, Louis Dreyfus. Note `has name`: the query asks for the supertype `name`, so it matches a refinery’s `refinery_name` and a company’s `company_name` alike.

A disjunction handles a fixed number of levels. For any number, define the transitive closure as a recursive function:

```typeql
#!test[read, count=2]
with fun owners($x: legal_entity) -> { company }:
  match
    { ownership (owned: $x, owner: $c); }
    or {
      ownership (owned: $x, owner: $middle);
      let $c in owners($middle);
    };
  return { $c };
match
  $f isa facility, has name $facility_name;
  $facility_name == "LDC EAST INDONESIA";
  let $c in owners($f);
  $c has name $company_name;
```

`with fun` defines a function for this query only, and `let $c in owners($f)` binds `$c` to each company the function returns. Because the parameter is typed `legal_entity`, the same function works for facilities and companies.

A function is a derivation rule in the sense of conceptual schema-centric development: a derived relationship, here _ultimately owned by_, defined by a rule over base facts and evaluated when queried. To store it in the schema, use `define fun`:

```typeql
#!test[schema]
define
  fun owners($x: legal_entity) -> { company }:
    match
      { ownership (owned: $x, owner: $c); }
      or {
        ownership (owned: $x, owner: $middle);
        let $c in owners($middle);
      };
    return { $c };
```

Any query can now use it. Which facilities are ultimately owned by Louis Dreyfus (1 answer)?

```typeql
#!test[read, count=1]
match
  $f isa facility, has name $facility_name;
  let $c in owners($f);
  $c has company_name "LOUIS DREYFUS";
```

Derived types

A function can also derive a type. In EER terms, "an exporter is a company that exports at least one trade flow" defines a predicate-defined subclass. In TypeQL, it is a function that returns the companies playing the role:

```typeql
#!test[read, count=1]
with fun exporters() -> { company }:
  match trade_flow (exporter: $c);
  return { $c };
match
  let $c in exporters();
reduce $count = count;
```

The function returns each exporter once: there are 6. Unlike subtype membership, it changes with the data, as an anti-rigid role like _exporter_ requires.

Next: [Chapter Eight: The model as data](../08-the-model-as-data/index.md).

[Chapter Six: Population and conformance](../06-population-and-conformance/index.md) [Chapter Eight: The model as data](../08-the-model-as-data/index.md)

[Edit on GitHub](https://github.com/typedb/typedb-docs/edit/3.x-development/learn-typedb/modules/ROOT/pages/conceptual-modeling/07-querying.adoc) Edit this page on GitHub.