es:manual:items:generativos:web-semantica
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
es:manual:items:generativos:web-semantica [2021/05/27 16:14] – root | es:manual:items:generativos:web-semantica [2021/05/27 19:20] (actual) – [Uso de la web semántica] root | ||
---|---|---|---|
Línea 5: | Línea 5: | ||
El mayor problema que se afronta al crear una consulta a una base de datos externa es la consistenacia de la información. No siempre se encuentran bases de datos apropiadas para su uso como preguntas. En muchos casos la información es incompleta, y en otros excesiva, dando lugar a preguntas demasiado detalladas que no es lo que se desea para la evaluación. A lo largo de los ejemplos se expondran los problemas mas frecuentes que se encuentran. | El mayor problema que se afronta al crear una consulta a una base de datos externa es la consistenacia de la información. No siempre se encuentran bases de datos apropiadas para su uso como preguntas. En muchos casos la información es incompleta, y en otros excesiva, dando lugar a preguntas demasiado detalladas que no es lo que se desea para la evaluación. A lo largo de los ejemplos se expondran los problemas mas frecuentes que se encuentran. | ||
+ | |||
+ | El uso de la web semantica y en general de preguntas o instancias que no son completamente fiables al 100% no siempre es adecuado, pero hay muchas aplicaciones que si lo son. En este [[this>/ | ||
==== Ejemplo 1 ==== | ==== Ejemplo 1 ==== | ||
Línea 28: | Línea 30: | ||
String nombre = table.get(pais, | String nombre = table.get(pais, | ||
String img = table.get(pais, | String img = table.get(pais, | ||
- | String pattern = table.toPattern(nombre, | + | String pattern = Table.toPattern(nombre, |
%> | %> | ||
< | < | ||
Línea 35: | Línea 37: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | A partir de esta plantilla se obtienen preguntas como ésta: | ||
+ | |||
+ | {{ es: | ||
+ | |||
+ | La variable '' | ||
+ | |||
+ | | ||
+ | |||
+ | Al igual que en caso de otras [[tablas]] el método '' | ||
+ | |||
+ | A partir del nombre se obtiene un patrón de respuesta llamando al método [[siette.util.corpus.Table# | ||
+ | |||
+ | La construcción de la consulta es sin duda el problema mas complejo. Si no se impone ninguna restricción la consulta de paises y banderas daria como resultado en algunos casos, paises que ya no existen (por ejemplo la Unión Sovietica), o quizás paises pequeños, en conflicto, o no reconocidos por la comunidad internacional. Para ello se debe intentar restringir la consulta, por ejemplo en esta caso se restringe a paises que sean miembros de //Naciones Unidas//. Si se quiere que la pregunta sea mas fácil, se puede restringir a paises con mator población, etc. | ||
+ | |||
+ | ==== Ejemplo 2 ==== | ||
+ | |||
+ | En casos mas complejos puede combianarse la consulta a diversas funetes, de manera que se puedan construir patrones de respuesta mas completos. El siguiente código realiza tres consultas, combinando datos de [[wpes> | ||
+ | |||
+ | <code java> | ||
+ | <%@page import=" | ||
+ | |||
+ | <% | ||
+ | String text=""; | ||
+ | String img=""; | ||
+ | String itemLabel=""; | ||
+ | String itemPattern=""; | ||
+ | String labelPattern=""; | ||
+ | String altPattern=""; | ||
+ | |||
+ | do { | ||
+ | |||
+ | text=""; | ||
+ | img=""; | ||
+ | itemLabel=""; | ||
+ | itemPattern=""; | ||
+ | labelPattern=""; | ||
+ | altPattern=""; | ||
+ | |||
+ | |||
+ | String queryString = "" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +"} " | ||
+ | +" | ||
+ | ; | ||
+ | |||
+ | WebTable table = new WebTable(" | ||
+ | String[] registro = table.select(); | ||
+ | String nombre = table.get(registro, | ||
+ | img = table.get(registro, | ||
+ | String item = table.get(registro, | ||
+ | String id = item.substring(item.lastIndexOf("/" | ||
+ | itemLabel = table.get(registro, | ||
+ | |||
+ | |||
+ | queryString = "" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" ? | ||
+ | +" | ||
+ | +" | ||
+ | +" FILTER ( LANG(? | ||
+ | +" FILTER ( LANG(? | ||
+ | +"} " | ||
+ | ; | ||
+ | |||
+ | table = new WebTable(" | ||
+ | registro = table.select(); | ||
+ | String dbpediaID = table.get(registro, | ||
+ | String label = table.get(registro, | ||
+ | String description = table.get(registro, | ||
+ | |||
+ | queryString = "" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" | ||
+ | +" wd:" | ||
+ | +" FILTER (lang(? | ||
+ | +"} " | ||
+ | ; | ||
+ | |||
+ | table = new WebTable(" | ||
+ | Set set = table.getAlternativesSet(" | ||
+ | altPattern = WebTable.toPatternAny(set); | ||
+ | |||
+ | String[] split = itemLabel.split(" | ||
+ | for(int i=0; i< | ||
+ | itemPattern = " {" + itemPattern + split[i] + "} " | ||
+ | } | ||
+ | itemPattern += split[split.length-1] | ||
+ | |||
+ | |||
+ | split = label.split(" | ||
+ | for(int i=0; i< | ||
+ | labelPattern = " {" + labelPattern + split[i] + "} " | ||
+ | } | ||
+ | labelPattern += split[split.length-1] | ||
+ | |||
+ | description = description.replaceAll(" | ||
+ | String[] d = description.split(" | ||
+ | String primera = d[0]; | ||
+ | int pos = primera.indexOf(" | ||
+ | if (d.length> | ||
+ | if (pos>0) { | ||
+ | text = "Fue " + primera.substring(pos+3, | ||
+ | } | ||
+ | | ||
+ | text += d[i]+" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | Set set1 = new TreeSet(); | ||
+ | for(String st : (Set< | ||
+ | set1.add(WebTable.toPattern(st)); | ||
+ | } | ||
+ | for(int i=0; i< | ||
+ | set1.add(itemLabel.split(" | ||
+ | } | ||
+ | for(int i=0; i< | ||
+ | set1.add(label.split(" | ||
+ | } | ||
+ | text = WebTable.toHint(text, | ||
+ | text = SIETTE.filterHTML(text); | ||
+ | |||
+ | |||
+ | } while ("" | ||
+ | |||
+ | %> | ||
+ | < | ||
+ | <div class=" | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Entre otras, esta plantilla gnera la siguiente instancia: | ||
+ | |||
+ | {{ es: | ||
+ | |||
+ | Las tres consultas permiten construir patrones diferentes, ya que hay multiples formas de escribir los nombres porpios. En el caso anterior se han construido estos tres patrones mediante el método [[siette.util.corpus.Table# | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | El texto que describe al personaje procede de la [[wpes> | ||
+ | |||
+ | |||
+ | Los resultados de instanciar esta plantilla no siempre son apropiados para construir una pregunta. Un problema común por ejemplo es que la imagen no aparezca, o que no sea adecuada. En esos casos se debe recurrir al mecanismo de [[control de instancias]]. | ||
+ | |||
+ | {{ es: | ||
+ | |||
+ | La figura anterior muestra una instancia de la plantilla que ha sido descartada con la ayuda de la opción [[es: | ||
+ | |||
+ | ==== Solución de problemas ==== | ||
+ | |||
+ | === La consulta no genera ningun registro === | ||
+ | |||
+ | Uno de los problemas mas frecuentes que ocurren al utilizar este tipo de preguntas es que se realicen cambios en el otro extremo de la consulta. Por ejemplo, ciertas preguntas que se habian desarrollado en función de la [[wpes> | ||
+ | |||
+ | {{ es: | ||
+ | |||
+ | Al parecer la consulta funciona, y no da error al construir la plantilla, pero probablemente la consulta ya no devuelve ningun resultado. La solución pasa por rehacer la consulta. | ||
+ | |||
+ | {{ es: | ||
+ | |||
+ | === Fallo al instanciar la plantilla === | ||
+ | |||
+ | Otro problema típico de las consultas a la web semántica es que no se llegue a construir la plantilla, dando en la pestaña [[es: | ||
+ | |||
+ | {{ es: | ||
+ | |||
+ | Puede deberse a varias causas, pero un problema común es el tiempo de respuesta. Si la pregunta es compleja, o si en ese momento la conexión con el servidor no es todo lo rápida que debiera, se puede producir un error al instanciar la pregunta. En muchos casos basta con reintentar para que problema se solucione por si solo. Otra posible acción es incrementar el valor de '' | ||
+ | |||
+ | En el entorno de aplicación de las evaluaciones, | ||
+ | |||
+ | |||
+ | |||
es/manual/items/generativos/web-semantica.txt · Última modificación: 2021/05/27 19:20 por root