¿Existe un concepto de API semántica – API que acepta oraciones simples como consultas?

Que yo sepa, no existe tal cosa en el mercado. Si le das un par de años, habrá ofertas comerciales. IBM ya está proporcionando un software que puede responder a preguntas basadas en datos estructurados (@IBM Watson Analytics – Descripción general – Estados Unidos). Es solo cuestión de tiempo hasta que haya una oferta similar para redes semánticas.

Estuve involucrado en una prueba de concepto de “búsqueda semántica” (lo que la gente podría llamar) una vez (diseñando el 90% de la ontología e implementando alrededor del 80% del código en torno a eso). Queríamos ver cómo el lenguaje natural y las soluciones de búsqueda empresarial existentes pueden beneficiarse de una ontología subyacente. Al final, se nos ocurrió una aplicación que respondería preguntas naturales, ya sea con un dato estructurado (valores literales), relaciones con conceptos (básicamente individuos o clases) y una porción saludable del contenido del documento, ya sea como una especie de “evidencia “para buscar dónde se mencionó lo que está pidiendo o como una búsqueda de contenido normal si la aplicación no tiene sentido para la pregunta.

Lo hicimos, en forma piloto, para algunos tipos de preguntas. En cualquier caso, el enfoque general para una pieza de software de este tipo podría terminar igual sin importar qué tipo de pregunta:
1) Analice la consulta en lenguaje natural e intente asignar clases / individuos y propiedades a la oración dada. DBPedia Spotlight lo hace de alguna manera.
2) Intente analizar las dependencias en la pregunta para identificar el sujeto de la oración y averiguar qué está pidiendo el usuario, ergo “la entidad desconocida”. Echa un vistazo a esta demostración: Página en informatik.tu-darmstadt.de:10080?
3) Presente una consulta (o más bien un conjunto de consultas) que mencione los conceptos proporcionados y devuelva el tema .
4) Clasifique cada conjunto de resultados e intente encontrar el que tenga el tema más adecuado.

Logramos realizar preguntas de propiedad simples como “¿Cuál es el peso de X?”, “¿Qué tan rápido va Y?”, “¿Cuántas X pertenecen a Y?”. Para cosas más complejas, tuvimos que hacer un árbol de decisión bastante complejo, haciendo que toda la solución no tuviera sentido, porque no se podían hacer preguntas arbitrarias.

Existen múltiples desafíos al tratar de implementar dicho sistema. Una de ellas es asignar preguntas a predicados / propiedades en su esquema de datos. Imagine la siguiente pregunta:

“¿Cuál es el auto deportivo legal de carretera más rápido”?

La consulta podría terminar siendo algo como esto:

SELECCIONE * DONDE {
? car a * someNs: sports_car.
? car a * someNs: Street-legal_vehicle.
Velocidad del coche.
} ORDER BY DESC? Velocidad. LÍMITE 1.

El desafío es identificar el modificador adjetivo (el más rápido -> automóvil) como criterio de clasificación / filtro y tratar los términos compuestos “carretera legal” y “automóvil deportivo” como conceptos de tipo o subclase. Si bien esto puede parecer bastante sencillo para este caso específico, es una tarea de PNL increíblemente complicada la mayor parte del tiempo.

En cierto modo, SPARQL es exactamente eso, solo un poco más formal.
Usted escribe aserciones simples de SPO (objeto predicado del sujeto), casi como oraciones y reemplaza las partes que desea saber con variables.

Si desea probar un enfoque completamente nuevo para esta pregunta, pruebe: cortical.io – Documentación API
cortical.io está utilizando un algoritmo independiente del lenguaje, basado en neurociencia (en lugar de estadística).