Hasta hace un tiempo venía usando Joseki para dar servicio de consultas SPARQL pero generando un modelo a nivel RDF/RDFS. Si bien estaba trabajando sobre una ontología definida en OWL, estaba perdiendo algunas cosas provechosas de ese nivel de abstracción.
En esa configuración tenía definidas algunas reglas ad-hoc para inferir cierto conocimiento en base a lo que tenía en las instancias. Pero hace unos días, me enviaron una actualización de la ontología sobre la que estaba trabajando, en la cual ahora tenía restricciones y reglas en OWL para poder hacer clasificación automática de las instancias. Generalmente se definen utilizando condiciones necesarias y suficientes (para los que hicieron la materia modelos de e-negocios conmigo recuerden las Pizzas 🙂 ).
Me tomó bastante tiempo de lectura de documentación, buscar en por la web, y probar distintas soluciones. Al final de ese post pongo algunos links que me acuerdo que consulté, pero seguramente me olvido alguno.
Recorriendo el sitio de Peter Norvig (http://norvig.com/) me encontré con muchísimo material para seguir leyendo sobre inteligencia artificial, además de unos ensayos muy buenos. Recomendaría que le den una lectura a los interesados. Y para cuando ya estén cansados lean la sección de humor 🙂
Recomendados:
#4 Teach Yourself Programming in 10 Years (essay)
#9 Code for Intro AI programming in Python and Lisp
#10 Einstein ’05 Performance Review <- Humor
# A Y2K Saga (fiction) <- Humor
# Lisp: Where Do We Come From? What Are We? Where Are We Going?
Hay muchos más y seguro más interesantes. Si encuentran alguno que me perdí postéenlo como comentario.
Del trabajo práctico número 2 de Inteligencia Artificial, el cuál implementamos en Java el simulador y la inteligencia en SWI-Prolog usando JPL, surgieron varias cosas interesantes.
El modelar las reglas de inferencia y la base de conocimiento del Agente en Prolog, fue muy sencillo debido a que previamente habíamos hecho un buen diseño lógico de los axiomas de estado sucesor, reglas causales, etc. El mapeo de estas reglas formales a Prolog fue casi directo.
El Agente, era un Agente Pacman con un mundo estático, aleatorio, cerrado, parcialmente observable, con visión limitada a las celdas adyacentes (izquierda, derecha, arriba, abajo). Dado tal escenario, Pacman debía ir conociendo el mundo y aplicando sucesivas reglas de inferencia para saber como cumplir su objetivo realizando ciertas acciones. Pero nuestro agente pensaba las cosas dos veces antes de determinar una acción. Mejor dicho, pensaba demasiadas veces lo mismo 🙂 (detalles dentro del post).