Skip to content

Commit b68344d

Browse files
authored
Merge pull request #24 from meaningfy-ws/feature/EPO-852
Add support for fallback label properties
2 parents e258426 + 25986db commit b68344d

14 files changed

+510
-132
lines changed

dqgen/resources/aps/owl-core.csv

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,66 @@
11
class,property,object property,property group,preview property,preview object property
2-
owl:Ontology,rdfs:label,,labels,rdfs:label,
3-
owl:Ontology,dct:title,,labels,rdfs:label,
4-
owl:Ontology,rdfs:comment,,notes,rdfs:label,
5-
owl:Ontology,dct:description,,notes,rdfs:label,
6-
owl:Ontology,owl:versionInfo,,evolution properties,rdfs:label,
7-
owl:Ontology,owl:versionIRI,,evolution properties,rdfs:label,
8-
owl:Ontology,owl:priorVersion,,evolution properties,rdfs:label,
9-
owl:Ontology,owl:incompatibleWith,,evolution properties,rdfs:label,
10-
owl:Ontology,dct:created,,evolution properties,rdfs:label,
11-
owl:Ontology,dct:issued,,evolution properties,rdfs:label,
12-
owl:Ontology,owl:imports,,miscellaneous,rdfs:label,
13-
owl:Ontology,rdfs:seeAlso,,miscellaneous,rdfs:label,
14-
owl:Ontology,dct:license,,miscellaneous,rdfs:label,
15-
owl:Ontology,dct:publisher,,miscellaneous,rdfs:label,
16-
owl:Ontology,vann:preferredNamespacePrefix,,miscellaneous,rdfs:label,
17-
owl:Ontology,vann:preferredNamespaceUri,,miscellaneous,rdfs:label,
18-
owl:Class,rdfs:label,,labels,rdfs:label,
19-
owl:Class,skos:prefLabel,,labels,skos:prefLabel,
20-
owl:Class,skos:altLabel,,labels,skos:prefLabel,
21-
owl:Class,skos:hiddenLabel,,labels,skos:prefLabel,
22-
owl:Class,rdfs:comment,,notes,rdfs:label,
23-
owl:Class,dct:description,,notes,rdfs:label,
24-
owl:Class,skos:definition,,notes,skos:prefLabel,
25-
owl:Class,skos:example,,notes,skos:prefLabel,
26-
owl:Class,skos:note,,notes,skos:prefLabel,
27-
owl:Class,skos:scopeNote,,notes,skos:prefLabel,
28-
owl:Class,skos:changeNote,,notes,skos:prefLabel,
29-
owl:Class,skos:historyNote,,notes,skos:prefLabel,
30-
owl:Class,skos:editorialNote,,notes,skos:prefLabel,
31-
owl:Class,rdfs:subClassOf,,semantic properties,rdfs:label,
32-
owl:Class,rdfs:isDefinedBy,,semantic properties,rdfs:label,
33-
owl:ObjectProperty,rdfs:label,,labels,rdfs:label,
34-
owl:ObjectProperty,skos:prefLabel,,labels,skos:prefLabel,
35-
owl:ObjectProperty,skos:altLabel,,labels,skos:prefLabel,
36-
owl:ObjectProperty,skos:hiddenLabel,,labels,skos:prefLabel,
37-
owl:ObjectProperty,rdfs:comment,,notes,rdfs:label,
38-
owl:ObjectProperty,dct:description,,notes,rdfs:label,
39-
owl:ObjectProperty,skos:definition,,notes,skos:prefLabel,
40-
owl:ObjectProperty,skos:example,,notes,skos:prefLabel,
41-
owl:ObjectProperty,skos:note,,notes,skos:prefLabel,
42-
owl:ObjectProperty,skos:scopeNote,,notes,skos:prefLabel,
43-
owl:ObjectProperty,skos:changeNote,,notes,skos:prefLabel,
44-
owl:ObjectProperty,skos:historyNote,,notes,skos:prefLabel,
45-
owl:ObjectProperty,skos:editorialNote,,notes,skos:prefLabel,
46-
owl:ObjectProperty,rdfs:subPropertyOf,,semantic properties,rdfs:label,
47-
owl:ObjectProperty,rdfs:isDefinedBy,,semantic properties,rdfs:label,
48-
owl:ObjectProperty,rdfs:domain,,semantic properties,rdfs:label,
49-
owl:ObjectProperty,rdfs:range,,semantic properties,rdfs:label,
50-
owl:DatatypeProperty,rdfs:label,,labels,rdfs:label,
51-
owl:DatatypeProperty,skos:prefLabel,,labels,skos:prefLabel,
52-
owl:DatatypeProperty,skos:altLabel,,labels,skos:prefLabel,
53-
owl:DatatypeProperty,skos:hiddenLabel,,labels,skos:prefLabel,
54-
owl:DatatypeProperty,rdfs:comment,,notes,rdfs:label,
55-
owl:DatatypeProperty,dct:description,,notes,rdfs:label,
56-
owl:DatatypeProperty,skos:definition,,notes,skos:prefLabel,
57-
owl:DatatypeProperty,skos:example,,notes,skos:prefLabel,
58-
owl:DatatypeProperty,skos:note,,notes,skos:prefLabel,
59-
owl:DatatypeProperty,skos:scopeNote,,notes,skos:prefLabel,
60-
owl:DatatypeProperty,skos:changeNote,,notes,skos:prefLabel,
61-
owl:DatatypeProperty,skos:historyNote,,notes,skos:prefLabel,
62-
owl:DatatypeProperty,skos:editorialNote,,notes,skos:prefLabel,
63-
owl:DatatypeProperty,rdfs:subPropertyOf,,semantic properties,rdfs:label,
64-
owl:DatatypeProperty,rdfs:isDefinedBy,,semantic properties,rdfs:label,
65-
owl:DatatypeProperty,rdfs:domain,,semantic properties,rdfs:label,
66-
owl:DatatypeProperty,rdfs:range,,semantic properties,rdfs:label,
2+
owl:Ontology,rdfs:label,,labels,,
3+
owl:Ontology,dct:title,,labels,,
4+
owl:Ontology,rdfs:comment,,notes,,
5+
owl:Ontology,dct:description,,notes,,
6+
owl:Ontology,owl:versionInfo,,evolution properties,,
7+
owl:Ontology,owl:versionIRI,,evolution properties,,
8+
owl:Ontology,owl:priorVersion,,evolution properties,,
9+
owl:Ontology,owl:incompatibleWith,,evolution properties,,
10+
owl:Ontology,dct:created,,evolution properties,,
11+
owl:Ontology,dct:issued,,evolution properties,,
12+
owl:Ontology,owl:imports,,miscellaneous,,
13+
owl:Ontology,rdfs:seeAlso,,miscellaneous,,
14+
owl:Ontology,dct:license,,miscellaneous,,
15+
owl:Ontology,dct:publisher,,miscellaneous,,
16+
owl:Ontology,vann:preferredNamespacePrefix,,miscellaneous,,
17+
owl:Ontology,vann:preferredNamespaceUri,,miscellaneous,,
18+
owl:Class,rdfs:label,,labels,,
19+
owl:Class,skos:prefLabel,,labels,,
20+
owl:Class,skos:altLabel,,labels,,
21+
owl:Class,skos:hiddenLabel,,labels,,
22+
owl:Class,rdfs:comment,,notes,,
23+
owl:Class,dct:description,,notes,,
24+
owl:Class,skos:definition,,notes,,
25+
owl:Class,skos:example,,notes,,
26+
owl:Class,skos:note,,notes,,
27+
owl:Class,skos:scopeNote,,notes,,
28+
owl:Class,skos:changeNote,,notes,,
29+
owl:Class,skos:historyNote,,notes,,
30+
owl:Class,skos:editorialNote,,notes,,
31+
owl:Class,rdfs:subClassOf,,semantic properties,,
32+
owl:Class,rdfs:isDefinedBy,,semantic properties,,
33+
owl:ObjectProperty,rdfs:label,,labels,,
34+
owl:ObjectProperty,skos:prefLabel,,labels,,
35+
owl:ObjectProperty,skos:altLabel,,labels,,
36+
owl:ObjectProperty,skos:hiddenLabel,,labels,,
37+
owl:ObjectProperty,rdfs:comment,,notes,,
38+
owl:ObjectProperty,dct:description,,notes,,
39+
owl:ObjectProperty,skos:definition,,notes,,
40+
owl:ObjectProperty,skos:example,,notes,,
41+
owl:ObjectProperty,skos:note,,notes,,
42+
owl:ObjectProperty,skos:scopeNote,,notes,,
43+
owl:ObjectProperty,skos:changeNote,,notes,,
44+
owl:ObjectProperty,skos:historyNote,,notes,,
45+
owl:ObjectProperty,skos:editorialNote,,notes,,
46+
owl:ObjectProperty,rdfs:subPropertyOf,,semantic properties,,
47+
owl:ObjectProperty,rdfs:isDefinedBy,,semantic properties,,
48+
owl:ObjectProperty,rdfs:domain,,semantic properties,,
49+
owl:ObjectProperty,rdfs:range,,semantic properties,,
50+
owl:DatatypeProperty,rdfs:label,,labels,,
51+
owl:DatatypeProperty,skos:prefLabel,,labels,,
52+
owl:DatatypeProperty,skos:altLabel,,labels,,
53+
owl:DatatypeProperty,skos:hiddenLabel,,labels,,
54+
owl:DatatypeProperty,rdfs:comment,,notes,,
55+
owl:DatatypeProperty,dct:description,,notes,,
56+
owl:DatatypeProperty,skos:definition,,notes,,
57+
owl:DatatypeProperty,skos:example,,notes,,
58+
owl:DatatypeProperty,skos:note,,notes,,
59+
owl:DatatypeProperty,skos:scopeNote,,notes,,
60+
owl:DatatypeProperty,skos:changeNote,,notes,,
61+
owl:DatatypeProperty,skos:historyNote,,notes,,
62+
owl:DatatypeProperty,skos:editorialNote,,notes,,
63+
owl:DatatypeProperty,rdfs:subPropertyOf,,semantic properties,,
64+
owl:DatatypeProperty,rdfs:isDefinedBy,,semantic properties,,
65+
owl:DatatypeProperty,rdfs:domain,,semantic properties,,
66+
owl:DatatypeProperty,rdfs:range,,semantic properties,,

dqgen/resources/aps/shacl-core.csv

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
11
class,property,object property,property group,preview property,preview object property
2-
sh:NodeShape,rdfs:label,,labels,rdfs:label,
3-
sh:NodeShape,rdfs:comment,,notes,rdfs:label,
4-
sh:NodeShape,sh:targetClass,,node constraints,rdfs:label,
5-
sh:NodeShape,sh:property,,node constraints,rdfs:label,
6-
sh:NodeShape,rdfs:isDefinedBy,,semantic properties,rdfs:label,
7-
sh:PropertyShape,sh:name,,labels,sh:name,
8-
sh:PropertyShape,sh:description,,notes,sh:name,
9-
sh:PropertyShape,sh:path,,property constraints,sh:name,
10-
sh:PropertyShape,sh:class,,property constraints,sh:name,
11-
sh:PropertyShape,sh:datatype,,property constraints,sh:name,
12-
sh:PropertyShape,sh:minCount,,cardinality constraints,sh:name,
13-
sh:PropertyShape,sh:maxCount,,cardinality constraints,sh:name,
14-
sh:PropertyShape,sh:minInclusive,,range constraints,sh:name,
15-
sh:PropertyShape,sh:maxInclusive,,range constraints,sh:name,
16-
sh:PropertyShape,sh:minExclusive,,range constraints,sh:name,
17-
sh:PropertyShape,sh:maxExclusive,,range constraints,sh:name,
18-
sh:PropertyShape,sh:minLength,,string constraints,sh:name,
19-
sh:PropertyShape,sh:maxLength,,string constraints,sh:name,
20-
sh:PropertyShape,sh:pattern,,string constraints,sh:name,
21-
sh:PropertyShape,sh:languageIn,,string constraints,sh:name,
22-
sh:PropertyShape,sh:uniqueLang,,string constraints,sh:name,
23-
sh:PropertyShape,sh:sparql,sh:select,query constraints,sh:name,
24-
sh:PropertyShape,rdfs:isDefinedBy,,semantic properties,sh:name,
25-
owl:Ontology,rdfs:label,,labels,rdfs:label,
26-
owl:Ontology,dct:title,,labels,rdfs:label,
27-
owl:Ontology,rdfs:comment,,notes,rdfs:label,
28-
owl:Ontology,dct:description,,notes,rdfs:label,
29-
owl:Ontology,owl:versionInfo,,evolution properties,rdfs:label,
30-
owl:Ontology,owl:versionIRI,,evolution properties,rdfs:label,
31-
owl:Ontology,owl:priorVersion,,evolution properties,rdfs:label,
32-
owl:Ontology,owl:incompatibleWith,,evolution properties,rdfs:label,
33-
owl:Ontology,dct:created,,evolution properties,rdfs:label,
34-
owl:Ontology,dct:issued,,evolution properties,rdfs:label,
35-
owl:Ontology,owl:imports,,miscellaneous,rdfs:label,
36-
owl:Ontology,rdfs:seeAlso,,miscellaneous,rdfs:label,
37-
owl:Ontology,dct:license,,miscellaneous,rdfs:label,
38-
owl:Ontology,dct:publisher,,miscellaneous,rdfs:label,
39-
owl:Ontology,vann:preferredNamespacePrefix,,miscellaneous,rdfs:label,
40-
owl:Ontology,vann:preferredNamespaceUri,,miscellaneous,rdfs:label,
2+
shacl:NodeShape,rdfs:label,,labels,,
3+
shacl:NodeShape,rdfs:comment,,notes,,
4+
shacl:NodeShape,shacl:targetClass,,node constraints,,
5+
shacl:NodeShape,shacl:property,,node constraints,,
6+
shacl:NodeShape,rdfs:isDefinedBy,,semantic properties,,
7+
shacl:PropertyShape,shacl:name,,labels,,
8+
shacl:PropertyShape,shacl:description,,notes,,
9+
shacl:PropertyShape,shacl:path,,property constraints,,
10+
shacl:PropertyShape,shacl:class,,property constraints,,
11+
shacl:PropertyShape,shacl:datatype,,property constraints,,
12+
shacl:PropertyShape,shacl:minCount,,cardinality constraints,,
13+
shacl:PropertyShape,shacl:maxCount,,cardinality constraints,,
14+
shacl:PropertyShape,shacl:minInclusive,,range constraints,,
15+
shacl:PropertyShape,shacl:maxInclusive,,range constraints,,
16+
shacl:PropertyShape,shacl:minExclusive,,range constraints,,
17+
shacl:PropertyShape,shacl:maxExclusive,,range constraints,,
18+
shacl:PropertyShape,shacl:minLength,,string constraints,,
19+
shacl:PropertyShape,shacl:maxLength,,string constraints,,
20+
shacl:PropertyShape,shacl:pattern,,string constraints,,
21+
shacl:PropertyShape,shacl:languageIn,,string constraints,,
22+
shacl:PropertyShape,shacl:uniqueLang,,string constraints,,
23+
shacl:PropertyShape,shacl:sparql,shacl:select,query constraints,,
24+
shacl:PropertyShape,rdfs:isDefinedBy,,semantic properties,,
25+
owl:Ontology,rdfs:label,,labels,,
26+
owl:Ontology,dct:title,,labels,,
27+
owl:Ontology,rdfs:comment,,notes,,
28+
owl:Ontology,dct:description,,notes,,
29+
owl:Ontology,owl:versionInfo,,evolution properties,,
30+
owl:Ontology,owl:versionIRI,,evolution properties,,
31+
owl:Ontology,owl:priorVersion,,evolution properties,,
32+
owl:Ontology,owl:incompatibleWith,,evolution properties,,
33+
owl:Ontology,dct:created,,evolution properties,,
34+
owl:Ontology,dct:issued,,evolution properties,,
35+
owl:Ontology,owl:imports,,miscellaneous,,
36+
owl:Ontology,rdfs:seeAlso,,miscellaneous,,
37+
owl:Ontology,dct:license,,miscellaneous,,
38+
owl:Ontology,dct:publisher,,miscellaneous,,
39+
owl:Ontology,vann:preferredNamespacePrefix,,miscellaneous,,
40+
owl:Ontology,vann:preferredNamespaceUri,,miscellaneous,,

dqgen/resources/query_templates/instance_additions.rq

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,25 @@ WHERE {
7070
GRAPH ?insertionsGraph {
7171
?instance a ?class .
7272
{% for lang in languages %}
73-
{% if preview_object_property == "" %}
73+
{% if preview_object_property == "" and preview_property == "" %}
74+
# fall back to known labels if no preview property
75+
optional {
76+
?instance rdfs:label ?rdfsLabel{{lang|title}} .
77+
FILTER(LANG(?rdfsLabel{{lang|title}}) = "" || LANGMATCHES(LANG(?rdfsLabel{{lang|title}}), "{{ lang }}"))
78+
}
79+
80+
optional {
81+
?instance skos:prefLabel ?skosLabel{{lang|title}} .
82+
FILTER(LANG(?skosLabel{{lang|title}}) = "" || LANGMATCHES(LANG(?skosLabel{{lang|title}}), "{{ lang }}"))
83+
}
84+
85+
optional {
86+
?instance shacl:name ?shaclName{{lang|title}} .
87+
FILTER(LANG(?shaclName{{lang|title}}) = "" || LANGMATCHES(LANG(?shaclName{{lang|title}}), "{{ lang }}"))
88+
}
89+
90+
BIND (COALESCE(?shaclName{{lang|title}}, ?skosLabel{{lang|title}}, ?rdfsLabel{{lang|title}}) AS ?prefLabel{{lang|title}})
91+
{% elif preview_object_property == "" %}
7492
optional {
7593
?instance {{ preview_property }} ?prefLabel{{lang|title}} .
7694
FILTER (lang(?prefLabel{{lang|title}}) = "{{ lang }}")
@@ -84,7 +102,16 @@ WHERE {
84102
{% endif %}
85103
{% endfor %}
86104
{% if languages|length > 1 %}
87-
{% if preview_object_property == "" %}
105+
{% if preview_object_property == "" and preview_property == "" %}
106+
# fall back to alternative labels if no preview property
107+
{
108+
SELECT ?instance (SAMPLE (?prefLabel) as ?prefLabelRandom)
109+
{
110+
?instance shacl:name|skos:prefLabel|rdfs:label ?prefLabel .
111+
}
112+
GROUP BY ?instance order by ?prefLabel
113+
}
114+
{% elif preview_object_property == "" %}
88115
{
89116
SELECT ?instance (SAMPLE (?prefLabel) as ?prefLabelRandom)
90117
{

dqgen/resources/query_templates/instance_deletions.rq

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,25 @@ WHERE {
8787
?instance a ?class .
8888

8989
{% for lang in languages %}
90-
{% if preview_object_property == "" %}
90+
{% if preview_object_property == "" and preview_property == "" %}
91+
# fall back to known labels if no preview property
92+
optional {
93+
?instance rdfs:label ?rdfsLabel{{lang|title}} .
94+
FILTER(LANG(?rdfsLabel{{lang|title}}) = "" || LANGMATCHES(LANG(?rdfsLabel{{lang|title}}), "{{ lang }}"))
95+
}
96+
97+
optional {
98+
?instance skos:prefLabel ?skosLabel{{lang|title}} .
99+
FILTER(LANG(?skosLabel{{lang|title}}) = "" || LANGMATCHES(LANG(?skosLabel{{lang|title}}), "{{ lang }}"))
100+
}
101+
102+
optional {
103+
?instance shacl:name ?shaclName{{lang|title}} .
104+
FILTER(LANG(?shaclName{{lang|title}}) = "" || LANGMATCHES(LANG(?shaclName{{lang|title}}), "{{ lang }}"))
105+
}
106+
107+
BIND (COALESCE(?shaclName{{lang|title}}, ?skosLabel{{lang|title}}, ?rdfsLabel{{lang|title}}) AS ?prefLabel{{lang|title}})
108+
{% elif preview_object_property == "" %}
91109
optional {
92110
?instance {{ preview_property }} ?prefLabel{{lang|title}} .
93111
FILTER (lang(?prefLabel{{lang|title}}) = "{{ lang }}")
@@ -101,7 +119,16 @@ WHERE {
101119
{% endif %}
102120
{% endfor %}
103121
{% if languages|length > 1 %}
104-
{% if preview_object_property == "" %}
122+
{% if preview_object_property == "" and preview_property == "" %}
123+
# fall back to alternative labels if no preview property
124+
{
125+
SELECT ?instance (SAMPLE (?prefLabel) as ?prefLabelRandom)
126+
{
127+
?instance shacl:name|skos:prefLabel|rdfs:label ?prefLabel .
128+
}
129+
GROUP BY ?instance order by ?prefLabel
130+
}
131+
{% elif preview_object_property == "" %}
105132
{
106133
SELECT ?instance (SAMPLE (?prefLabel) as ?prefLabelRandom)
107134
{

dqgen/resources/query_templates/movement_cross_instance.rq

Lines changed: 58 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,25 @@ WHERE {
6666
?newInstance a ?class .
6767
?newInstance ?property ?value .
6868
{% for lang in languages %}
69-
{% if preview_object_property == "" %}
69+
{% if preview_object_property == "" and preview_property == "" %}
70+
# fall back to known labels if no preview property
71+
optional {
72+
?instance rdfs:label ?rdfsLabel{{lang|title}} .
73+
FILTER(LANG(?rdfsLabel{{lang|title}}) = "" || LANGMATCHES(LANG(?rdfsLabel{{lang|title}}), "{{ lang }}"))
74+
}
75+
76+
optional {
77+
?instance skos:prefLabel ?skosLabel{{lang|title}} .
78+
FILTER(LANG(?skosLabel{{lang|title}}) = "" || LANGMATCHES(LANG(?skosLabel{{lang|title}}), "{{ lang }}"))
79+
}
80+
81+
optional {
82+
?instance shacl:name ?shaclName{{lang|title}} .
83+
FILTER(LANG(?shaclName{{lang|title}}) = "" || LANGMATCHES(LANG(?shaclName{{lang|title}}), "{{ lang }}"))
84+
}
85+
86+
BIND (COALESCE(?shaclName{{lang|title}}, ?skosLabel{{lang|title}}, ?rdfsLabel{{lang|title}}) AS ?prefLabel{{lang|title}})
87+
{% elif preview_object_property == "" %}
7088
optional {
7189
?newInstance {{ preview_property }} ?prefLabel{{lang|title}} .
7290
FILTER (lang(?prefLabel{{lang|title}}) = "{{ lang }}")
@@ -80,7 +98,16 @@ WHERE {
8098
{% endif %}
8199
{% endfor %}
82100
{% if languages|length > 1 %}
83-
{% if preview_object_property == "" %}
101+
{% if preview_object_property == "" and preview_property == "" %}
102+
# fall back to alternative labels if no preview property
103+
{
104+
SELECT ?instance (SAMPLE (?prefLabel) as ?prefLabelRandom)
105+
{
106+
?instance shacl:name|skos:prefLabel|rdfs:label ?prefLabel .
107+
}
108+
GROUP BY ?instance order by ?prefLabel
109+
}
110+
{% elif preview_object_property == "" %}
84111
{
85112
SELECT ?newInstance (SAMPLE (?prefLabel) as ?prefLabelRandom)
86113
{
@@ -112,7 +139,25 @@ WHERE {
112139
?oldInstance a ?class .
113140
?oldInstance ?property ?value .
114141
{% for lang in languages %}
115-
{% if preview_object_property == "" %}
142+
{% if preview_object_property == "" and preview_property == "" %}
143+
# fall back to known labels if no preview property
144+
optional {
145+
?instance rdfs:label ?rdfsLabel{{lang|title}} .
146+
FILTER(LANG(?rdfsLabel{{lang|title}}) = "" || LANGMATCHES(LANG(?rdfsLabel{{lang|title}}), "{{ lang }}"))
147+
}
148+
149+
optional {
150+
?instance skos:prefLabel ?skosLabel{{lang|title}} .
151+
FILTER(LANG(?skosLabel{{lang|title}}) = "" || LANGMATCHES(LANG(?skosLabel{{lang|title}}), "{{ lang }}"))
152+
}
153+
154+
optional {
155+
?instance shacl:name ?shaclName{{lang|title}} .
156+
FILTER(LANG(?shaclName{{lang|title}}) = "" || LANGMATCHES(LANG(?shaclName{{lang|title}}), "{{ lang }}"))
157+
}
158+
159+
BIND (COALESCE(?shaclName{{lang|title}}, ?skosLabel{{lang|title}}, ?rdfsLabel{{lang|title}}) AS ?oldPrefLabel{{lang|title}})
160+
{% elif preview_object_property == "" %}
116161
optional {
117162
?oldInstance {{ preview_property }} ?oldPrefLabel{{lang|title}} .
118163
FILTER (lang(?oldPrefLabel{{lang|title}}) = "{{ lang }}")
@@ -126,7 +171,16 @@ WHERE {
126171
{% endif %}
127172
{% endfor %}
128173
{% if languages|length > 1 %}
129-
{% if preview_object_property == "" %}
174+
{% if preview_object_property == "" and preview_property == "" %}
175+
# fall back to alternative labels if no preview property
176+
{
177+
SELECT ?oldInstance (SAMPLE (?prefLabelRd) as ?oldInstancePrefLabelRandom)
178+
{
179+
?oldInstance shacl:name|skos:prefLabel|rdfs:label ?prefLabelRd .
180+
}
181+
GROUP BY ?oldInstance order by ?prefLabelRd
182+
}
183+
{% elif preview_object_property == "" %}
130184
{
131185
SELECT ?oldInstance (SAMPLE (?prefLabelRd) as ?oldInstancePrefLabelRandom)
132186
{

0 commit comments

Comments
 (0)