Cómo optimizar las consultas SPARQL

El grado en que los enfoques de Machine Learning son (a) útiles (b) posibles, o (c) superfluos depende mucho de cuál sea el almacén subyacente (utilizaré el término almacén SPARQL para referirme a una base de datos que presenta una interfaz SPARQL , independientemente de si se trata de una tienda triple / cuádruple pura).

La agrupación es un buen ejemplo.

En el uso típico de la base de datos, se refiere a la organización física de tablas para que las cosas se almacenen de manera que los datos que puedan usarse en un futuro próximo se ubiquen cerca de los datos a los que se accede al mismo tiempo.

Algunos ejemplos relacionados con la tienda SPARQL:

Diseño del disco

  • Algunas tiendas permiten que las instancias de algunas clases se almacenen como filas, con la mayoría o todas las propiedades asociadas con una entidad específica almacenada en secuencia. Esto hace que las consultas que acceden a muchas propiedades para un solo sujeto sean más eficientes.
  • Algunos de estos almacenes permiten ordenar filas en función del valor de una columna. Las consultas que atraviesan filas de acceso en este orden pueden ser bastante eficientes.
  • Algunas tiendas que admiten tablas se pueden distribuir de modo que, en lugar de que las propiedades de un tema determinado se almacenen juntas por fila, en su lugar, puede organizar las cosas para que todos los valores de una columna se almacenen juntos. Este tipo de almacenamiento en columnas puede ser bastante eficiente si solo se necesita un subconjunto de propiedades, y si se deben recorrer diferentes propiedades en diferentes órdenes.
  • Si muchas consultas requieren perseguir un enlace específico, es posible ordenar datos para que los elementos vinculados sean adyacentes. Esto se vuelve más complicado si se siguen varios enlaces diferentes.
  • Algunas tiendas mantienen esencialmente todos los datos en la memoria, lo que evita más o menos el problema de cómo se almacenan los datos en el disco. Sin embargo, estas tiendas pueden no tener tanta indexación u otra optimización.

Tiendas distribuidas

  • Algunas tiendas se pueden distribuir en varios servidores. Estos pueden escalar extremadamente bien, hasta que sea necesario seguir enlaces de ida y vuelta a través de múltiples máquinas. Mantener los datos de las entidades conectadas por enlaces seguidos con frecuencia lo más cerca posible es muy importante. Esto es generalmente similar al concepto de agrupamiento en ML (handwave).
  • Esto puede ser simple (por ejemplo, si solo se puede llegar a una entidad desde otra entidad, por ejemplo, un valor de tortuga usando la notación []). Almacenar entidades fuertemente relacionadas juntas es, por lo tanto, una táctica útil. Si las entidades se almacenan en orden cronológico, esta agrupación puede ocurrir naturalmente.
  • Por supuesto, SPARQL permite acceder a estos objetos sin seguir los enlaces; sin embargo, estas consultas pueden tener más paralelismo disponible antes de que comiencen las cosas difíciles.

Aprendizaje automático

En general, se han realizado esfuerzos exitosos para predecir el rendimiento de las consultas SPARQL utilizando los enfoques habituales de aprendizaje automático (por ejemplo, SVM, KNN).

Casi todas las tiendas utilizan técnicas tradicionales de bases de datos que podrían considerarse ML, como la optimización de consultas genéticas y el análisis de selectividad.

[Citas necesarias]

Existen múltiples métodos para optimizar las consultas SPARQL:

  • Puede optimizar el lado lógico de una consulta (por ejemplo, reducir la complejidad, eliminar UNIONS, por ejemplo). Por supuesto, esto puede ser una reducción total o parcial de la consulta.
  • Puede hacer que la consulta devuelva más o menos resultados, usar paginación, etc.
  • Puede aplicar todo tipo de métodos de reescritura de consultas (por ejemplo, cuando usa OBDA – Acceso a datos basados ​​en ontología).
  • Puede usar un optimizador de consultas que puede venir con grandes almacenes triples.

Dicho esto, es necesario tener una base sólida antes de aplicar algunas de las técnicas, por lo que lo que recomendaría sería que comience por comprender la base lógica entre la optimización de las consultas SPARQL.

  • Puede comenzar con la clásica semántica y complejidad de las consultas SPARQL de Pérez, Arenas, Gutiérrez.
  • Luego, puede pasar lentamente a la optimización de consultas de Fundamentos de SPARQL por Schmidt, Meier, Lausen.
  • Y, por supuesto, puede leer artículos más modernos sobre la optimización de ontologías OWL, OBDA y otros temas.

More Interesting

¿Cuál es la relación entre los clasificadores uno contra uno, conjunto y SVM?

¿Es posible combinar dos algoritmos no supervisados ​​en serie para maximizar la precisión?

¿Cuál es un buen conjunto de datos de Kaggle para practicar el ajuste de modelos de regresión logística o modelos jerárquicos?

Para un problema de clasificación (dos clases), ¿es mejor usar dos salidas con softmax o una salida con entropía cruzada binaria?

¿Qué alternativas a las redes convolucionales para las tareas de aprendizaje automático de imágenes se están investigando ahora?

¿Qué debe saber un profesional de aprendizaje profundo para un hackathon?

¿Qué es el análisis de componentes principales y cuántas variables se pueden usar para PCA?

¿Qué temas y partes del libro 'Inteligencia artificial: un enfoque moderno', debo leer para aprender el aprendizaje automático y la PNL? ¿Necesito leer todo el libro?

¿Cómo se puede utilizar la inteligencia artificial y el aprendizaje automático en el comercio y la inversión?

¿Cuáles son los efectos de una estimación de densidad de kernel en los momentos de una distribución?

¿Debo aprender Python o R para el aprendizaje automático si estoy cursando mi licenciatura en matemáticas e ingeniería informática? ¿Qué idioma se usa más en las industrias?

En la Bayes Net dada, ¿existe un caso de explicación del fenómeno?

¿Qué son los datos no paramétricos?

¿Cuáles son las diversas aplicaciones del aprendizaje automático en ciencias de la salud / ciencias de la vida?

¿Cuáles son los algoritmos de aprendizaje automático adecuados para Big Data o análisis en tiempo real?