virtuoso tutorial query online examples example español sparql semantic-web dbpedia

sparql - tutorial - Obtener todas las propiedades para una clase DBpedia



sparql tutorial español (2)

El que funciona es:

select distinct ?property where { ?property <http://www.w3.org/2000/01/rdf-schema#domain> <http://dbpedia.org/ontology/Person> . }

En esta consulta, está solicitando todas las propiedades que tienen dbpedia:Person as rdfs:domain . Esta consulta requiere una definición de esquema para funcionar y, en ocasiones, los conjuntos de datos no siguen a la perfección los esquemas. Para esos conjuntos de datos probaría esta otra consulta.

select distinct ?property where { ?instance a <http://dbpedia.org/ontology/Person> . ?instance ?property ?obj . }

Esta consulta examina cada instancia de la persona que enlaza cada propiedad que sale de ella. Es mucho más difícil que el primero, y en la instancia pública de dbpedia obtendrá un tiempo de espera. Así que está mejor con el primero si desea utilizar el punto final público.

¿Cómo obtener una lista de propiedades para una clase específica? Consideremos la clase dbpedia-owl:Person . Todas las instancias de la clase Person tienen algunas propiedades prefijadas con dbpprop: ¿Cómo puedo obtener todas las propiedades dbpprop: que podemos encontrar para todas las instancias de la clase Person ?


Para obtener todas las propiedades transitivas puedes hacer esta consulta.

select distinct ?property where{ { ?property rdfs:domain ?class . dbpedia-owl:Person rdfs:subClassOf+ ?class. } UNION { ?property rdfs:domain dbpedia-owl:Person. }}

El ''+'' en ''rdfs: subClassOf'' es una expresión de ruta de propiedad [1] que también recupera todas las clases superiores de Person. Estas propiedades también son válidas para Person.

También tenga en cuenta que el espacio de nombres dbprop no se recomienda porque los datos están sin procesar y no están normalizados a un tipo de datos.

[1] http://www.w3.org/TR/2010/WD-sparql11-property-paths-20100126/

Divulgación: soy un desarrollador DBpedia