diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/data-cleanup/phone.rq b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/data-cleanup/phone.rq
new file mode 100644
index 0000000..3ffc95a
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/data-cleanup/phone.rq
@@ -0,0 +1,23 @@
+PREFIX schema:
+
+CONSTRUCT {
+ ?s schema:telephone ?cleanedPhoneNumber .
+} WHERE {
+ ?s schema:telephone ?phoneNumber .
+
+ # Remove all non digits
+ BIND(REPLACE(?phoneNumber, """[^+\\d]""", "") AS ?scrapeResult)
+
+ # Replace leading 00 with +
+ BIND(REPLACE(?scrapeResult, """^00""", "+") AS ?replacedZeroZero)
+
+ BIND(REPLACE(?replacedZeroZero, """^0""", "+32") AS ?defaultBe)
+
+ BIND(REPLACE(?defaultBe, """\\+320""", "+32") AS ?extendedDefaultBe)
+
+ BIND(REPLACE(?extendedDefaultBe, """^320""", "+32") AS ?finalResult)
+
+ FILTER(REGEX(?finalResult, """^\\+((32\\d{8})|(324\\d{8})|((?!32)\\d+))$"""))
+
+ BIND(CONCAT("tel:", ?finalResult) as ?cleanedPhoneNumber)
+}
diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/inheritance/Agent.rq b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/inheritance/Agent.rq
new file mode 100644
index 0000000..8252a85
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/inheritance/Agent.rq
@@ -0,0 +1,14 @@
+PREFIX dc_terms:
+PREFIX lblodlg:
+PREFIX person:
+
+CONSTRUCT {
+ ?s a dc_terms:Agent .
+} WHERE {
+ VALUES ?type {
+ lblodlg:Functionaris
+ person:Person
+ }
+
+ ?s a ?type .
+}
diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/inheritance/AgentInPositie.rq b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/inheritance/AgentInPositie.rq
new file mode 100644
index 0000000..2505191
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/inheritance/AgentInPositie.rq
@@ -0,0 +1,12 @@
+PREFIX ch:
+PREFIX lblodlg:
+
+CONSTRUCT {
+ ?s a ch:AgentInPositie .
+} WHERE {
+ VALUES ?type {
+ lblodlg:Functionaris
+ }
+
+ ?s a ?type .
+}
diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/inverse/holds-to-held-by.rq b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/inverse/holds-to-held-by.rq
new file mode 100644
index 0000000..0b373ed
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/inverse/holds-to-held-by.rq
@@ -0,0 +1,8 @@
+PREFIX org:
+
+CONSTRUCT {
+ ?o org:heldBy ?s.
+}
+WHERE {
+ ?s org:holds ?o.
+}
diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/address.sparql b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/address.sparql
new file mode 100644
index 0000000..7d72f5a
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/address.sparql
@@ -0,0 +1,6 @@
+CONSTRUCT {
+ ?s ?p ?o.
+} WHERE {
+ ?s a ;
+ ?p ?o.
+}
\ No newline at end of file
diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/bestuursfunctie.sparql b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/bestuursfunctie.sparql
new file mode 100644
index 0000000..238cd07
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/bestuursfunctie.sparql
@@ -0,0 +1,7 @@
+CONSTRUCT {
+ ?s ?contactpoint.
+}
+WHERE {
+ ?s a .
+ ?s ?contactpoint.
+}
\ No newline at end of file
diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/contactpoint.sparql b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/contactpoint.sparql
new file mode 100644
index 0000000..839fbd4
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/contactpoint.sparql
@@ -0,0 +1,7 @@
+CONSTRUCT {
+ ?s ?p ?o.
+} WHERE {
+ ?s a ;
+ ?p ?o.
+ FILTER (?p NOT IN ())
+}
\ No newline at end of file
diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/functionaris.sparql b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/functionaris.sparql
new file mode 100644
index 0000000..c339689
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/functionaris.sparql
@@ -0,0 +1,6 @@
+CONSTRUCT {
+ ?s ?p ?o.
+} WHERE {
+ ?s a ;
+ ?p ?o.
+}
\ No newline at end of file
diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/person.sparql b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/person.sparql
new file mode 100644
index 0000000..60d28ac
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/pass/person.sparql
@@ -0,0 +1,11 @@
+CONSTRUCT {
+ ?s ?p ?o.
+} WHERE {
+ ?s a ;
+ ?p ?o.
+
+ FILTER (?p IN (
+ ,
+
+ ))
+}
\ No newline at end of file
diff --git a/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/predicate/names.rq b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/predicate/names.rq
new file mode 100644
index 0000000..cd33077
--- /dev/null
+++ b/config/loket-consumer/leidinggevenden/mapping/queries/dl2op/predicate/names.rq
@@ -0,0 +1,22 @@
+PREFIX foaf:
+PREFIX persoon:
+PREFIX persoon_loket:
+PREFIX person:
+
+# DL and OP both use persoon:gebruikteVoornaam but with different semantics (!)
+
+# First name: persoon:gebruikteVoornaam => foaf:givenName
+# Alternatieve voornaam: foaf:name => persoon:gebruikteVoornaam
+
+# We do both in one query with an OPTIONAL because they need to happen simultaneously
+# not to end up in a loop
+
+CONSTRUCT {
+ ?s foaf:givenName ?gebruikteVoornaam .
+ ?s persoon:gebruikteVoornaam ?name .
+} WHERE {
+ ?s a person:Person .
+
+ OPTIONAL { ?s persoon_loket:gebruikteVoornaam ?gebruikteVoornaam . }
+ OPTIONAL { ?s foaf:name ?name . }
+}