diff --git a/project/dalia/curation/suggest/disciplines.py b/project/dalia/curation/suggest/disciplines.py
index fa074d9ba7ea7cc07202a4dacaa4bd8d5b607ed9..c4328fb36e86609b847d83409252cf782f87baff 100644
--- a/project/dalia/curation/suggest/disciplines.py
+++ b/project/dalia/curation/suggest/disciplines.py
@@ -3,14 +3,9 @@ from typing import List, Tuple
 from rdflib import Literal, OWL, RDF, SKOS, URIRef, Variable
 
 from project.dalia.api_models.api_models import CurationSuggestDisciplinesResultItem
-from project.dalia.query.utils import query_ontologies_dataset
-from project.dalia.query_builder.query_builder import (
-    FILTER,
-    FILTER_EXISTS,
-    FunctionExpressions,
-    Operators,
-    QueryBuilder,
-)
+from project.dalia.query.utils import filter_by_lang, query_ontologies_dataset
+from project.dalia.query_builder.query_builder import FILTER_EXISTS, QueryBuilder
+
 
 # Note: This algorithm is quite inefficient and results in a lot of SPARQL queries.
 # Another idea would be to pull all disciplines and their narrower/broader nodes at once, e.g. via
@@ -71,12 +66,7 @@ def _prepare_query_to_get_disciplines_metadata(discipline_selection_bgp: Tuple)
             state=False
         ),
         (var_discipline, SKOS.prefLabel, var_label),
-        FILTER(
-            Operators.EQ(
-                FunctionExpressions.LANG(var_label),
-                Literal("en")
-            )
-        ),
+        filter_by_lang(var_label),
         (var_discipline, SKOS.notation, var_notation)
     ).ORDER_BY(
         var_notation
diff --git a/project/dalia/curation/suggest/languages.py b/project/dalia/curation/suggest/languages.py
index 935b62c1b8a78e1e60dcf167c334eeda774e01a9..e910ba95a3a4f47d588412523a3314ae715852e0 100644
--- a/project/dalia/curation/suggest/languages.py
+++ b/project/dalia/curation/suggest/languages.py
@@ -8,16 +8,8 @@ from project.dalia.api_models.api_models import (
     CurationSuggestSearchRequest,
     LabelValueItem,
 )
-from project.dalia.query.utils import query_ontologies_dataset
-from project.dalia.query_builder.query_builder import (
-    Aggregates,
-    BIND,
-    FILTER,
-    FunctionExpressions,
-    OPTIONAL,
-    Operators,
-    QueryBuilder,
-)
+from project.dalia.query.utils import filter_by_lang, query_ontologies_dataset
+from project.dalia.query_builder.query_builder import Aggregates, BIND, FunctionExpressions, OPTIONAL, QueryBuilder
 from project.dalia.rdf.namespace import Jena_text, SKOS_last_call, lvont
 
 
@@ -47,12 +39,7 @@ def _where_for_text_search(query: str, var_lang: Variable, var_score: Variable,
 
     where = [
         (subject_list_for_text_search, Jena_text.query, object_list_for_text_search),
-        FILTER(
-            Operators.EQ(
-                FunctionExpressions.LANG(var_label),
-                Literal("en")
-            )
-        ),
+        filter_by_lang(var_label),
     ]
 
     return tuple(where)
diff --git a/project/dalia/curation/suggest/learning_resource_types.py b/project/dalia/curation/suggest/learning_resource_types.py
index c2258884a0245d0ebd3636d4b642b56855203166..798dc1d7a72aeaa03f656d12b90073a88d543f62 100644
--- a/project/dalia/curation/suggest/learning_resource_types.py
+++ b/project/dalia/curation/suggest/learning_resource_types.py
@@ -1,10 +1,10 @@
 from typing import List
 
-from rdflib import Literal, RDFS, SKOS, Variable
+from rdflib import RDFS, SKOS, Variable
 
 from project.dalia.api_models.api_models import LabelValueItem
-from project.dalia.query.utils import query_ontologies_dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, GROUP, Operators, QueryBuilder, UNION
+from project.dalia.query.utils import filter_by_lang, query_ontologies_dataset
+from project.dalia.query_builder.query_builder import FILTER, GROUP, Operators, QueryBuilder, UNION
 from project.dalia.rdf.namespace import MoDalia, hcrt
 
 
@@ -54,12 +54,7 @@ def prepare_query_to_get_learning_resource_types() -> str:
             ),
         ).build(),
         (var_lrt, SKOS.prefLabel, var_label),
-        FILTER(
-            Operators.EQ(
-                FunctionExpressions.LANG(var_label),
-                Literal("en")
-            )
-        ),
+        filter_by_lang(var_label),
     ).ORDER_BY(
         var_label
     ).build()
diff --git a/project/dalia/curation/suggest/media_types.py b/project/dalia/curation/suggest/media_types.py
index 4c8fef6bda92015ccd23255e3d17df299ff0f244..022334b3c255c3dda074eb805b92abc8bfac1c65 100644
--- a/project/dalia/curation/suggest/media_types.py
+++ b/project/dalia/curation/suggest/media_types.py
@@ -1,10 +1,10 @@
 from typing import List
 
-from rdflib import Literal, RDFS, SKOS, Variable
+from rdflib import RDFS, SKOS, Variable
 
 from project.dalia.api_models.api_models import LabelValueItem
-from project.dalia.query.utils import query_ontologies_dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators, QueryBuilder
+from project.dalia.query.utils import filter_by_lang, query_ontologies_dataset
+from project.dalia.query_builder.query_builder import QueryBuilder
 from project.dalia.rdf.namespace import MoDalia
 
 
@@ -30,12 +30,7 @@ def prepare_query_to_get_media_types() -> str:
     ).WHERE(
         (var_type, RDFS.subClassOf, MoDalia.MediaType),
         (var_type, SKOS.prefLabel, var_label),
-        FILTER(
-            Operators.EQ(
-                FunctionExpressions.LANG(var_label),
-                Literal("en")
-            )
-        ),
+        filter_by_lang(var_label),
     ).ORDER_BY(
         var_label
     ).build()
diff --git a/project/dalia/curation/suggest/proficiency_levels.py b/project/dalia/curation/suggest/proficiency_levels.py
index 5670acf6e2f9cad17abfd5a8998431ea2c5192dc..453defff5860969bd57a081e74299136f499e190 100644
--- a/project/dalia/curation/suggest/proficiency_levels.py
+++ b/project/dalia/curation/suggest/proficiency_levels.py
@@ -1,10 +1,10 @@
 from typing import List
 
-from rdflib import Literal, RDF, RDFS, Variable
+from rdflib import RDF, RDFS, Variable
 
 from project.dalia.api_models.api_models import LabelValueItem
-from project.dalia.query.utils import query_ontologies_dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators, QueryBuilder
+from project.dalia.query.utils import filter_by_lang, query_ontologies_dataset
+from project.dalia.query_builder.query_builder import QueryBuilder
 from project.dalia.rdf.namespace import MoDalia
 
 
@@ -32,12 +32,7 @@ def prepare_query_to_get_proficiency_levels() -> str:
         (var_level, RDF.type, MoDalia.Proficiency),
         (var_level, MoDalia.hasOrder, var_level_order),
         (var_level, RDFS.label, var_label),
-        FILTER(
-            Operators.EQ(
-                FunctionExpressions.LANG(var_label),
-                Literal("en")
-            )
-        ),
+        filter_by_lang(var_label),
     ).ORDER_BY(
         var_level_order
     ).build()
diff --git a/project/dalia/curation/suggest/relation_types.py b/project/dalia/curation/suggest/relation_types.py
index f7185db1822fecf23cdf1ed32e85e1513922a68d..92c45eb8fbba2aa01a6ba627a625063a02a89435 100644
--- a/project/dalia/curation/suggest/relation_types.py
+++ b/project/dalia/curation/suggest/relation_types.py
@@ -1,10 +1,10 @@
 from typing import List
 
-from rdflib import Literal, RDFS, Variable
+from rdflib import RDFS, Variable
 
 from project.dalia.api_models.api_models import LabelValueItem
-from project.dalia.query.utils import query_ontologies_dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators, QueryBuilder
+from project.dalia.query.utils import filter_by_lang, query_ontologies_dataset
+from project.dalia.query_builder.query_builder import QueryBuilder
 from project.dalia.rdf.namespace import MoDalia
 
 
@@ -30,12 +30,7 @@ def prepare_query_to_get_relation_types() -> str:
     ).WHERE(
         (var_type, RDFS.subPropertyOf, MoDalia.isRelatedTo),
         (var_type, RDFS.label, var_label),
-        FILTER(
-            Operators.EQ(
-                FunctionExpressions.LANG(var_label),
-                Literal("en")
-            )
-        ),
+        filter_by_lang(var_label),
     ).ORDER_BY(
         var_label
     ).build()
diff --git a/project/dalia/curation/suggest/target_groups.py b/project/dalia/curation/suggest/target_groups.py
index 740ce30fce5fce058725924ff9d705376899433b..332630d3b83eb7f58b6b6f58d707c524a58d2db4 100644
--- a/project/dalia/curation/suggest/target_groups.py
+++ b/project/dalia/curation/suggest/target_groups.py
@@ -1,10 +1,10 @@
 from typing import List
 
-from rdflib import Literal, RDFS, SKOS, Variable
+from rdflib import RDFS, SKOS, Variable
 
 from project.dalia.api_models.api_models import LabelValueItem
-from project.dalia.query.utils import query_ontologies_dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators, QueryBuilder
+from project.dalia.query.utils import filter_by_lang, query_ontologies_dataset
+from project.dalia.query_builder.query_builder import QueryBuilder
 from project.dalia.rdf.namespace import MoDalia
 
 
@@ -30,12 +30,7 @@ def prepare_query_to_get_target_groups() -> str:
     ).WHERE(
         (var_tg, RDFS.subClassOf, MoDalia.TargetGroup),
         (var_tg, SKOS.prefLabel, var_label),
-        FILTER(
-            Operators.EQ(
-                FunctionExpressions.LANG(var_label),
-                Literal("en")
-            )
-        ),
+        filter_by_lang(var_label),
     ).ORDER_BY(
         var_label
     ).build()
diff --git a/project/dalia/query/communities/one_to_one_metadata.py b/project/dalia/query/communities/one_to_one_metadata.py
index 0cf04f162e8827870b834200fe2c48c4c250dd14..60acec29040c4e109955cc4e3d90443c9b9d6673 100644
--- a/project/dalia/query/communities/one_to_one_metadata.py
+++ b/project/dalia/query/communities/one_to_one_metadata.py
@@ -1,18 +1,11 @@
 from typing import Dict, Iterable
 
 from django.utils.text import slugify
-from rdflib import DCTERMS, Literal, RDF, URIRef, Variable
+from rdflib import DCTERMS, RDF, URIRef, Variable
 
 from project.dalia.api_models.api_models import Community, SocialMedia
-from project.dalia.query.utils import query_dalia_dataset
-from project.dalia.query_builder.query_builder import (
-    FILTER,
-    FunctionExpressions,
-    OPTIONAL,
-    Operators,
-    QueryBuilder,
-    VALUES
-)
+from project.dalia.query.utils import filter_by_lang, query_dalia_dataset
+from project.dalia.query_builder.query_builder import OPTIONAL, QueryBuilder, VALUES
 from project.dalia.rdf.namespace import MoDalia, SCHEMA, wdt
 
 
@@ -109,12 +102,7 @@ def prepare_query_for_one_to_one_metadata_for_communities(community_uri_refs: It
         (var_community, RDF.type, MoDalia.Community),
         OPTIONAL(
             (var_community, DCTERMS.description, var_description),
-            FILTER(
-                Operators.EQ(
-                    FunctionExpressions.LANG(var_description),
-                    Literal("en")
-                )
-            )
+            filter_by_lang(var_description),
         ),
         OPTIONAL((var_community, DCTERMS.title, _VARIABLES["title"])),
         OPTIONAL((var_community, wdt.Bluesky_handle, _VARIABLES["bluesky_handle"])),
diff --git a/project/dalia/query/items/metadata/disciplines.py b/project/dalia/query/items/metadata/disciplines.py
index 2522e3eefd653c2e7b5e095aa3edac227471b90b..8ac21afe0e4fc2ff22139514741f2417283f9cfa 100644
--- a/project/dalia/query/items/metadata/disciplines.py
+++ b/project/dalia/query/items/metadata/disciplines.py
@@ -1,24 +1,18 @@
 from typing import Collection, Dict, List
 
 from rdflib import SKOS, URIRef
-from rdflib.term import Literal, Node
+from rdflib.term import Node
 
 from project.dalia.api_models.api_models import LabelValueItem
 from project.dalia.query.items.metadata.one_to_many_metadata import get_one_to_many_metadata_for_resources
 from project.dalia.query.labels.label_service import VAR_ITEM, VAR_LABEL, get_labels_for_item_uris
 from project.dalia.query.labels.utils import remap_to_label_value_item
-from project.dalia.query.utils import Dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators
+from project.dalia.query.utils import Dataset, filter_by_lang
 from project.dalia.rdf.namespace import fabio
 
 _LABEL_GRAPH_PATTERN = (
     (VAR_ITEM, SKOS.prefLabel, VAR_LABEL),
-    FILTER(
-        Operators.EQ(
-            FunctionExpressions.LANG(VAR_LABEL),
-            Literal("en")
-        )
-    )
+    filter_by_lang(VAR_LABEL),
 )
 
 
diff --git a/project/dalia/query/items/metadata/languages.py b/project/dalia/query/items/metadata/languages.py
index f76359ce81c5d771db6088861d8636ee00083a62..37b175b14ce9ae5f589d04f151c3f197841e7b6e 100644
--- a/project/dalia/query/items/metadata/languages.py
+++ b/project/dalia/query/items/metadata/languages.py
@@ -1,22 +1,16 @@
 from typing import Collection, Dict, List
 
 from rdflib import DCTERMS, URIRef
-from rdflib.term import Literal, Node
+from rdflib.term import Node
 
 from project.dalia.query.items.metadata.one_to_many_metadata import get_one_to_many_metadata_for_resources
 from project.dalia.query.labels.label_service import VAR_ITEM, VAR_LABEL, get_labels_for_item_uris
-from project.dalia.query.utils import Dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators
+from project.dalia.query.utils import Dataset, filter_by_lang
 from project.dalia.rdf.namespace import SKOS_last_call
 
 _LABEL_GRAPH_PATTERN = (
     (VAR_ITEM, SKOS_last_call.prefLabel, VAR_LABEL),
-    FILTER(
-        Operators.EQ(
-            FunctionExpressions.LANG(VAR_LABEL),
-            Literal("en")
-        )
-    )
+    filter_by_lang(VAR_LABEL),
 )
 
 
diff --git a/project/dalia/query/items/metadata/learning_resource_types.py b/project/dalia/query/items/metadata/learning_resource_types.py
index d9fd07bf1b1b6b0314a422b5dc91821f1a618414..6a3aaa9b032f030bb1ad567504c4d207d0fc88b1 100644
--- a/project/dalia/query/items/metadata/learning_resource_types.py
+++ b/project/dalia/query/items/metadata/learning_resource_types.py
@@ -1,24 +1,18 @@
 from typing import Collection, Dict, List
 
 from rdflib import SKOS, URIRef
-from rdflib.term import Literal, Node
+from rdflib.term import Node
 
 from project.dalia.api_models.api_models import LabelValueItem
 from project.dalia.query.items.metadata.one_to_many_metadata import get_one_to_many_metadata_for_resources
 from project.dalia.query.labels.label_service import VAR_ITEM, VAR_LABEL, get_labels_for_item_uris
 from project.dalia.query.labels.utils import remap_to_label_value_item
-from project.dalia.query.utils import Dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators
+from project.dalia.query.utils import Dataset, filter_by_lang
 from project.dalia.rdf.namespace import MoDalia
 
 _LABEL_GRAPH_PATTERN = (
     (VAR_ITEM, SKOS.prefLabel, VAR_LABEL),
-    FILTER(
-        Operators.EQ(
-            FunctionExpressions.LANG(VAR_LABEL),
-            Literal("en")
-        )
-    )
+    filter_by_lang(VAR_LABEL),
 )
 
 
diff --git a/project/dalia/query/items/metadata/media_types.py b/project/dalia/query/items/metadata/media_types.py
index 898154fd5257bbf7bbe068d1a96d7e4cdc8cfc24..3570481964f44cc2af154eaa265fb7ca75199eab 100644
--- a/project/dalia/query/items/metadata/media_types.py
+++ b/project/dalia/query/items/metadata/media_types.py
@@ -1,24 +1,18 @@
 from typing import Collection, Dict, List
 
 from rdflib import SKOS, URIRef
-from rdflib.term import Literal, Node
+from rdflib.term import Node
 
 from project.dalia.api_models.api_models import LabelValueItem
 from project.dalia.query.items.metadata.one_to_many_metadata import get_one_to_many_metadata_for_resources
 from project.dalia.query.labels.label_service import VAR_ITEM, VAR_LABEL, get_labels_for_item_uris
 from project.dalia.query.labels.utils import remap_to_label_value_item
-from project.dalia.query.utils import Dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators
+from project.dalia.query.utils import Dataset, filter_by_lang
 from project.dalia.rdf.namespace import MoDalia
 
 _LABEL_GRAPH_PATTERN = (
     (VAR_ITEM, SKOS.prefLabel, VAR_LABEL),
-    FILTER(
-        Operators.EQ(
-            FunctionExpressions.LANG(VAR_LABEL),
-            Literal("en")
-        )
-    )
+    filter_by_lang(VAR_LABEL),
 )
 
 
diff --git a/project/dalia/query/items/metadata/proficiency_levels.py b/project/dalia/query/items/metadata/proficiency_levels.py
index 1563913c208e65812dbded50d38630a1b8c5ad94..244320d8a17d456b8fe673e912323b5c511b2c98 100644
--- a/project/dalia/query/items/metadata/proficiency_levels.py
+++ b/project/dalia/query/items/metadata/proficiency_levels.py
@@ -1,14 +1,13 @@
 from typing import Collection, Dict, List
 
 from rdflib import RDFS, URIRef
-from rdflib.term import Literal, Node, Variable
+from rdflib.term import Node, Variable
 
 from project.dalia.api_models.api_models import LabelValueItem
 from project.dalia.query.items.metadata.one_to_many_metadata import get_one_to_many_metadata_for_resources
 from project.dalia.query.labels.label_service import VAR_ITEM, VAR_LABEL, get_labels_for_item_uris
 from project.dalia.query.labels.utils import remap_to_label_value_item
-from project.dalia.query.utils import Dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators
+from project.dalia.query.utils import Dataset, filter_by_lang
 from project.dalia.rdf.namespace import MoDalia
 
 _VAR_LEVEL_ORDER = Variable("levelOrder")
@@ -16,12 +15,7 @@ _VAR_LEVEL_ORDER = Variable("levelOrder")
 _LABEL_GRAPH_PATTERN = (
     (VAR_ITEM, RDFS.label, VAR_LABEL),
     (VAR_ITEM, MoDalia.hasOrder, _VAR_LEVEL_ORDER),
-    FILTER(
-        Operators.EQ(
-            FunctionExpressions.LANG(VAR_LABEL),
-            Literal("en")
-        )
-    )
+    filter_by_lang(VAR_LABEL),
 )
 
 
diff --git a/project/dalia/query/items/metadata/target_groups.py b/project/dalia/query/items/metadata/target_groups.py
index 8404a89eee0fdfeed76ceaecae9834b18ae365d6..a75a354fe56cc72b191ed7b0be31e0a3485ec954 100644
--- a/project/dalia/query/items/metadata/target_groups.py
+++ b/project/dalia/query/items/metadata/target_groups.py
@@ -1,24 +1,18 @@
 from typing import Collection, Dict, List
 
 from rdflib import SKOS, URIRef
-from rdflib.term import Literal, Node
+from rdflib.term import Node
 
 from project.dalia.api_models.api_models import LabelValueItem
 from project.dalia.query.items.metadata.one_to_many_metadata import get_one_to_many_metadata_for_resources
 from project.dalia.query.labels.label_service import VAR_ITEM, VAR_LABEL, get_labels_for_item_uris
 from project.dalia.query.labels.utils import remap_to_label_value_item
-from project.dalia.query.utils import Dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators
+from project.dalia.query.utils import Dataset, filter_by_lang
 from project.dalia.rdf.namespace import MoDalia
 
 _LABEL_GRAPH_PATTERN = (
     (VAR_ITEM, SKOS.prefLabel, VAR_LABEL),
-    FILTER(
-        Operators.EQ(
-            FunctionExpressions.LANG(VAR_LABEL),
-            Literal("en")
-        )
-    )
+    filter_by_lang(VAR_LABEL),
 )
 
 
diff --git a/project/dalia/query/utils.py b/project/dalia/query/utils.py
index 1c542f0dee2fc216ac483548f791be20e964a587..1808beb128347b7042cb2a71c3ea3f25027982cc 100644
--- a/project/dalia/query/utils.py
+++ b/project/dalia/query/utils.py
@@ -1,10 +1,12 @@
 from enum import Enum
 
 from django.conf import settings
-from rdflib import URIRef
+from rdflib import Literal, Variable
 from rdflib.plugins.stores.sparqlstore import SPARQLStore
 from rdflib.query import Result
 
+from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators
+
 
 class Dataset(Enum):
     """
@@ -36,3 +38,12 @@ def _get_triplestore_endpoint_from_settings() -> str:
     if not endpoint.endswith("/"):
         endpoint += "/"
     return endpoint
+
+
+def filter_by_lang(var: Variable, lang: str = "en") -> tuple[FILTER]:
+    return FILTER(
+        Operators.EQ(
+            FunctionExpressions.LANG(var),
+            Literal(lang)
+        )
+    )
diff --git a/tests/project/dalia/query/labels/test_label_service.py b/tests/project/dalia/query/labels/test_label_service.py
index fe2c0ef2662d38de8012f24b724aaf3fabaf84c4..8ef8fb8be983267d45366e45b9257a6e63445dde 100644
--- a/tests/project/dalia/query/labels/test_label_service.py
+++ b/tests/project/dalia/query/labels/test_label_service.py
@@ -1,6 +1,6 @@
 from collections import OrderedDict
 
-from rdflib import Literal, SKOS, URIRef
+from rdflib import SKOS, URIRef
 
 from project.dalia.query.labels.label_service import (
     VAR_ITEM,
@@ -8,19 +8,14 @@ from project.dalia.query.labels.label_service import (
     get_labels_for_item_uris,
     prepare_query_for_labels_from_items,
 )
-from project.dalia.query.utils import Dataset
-from project.dalia.query_builder.query_builder import FILTER, FunctionExpressions, Operators
+from project.dalia.query.utils import Dataset, filter_by_lang
+from project.dalia.query_builder.query_builder import FunctionExpressions
 from project.dalia.rdf.namespace import SCHEMA
 from tests.project.dalia.utils import dedent_and_normalize, normalize
 
 _LABEL_GRAPH_PATTERN = (
     (VAR_ITEM, SKOS.prefLabel, VAR_LABEL),
-    FILTER(
-        Operators.EQ(
-            FunctionExpressions.LANG(VAR_LABEL),
-            Literal("en")
-        )
-    )
+    filter_by_lang(VAR_LABEL),
 )