Transcript
Page 1: Diseño de Ontologías: Protégé - OWL: SPARQL

Protégé - OWLSPARQL

http://www.w3.org/TR/rdf-sparql-query/

http://ontologias.blogs.upv.es

Page 2: Diseño de Ontologías: Protégé - OWL: SPARQL

Protégé - OWLSPARQL

http://www.w3.org/TR/rdf-sparql-query/

http://ontologias.blogs.upv.es

Page 3: Diseño de Ontologías: Protégé - OWL: SPARQL

SPARQL

SPARQL Protocol And RDF Query Language

3 especificaciones separadas:

Lenguaje de queries.

Formato XML de resultados de queries.

Protocolo de acceso a los datos.

Page 4: Diseño de Ontologías: Protégé - OWL: SPARQL

SPARQL: PatronesSe basa en casar patrones de tripletas con tripletas RDF.

sujeto predicado objeto .

Patrón básico: Secuencia de patrones de tripletas unido por un punto.

Conjunción de sus patrones de tripletas.

Ej.: ?x foaf:name ?name . ?x foaf:mbox ?mbox

Patrón para instancias: predicado a (Ej.: ?s a ?o )

Page 5: Diseño de Ontologías: Protégé - OWL: SPARQL

SPARQL: QueriesDeclaraciones de prefijos: abreviar URIs.

Definición de datasets: indicar grafos RDF a interrogar.

Cláusula resultado, indicar qué debe devolver la query.

Patrón de query, especificar lo que se pide del dataset.

Modificadores de query, partir, ordenar y reunir resultados.

#declaración prefijoPREFIX foo: <http://example.com/resources/>...#definición del datasetFROM ...#cláusula resultadoSELECT ...#patrón del queryWHERE {...}#modificadores del queryORDER BY ...

Page 6: Diseño de Ontologías: Protégé - OWL: SPARQL

SPARQL: ProtégéVars. empiezan con un ? y pueden ser cualquier nodo (recurso o literal) en el RDF dataset.

Cualquier parte de una tripleta RDF puede ser reemplazada con una var.

Resultado del SELECT: tabla de vars. y valores que satisfacen la query.

Page 7: Diseño de Ontologías: Protégé - OWL: SPARQL

SPARQL: Formas

SELECT * devuelve enlaces a todas las vars. mencionadas en la query.

CONSTRUCT devuelve un grafo RDF.

ASK devuelve si un patrón de grafo tiene o no solución.

Page 8: Diseño de Ontologías: Protégé - OWL: SPARQL

SPARQL: Restricciones en vars.

DISTINCT : elimina resultados duplicados.

FILTER:

Sólo los results. que la exp. se evalúa a cierto.

Expresiones Booleanas.

regex:

leng. de expres. regs. def. en XQuery 1.0 and XPath 2.0

Logicas (!, &&, ||), Matemáticas (+, -, *, /), Comparación ( =, !=, >, <)

Tests: isURI, isBlank, isLiteral, bound

str, lang, datatype

Params. deben ser string.

Tercer parám. opcional: indistinto a mayúsc./minúsc. “i”

PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX ns: <http://example.org/ns#> SELECT DISTINCT ?title ?price WHERE { ?x ns:price ?price . FILTER (?price < 30.5) ?x dc:title ?title . }

PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?titleWHERE { ?x dc:title ?title FILTER regex(?title, "^SPARQL") }

Page 9: Diseño de Ontologías: Protégé - OWL: SPARQL

SPARQL: Patrones OpcionalesA veces no se puede asumir que se dispondrá de toda la información en todos los grafos RDF.

Patrones Opcionales: permiten añadir información tan sólo si está disponible.

OPTIONAL

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?mbox WHERE { ?x foaf:name ?name . OPTIONAL { ?x foaf:mbox ?mbox } }

Page 10: Diseño de Ontologías: Protégé - OWL: SPARQL

SPARQL: Patrones Alternativos

Disyunción.

UNION

PREFIX dc10: <http://purl.org/dc/elements/1.0/> PREFIX dc11: <http://purl.org/dc/elements/1.1/> SELECT ?title WHERE { { ?book dc10:title ?title }

UNION { ?book dc11:title ?title }}

Page 11: Diseño de Ontologías: Protégé - OWL: SPARQL

EjerciciosCrear una ontología en Protégé formada por 4 ficheros de noticias de los almacenados por los grupos de clase en el blog.

Combinar toda la información guardándola en local, por medio de la opción de menú Refactor/Merge ontologies...

Page 12: Diseño de Ontologías: Protégé - OWL: SPARQL

SPARQL: EjerciciosExtraer de manera incremental:

1. Todas las instancias de tu ontología, sin repetición.

2. Las cabeceras de todos los artículos almacenados.

3. El cuerpo de todos los artículos almacenados.

4. El creador o el editor de la noticia.

5. Modificar la opción anterior para que sólo sea si existe el creador o el editor. Si no, que no aparezca dicha información, pero sí la noticia.

6. Quedaros sólo con aquellas noticias de “El País”.

7. Reducir a aquellas que hacen referencia a Estados Unidos.

Page 13: Diseño de Ontologías: Protégé - OWL: SPARQL

http://developer.nytimes.com/

http://open.blogs.nytimes.com/2010/03/30/build-your-own-nyt-linked-data-application/

http://prototype.nytimes.com/gst/apitool/index.html?api_id=0&request_id=0&query=obama&facets=&begin_date=&fields=&offset=&rank=newest&resp_format=json&perform_request=Make+Request&use_pp=on

http://open.blogs.nytimes.com/2012/12/10/timesopen-2012-hack-day-wrap-up/

Aplicaciones: NYT