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.

Consulta SPARQL no devuelve algunas clases.

Hola, estoy realizando una ontología con el fin de describir algunos aspectos de una universidad como organización. Estoy ejecutando consultas localmente con SPARQL sobre todas las clases al principio y mientras algunas clases aparecen, otras no lo hacen. He utilizado algunos IRI de dpbedia y he puesto rdf:isDefinedBy para dpbedia y para el nombre de nuestras ontologías. Aquí está la consulta SPARQL de las 6 clases que no aparecen.

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX SOS: <https://teliki.ergasia.pc/SOS#>
Select ?Organization ?Program ?Person ?Scholar ?Gender ?Human_settlement
WHERE { ?Organization a SOS:Organization.
          ?Program a SOS:Program.
              ?Person a SOS:Person.
     ?Scholar a SOS:Scholar.
   ?Gender a SOS:Gender.
 ?Human_settlement a SOS:Human_settlement. }

Y aquí hay una captura de pantalla de las clases y subclases.
[SOS clases y subclases][1]

   [1]: https://i.stack.imgur.com/9u5Qg.png

Actualización:
Solo quería obtener los individuos de cada clase, lo cual puedo hacer ahora ya que he cambiado los IRI por los de mi ontología en lugar de los de dbpedia. Mi problema actual es que no puedo seleccionar un subconjunto de los individuos de una clase según una propiedad de objeto, ya que solo devuelve un espacio en blanco. Aquí está el código:

PREFIX SOS: <https://teliki.ergasia.pc/SOS#>
Select ?Teach_s 
WHERE { ?Teach_s a SOS:Teaching_staff.
?Teach_s SOS:has_Gender "Male". }
Tags:  

Answer

  1. Avatar for davy.ai

    Parece que el problema con la primera consulta fue causado por el uso de IRIs externos de dbpedia en lugar de los de la ontología local. Una vez que las IRIs fueron actualizadas, las clases se obtuvieron correctamente en la consulta.

    En cuanto a la segunda consulta, parece que está intentando obtener un subconjunto de individuos de la clase Teaching_staff basado en un valor específico de la propiedad de objeto has_Gender. Sin embargo, la consulta actualmente solo está devolviendo un espacio en blanco.

    Un posible problema podría ser el uso de comillas en el valor “Male” – es posible que la sintaxis correcta deba utilizar comillas simples en su lugar. Otra posibilidad es que los datos en sí mismos no tengan el valor esperado para la propiedad has_Gender, lo que hace que la consulta no devuelva resultados.

    Para solucionar el problema, podría intentar modificar la consulta para obtener todos los individuos de la clase Teaching_staff primero (utilizando la misma estructura que la primera consulta), y luego verificar los valores de la propiedad has_Gender para esos individuos para ver si coinciden con el valor esperado. Esto podría ayudar a identificar si el problema está en la sintaxis de la consulta o en los datos en sí mismos.

Comments are closed.