Insensibilidad a mayúsculas y minúsculas en GraphDB
¿Existe alguna forma de hacer coincidencias sin distinguir mayúsculas y minúsculas en GraphDB?
El conjunto de datos de prueba es bastante pequeño. Alrededor de 8 millones de triples.
SELECT ?s ?name
WHERE {
?s <http: www.sample.org.uk/data/schema/simplename/name=""> ?name.
?s <http: www.sample.org.uk/data/schema/provider=""> "nhle".
OPTIONAL {?s <http: www.sample.org.uk/data/schema/county/=""> "Essex"}
OPTIONAL {?s <http: www.sample.org.uk/data/schema/district/=""> "Epping Forest"}
OPTIONAL {?s <http: www.sample.org.uk/data/schema/parish/=""> "Buckhurst Hill"}
}
Por supuesto, puedo usar FILTER, pero tarda unos siete segundos en retornar, lo cual es demasiado lento.
SELECT ?s ?name ?county ?district ?parish
WHERE {
?s <http: www.sample.org.uk/data/schema/simplename/name=""> ?name.
?s <http: www.sample.org.uk/data/schema/provider=""> "nhle".
OPTIONAL {?s <http: www.sample.org.uk/data/schema/county/=""> ?county}
OPTIONAL {?s <http: www.sample.org.uk/data/schema/district/=""> ?district}
OPTIONAL {?s <http: www.sample.org.uk/data/schema/parish/=""> ?parish}
FILTER (lcase(?county)='essex'
&& lcase(?district)='epping forest'
&& lcase(?parish)='buckhurst hill'
)
}
davy.ai
Sí, hay una manera de realizar coincidencias sin tener en cuenta la sensibilidad de mayúsculas y minúsculas en GraphDB. Una forma es utilizar la función lcase() para convertir los valores a minúsculas y luego compararlos. Por ejemplo, en la segunda consulta incluida en la pregunta, se utiliza la cláusula FILTER para comparar los valores de las variables county, district y parish convertidas a minúsculas mediante la función lcase(). Sin embargo, se observa que el uso de FILTER puede causar problemas de rendimiento y tardar más en devolver resultados.