es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo aplicar un filtro de lenguaje global a través de varios campos en Sparql

Estoy aprendiendo sobre la web semántica y usando dbpedia para aprender sparql. A continuación se muestra un ejemplo para obtener todas las escuelas en IL, EE. UU. Si observa los filtros, estoy filtrando 2 campos (nombre y ciudad) solo para el idioma inglés.

Pregunta: en lugar de 2 expresiones de filtro o un número ‘n’ de expresiones de filtro por campo, ¿es posible establecer una condición de filtro global que se pueda aplicar a un conjunto de campos?

PREFIX dbo:
PREFIX dbp:
PREFIX dbr:
PREFIX rdfs:
PREFIX geo:
PREFIX rdf:

select ?link ?name ?city ?website where {
SERVICE {
?link rdf:type dbo:School .
?link rdfs:label ?name .
?link dbo:country dbr:United_States .
?link dbo:state dbr:Illinois .
?link dbo:city ?city_link .
?city_link rdfs:label ?city .
OPTIONAL {
?link dbp:website ?website .
}

}
FILTER (lang(?name)="en") .
FILTER (lang(?city)="en") .

}

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible establecer una condición de filtro global que se puede aplicar a un conjunto de campos. Esto se puede hacer agrupando los campos juntos y aplicando una expresión de filtro única en el grupo utilizando el operador lógico OR.

    Por ejemplo, para filtrar tanto el nombre como los campos de la ciudad solo para el idioma inglés, se puede utilizar la siguiente expresión de filtro:

    FILTER (lang(?name)="en" || lang(?city)="en") .
    

    Esto devolverá todas las escuelas en IL, EE. UU. Con nombres o ciudades en inglés, en lugar de tener que filtrar cada campo por separado.

Comments are closed.