440 likes | 709 Views
Bases de datos deductivas y algunas aplicaciones. Rubén Darío Dorado Sánchez Universidad Nacional de Colombia. Outline. Introducción Bases de datos deductivas Aplicación 1: medicina Aplicación 2: semantic web Alcances y Futuro Conclusiones Bibliografía. Bases de datos deductivas.
E N D
Bases de datos deductivas y algunas aplicaciones Rubén Darío Dorado Sánchez Universidad Nacional de Colombia
Outline • Introducción • Bases de datos deductivas • Aplicación 1: medicina • Aplicación 2: semantic web • Alcances y Futuro • Conclusiones • Bibliografía
Bases de datos deductivas • BDD = base de datos que puede hacer deducciones basándose en las reglas y conocimiento guardado.
Introducción • Existen aplicaciones que no se ajustan a bases de datos relacionales. • Bases de datos deductivas: gran poder deductivo.
Bases de datos deductivas • Características: • Reglas (Rules) y hechos (Facts) • Prolog • Motor de inferencia -> Deduce nuevos hechos y reglas a partir de los datos.
Bases de datos deductivas • Intersección de tecnologías: Bases de datos, Programación lógica y sistemas expertos • Sistemas Expertos vs Bases de datos deductivas
Bases de datos deductivas • Sistemas Expertos -> Experto • Bases de datos deductivas -> Buscan el conocimiento en los datos
Bases de datos deductivas • Datalog: • Lenguaje estándar • Subconjunto de Prolog • Prolog: colección de formulas lógicas (axiomas). • Interprete de Prolog = probador de teoremas.
Bases de datos deductivas • Horn clauses: subconjunto de Cálculo Predicado de Primer Orden. • Constante: a, pedro, 42, “Texto” • Variable: X, _, Hijo, _Variable • Funciones: funcion(a,b,c) • Término (term): constante, variable o función
Bases de datos deductivas • Ejemplos: Movie = (title, year, length, inColor, studioName, producerNo) <starWars,1977,124,true,fox,12> SQL: INSERT INTO movie (title, year, length, inColor, studioName, producerNo) VALUES (‘starWars’, 1977, 124, true, ‘fox’, 12); DATALOG: movie( starWars, 1977, 124, true, fox, 12).
Bases de datos deductivas • Operaciones en BDD • SELECT codigo=25587(student) SQL: SELECT * FROM student WHERE codigo = ‘25587’ DATALOG: student(25587, name, …)?
Bases de datos deductivas • Operaciones en BDD • PROYECCIÓN nombre(student) SQL: SELECT nombre FROM student DATALOG: nombres(Nombre) :- student(_, Nombre, _, …). nombres(Nombre)?
Bases de datos deductivas • Operaciones en BDD • JOIN student course SQL: SELECT * FROM student, course WHERE student.codigo = course.cod_est DATALOG: student(Cod_Est, Name, …),course(Course, Cod_Est, …)? course = cod_est
Bases de datos deductivas • REGLAS Y DEDUCCIÓN • Deducir reglas a partir de la base de conocimiento. • Deducir nuevas reglas a partir de las reglas.
Bases de datos deductivas • Ejemplo: animal(Nombre,Dientes,Tipo_Piel,Num_Patas,Domestico). animal(perro,si,pelo,4,si). animal(gato,si,pelo,4,si). animal(serpiente,si,piel,0,si). animal(sapo,no,piel,4,si). animal(leon,si,pelo,4,si).
Bases de datos deductivas util(Animal) := animal(Animal,_,pelo,_,_). rapido(Animal) := animal(Animal,_,_,4,_). peligroso(Animal) := animal(Animal,si,_,_,_). valioso(Animal) := util(Animal), rapido(Animal), peligroso(Animal).
Aplicación 1: healthcare • Using RDF and Deductive Databases for Knowledge Sharing in healthcare Fabiane Bizinella Nardon, Lincoln de Assis Moura Jr y Beatriz de Faria Leao. 2003.
Aplicación 1: healthcare • Problema: Compartir información médica. Varios entes médicos: hospitales, clínicas, etc. -> Heterogeneidad.
Aplicación 1: healthcare • Problemas específicos • Representación de la información médica • Consultas a esta información no trivial.
Aplicación 1: healthcare • Enfoque propuesto: • RDF/DAML+OIL: Compartir e intercambiar información (UMLS) • Base de datos deductiva: inferir y consultar la base de conocimientos
Aplicación 1: healthcare • TRI-DEDALO (TRIples, Deduction, DAta and LOgic) • Operaciones: negation, aggregate functions, arithmetic operations, disjunction, comparison, updating and fuzzy reasoning.
Aplicación 1: healthcare • Inserción de la información: e.g. RDF -> BD Traducción de Ontologías a la BDD. DAML+OIL sameClassAs: stm(x,rdf:type,y) := stm(x,rdf:type,z), stm(z,daml:sameClassAs,y).
Aplicación 1: healthcare • Consultas al sistema (ejemplos): • query(patient?x) :- statement(subject?x, predicate?<http//:sample.com#assignedDoctor>, object?<mailto:smith@samplehospital.com.br>) Devuelve los pacientes asignados al doctor Smith.
Aplicación 1: healthcare • patientsWithCancer(patient?x) :- statement(subject?x, predicate?<http://sample.com#diagnosis>, object?<http://sample.com#cancer>) Devuelve los pacientes con diagnostico de cáncer.
Aplicación 1: healthcare • xmlns:sh=<http://www.samplehospital.com.br#>. patientsOlderThan18(patient?x) :- patients(name?x, age?y), y > 18. query(name?y):-stm(s?x,p?sh:assignedDoctor, object?<mailto:smith@samplehospital.com.br>), stm(s?x,p?sh:name,o?y), not(patientsOlderThan18(patient?y)). • Define el espacio sh con dos reglas: los pacientes asignados al Doctor Smith y mayores de 18 años.
Aplicación 1: healthcare • xmlns:voc=<http://www.avocabulary.org.br#>. xmlns:sh=<http://www.samplehospital.com.br#>. stm(x,sh:diagnosis,voc:cancer):- stm(x,sh:diagnosis,y), stm(y,voc:isa,voc:cancer). Deriva información con los datos x tiene diagnóstico de cáncer y y tiene una relación “is a” con el concepto cáncer.
Aplicación 2: semantic web • An Intelligent Database application for the Semantic Web Hussien H. Aly, Amr F. ElHelw. Alexandria, EGYPT.
Aplicación 2: semantic web • Problema: Obtener información de datos no estructurados. e.g. internet.
Aplicación 2: semantic web • Aplicación propuesta: Obtener información para ser analizada por una base de datos deductiva aprovechando el potencial de la web semántica.
Aplicación 2: semantic web • Escenario de prueba: obituarios y avisos de muertes en periódicos. • Contienen información tanto explícita como implícita.
Aplicación 2: semantic web • Arquitectura: • Data transformer • Data collector • Inference rules editor • Query tool
Aplicación 2: semantic web • Arquitectura:
Aplicación 2: semantic web • Escenario de prueba: • Data transformer: toma los datos no estructurados (texto). Parámetro: muerte. Resultado XML:
Aplicación 2: semantic web <?xml version=“1.0”?> <doc> <persons> <person ID=“1” gender=“Female” name=“Amina Rogers”/> … </persons> <relations> <relation type=“mother” subjID=“1” objID=“2”/> … </relations> </doc>
Aplicación 2: semantic web • Data Collector: Toma el XML generado, lo analiza e inserta en la base de datos. No repite datos. Análisis de los datos procesados.
Aplicación 2: semantic web • The inference rules Reglas de las que se puede inferir información:
Aplicación 2: semantic web • Issuing queries Preguntas posibles: • La esposa de Sherine es Mahomoud. • Lista de hijos de Amina. • ¿Cuál es la relación entre Safwat y manal?
Alcances y Futuro • Deductive Databases: Achievements and Future Directions Jeffrey D. Ullman. Standford University. Carlo Zaniolo. MCC. 1990.
Alcances y Futuro • Motivación de las BDD = Problemas en las BD Relacionales • Representación de objetos complejos (estructuras químicas, e.g. genoma humano) • Estructuras recursivas(Glyph contiene glyph) • Representación de componentes activos • Representación de consultas ad-hoc
Alcances y Futuro • Programación declarativa
Alcances y Futuro • Aplicaciones actuales: • LDL • Otras: • XSB • SWI-Prolog
Alcances y Futuro • Direcciones Futuras Suficiente madurez para aplicaciones comerciales. Trabajo futuro: mezcla con paradigma OO. Nueva generación de BDD.
Bibliografía • An Intelligent Database Application for the Semantic Web. Hussien H. Aly y Amr F. El-Helw. 2005. • Using RDF and Deductive Databases for Knowledge Sharing in Healthcare. Fabiane Nardon, Linciln Moura and Beatriz Leao. 2003. • Deductive Databases: Achievements and Future Directions. Jeffrey D. Ullman. 1990. • Inteligencia artificial: un enfoque moderno. Stuart Rusell y Peter Norvig. 2004. • Deductive Databases and their Applications. Robert M. Colomb. 1998. • Bases de Datos. James L. Jhonson. 2000.