Documentos de Académico
Documentos de Profesional
Documentos de Cultura
T E S I S
P R E S E N T A N
NATALIA EDITH ALVARADO GONZÁLEZ
MERCED ISAURO GUZMÁN QUIROZ
MIGUEL ÁNGEL JIMÉNEZ FLORES
CAPÍTULO I
LA PROBLEMÁTICA DE LA BÚSQUEDA DE INFORMACIÓN EN LAS EMPRESAS
CAPÍTULO II
SITUACIÓN ACTUAL DE LOS BUSCADORES EN LA WEB
CAPÍTULO III
BUSCADORES WEB
CAPÍTULO IV
HERRAMIENTAS TECNOLÓGICAS UTILIZADAS
CAPÍTULO V
DESARROLLO DE LA SOLUCIÓN
Hoy, la navegación por Internet se hace más complicada, debido a la gran cantidad de
información que aparece día a día. Encontrar de forma rápida y sencilla algo que se está
buscando, puede convertirse en una tarea difícil, con resultados no deseados.
El origen de los buscadores se remonta a Abril de 1994, año en el que una pareja de
universitarios norteamericanos (David Filo y Jerry Yang) decidieron crear una página web en la que
se ofreciera un directorio de páginas interesantes clasificadas por temas, pensando siempre en las
necesidades de información que podrían tener sus compañeros de estudios, dando vida a Yahoo.
Debido al éxito de este y al continuo crecimiento de la Internet, fueron desarrollados más
buscadores con la única intención de poder clasificar, organizar o catalogar toda esa gran cantidad
de información para su fácil y rápida localización.
A lo largo de este proyecto se plantea una posible solución al problema antes mencionado
a través del uso de Mapas Mentales, estructurados por expertos, para generar “cadenas sugeridas”
que pueden ir acotando el número de resultados en Google de una manera formidable, permitiendo
también sugerir ligas a páginas web o archivos físicos en el disco duro utilizando para ello, un
prototipo con interfaz intuitiva y costos accesibles que puede ser usado en las PYMES o cualquier
otra área que lo justifique.
1
http://www.gestiopolis.com/canales2/emprendedor/1/sapymes.htm Marzo-10
i
ii
En el capítulo 2 se muestra un enfoque global de los buscadores que actualmente están en
el mercado, los más comerciales y los que son de México, indicando características generales,
ventajas, desventajas y costos de algunos de ellos por adquisición de licencia. También se hace
referencia a buscadores creados para uso particular como OA HERMES de la UNAM, Redalyc
empleado por la UAEM (Universidad Autónoma del Estado de México) y mostrando un listado
general de bibliotecas virtuales de México.
En el capítulo 3 Buscadores Web, se abordan temas desde conceptos básicos como ¿Qué
es un buscador?, tipos de buscadores, motores de búsqueda, metabuscadores, hasta términos
avanzados como algoritmos de posicionamiento que ocupan los principales buscadores Web
comerciales como Google (PageRank), Yahoo (WebRank), MSN SEARCH; explicando de estos
últimos las diferentes variables que se asocian a cada uno de ellos.
Se concluye que los buscadores pueden ser aprovechados por las PyMES al optimizar sus
búsquedas mediante Mapas Mentales evitando con ello información irrelevante, ya que estos
últimos tienen como fundamento organizar -por mencionar: situaciones personales, educativas y de
negocio, que puede incluir notas o apuntes, lluvia de ideas, resumir, revisar y depurar la línea
general de pensamiento humano-, principalmente empleando palabras claves, mismas que se
asocian entre sí; lo cual a futuro permitirá explotar ampliamente esta idea en pedagogía, pequeñas
y medianas empresas o en cualquier otra área de oportunidad que lo justifique.
iii
CAPÍTULO I
LA PROBLEMÁTICA DE LA BÚSQUEDA DE
INFORMACIÓN EN LAS EMPRESAS
CAP. 1. LA PROBLEMÁTICA DE LA BÚSQUEDA DE INFORMACIÓN
EN LAS EMPRESAS
1.1. ¿QUIEN USA LOS BUSCADORES?
Para resolver esto, surgen herramientas eficaces3 que –tratan- de evitar esta dificultad. Sin
embargo estas herramientas no se han empleado de forma apropiada para evitar este problema,
ya que los buscadores actuales continúan presentando resultados irrelevantes.
2
INTERNET: Conjunto de servidores interconectados entre sí para el intercambio de información.
3
BUSCADORES Y METABUSCADORES
4
www.virtual.unal.edu.co/cursos/enfermeria/2002847/lecciones/tematica4/subtema4-5.html 30-Agosto-09
1
de servidor, intranets, correo electrónico, Internet y PC- lo que aumenta el reto de encontrar
información importante de manera eficaz.
La World Wide Web surgió en 1989 como una forma de distribuir información. El rápido
crecimiento de la misma, sobre todo a partir de 1993, y su propia naturaleza no jerárquica, creó la
necesidad de herramientas que permitieran estructurar la información disponible para posibilitar su
fácil acceso, el cual consiste en catalogar documentos de forma manual o en base a la información
particular, utilizando técnicas provenientes de la recuperación de información tradicional
(Information Retrieval).5
1.3.1.1. BUSCADORES
Un buscador es un sitio web cuyo propósito principal consiste en que el público pueda
encontrar información. Estos mecanismos y el software que los apoya tratan de indexar toda la
web, por lo que generan y mantienen enormes bases de datos que almacenan todas las páginas
con autorización de indexación del Internet.
5
www.campusvirtual-hgm.net/alfin/contenido/1-1.html Marzo - 09
6
www.bhsu.edu/education/edfaculty/lturner Abril - 09
2
estudio muy citado de Bright Planet ha estimado que la información contenida en la web invisible
es aproximadamente 550 veces mayor que la de la web superficial y crece a mayor velocidad.7 Un
estudio posterior de Cyveillance calcula que el tamaño de la web profunda es 275 veces mayor que
el de la web visible.8 Estimaciones posteriores, en cambio, señalan que el tamaño de la web
invisible es sólo entre 2 y 50 veces mayor que el de la web visible9. Las diferencias en las cifras se
deben a las diferentes metodologías utilizadas por los autores. En cualquier caso, el valor de la
información contenida en la llamada Web profunda justifica su estudio y el de sus formas de
acceso.
Los buscadores arrojan resultados sobre las búsquedas realizadas en sus propios índices
y no sobre la web directamente. Esto último sería imposible debido al volumen de información y al
tiempo requerido para realizar la búsqueda.
Comprende todos aquellos sitios cuya información puede ser indexada por los robots 10 de
los buscadores convencionales y recuperada casi en su totalidad mediante una consulta a sus
formularios de búsqueda. Las características principales de los sitios de la web visible son:
WEB OPACA: Se compone de archivos que podrían estar incluidos en los índices de los motores
de búsqueda, pero no lo están por alguna de estas razones:
7
www.brightplanet.com/technology/deepweb.asp Abril - 09
8
www.enssib.fr/bibliotheque/documents/dpssib/rrbouf.pdf Mayo - 09
9
www.sims.berkeley.edu/research/projects/how-muchinfo-2003 Mayo - 09
10
Robots: Ver concepto en el tema 3.2.2.2.
3
Frecuencia de la indexación: los motores de búsqueda no tienen la capacidad de
indexar todas las páginas existentes.
Número máximo de resultados visibles: aunque los motores de búsqueda arrojan a
veces un gran número de resultados de búsqueda, generalmente limitan el número de
documentos que se muestran (entre 200 y 1000 documentos).
URL‟s desconectados: las generaciones más recientes de buscadores, como Google,
presentan los documentos por relevancia basada en el número de veces que aparecen
referenciados o ligados en otros.
WEB PRIVADA: Consiste en las páginas web que podrían estar indexadas en los motores de
búsqueda pero son excluidas deliberadamente por alguna de estas causas:
LA WEB PROPIETARIA: Incluye aquellas páginas en las que es necesario registrarse para tener
acceso al contenido, ya sea de forma gratuita o pagada.
LA WEB REALMENTE INVISIBLE: Se compone de páginas que no pueden ser indexadas por
limitaciones técnicas de los buscadores, como las siguientes:
Páginas web que incluyen formatos como PDF, TXT (Actualmente existen buscadores
especializados que permiten la búsqueda directa en estos formatos), Flash,
Shockwave11, programas ejecutables y archivos comprimidos.
Páginas generadas dinámicamente, es decir, que se generan a partir de datos que
introduce el usuario.
Información almacenada en bases de datos relacionales, que no puede ser extraída a
menos que se realice una petición específica.
11
Es un plugin para navegadores web que permite la reproducción de contenidos interactivos como juegos, presentaciones,
aplicaciones de formación, etc., anteriormente llamado Macromedia Shockwave.
Plugin: es una aplicación que se relaciona con otra para aportarle una función nueva y generalmente muy especifica. Esta
aplicación adicional es ejecutada por la aplicación principal e interactúan por medio de la API.
API: Una API representa una interfaz de comunicación entre componentes software. Se trata del conjunto de llamadas a
ciertas bibliotecas que ofrecen acceso a ciertos servicios desde los procesos y representa un método para conseguir
abstracción en la programación.
4
Google permite realizar búsquedas avanzadas para localizar imágenes. Por su parte, HotBot
(metabuscador) presenta la posibilidad de buscar por distintos formatos, para localizar imágenes,
audio, vídeo, archivos PDF, Script y Shockwave/Flash.
Muchas veces, resulta tan frustrante no encontrar información en la web, como confuso
disponer de demasiadas opciones de búsqueda y no saber cómo emprenderla.
Estrategias generales.
Selección de herramientas.
Usar los tutoriales para aprender a seleccionar y utilizar las diferentes herramientas de
búsqueda.
Objetivo de la búsqueda.
Forma de búsqueda.
Especialización de la búsqueda.
5
Usar metabuscadores para realizar búsquedas generales en muchos buscadores a la
vez.
Precisión de la búsqueda.
Selección de recursos.
Usar las guías temáticas para conocer los principales recursos de información que
cubran los intereses del usuario.
Usar directorios especializados para búsquedas exhaustivas de recursos.
Búsquedas Avanzadas.
Usar las opciones avanzadas de los buscadores para localizar imágenes o archivos
PDF o TXT.
Usar directorios concentradores de buscadores para realizar búsquedas avanzadas
sucesivas en varios de ellos.
Evaluación de la Información.
6
Usar directorios anotados para evaluar si los recursos disponibles en la web profunda
son útiles para la búsqueda que se esta realizando.
Usar directorios de bases de datos para conocer cuáles de ellas puede ofrecer información
útil para las búsquedas.
Las PYMES en México constituyen el 97% del total de las empresas, generadoras de
empleo del 79% de la población y generan ingresos equivalentes al 23% del Producto Interno Bruto
(PIB), lo anterior es una clara señal de que se debe poner atención a este tipo de empresas y
verlas como lo que en realidad son: la base de la economía mexicana.
Tabla 1. Clasificación de empresas en México por tamaño y por sector en términos porcentuales.12
12
www.contactopyme.gob.mx/impactopymes.asp?Lenguaje=0&Cve_B=5. Enero-09
7
Figura 1. Composición de las empresas mexicanas de acuerdo al empleo que generan y el monto
del PIB que representan en términos porcentuales.13
La gestión documental14 tiene gran importancia en las organizaciones a medida que van
creciendo los volúmenes de datos no estructurados –word, excel, power point, pdf, txt- aunado a
los formatos de los archivos en Internet y en las intranets corporativas. El carácter crítico radica en
que una buena gestión documental en una empresa permitirá que los empleados, colaboradores y
socios accedan a la información precisa que necesitan en el momento oportuno, sin tener que
malgastar su tiempo en búsquedas irrelevantes. La gestión inicia por la captura o indexación de los
documentos y acaba en su búsqueda ya sea referencial o un archivo físico.
15
Según los resultados de una encuesta de la consultora IDC , los ejecutivos pasan el 45%
de su tiempo manejando documentos y el 82% creen que los documentos son vitales para el buen
funcionamiento de su organización.
13
http://www.contactopyme.gob.mx/grafos.asp?v=0 Enero – 09
14
http://www.servicepoint.es/white-papers/w-servicios-costes.html Agosto – 09
15
http://www.idclatin.com/methodology.asp?ctr=mex Septiembre - 09
8
Los mismos datos de la encuesta de IDC revelan que el 70% de las empresas creen que
una gestión de procesos documentales pobre puede repercutir sobre la agilidad de las operaciones
y el 82% cree que los documentos resultan esenciales para el funcionamiento satisfactorio de su
empresa.
9
CAPÍTULO II
SITUACIÓN ACTUAL DE LOS
BUSCADORES EN LA WEB
CAP. 2. SITUACIÓN ACTUAL DE LOS BUSCADORES EN LA WEB
Google y muchos otros buscadores no sólo usaban PageRank17, sino más de 150 criterios
para determinar la pertinencia de una página. La innovadora tecnología de búsqueda Google se
basa en los hipertextos, analizando todo el contenido de cada web y la posición de todos los
términos en cada una de las páginas. Se aproximan los resultados de acuerdo con la proximidad
de los términos de la búsqueda, sin perder tiempo en analizar resultados irrelevantes. Google se
basa en la tecnología PageRank, la cual coloca a los resultados más importantes en primer lugar
en la búsqueda. PageRank mide de forma objetiva la importancia de las páginas web y se calcula
que resuelve una ecuación de 500 millones de variables y más de 2.000 millones de términos.
16
www.es.wikipedia.org/wiki/Buscador#Mixtos_Buscador_-_Directorio Agosto - 09
17
Ver capítulo 3.3. Algoritmos de posicionamiento.
10
Google cuenta con más de 3.000 millones de páginas web, y al mes se llegan a realizar
más de 5.000 millones de búsquedas (aproximadamente, unos 200 millones de búsquedas
diarias). Por otro lado, este buscador contiene más de mil millones de imágenes de todos los
tipos: fotografías, dibujos, pinturas, bosquejos, historietas, carteles y más. La última versión de
búsqueda de escritorio de Google, tiene la capacidad de localizar diversos archivos de diferentes
tipos incluyendo PDF y MP3, estando disponible en inglés, francés, alemán, español, chino,
japonés y coreano.
Google News: Este buscador cuenta además con noticias clasificadas (news.google.com), que se
carateriza por:
Los investigadores son consultores independientes que reciben el 75% del precio que el
usuario abona.
Mapas de ciudades de diversos países (Estados Unidos, Canadá, Reino Unido, Japón),
información que puede ser empleada de una forma fácil y efectiva por usuarios no
expertos.
11
Google Blogs: En el año 2005 se produjo el boom mundial de los blogs. Éstos tienen dos
características importantes, se publican con rapidez y se suscriben a muchos sitios. Google,
obviamente no quiso quedar fuera de esta revolución de la información casera, y puso a funcionar
su propio Google Blog, en donde publica los productos de la empresa y la información más
reciente. A mediados de septiembre de 2005 se lanzó la búsqueda de blog llamada Google Blog
search, herramienta que ayuda a encontrar los blogs registrados en la web. Además de este
18
servicio lanzó un lector de feeds denominado Google Reader.
Google Talks: En el mes de agosto del 2005, se lanzó Google Talk, un producto que pretende
brindar al usuario una manera libre de hablar. Ofrece una tecnología que permite enviar mensajes
inmediatos, un escritorio de google para búsqueda, acceso a email, noticias, fotos, etc.
Publicidad de Google: Es otra de sus fuentes de ingresos. Este buscador ofrece a los anunciantes
dos sistemas publicitarios: Premium Sponsorship (un vínculo de texto aparente aparece en la
parte superior de la página de resultados de Google cuando la palabra clave o la frase que se
haya comprado se incluye en las búsquedas de los usuarios) y AdWords. (Sistema de costo por
clic, totalmente personalizable, donde únicamente se paga cuando los usuarios hacen clic en el
anuncio)
18
Un feed se compone de un resumen actualizado periódicamente de un determinado contenido web y de los enlaces a la
versión completa del mismo. Al suscribirse al feed de un sitio web mediante un lector de feeds, obtendrá un resumen del
contenido nuevo de dicho sitio.
www.desktop.google.com.mx/es/features.html Septiembre – 09
12
Figura 3. Interfaz de Google Desktop
2.1.1.1. VENTAJAS
Búsqueda de Archivos en el equipo e Internet: Cuando se realiza una búsqueda en
Desktop, aparece una página que muestra los resultados de ésta más relevantes, cada
uno de ellos con el nombre del archivo y una breve muestra del contenido con los
términos de búsqueda resaltados. – Semejante al buscador Web Google – Asimismo
se puede obtener una vista previa de los resultados de la búsqueda en el mismo
navegador. Ver Figura 4.
Indexación Inteligente: Una vez instalado Google Desktop, éste empezará a indexar los
archivos almacenados en el equipo. Cabe mencionar que Desktop mantiene actualizado
13
el índice de búsqueda añadiendo los nuevos elementos de información del disco duro
automáticamente. – aproximadamente cada 30 segundos, con el equipo inactivo –
14
Indexación de todo tipo de Archivos: Google Desktop es capaz de indexar archivos de
Gmail, Outlook Express, Microsoft Word, PowerPoint, Internet Explorer, PDF, música,
video, imágenes, archivos ZIP, etc. Ver Figura 6.
Búsqueda Avanzada: Al hacer clic sobre esta opción, Desktop mostrara un formulario, en
el que podrá especificar fácilmente el tipo de búsqueda que se desea realizar sin tener
que recordar los operadores de búsqueda especificos, también puede restringir el periodo
de tiempo al que pertenezcan los resultados. Ver Figura 7.
Búsqueda
Avanzada
15
Google Gadgets “Aparatos”: Desktop ofrece acceso inmediato a información
personalizada y actualizada con los google gadgets, que consisten en un conjunto de mini
aplicaciones interactivas que pueden colocarse en cualquier lugar del escritorio para
mostrar nuevos mensajes de correo electrónico, previsiones meteorológicas, fotografías y
noticias personalizadas, aunado a estas mini aplicaciones también se incluye un reloj
analógico, un calendario, un bloc de notas, una lista de tareas pendientes entre otras. Ver
Figura 9.
Google
Gadgets
16
Tiempo
Imágenes
Guardadas en el
Equipo
Barra de
Búsqueda
Seguridad: Desktop cuenta con una función que facilita búsquedas ayudando a combatir
los sitios web que distribuyen software malintencionado y realizan plishing “suplantaciones
de identidad”. Si el usuario llegara a accesar un sitio que puede robar datos personales o
instalar software malintencionado en el equipo, recibirá un aviso para que decida si
continúa adelante o no.
17
Figura 12. Bloquear búsqueda.
La búsqueda con Google Desktop queda bloqueada, por lo cual se debe introducir una
contraseña del usuario de Windows válida. Ver Figura 14.
18
Figura 14. Google Desktop bloqueado.
19
Con Google Desktop para PyME se pueden:
En empresas que ya utilizan Google Search Appliance19 o Google Mini20 para realizar
búsquedas en la Intranet corporativa, la configuración de Desktop para PyMe permite conseguir
niveles de integración eficientes para las búsquedas. Los usuarios corporativos obtienen un único
punto de búsqueda desde el cual pueden consultar todos los recursos disponibles. Los resultados
de búsquedas realizadas por los usuarios de la empresa incluyen fuentes de la red corporativa,
Internet y el mismo equipo de éstos.
Aquellos clientes que prefieran no utilizar Active Directory ni la política de grupo para la
gestión, podrán utilizar sus propios mecanismos administrativos para modificar la configuración de
registro directamente, mediante secuencias de comandos de acceso.
19
Ver tema 2.1.3.
20
Ver tema 2.1.4.
20
2.1.3 .GOOGLE SEARCH APPLIANCE
Cada día, en las empresas, los empleados crean documentos, presentaciones, informes de
estudios de mercado, es decir información de gran interés para las organizaciones. Los empleados
pueden beneficiarse considerablemente del acceso a la información, pero solo sí pueden encontrar
fácilmente lo que necesitan. Lamentablemente, este no suele ser el caso. No puede accederse a
los documentos, porque se encuentran en los equipos de escritorio de los empleados o en
almacenes de documentos de difícil acceso físico. Esto supone la existencia de información de
gran valor que permanece inaccesible, lo que reduce la productividad de su empresa y en
ocasiones, provoca una toma de decisiones limitada basada en un acceso incompleto a la
información.
21
www.google.co.uk/enterprise/gsa/ Junio – 09
21
GSA proporciona acceso en tiempo real a las aplicaciones empresariales, como un
directorio de contactos, ERP, CRM o sistemas de inteligencia empresarial. Asimismo simplifica la
administración de la búsqueda en una organización, sin la molestia de tener que configurar
hardware y sistemas operativos. GSA puede ponerse en funcionamiento rápidamente y sólo
requiere un administrador para su mantenimiento.
Debido a los flujos de trabajo (workflow) y procesos asociados, las organizaciones dedican
una importante cantidad de dinero al desarrollo, despliegue de contenido y sistemas de gestión
documental. Estos sistemas y portales de información contienen información valiosa de la
corporación que se vuelve cada vez más inaccesible para los empleados debido a la falta de
herramientas de búsqueda eficiente y de interfaces de usuario intuitivas.
22
www.142.ibm.com/software/dre/ecatalog/Detail.wss?locale=es_MX&synkey=I418435V33755A93 Agosto-09
23
www.office.microsoft.com/es-es/sharepointserver/HA101656533082.aspx Agosto-09
24
www.ecm-spain.com/interior.asp?IdItem=9517 Octubre - 09
25
La gestión de contenido empresarial o Enterprise Content Management (ECM) es una estrategia utilizada para la captura,
almacenamiento, seguridad, control de las versiones, recuperación, distribución, conservación y destrucción de
documentos. www.herramientasparapymes.com/que-es-ecm-gestion-de-contenido-empresarial Agosto – 09
22
Búsqueda unificada: A medida que aumenta la información y por ende las Bases de
Datos, los usuarios pueden perderse en tal “mar” de información. Google permite unificar
búsquedas en la Intranet, aplicaciones de terceros, contenido en Bases de Datos e
incluso acceder al escritorio de un usuario –Google Desktop-. Los usuarios ahorran
tiempo y encuentran lo que necesitan por medio de un único cuadro de búsqueda.
Escalabilidad: Este motor de búsqueda puede ampliarse fácilmente y crecer con el tiempo
para manejar todo el contenido corporativo.26
Seguridad: Google se integra con sus sistemas de control de acceso para asegurar que
los usuarios sólo vean los documentos para los que cuentan con autorización.
4) Google Desktop para Empresas. Busca contenido en la unidad de disco duro local:
archivos, mensajes de correo electrónico, chats, páginas web visitadas, entre otras.
26
MODELOS DE GOOGLE SEARCH APPLIANCE:
GB-1001: Hasta 3 millones de Documentos, 300 consultas por minuto. Precio = € 30.000 (euros)
GB-5005: Hasta 5 millones de Documentos
GB-8008: Capacidad Ilimitada
www.google.es/enterprise Junio-09
23
6) Términos de Consulta resaltados. Encuentra rápidamente la parte más relevante de un
documento mediante la función de resaltar los términos de la consulta que se muestran en
los documentos almacenados en caché.
8) Ordenar por Fecha. Es posible accesar primero a la información más urgente mediante la
clasificación por fecha.
11) Bases de Datos. Esta herramienta ofrece acceso a los datos almacenados en las Bases
de Datos Relacionales buscando el contenido directamente desde la BD y mostrándolo en
distintos formatos.
12) API de Suministro de Contenido de Terceros. Mediante una simple conversión XML, se
puede transferir contenidos a los que no se puede acceder mediante la web a Google
Search Appliance.
13) Indexación Rápida. El contenido nuevo se indexa de forma continua para garantizar que
aparezcan lo más pronto posible estos en los resultados.
14) Servidores Web. Google ofrece acceso al contenido de todos los servidores web,
independientemente de su ubicación.
15) Servidores Proxy. También ofrece acceso al contenido de la empresa alojada en una
ubicación externa gracias a los servidores Proxy.
27
Metadatos: son datos altamente estructurados que describen información, describen el contenido, la calidad, la condici ón
y otras características de los datos.
24
16) Metaetiquetas. Se da la oportunidad de ofrecer búsquedas acotadas y filtradas por
metaetiquetas, mostrando los valores de metaetiqueta en los resultados.
17) Tipos de Archivos. Google permite buscar más de 220 tipos de archivo, incluidos HTML,
Microsoft Office, PDF, PostScript, WordPerfect y Lotus.
18) Idiomas. Se pueden restringir los resultados a uno de los 28 idiomas disponibles.
Google Search Appliance se integra con los sistemas existentes de seguridad y control de
acceso de la organización, para proporcionar seguridad en un nivel de usuario y de documento.
Los usuarios únicamente obtendrán resultados de búsqueda si tienen acceso al contenido de
origen, lo que garantiza que la información de la empresa permanezca de forma segura y
protegida.
También se puede restringir de una forma muy fácil las búsquedas a determinados
idiomas, tipos de archivo, sitios Web o Metaetiquetas. Pueden definirse sinónimos para
terminología o acrónimos específicos de la empresa, que permitan aparecer consultas alternas
sugeridas. Aunado a lo anterior Google permite definir concordancias entre las URL y las palabras
clave para que los resultados orientados aparezcan por encima de los demás resultados; asimismo
permite elaborar informes con los datos encontrados.
25
2.1.4.1. CARACTERISTICAS
Figura 19. Interfaz de resultados amigable de Google Mini con sus respectivas funciones de
Búsqueda Avanzada y complementos que contribuyen a mejorar el producto.28
28
www.google.es/enterprise/mini/index.html Junio – 09
26
29
Funciones de Google Mini :
29
www.google.com/enterprise/mini/features.html Junio – 09
27
LETRA FUNCIÓN DESCRIPCION
clic en el resultado. Si Google Mini ha ampliado
su búsqueda mediante la tecnología de
búsqueda de raíz de palabras a fin de incluir
variaciones de sus términos, estas palabras
también aparecerán en negrita.
K URL de resultado Es la dirección Web del resultado obtenido.
L Tamaño Este número es el tamaño de la parte del texto
de la página Web que se ha encontrado.
M En caché Al hacer clic en el vínculo En caché, se
visualizará el contenido de la página Web a
partir del momento de su indexación. Si por
algún motivo el vínculo del sitio no conduce a la
página actual, habrá posibilidad de recuperar la
versión en caché y buscar la información que se
necesita en ella. En esta versión, sus términos
de búsqueda aparecen resaltados.
N Resultado sangrado Cuando Google encuentra varios resultados en
el mismo sitio Web, coloca el más relevante en
primer lugar y las demás páginas relevantes del
mismo sitio con sangrías debajo de él.
O Más resultados Si un mismo sitio ofrece más de dos resultados,
se puede acceder a los demás resultados
haciendo clic en Más resultados de...
Tabla 2. Detalle de las funciones vistas en la Figura 19.
La nueva versión de Google Mini ha sido modificada para adaptarse aún mejor a las
organizaciones pequeñas. Ahora busca en servidores de archivos, proporciona diferentes
interfaces de resultados de búsquedas para distintas páginas Web, admite un mayor número de
consultas por segundo y, físicamente, su tamaño se ha reducido a la mitad con respecto a la
versión anterior.
Google Mini ofrece resultados tanto si se implanta en la intranet como en un sitio Web
público. Las nuevas funciones permiten buscar en varias fuentes de datos empresariales desde un
mismo cuadro de búsqueda. Estas nuevas funciones, así como la inclusión de Google Analytics y
Google Sitemaps, hacen de Mini la solución perfecta para cualquier sitio Web público.
28
2.1.4.2. VERSIONES
Google Mini se presenta en varias versiones. Con la más económica es posible realizar
búsquedas en 50.000 documentos y disponer de todo el hardware y software necesarios por tan
solo 2,600 €, además de un año de asistencia. Otras versiones realizan búsquedas en 100.000,
200.000 o 300.000 documentos. Ver Tabla 330.
2.1.5.1. CARACTERISTICAS
Buscar en diversas fuentes desde un solo sitio.
Encontrar documentos académicos, resúmenes y citas.
Localizar documentos académicos completos a través de una biblioteca o en la red.
Obtener información acerca de documentos académicos clave en un campo de
investigación.
30
www.google-store.com/appliance/product_info.php?currency=EUR&products_id=1&language=ES Junio - 09
31
www.promocion.org/que-es-y-como-funciona-google.htm Junio – 09
29
Permite buscar bibliografía especializada de una manera sencilla en un gran número de
disciplinas y fuentes como, por ejemplo, estudios revisados por especialistas, tesis, libros,
resúmenes y artículos de fuentes como editoriales académicas, sociedades profesionales,
depósitos de impresiones preliminares, universidades y otras organizaciones
académicas32.
2.1.6.2. CARACTERISTICAS
1. Estabilidad: para que el navegador sea confiable como un sistema operativo y con ello
evitar la pérdida de datos cuando el usuario escribe, juega o sube un documento.
2. Velocidad: tanto al inicio del mismo navegador como para la carga de páginas.
3. Seguridad: Google Chrome integra un avanzado sistema anti-malware.
4. Gratuito: haciéndolo de código abierto para que cualquier usuario pueda proponer ideas y
aportar mejoras, construir complementos y otras modificaciones.
Un navegador común es otro proceso de Windows, que controla todos los otros
subprocesos como pueden ser el número de sitios visitados. Google Chrome34 funciona como un
sistema operativo creando procesos separados para cada elemento mostrado, asignándole a cada
sitio su propio espacio de memoria, aumentando la velocidad de respuesta y evitando recursos
innecesarios en el resto de sitios abiertos. Ver Figura 21.
32
www.eduteka.org/BarraGoogle.php3 Enero - 10
33
www.google.com/chrome googlechromereleases.blogspot.com Junio - 09
34
www.chiflame.net/story/como-funciona-google-chrome-navegador-futuro Junio - 09
30
Figura 21. Estructura interna de Google Chrome.
Cuando un sitio está siendo visualizado, tiene prioridad de recursos por sobre los otros. Al
cerrar una pestaña en Google Chrome, se recuperan todos los recursos utilizados por ella.
Adicionalmente, cuando, en la misma pestaña, pasamos de un sitio a otro, todos los procesos del
primer sitio son destruidos automáticamente, generando otros nuevos y limpios para el segundo
sitio.
Al igual que un Sistema Operativo, Google Chrome tiene su propio Visor de Procesos, lo
que permite ver qué sitio está consumiendo tal o cual recurso y anularlo si es necesario. Ver Figura
22.
Siendo un producto de Google, es difícil que este navegador no conozca cuáles son los
sitios que más utilizan los usuarios y cómo los utilizan. Google Chrome ha sido preparado de
antemano para desenvolverse con la mayor eficiencia en los sitios más populares, gracias a la
base de datos del buscador.
31
2.1.6.4. WEBKIT
Webkit es el motor de Google Chrome que permite interpretar y dibujar en pantalla muy
rápidamente los datos binarios que el navegador lee directamente de un sitio.También controla una
máquina virtual JavaScript propia llamada V8, diseñada especialmente para la navegación web por
lo cual el navegador es más veloz y preciso.
Chrome tiene pestañas, -al igual que Firefox e Internet Explorer 7- que pueden arrastrarse
de una ventana a la otra, conservando sus propiedades y procesos independientes. Cada pestaña
posee su propia barra llamada Omnibox, una barra de navegación que no sólo admite que
escribamos la dirección de un sitio si no que también funciona como buscador inteligente,
relacionando las palabras escritas con las búsquedas anteriores, marcadores y preferencias
personales, permitiendo saltar cíclicamente de un sitio a otro presionando la primera letra de su
nombre y la tecla TAB sucesivamente, además de funcionar como un cuadro de búsqueda
convencional.
Asimismo cada pestaña tiene una característica independiente llamada Incognito, que es
un modo seguro para navegar con total privacidad, impidiendo cualquier tipo de almacenamiento
de información personal, como el historial de navegación y las cookies. El resto de los elementos
visibles del navegador se han reducido al mínimo, incluso siendo posible eliminarlos todos
mediante un botón, para que el sitio que se esté viendo ocupe el máximo espacio disponible.
Al abrir una nueva pestaña, se mostrará una página especial con los últimos nueve sitios
visitados y una barra lateral con los marcadores recientes y el historial de navegación, además de
la barra de búsqueda superior.
No existen los pop-ups, esas ventanas que saltan de la nada. Google Chrome las detiene
todas gracias a su máquina virtual exclusiva y las mantiene dentro de la pestaña, indicando en la
barra de estado que la página intenta mostrar un pop-up. Inclusive es posible arrastrar esos pop-
ups desde la barra de estado hacia una nueva pestaña.
2.1.6.5. SEGURIDAD
Google posee una base de datos muy precisa sobre cuáles sitios son confiables y cuáles
no. Este conocimiento está integrado al navegador al punto de que haría imposible entrar a una
32
web realmente peligrosa. El sistema protege todos los datos del usuario, como las contraseñas o
números de tarjeta de crédito, y administra los recursos vulnerables para un óptimo
funcionamiento, por ejemplo, no permitiendo que los sitios inicien otros programas sin
consentimiento del usuario. Si Google Chrome se topa con un sitio maligno nuevo o desconocido,
cierra automáticamente la pestaña y con ella todos los procesos, cookies, y otra información
pertinente a sólo esa pestaña.
Los sitios marcados como "de confianza" por el usuario tendrán total libertad, pero el resto
se ejecutará según un novedoso sistema de clasificación. En lugar de 3 niveles de seguridad (alto,
medio y bajo), donde lo único que cambiaba era el permiso que tiene el sitio para escribir datos en
el disco, pero permitiendo la lectura y ocasionando graves fallas de seguridad, Chrome posee sólo
2 niveles: "Alto" y "Ninguno". En el primero, el sitio no puede leer datos sin consentimiento explícito
del usuario, además de no poder escribirlos.
El nivel "Ninguno" sigue siendo muy seguro, porque Chrome incorpora un sistema
absolutamente lógico y nunca antes implementado: jamás dejará que un plugin (Flash, Java,
QuickTime, etc.) tenga mayores privilegios que el Sandbox (configuración de seguridad) del
navegador, el centro de seguridad que sólo el usuario puede modificar. Google Chrome pone a
cada plugin en un proceso separado, de manera que no afecte siquiera el performance de la
página en la que está presente dicho plugin. Por lo tanto, los plugins podrán tener niveles de
seguridad diferentes de los del resto de la página. Ver Figura 23. En fin entre otras cosas que
incorpora Chrome, se cuenta con Google Gears, que permite una interacción total entre el software
de escritorio y el software web.
33
2.2. WIKIA SEARCH
El proyecto Wikia Search reúne las tecnologías básicas que debe incorporar un motor de
búsqueda, con su propio algoritmo de código abierto, frente a los de código propietario de los
buscadores con los que compite. Una de sus ventajas es que permite a los usuarios filtrar y votar
los resultados, creando un modelo de comunidad similar al de Wikipedia, cuyo fin es aportar valor
añadido a las búsquedas convencionales. Además, este buscador resta importancia a la
35
clasificación masiva de resultados a cambio de priorizar la votación de sus colaboradores.
Basado en cuatro principios organizativos, Wikia Search trata de cambiar el futuro de las
búsquedas en Internet mediante conceptos como la transparencia, para que todo el mundo sepa
cómo funcionan los algoritmos de búsquedas; el sentimiento de comunidad, que todos los usuarios
puedan contribuir a los resultados que se muestran y establezcan relaciones entre sí; la calidad,
con el argumento de que el ser humano siempre puede mejorar los resultados que ofrecen las
máquinas; y la privacidad, protegiendo los datos de los usuarios y sus preferencias de búsqueda.
Wikia Search se ha presentado en fase de desarrollo, - lo que se conoce como versión alfa
- por lo que aún tiene muchos aspectos que mejorar. Sin embargo, este buscador irá mejorando
con el tiempo y con la colaboración de los usuarios.
35
www.search.wikia.com/wiki/Search_Wikia/es Junio – 09
34
2.3. YAHOO
Es uno de los sitios más importantes en Internet y posiblemente el portal más grande
debido a que un buscador no ofrece servicios adicionales como: correo electrónico, mensajería
instantánea, chats, noticias, álbum de fotos, entre otras. Sin embargo es considerado como tal
debido a que en el año de 1994 fue uno de los primeros buscadores en tener éxito en la web.
36
Yahoo estaba estructurado como un árbol de categorías que permitía una búsqueda por temas.
La construcción de dichas categorías era manual, los propios creadores de páginas web debían
contactar a Yahoo para que incluyeran dicha página en alguna categoría, proceso que se tardaba
varios meses. En el 2003 Yahoo compró a los buscadores Alltheweb, Altavista, Inktomi y Overture,
con lo que pudo crear el buscador actual que funciona de modo similar al Google en cuanto a
rapidez y relevancia. Ahora Yahoo cuenta con un mejorado motor de búsqueda, al que se le ha
dotado de nuevas mejoras, entre las que destacan: “My Yahoo Search” en el que el usuario puede
personalizar sus búsquedas. Asimismo “My Web” permite al internauta encontrar sólo aquellas
páginas que se hayan consultado con anterioridad, similar al servicio de favoritos.
1.- Entorno de búsqueda- Esto indica que se ha buscado en Toda la Web, pero también es
posible buscar en Imágenes, Vídeo, Directorio, Noticias y Compras.
2.- La caja de búsqueda es donde se escriben las palabras que se desean buscar.
36
www.search.yahoo.com Junio - 09
37
www.aulaclic.es/internet/t_4_9.htm Junio - 09
35
3.- En esta línea se puede elegir entre realizar la búsqueda en toda la web, en páginas en
español o en España.
4.- Datos del resultado. Indica el intervalo de resultados del 1-10 a continuación muestra el
número de páginas que ha encontrado, 1.440.000 para cursos de informática gratis y el tiempo
que ha tardado en realizar la búsqueda, 0,19 segundos.
5.- Enlaces publicitarios. Estas dos primeras líneas no son un resultado de la búsqueda, sino
enlaces publicitarios. En la parte derecha de la página también pueden aparecer más enlaces
publicitarios separados del resto por una línea vertical y con el letrero en la parte superior
derecha que dice Enlaces publicitarios.
6.- Líneas de Resultados. Cada resultado está compuesto por varias líneas, en la primera
aparece el título de la página web encontrada, en seguida aparecen unas líneas que
normalmente contienen fragmentos del texto de la página. En la última línea, en color verde,
aparece la dirección o URL de la página encontrada (www.aulaclic.org), seguido por el tamaño
de la página, 48k. A continuación aparece un enlace que dice, en cache que contiene la página
tal cual la encontró el robot de Yahoo cuando indexó la página por última vez, y otro enlace a
Más resultados de este sitio web, que lleva a una página con resultados del mismo tema dentro
de ese sitio web.
Búsqueda de Noticias Yahoo: Busca los titulares y noticias más recientes sobre cualquier
tema.
Búsqueda Rápida Yahoo: Accede a las informaciones más populares (noticias, tiempo,
mapas, entre otras) directamente desde la caja de búsquedas.
36
Barra de herramientas para Internet Explorer: El buscador y servicios favoritos.
Búsqueda Avanzada de Yahoo: Encuentra las respuestas que el usuario necesite a través
de su búsqueda avanzada.
2.4. ALTAVISTA
Significa "una visión desde las alturas", se vio inspirada por la creación de grandes ideas
de un equipo de expertos fascinados con el seguimiento de la información. Durante la primavera de
1995, los científicos del Laboratorio de investigaciones de Digital Equipment Corporation en Palo
Alto, California, crearon una forma de almacenar todas las palabras de todas las páginas HTML de
Internet en un índice rápido en el que se podían realizar búsquedas. Esto llevó al desarrollo de
Altavista como la primera base de datos de texto completo en la que se podían realizar búsquedas
en la Internet.
Este proyecto se convirtió rápidamente en uno de los sitios más visitados del internet hasta
la entrada de Google al mercado. Siendo el buscador más antiguo de la red, Altavista tuvo una
37
serie de dueños, cada uno vendiendo el sitio por menos dinero que el dueño anterior. Ahora
Altavista pertenece a Yahoo.com y utiliza la misma base de datos para presentar sus resultados,
aunque su algoritmo de posicionamiento es un poco diferente.
2.5. WOLFRAMALPHA
Es un nuevo proyecto lanzado en mayo de 2009 por la empresa Wolfram Research
ubicada en Champaign Illinois. Se trata de un motor de búsqueda de conocimiento computacional
que funciona a través de lenguaje natural.
38
www.es.altavista.com/about/ Julio – 09
38
39
WolframAlpha se diferencia del resto de motores de búsqueda en su capacidad de interpretar lo
que se le consulte.
Figura 28. Ejemplo de una consulta de una expresión matemática con WolframAlpha.
39
www.wolframalpha.com/ Julio – 09
39
Figura 29. Resultados obtenidos de la consulta anterior.
40
Mathematica es un programa utilizado en áreas científicas, de ingeniería, matemáticas y áreas computacionales.
Originalmente fue concebido por Stephen Wolfram quien continúa siendo el líder del grupo de matemáticos y
programadores que desarrollan el producto en Wolfram Research, compañía ubicada en Champaign, Illinois. Comúnmente
considerado como un sistema de álgebra computacional, Mathematica es también un poderoso lenguaje de programación
de propósito general.
40
2.6. BING
Microsoft presentó a fines de Mayo de 2009 a Bing.com, como su nuevo motor de
búsqueda para una mejor toma de decisiones, como primer paso hacia una nueva experiencia que
permite organizar de forma inteligente altos volúmenes de información disponibles en la Web.
Los servicios de este buscador, comenzaron poco tiempo después de haber sido
presentado al público usuario y se implementó por completo a nivel mundial el miércoles 3 de Junio
del 2009, del mismo modo en Latinoamérica, la versión beta quedó disponible en esa fecha con
41
www.partner.microsoft.com/mexico/40108839 Septiembre-09
41
mejoras en la relevancia de las búsquedas, cambios en la página principal, así como en la
experiencia de usuario, con más funcionalidades visibles en los próximos meses.
Microsoft identificó tres puntos en su investigación en cuanto al diseño de Bing, que sirvió
de guía para su desarrollo:
1. Presentar resultados excelentes: son una prioridad para los usuarios, no obstante, los
estudios de Microsoft demuestran que sólo una de cada cuatro consultas de búsqueda
arroja un resultado satisfactorio. Bing ayuda a identificar los resultados de búsqueda
relevantes a través de funciones como Best Match -El mejor resultado-, que identifica y
destaca la mejor respuesta posible, agregándole niveles más profundos de información a
simple vista y Quick Preview -vista previa rápida-, una ventana que se expande sobre el
título de un resultado de búsqueda y que da una idea mejor de la relevancia del sitio. Bing
también ofrece la posibilidad de accesar a la información con un único clic a través de
Instant Answers -respuestas instantáneas-, que presenta la información después de una
búsqueda dentro del cuerpo de la página con los resultados de búsqueda y que erradica la
necesidad de hacer clic posteriormente.
2. Ofrecer una búsqueda más organizada simplificando las tareas: los participantes del
estudio de esta investigación, respondieron que una experiencia de búsqueda organizada
por categorías sería el doble de útil para ayudar a hallar la información requerida y cumplir
con las tareas en menor tiempo. Bing comprende una cantidad de funciones que organizan
los resultados de búsqueda, entre ellas:
Grupos Web: que agrupa los resultados de manera intuitiva tanto en el panel de
exploración como en los resultados reales.
42
local, como las áreas en las que los usuarios desean mayor asistencia a la hora de tomar
decisiones importantes. El motor de decisiones de Bing puede responder con eficiencia en
estas áreas principales para los usuarios. Por ejemplo, mientras se utiliza Bing para hacer
una compra en línea, la función Sentiment Extraction -captación de los aspectos
psicológicos-, busca en Internet opiniones de usuarios y revisiones de expertos para sacar
provecho de la comunidad de clientes, así como también de los expertos en los productos,
para tomar una decisión de compra. En Bing Travel (viajes), la función Rate Key -clave de
tarifa-, compara la ubicación, el precio y las facilidades de distintos hoteles y determina una
clave codificada en color de los mejores valores; mientras que Price Predictor -
pronosticador de precios-, ayuda a los consumidores a decidir cuándo comprar un pasaje
aéreo y obtener precios más bajos analizando las últimas tendencias en los valores de los
pasajes.
El nuevo servicio, ideado para ir más allá de la experiencia actual en búsquedas, percibe
innovaciones profundas en las principales áreas de búsqueda como la captación y expansión de
entidades, el reconocimiento de la intención de la consulta y tecnología para el resumen de los
documentos, como también, un nuevo modelo de experiencia para el usuario que se adapta
dinámicamente al tipo de consulta con el objeto de proporcionar herramientas relevantes e
intuitivas para la toma de decisiones.
1. Sólo el 25% de las búsquedas son exitosas en su primer clic, por lo que Bing ha sido
diseñado para ofrecer los mejores resultados sumados a características propias como el
Quick Preview (Vista Previa es un cuadro en la parte derecha de la lista de resultados de
búsqueda que aparece cuando se pasa el ratón sobre un anuncio.) y Best Match (Mejor
Resultado) para que el usuario sepa que su clic está dirigido a lo que está buscando.
3. Fue especialmente diseñado con especial énfasis en las cuatro principales áreas de
búsquedas: Compras, Viajes, Salud e Información Local/Mapas, con experiencias únicas e
integradas en cada una de ellas.42
42
Martín Spinetto, Gerente de Marketing para los Servicios Online de Microsoft Hispanoamérica.
43
El crecimiento constante de los contenidos en la Web dio la pauta para que el buscador
Bing fuera desarrollado como una herramienta que ayuda al usuario a buscar con mayor facilidad
en el contexto de altos volúmenes de información. Los resultados de un estudio personalizado
realizado por ComScore Inc. (Líder mundial en la medición del mundo digital y fuente preferida de
inteligencia digital para marketing), que abarcó a los principales motores de búsqueda,
demostraron un índice del 30% de abandono de búsquedas sin un resultado satisfactorio. Los
datos también demostraron que aproximadamente dos tercios del resto de las búsquedas
requirieron una búsqueda avanzada o una repetición de la búsqueda en la página de los
resultados. “Los motores de búsqueda actuales se han concentrado más en aportar información y
43
menos en la utilidad de dicha información” .
43
Steve Ballmer, CEO de Microsoft
www.partner.microsoft.com/mexico/40108839 Septiembre - 09
44
2.7. OA-HERMES
Agrupa múltiples y variadas fuentes de información abierta (Open Access) desde una sola
interfaz, proporcionando un mecanismo de búsqueda flexible, única y amigable.
ESTADO ACTUAL
Fuentes de
Ochenta y nueve fuentes de información interconectadas, de las cuales se
información
tiene acceso a millones de registros en texto completo (tesis, libros, artículos
de revistas, etc.). Éstos representan una cantidad significativa de
información y complementan a los acervos de las bibliotecas en las
instituciones educativas.
- Número de fuentes de información nacionales: 9
45
ESTADO ACTUAL
- Países de mayor consumo en orden descendente: México, Estados Unidos,
Argentina, España, Perú, Colombia, Brasil, Chile, Costa Rica y Venezuela.
Arquitectura y a) Lenguaje de programación: Java, XSL (hojas de estilo) y JavaScript.
44 45 46
código fuente b) Lenguajes de etiquetado: XML , WML y HTML
c) Líneas de código: 46,000 aprox.
d) Estructura general dividida en tres módulos principales: Núcleo,
Buscadores e Interfaz.
e) Hardware: cluster de cuatro computadoras y balanceador redundante de
asignación de carga (basado de software libre)
f) Sistema operativo: Linux Fedora 4 de 64 bits.
g) Servidor Web: Apache y Tomcat (interconectados)
h) Herramientas estadísticas: Statcounter, Awstats y Sawmill.
i) Manejador de base de datos: Posgresql47.
j) Indexador de datos: Zebra Server48.
Seguridad
Configuración de reglas para el filtrado de puertos (permiso de uso de puerto
80)
Rutinas encargadas de monitoreo y verificación de los servicios que requiere
OA-Hermes para su funcionamiento
Conectividad
El proceso de conexión hacia las múltiples y variadas fuentes de información
se realiza a partir de cuatro principales protocolos de comunicación
utilizados en el ámbito bibliotecológico y de la información: HTTP49,
Z39.5050, OAI-PMH51 y SRW52.
44
XML: Ver capítulo 4 HERRAMIENTAS TECNOLOGICAS UTILIZADAS pag. 89.
45
WML: El Wireless Markup Language es un lenguaje cuyo origen es el XML (eXtensible Markup Language). Este lenguaje
se utiliza para construir las páginas que aparecen en las pantallas de los teléfonos móviles y los asistentes personales
digitales (PDA) dotados de tecnología WAP. Es una versión reducida del lenguaje HTML que faci lita la conexión a Internet
de dichos dispositivos y que además permite la visualización de páginas web en dispositivos inalámbricos que incluyan la
tecnología WAP.
46
HTML: Ver capítulo 4 HERRAMIENTAS TECNOLOGICAS UTILIZADAS pag. 87.
47
PostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos y libre. Dicha comunidad es
denominada el PGDG (PostgreSQL Global Development Group).
48
ZEBRA SERVER: Servidor de imprsión.
49
HTTP: Ver capítulo 4 HERRAMIENTAS TECNOLOGICAS UTILIZADAS pag.121.
50
Z39.50: Es un protocolo cliente-servidor dirigido a facilitar la búsqueda y recuperación de información en distintos
sistemas a través de una misma interfaz. Su aplicación en el mundo de las bibliotecas y de los centros de documentación
permite la consulta de recursos distribuidos en distintas bases de datos, desde un mismo punto de acceso.
51
OAI-PMH: El protocolo OAI-PMH (Open Archives Initiative-Protocol Metadata Harvesting), es una herramienta de
interoperabilidad independiente de la aplicación que permite realizar el intercambio de información para que desde puntos
(proveedores de servicio), se puedan hacer búsquedas que abarquen la información recopilada en distintos repositorios
asociados (proveedores de datos).
52
SRW: Es un protocolo de búsqueda normalizado que se utiliza en Internet para consultar bases de datos mediante el uso
de CQL (Commun Query Language), una sintaxis normalizada de consulta. La norma SRW intenta adherirse a las
directrices de la interoperabilidad de servicios web.
46
ESTADO ACTUAL
Funcionalidad a) Búsquedas básica y avanzada
b) Detección automático de dispositivo de conexión: computadoras de
escritorio, PDA‟s y celulares.
c) Búsqueda por selección de fuentes de información.
d) Exportación de registros a distintos formatos de salida: Reference
Manager (Software de administración de bibliografía personal),
53 54
EndNote , Pro-Cite y texto con delimitares.
e) Detección de número de usuarios simultaneas.
f) Resultados agrupados por fuente y visualiza la cantidad de información.
g) Almacenamiento de estado de la última sesión de trabajo (términos de
búsqueda, tipo de búsqueda, fuentes de información, entre otros)
h) Filtrado de resultados que contengan enlace al objeto digital.
53
EndNote: Es un gestor de referencias que ayuda a los investigadores en el manejo de sus bibliografías. Compatible con
muchos estándares e integrado con los principales buscadores científicos.
54
Pro-Cite: Es un gestor de bases de datos documental producido por ISI ResearchSoft! que se adapta al trabajo más
exigente del investigador y del documentalista.
55
www.ict.udlap.mx/people/alfredo/rabid/.../reporte_tecnico_unam.doc Octubre – 09
56
www.tnrelaciones.com/anexo/buscadores. Julio – 09
57
www.buscadoreshispanos.com/. Julio – 09
47
BUSCADOR CARACTERÍSTICAS PAIS
58
www.desarrolloweb.com/actualidad/ranking-uso-buscadores-junio-2009-2046.html Agosto – 09
48
La clasificación y porcentaje de uso de los principales buscadores durante el mes de junio
del 2009 resulta:
1-Google: 81.22%
Porcentaje de uso de los principales buscadores
2-Yahoo: 9.21%
2-Yahoo:
4-AOL: 1.74%
3-Bing:
5-ASK: 0.84%
4-AOL:
6-MSN
7-otros: 0.16%
7-otros:
59
www.revista-redes.rediris.es/html-vol8/vol8_6_Tabla1.htm Agosto – 09
49
Software Descripción Destaca por Puntos fuertes Puntos débiles
Yahoo Buscador La difusión de La gama de servicios Este buscador se quedó
innovador en su uso. que presta. No obsoleto con rapidez, y la
sus directamente clasificación que ofrecía
comienzos y relacionados con las de los enlaces con los que
que hasta búsquedas, aunque contaba en sus
hace poco sí con un concepto comienzos, dejó de estar
trabajó en de servicio integral al actualizada.
colaboración usuario (e-mail,
con Google. grupos, álbum
fotográfico)
Bing Buscador con Comprender las Presenta resultados Su enfoque es más directo
nuevo motor necesidades del excelentes, más hacia el usuario.
de búsqueda, usuario, al hallar organizados
para la toma información de
de decisiones. forma rápida,
para completar
tareas y tomar
decisiones.
Tabla 6. Características de los buscadores más populares.
2.11. REDALYC
Por sus siglas “Red de Revistas Científicas de América Latina y el Caribe, España y
Portugal”. Es un sistema de información científica de la Universidad Autónoma del Estado de
México UAEM cuyo objetivo es brindar un servicio de consulta virtual de Revistas Científicas de los
60
países que representa a través de un portal de Internet.
60
www.redalyc.uaemex.mx/redalyc/src/inicio/HomRevRed.jsp?iCveEntRev=106 Octubre – 09
50
2.12. BIBLIOTECAS VIRTUALES EN MÉXICO
61
www.65.99.205.133/~dgbcona/index.php?option=com_content&task=view&id=96&Itemid=255 Octubre – 09
51
CAPÍTULO III
BUSCADORES WEB
CAP 3. BUSCADORES WEB
Los buscadores en Internet: son programas dentro de un sitio, página o portal Web, los cuales, al
ingresar palabras claves, operan dentro de la base de datos del mismo buscador y recopilan todas
las páginas posibles, que contengan información relacionada a la que se busca. Por lo tanto, los
buscadores, sólo necesitan la palabra clave o el concepto que se desea preguntar y
automáticamente, éste entregará una lista de páginas que contienen aquella información solicitada.
Para que estos mecanismos automatizados (Buscadores) realicen tan compleja tarea,
utilizan un software llamado Spiders (Arañas), éstas se deslizan a través de toda la Web visitando
millones de páginas y registrando sus direcciones en grandes Bases de Datos; después de esto,
algunos buscadores envían Robots a cada una de estas direcciones, mismos que se encargan de
almacenar el texto de dichas páginas y continúa con la visita a las páginas referenciadas por éstas
y así sucesivamente.
En concreto, tanto spiders62 como robots son programas que recorren la Web recolectando
algún tipo de información sobre cada lugar visitado. Por ejemplo:
Titulo de la página.
Texto relevante.
Imágenes.
Entre otros.
Obviamente, no todos los buscadores son iguales, ni tienen las mismas potencialidades;
sus diferencias radican principalmente en:
62
Spider, Robot: programas que recorren la Web y recuperan los documentos de forma automática.
63
www.scribd.com/doc/14434440/INTERNET-Y-EDUCACION-Aprendiendo-y-ensenando-en-los-espacios-virtuales- Mayo 09
52
a. El tamaño de la base de datos que contiene los índices de búsqueda.
b. La frecuencia de actualización de dichos datos.
c. La lógica de búsqueda, mediante la cual se va acotando la localización de las palabras y/o
temas solicitados por el usuario.
d. La rapidez con la cual se encuentra la información solicitada.
Desde el punto de vista del usuario, los mecanismos de búsqueda pueden presentar
diferencias en dos grandes tipos: Directorios temáticos y motores de búsqueda.
53
objetivo, sin embargo en el segundo caso existirán muchas referencias hacia la palabra “Colón”, de
las cuales muchas serán basura para el usuario, ya que la palabra objetivo aparecerá como
nombre de un restaurante, ciudad, calle, entre otras.
Los motores de búsqueda - Search Engines – son algunos de los sitios en Internet más
visitados porque permiten al usuario encontrar información de diversas fuentes en cuestión de
segundos. Todo motor de búsqueda presenta la información a sus usuarios según los siguientes
criterios:
b) Por pago: Todo Search Engine también vende palabras de búsqueda en sus espacios, por
ejemplo: se puede comprar palabras sobre las cuales aparecerá una marquesina –banner
– o un link para que otros usuarios puedan visitar dicha página.
c) Hibrido: Este criterio se basa en los 2 anteriores, por lo tanto los links estarán alternados -
unos pagados y otros por su contenido -. Sin embargo, en caso de ser muy solicitada la
palabra clave o de existir una gran cantidad de información relevante, el orden de
64
aparición dependerá del clicthrough de cada liga.
Un motor de búsqueda sabe que un link no fue relevante sí el usuario utiliza el botón
Back/Atrás de su navegador y elige otra opción de la lista de búsqueda; por otra parte, se asume
que el link fue relevante, sí se detecta que el usuario no ha regresado después de determinado
tiempo.
64
Cantidad de veces que han encontrado relevante el documento los usuarios. Este número determina el orden de
aparición de los resultados encontrados.
54
3.2.2.1. PROCESO DE BÚSQUEDA DE UN SEARCH ENGINE Y
DIRECTORIO TEMÁTICO
En el primer punto, tanto la recolección como el análisis de datos pueden hacerse de forma
manual o automática. En forma manual los índices suelen presentar un cuestionario en línea para
que la persona u organización que quiera darse de alta identifique y clasifique su página Web. La
mayor parte de los formularios de alta que ofrecen los distintos buscadores piden unos datos
obligatorios que suelen ser: El titulo de la página, URL, descripción y clasificación del recurso, pero
también pueden solicitar otro tipo de datos como palabras clave, la persona o entidad responsable
de la página, tipo de información académica, comercial, personal, informativa, localización,
geográfica, idioma, entre otras. La clasificación tiene como fin la inclusión del recurso en alguna
categoría jerarquizada de las que luego se presentarán en el índice temático, aunado a esto, los
responsables del buscador suelen analizar y evaluar la información que se esta proporcionando
para comprobar que sea correcta.
Una recolección de datos automática rastrea los datos necesarios de la red. Para lograr
esto, los motores de búsqueda disponen de un programa informático llamado “Robot” que visita y
analiza desde la página principal hasta las ligas de ésta.
Este programa es capaz de leer las etiquetas meta o metadatos de las páginas y extraer
toda la información contenida en ellas mediante el lenguaje HTML. Con la información obtenida, el
buscador es capaz de indexar palabras clave como el título, idioma, autor, propietario, localización,
temas, etc.
1. Robot: Las bases de datos de los buscadores se suelen construir utilizando robots, esto es,
programas que recorren la Web y recuperan los documentos de forma automática.
55
Normalmente comienzan con un listado de URL preseleccionadas y visitan periódicamente los
documentos en ellas referenciados. Los robots utilizan algoritmos para seleccionar los enlaces
a seguir, determinar la frecuencia de las visitas, etc.
2. Indexador: Se trata de un programa que recibe las páginas recuperadas por un robot, extrae
una representación interna de la misma y la cambia en forma de índice en una base de datos
(indexa). Existen varias técnicas para extraer la información de un documento, algunos
indexadotes sencillos almacenan los títulos HTML, otros los primeros párrafos, pero los más
avanzados utilizan técnicas más complejas.
56
Se considera un buen motor de búsqueda al que tiene flexibilidad en sus búsquedas
ofreciendo la posibilidad de elegir entre ellas mediante clasificación temática o por medio de
formularios.
La optimización de páginas Web es el proceso de adaptar esas páginas para que los
buscadores las entiendan y las valoren más, con el objetivo de que las coloquen entre los primeros
resultados para determinadas frases de búsqueda. Sí lo anterior se hace de manera correcta, se
tendrá:
Una página cuidadosamente posicionada tiene el potencial de devolver con superavit una
inversión en Internet, al tener más clientes y dar más publicidad a las marcas de productos.
65
www.hipertexto.info/documentos/tipos_buscador.htm Mayo – 09
57
En la actualidad hay tres buscadores que dominan el mundo de la recuperación y
organización de la información en Internet: Google, Yahoo y MSN Search. Algunos datos
interesantes sobre buscadores Web66.
1. Entre el 80% y el 95% de las búsquedas se realizan con Google, Yahoo y MSN.
2. Más del 80% de usuarios de Internet visitan sólo los tres primeros resultados de una
búsqueda.
66
www.posicionamientoweb.tripod.com/index.htm Junio – 09
58
Variables de mayor importancia del algoritmo PAGERANK
de palabras claves
Pagerank9 Temática de la página que enlaza. Será mejor si es de la misma temática que la
propia, aunque si hay un alto número de enlaces, no tiene importancia
Pagerank10 Estar incluido en una categoría de DMOZ. Cuanto más relacionada la categoría
con las palabras clave, mejor
Tabla 7. Listado de variables del algoritmo PAGERANK.
Es otro algoritmo de posicionamiento que toma en cuenta la popularidad del sitio, medida
en las personas que utilizan su barra para acceder a él. Entre algunas variables con las que cuenta
este algoritmo se tienen:
67
www.seoposicionamientoweb.wordpress.com/2008/03/13/google-actualiza-sus-algoritmos/
68
Directorio temático público de enlaces de Internet dirigido por Netscape. Es mantenido por un grupo mundial de redactores
voluntarios que evalúan sitios para su inclusión en el directorio. Las páginas seleccionadas por estos redactores son
organizadas dentro de una serie de amplias categorías debajo de las cuáles existen muchas subcategorías más
específicas.
www.es.geocities.com/directorioabierto/Introduccion.html -Junio – 09
59
Variables de mayor importancia del algoritmo WEBRANK
Webrank-5 Yahoo le da gran importancia al título de la página. La principal diferencia con
Google es que no es estricto a la hora de la repetición de KeyWords en él.
Webrank-6 La densidad de las palabras clave es fundamental para obtener un buen
resultado en Yahoo. Se recomienda su uso tanto en el texto, como en el título,
meta etiquetas, entre otras.
Webrank-7 Las palabras clave o Keyword en la URL tienen un mayor peso, sobre todo
cuanto más a la izquierda se encuentren.
Webrank-8 Los cambios y actualizaciones en Yahoo son más lentos que en Google.
Tabla 8. Listado de variables del algoritmo WEBRANK.
3.4. METABUSCADORES
Los Metabuscadores son herramientas de búsqueda que actúan sobre algunos de los
buscadores de información general más conocidos; dirigen las consultas a otros buscadores y
presentan la totalidad de respuestas obtenidas. Es por ello que se usan para aquellas búsquedas
en las que es interesante obtener el máximo de recursos disponibles en la red. Ver Figura 36.
69
www.posicionamientoweb.tripod.com/msn/msn.htm Julio – 09
60
conocidas debido a su poca difusión. Sin embargo en la Tabla 9. se muestra un compendio de los
70
metabuscadores más conocidos y sus características en general.
70
www.pisitoenmadrid.com/.../goyams.png Julio – 09
61
3.4.1. TABLA DE METABUSCADORES71
71
www.tusbuscadores.com/metabuscadores/ Julio – 09
62
LOGOTIPO NOMBRE IDIOMAS ALCANCE BREVE DESCRIPCIÓN
MAMMA INGLES GLOBAL Mamma es un artefacto del metabúsqueda
inteligente - cada vez que se hace una
pregunta Mamma muestra una gran variedad
de directorios.
63
LOGOTIPO NOMBRE IDIOMAS ALCANCE BREVE DESCRIPCIÓN
TODA LA NET ESPAÑOL GLOBAL Metabuscador. Consulta los mejores
buscadores de Internet simultáneamente,
extrae los mejores resultados, los ordena por
relevancia de palabras en un ranking.
64
CAPÍTULO IV
HERRAMIENTAS TECNOLÓGICAS
UTILIZADAS
CAP. 4. HERRAMIENTAS TECNOLOGICAS UTILIZADAS
Las herramientas tecnológicas, son programas y aplicaciones (software) que pueden ser
utilizadas para diversas funciones, han apoyado el entendimiento, el manejo de la información y la
masividad de esta, debido a que cualquier persona que tenga acceso a una computadora tiene a
su mano la información que desee. Así que podríamos resumir que todos aquellos usuarios que
quieran suplir una necesidad en el área Informática estarán dependientes del uso de las diferentes
Herramientas Informáticas que nacen y crecen día a día.
El nombre Proceso Unificado se usa para describir el proceso genérico que incluye
aquellos elementos que son comunes a la mayoría de los refinamientos existentes. También
permite evitar problemas legales ya que Proceso Unificado de Rational o RUP son marcas
registradas por IBM (desde su compra de Rational Software Corporation en 2003). El primer libro
sobre el tema se denominó, en su versión española, El Proceso Unificado de Desarrollo de
Software (ISBN 84-7829-036-2) y fue publicado en 1999 por Ivar Jacobson, Grady Booch y James
Rumbaugh, conocidos también por ser los desarrolladores del UML, el Lenguaje Unificado de
Modelado. Desde entonces los autores que publican libros sobre el tema y que no están afiliados a
Rational utilizan el término Proceso Unificado, mientras que los autores que pertenecen a Rational
favorecen el nombre de Proceso Unificado de Rational. Las características con las que cuenta el
proceso unificado se explicarán.
65
como resultado un incremento del producto desarrollado que añade o mejora las
funcionalidades del sistema en desarrollo. Cada una de estas iteraciones se divide a su vez en
una serie de disciplinas que recuerdan a las definidas en el ciclo de vida clásico o en cascada:
Análisis de requisitos, diseño, implementación y prueba. Aunque todas las iteraciones suelen
incluir trabajo en casi todas las disciplinas, el grado de esfuerzo dentro de cada una de ellas
varía a lo largo del proyecto.
Figura 37. Diagrama ilustrando como el énfasis relativo en las distintas disciplinas cambia a lo largo
del proyecto.
Dirigido por casos de uso: En el Proceso Unificado los casos de uso se utilizan para capturar
los requisitos funcionales y para definir los contenidos de las iteraciones. La idea es que cada
iteración tome un conjunto de casos de uso o escenarios y desarrolle todo el camino a través
de las distintas disciplinas.
Arquitectura: El Proceso Unificado asume que no existe un modelo único que cubra todos los
aspectos del sistema. Por dicho motivo existen múltiples modelos y vistas que definen la
arquitectura de software de un sistema. La analogía con la construcción es clara, cuando se
construye un edificio existen diversos planos que incluyen los distintos servicios del mismo:
electricidad, fontanería, etc.
66
Enfocado en los riesgos: El Proceso Unificado requiere que el equipo del proyecto se centre en
identificar los riesgos críticos en una etapa temprana del ciclo de vida. Los resultados de cada
iteración, en especial los de la fase de elaboración, deben ser seleccionados en un orden que
asegure que los riesgos principales son considerados primero.72
Diagrama de casos de uso: Muestran un conjunto de casos de uso y actores (tipo especial
de clases) y sus relaciones. Cubren la vista estática de los casos de uso y son
especialmente importantes para el modelado y organización del comportamiento.
Diagrama de clases: Muestran un conjunto de clases, interfaces y colaboraciones, así
como sus relaciones. Estos diagramas son los más comunes en el modelado de sistemas
orientados a objetos y cubren la vista de diseño estática o la vista de procesos estática (sí
incluyen clases activas).
Diagrama de estados: Muestran una maquina de estados compuesta por estados,
transiciones, eventos y actividades. Estos diagramas cubren la vista dinámica de un
sistema y son muy importantes a la hora de modelar el comportamiento de una interfaz,
clase o colaboración.
Diagrama de secuencias y diagrama de colaboraciones: Tanto los diagramas de secuencia
como los diagramas de colaboración son un tipo de diagramas de interacción. Constan de
un conjunto de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar
unos objetos a otros. Cubren la vista dinámica del sistema. Los diagramas de secuencia
enfatizan el ordenamiento temporal de los mensajes mientras que los diagramas de
colaboración muestran la organización estructural de los objetos que envían y reciben
mensajes. Los diagramas de secuencia se pueden convertir en diagramas de colaboración
sin perdida de información, lo mismo ocurren en sentido opuesto.
Diagrama de actividades: Son un tipo especial de diagramas de estados que se centra en
mostrar el flujo de actividades dentro de un sistema. Los diagramas de actividades cubren
la parte dinámica de un sistema y se utilizan para modelar el funcionamiento de un sistema
resaltando el flujo de control entre objetos.
72
JACOBSON, Ivar; BOOCH, Grady; RUMBAUGH, James. El Proceso Unificado de Desarrollo de Software. Pearson
Addisson-Wesley. Año 2000.
67
Diagrama de componentes: Muestra la organización y las dependencias entre un conjunto
de componentes. Cubren la vista de la implementación estática y se relacionan con los
diagramas de clases ya que en un componente suele tener una o más clases, interfaces o
colaboraciones
Diagrama de distribución: Representan la configuración de los nodos de procesamiento en
tiempo de ejecución y los componentes que residen en ellos. Muestran la vista de
despliegue estática de una arquitectura y se relacionan con los componentes ya que por lo
73
común, los nodos contienen uno o más componentes.
Cabe señalar que no es necesario emplear todas estas herramientas para analizar y
diseñar sistemas orientados a objetos.
Los mapas mentales han sido utilizados por siglos para: aprender, realizar lluvia de ideas,
agilizar la memoria, el pensamiento visual y solucionar todo tipo de problemas. Algunos de los
ejemplos de mapas de la mente, fueron desarrollados por Porphyry de Tyros, pensador conocido
del siglo III, visualizando gráficamente las categorías conceptuales de Aristóteles.
La red semántica fue desarrollada como teoría para entender el aprendizaje humano y
desarrollado en “Mapas Mentales” por el Dr. Allan Collins y el conocido investigador M. Ross
Quillian al inicio de los años 60. Se han estado utilizando las técnicas gráficas radiales (mapas
mentales) por siglos en áreas tales como ingeniería, psicología, y educación. En la actualidad, el
origen del mapa de la mente es atribuido a un autor popular británico de la psicología, Tony
Buzan74 quien es el líder indiscutible en esta materia.
El cerebro humano se caracteriza por trabajar de forma asociativa así como en forma
lineal, mientras que una computadora lo hace en forma lineal; la diferencia entre ambos se hace
notar en que el cerebro va comparando, integrando y sintetizando a medida que funciona. La
asociación juega un papel dominante en casi toda función mental y las palabras mismas no son
una excepción, toda palabra e idea tiene numerosas conexiones a otras ideas o conceptos.
73
Raúl Alarcón (2000) “DISEÑO ORIENTADO A OBJETOS CON UML” Grupo EIDOS
74
Buzan Tony & Barry (1996), "EL LIBRO DE LOS MAPAS MENTALES: Como utilizar al máximo las capacidades de la
mente" ED. URANO
68
Los Mapas Mentales, son un método efectivo para tomar notas y muy útiles para la
generación de ideas por asociación, que asemejan –en estructura- a la memoria misma.
Debido a la gran cantidad de asociaciones envueltas, los mapas mentales pueden ser muy
creativos, tendiendo a generar nuevas ideas y asociaciones en las que no se había pensado antes.
Cada elemento en un mapa es, en efecto, un centro de otro mapa.
Los Mapas Mentales son una manera de representar las ideas relacionadas con símbolos
más bien que con palabras complicadas. La mente forma asociaciones casi instantáneamente y
representarlas mediante un "mapa" permite escribir ideas más rápidamente que utilizando palabras
o frases.
Por lo tanto, es un diagrama usado para representar palabras, ideas, trabajos u otros;
ligados y dispuestos de forma radial alrededor de una palabra clave o idea central. Se utiliza para:
generar, visualizar, estructurar y clasificar ideas. Es una herramienta ampliamente utilizada como
ayuda en los estudios, las organizaciones, solucionar problemas y la toma de decisiones.
De acuerdo a como se describen los Mapas Mentales se puede decir que son una
herramienta que trabaja acorde a todo el cerebro, permite estimular el aprendizaje no memorístico,
ya que trabaja por medio de una cadena de asociaciones, ampliando teorías y conceptos gracias a
la visión general del tema, explorando la información en forma creativa, resumiendo los conceptos
básicos y las ideas propias, profundizando en los mas mínimos detalles, aplicando varias
estrategias para ser consultado una y otra vez en la búsqueda de un aprendizaje efectivo75.
Cabe señalar que a los Mapas Mentales se les ha dado diversas denominaciones, de
acuerdo al área o tema al cual se le pueda asociar como son:
75
www.llramirezz.unad.googlepages.com/herramientas Agosto – 09
76
Buzan, T.: El libro de los mapas mentales. Como utilizar al máximo las capacidades de la mente: Ed. Urano, 1996.
69
TÉCNICA GRÁFICA: "Aprovecha toda la gama de capacidades corticales y pone en
77
marcha el auténtico potencial del cerebro" .
78
MÉTODO: "Destila la esencia de aquello que conocemos y lo organiza de forma visual" .
TÉCNICA MNEMÓNICA: "Es multidimensional lo que permite crear una imagen con varias
79
dimensiones, sirviéndose de la asociación cruzada, del color y del tiempo" .
En forma breve, se puede decir que es: “Una representación gráfica de un proceso integral
y global del aprendizaje que facilita la unificación, diversificación e integración de conceptos o
pensamientos para analizarlos y sintetizarlos en una estructura creciente y organizada, elaborada
con imágenes, colores, palabras y símbolos”.
Hay tres elementos que hacen de los mapas mentales una herramienta muy importante por
quienes la usan, de acuerdo a:
1) Las características intrínsecas básicas80, señala cuatro aspectos esenciales del mapa
mental:
77
Mc.Carthy, M.J.: Domine la era de la información: Ed. Robin-book, 1991.
78
Alamea, G.: “Técnicas para Generación de Ideas y Creatividad: Mapas Mentales”, 2005
79
Ontoria, A.; Gómez, J.P.R.; De Luque, A.: Aprender con mapas mentales. Una estrategia para pensar y estudiar: Ed.
Narcea, 2003
80
Ontoria, A.; Gómez, J.P.R.; De Luque, A.: Aprender con mapas mentales. Una estrategia para pensar y estudiar: Ed.
Narcea, 2003.
70
2) La relación a su sencillez de creación y de uso, destacan las siguientes atribuciones de los
mapas mentales:
Uno de los principales elementos a favor de los mapas mentales consiste en su facilidad de
uso ya que solamente se necesita una hoja de papel y lápiz para escribir para empezar a
producirlos. Sin embargo, recientemente se han empezado a utilizar una serie de paquetes
informáticos (software) para su desarrollo. Entre los cuales podemos mencionar: Conceptdraw
MindMap, MindMapper, CMAP tools, Text2MindMap, FreeMind, Mindmanager y ECOTree.
Para hacer un mapa mental, se comienza en el centro de una página con la idea principal,
y se trabaja hacia afuera en todas direcciones, produciendo una estructura creciente y organizada
compuesta de palabras e imágenes claves.
71
Figura 38. Uso de los Mapas Mentales.
72
Participación consciente: la participación debe ser activa y consciente. Si los mapas
mentales se convierten en divertidos y espontáneos, permiten llamar la atención,
motivando el interés, la creatividad, la originalidad y ayudan a la memoria.
El mapa siempre debe tener un centro. Este centro posee ramas como el tronco de un
árbol. Cada rama a su vez desprenderá otras ramas. Ver Figura 39.
Se nombrarán a las ramas conectadas directamente al centro del mapa ramas principales,
ya que determinan la posición de sus ramas hijas. El centro del mapa y todas las ramas tienen un
encabezado. Por lo general, el texto planteado, debe ser una o pocas palabras, para tener un
seguimiento mas sencillo del mapa.
Sumado a estas características, los mapas mentales se pueden mejorar y enriquecer con
colores, imágenes y códigos que le añadan interés, belleza e individualidad, fomentándose la
creatividad, la memoria y la evocación de la información. Ver Figura 40.
Cuando una persona trabaja con mapas mentales, puede relajarse y dejar que sus
pensamientos surjan espontáneamente, utilizando cualquier herramienta que le permita recordar
sin tener que limitarlos a las técnicas de estructuras lineales, monótonas y aburridas.
73
Ordenadoras Básicas (IOB), que son conceptos claves (palabras, imágenes o ambas) de donde es
posible partir para organizar otros conceptos, en este sentido, un mapa mental tendrá tantas IOB
como requiera el "cartógrafo mental". Son los conceptos claves, los que congregan a su alrededor
la mayor cantidad de asociaciones, siendo una manera fácil de descubrir las principales IOB en
una situación determinada, haciéndose las siguientes preguntas:
- ¿Qué conocimiento se requiere?
- Si esto fuera un libro, ¿cuáles serían los encabezamientos de los capítulos?
- ¿Cuáles son mis objetivos específicos?
- ¿Cuáles son mis interrogantes básicos? Con frecuencia, ¿Por qué?,
-¿Qué?, ¿Dónde?, ¿Quién?, ¿Cómo?, ¿Cuál?, ¿Cuándo?, sirven bastante bien como
ramas principales de un mapa mental.
-¿Cuál sería la categoría más amplia que las abarca a todas?
Las Redes Neuronales Artificiales (ANN) son sistemas paralelos para el procesamiento de
la información, inspirados en el modo en el que las redes de neuronas biológicas del cerebro
procesan esta. Es decir que se han intentado plasmar los aspectos esenciales de una neurona real
a la hora de diseñar una neurona “artificial”. Estos modelos realizan una simplificación, averiguando
cuales son los elementos relevantes del sistema, porque la cantidad de información de que dispone
es excesiva o bien porque es redundante. Una elección adecuada de sus características, más una
74
estructura conveniente, es el procedimiento convencional utilizado para construir redes capaces de
realizar una determinada tarea.
Sean altamente paralelas. El cerebro está formado por muchas neuronas interconectadas
entre si y es, precisamente el comportamiento colectivo de todas ellas, lo que caracteriza
su forma de procesar la información.
Existen numerosas formas de definir a las redes neuronales; desde las definiciones cortas
y genéricas hasta las que intentan explicar más detalladamente qué son las redes neuronales. Por
ejemplo:
Las redes neuronales son más que otra forma de emular ciertas características propias de
los humanos, como la capacidad de memorizar y de asociar hechos. Si se examinan con atención
aquellos problemas que no pueden expresarse a través de un algoritmo, se observará que todos
75
ellos tienen una característica en común: la experiencia. El hombre es capaz de resolver estas
situaciones acudiendo a la experiencia acumulada. Así parece claro que una forma de aproximarse
al problema consista en la construcción de sistemas que sean capaces de reproducir esta
característica humana. En definitiva, las redes neuronales no son más que un modelo artificial y
simplificado del cerebro humano, que es el ejemplo más perfecto del que disponemos para un
sistema que es capaz de adquirir conocimiento a través de la experiencia. Una red neuronal es “un
nuevo sistema para el tratamiento de la información, cuya unidad básica de procesamiento está
inspirada en la célula fundamental del sistema nervioso humano: la neurona”. 81
La neurona es el principal componente del cerebro. Está formada por complejas uniones
de elementos químicos (moléculas) que interaccionan de acuerdo a las leyes físicas. Cada neurona
es una célula especializada que consiste de un núcleo, un cuerpo celular, dendritas
(ramificaciones), axones, etc. Ver Figura 41.
La combinación de las señales suele ser cada entrada multiplicada por un peso de
interconexión (cuán conectada se encuentra la entrada con la neurona) y la suma de todas estas.
81
Damián J. Matich “Redes Neuronales: Conceptos Básicos y Aplicaciones” 2001
76
resultado de este proceso aplicado a gran cantidad de neuronas es que, luego de la propagación
de la señal a través de la red neuronal, las neuronas adquieren un estado de excitación o
inhibición. Se pueden formar, de esta manera, áreas inhibidas o excitadas que responden positiva
o negativamente ante las nuevas entradas que se le presenten.
Está constituida por neuronas interconectadas y arregladas en tres capas (esto último
puede variar). Los datos ingresan por medio de la “capa de entrada”, pasan a través de la “capa
oculta” y salen por la “capa de salida”. Cabe mencionar que la capa oculta puede estar constituida
por varias capas. Ver Figura 42.
77
Operación en tiempo real. Los cómputos neuronales pueden ser realizados en paralelo;
para esto se diseñan y fabrican máquinas con hardware especial para obtener esta
capacidad.
4.5. BÚSQUEDAS
4.5.1. BÚSQUEDA EN PROFUNDIDAD
Expandir un camino hasta su máxima profundidad puede ser útil para acotar la solución en
problemas de optimización. Esto es, si se ha encontrado una solución posible con determinada
valoración, no se admitirá expandir nodos con una valoración peor, y así el algoritmo puede ir
eliminando ramas sin la carga de procesamiento de recorrerlas. Además, el requerimiento de
memoria es limitado, aun si se garantiza que no halla ciclo, ya que sólo hace falta guardar los datos
de la rama actual. Ver Figura 43.
78
Figura 43. Ejemplo de una búsqueda en profundidad.
1. Expandir todos los nodos del siguiente nivel antes de proceder con niveles más profundos.
82
Stuart J. y Peter N. “Inteligencia Artificial. Un enfoque moderno”
79
Figura 44. Ejemplo de una búsqueda en amplitud.
1.-Datos o hechos.
2.- Reglas operativas.
3.-Inferencia y control.
Los dos primeros niveles forman la base de conocimientos. A nivel de hechos y datos los
conocimientos declarativos de los hechos tratan del problema particular que se esta resolviendo y
el actual estado del proceso de solución. El nivel operativo y heurístico contiene los conocimientos
operativos y los conjuntos de conocimientos. Estos conocimientos los usa el sistema para razonar
acerca del problema, y viene dado con frecuencia en forma de reglas operativas o los programas
inferenciados por forma (Lógica de predicados). Cada vez, pueden aplicarse al problema una o
varias de esas reglas. Si se aplica una se produce un cambio en los datos y/o en los hechos. La
estructura de control o intérprete de reglas, es un programa que toma la decisión sobre como usar
los conocimientos específicos que se tienen acerca del problema en la búsqueda de la solución.
Por ejemplo, puede tomarse la decisión sobre cual regla aplicar y como aplicarla.
80
Un sistema basado en conocimiento se puede describir utilizando los tres niveles
siguientes.
Funcional. Se entiende por arquitectura a la ciencia y diseño que determine las estructuras
de un sistema. En este nivel se hace una descripción funcional de como aparece el
sistema ante el usuario. Es decir, se muestra, la arquitectura del sistema que es aquello
que ve y conoce el usuario.
Físico. Que corresponde con la realización concreta del sistema, con los componentes
particulares empleados para construir el sistema de base de conocimientos.
a) La base de conocimientos tiene los conocimientos relativos a la tarea. Esta base usa
formalismos de representación para codificar los conocimientos.
Las bases de conocimiento son la evolución lógica de los sistemas de bases de datos
tradicionales, en un intento de plasmar no ya cantidades como datos, sino elementos de
conocimiento (normalmente en forma de hechos y reglas) así como la manera en que estos
elementos han de ser utilizados.
81
En una base de conocimiento, al almacenar “hechos” y un conjunto de “reglas” le apoya
para obtener información que no se encuentra almacenada de forma explícita.83 Contiene
información creada gracias a una extensa investigación organizada en un árbol de conocimientos
completo. Las bases de conocimientos se crean con el propósito de cubrir todos los aspectos de la
evaluación y no únicamente las características y las funcionalidades de un dominio, además de
tener una visualización organizada de todos los aspectos de la evaluación, una base de
conocimientos permite almacenar notas, comentarios y otros datos importantes para cada nivel del
árbol de conocimientos.
Una óptima base de conocimiento en un dominio particular debe poseer las siguientes
propiedades:
83
www.elies.rediris.es/elies18/522.html Agosto – 09
84
Elaine Rich, Kevin Knight “Inteligencia Artificial” 2da Ed.
82
información y estructura de los datos, combinar y calcular datos para conseguir la información
necesaria.
El lenguaje SQL puede utilizarse como DML (Lenguaje de Manipulación de Datos), para
añadir, borrar, modificar o consultar datos. Además puede utilizarse como DDL (Lenguaje de
Definición de Datos), para crear, modificar o borrar diferentes objetos de bases de datos como
tablas, vistas o índices.
83
Funciones básicas de un Lenguaje de Definición de Datos.
Función Ejemplo
Drop: elimina un objeto de la base de datos. ALTER TABLE ''TABLA_NOMBRE''
Puede ser una tabla, vista, índice, trigger, (
función, procedimiento o cualquier otro DROP COLUMN ''CAMPO_NOMBRE1''
objeto que el motor de la base de datos )
soporte. Se puede combinar con la
sentencia ALTER.
Truncate: borra todo el contenido de una TRUNCATE TABLE ''TABLA_NOMBRE1''
tabla. La ventaja sobre el comando DROP,
es que si se quiere borrar todo el contenido
de la tabla, es mucho más rápido,
especialmente si la tabla es muy grande, la
desventaja es que TRUNCATE solo sirve
cuando se quiere eliminar absolutamente
todos los registros, ya que no se permite la
cláusula WHERE. Si bien, en un principio,
esta sentencia parecería ser DML (Lenguaje
de Manipulación de Datos), es en realidad
una DDL, ya que internamente, el comando
truncate borra la tabla y la vuelve a crear y
no ejecuta ninguna transacción.
Tabla 10. Tabla con las funciones básicas de un Lenguaje de Definición de Datos.
Lenguaje de manipulación de datos (LMD), permite a los usuarios llevar a cabo las tareas
de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. Contiene
tres funciones básicas: INSERT, UPDATE y DELETE. Ver Tabla 11.
84
Funciones básicas del Lenguaje de Manipulación de Datos.
Función Ejemplo
existentes en una tabla. WHERE ''columnaN = ''valorN''
Delete: borra cero o más registros existentes DELETE FROM ''tabla'' WHERE ''columna1'' =
en una tabla. ''valor1''
DELETE FROM My_table WHERE field2 = 'N';
Tabla 11. Funciones básicas del Lenguaje de Manipulación de Datos.
Toda esa información esta disponible para su utilización, gracias a unos soportes de
información y programas informáticos que los manejan denominados Bases de Datos.
La definición de Base de Datos no es única, depende del punto de vista con que se mire.
Desde el punto de vista informático, es una colección de ficheros interrelacionados. Desde el punto
de vista de un usuario, es un conjunto de datos que modelan la actividad de una empresa, es decir,
es un modelo del mundo real.
La definición formal de Base de Datos es: conjunto de datos operativos a los que acceden
los programas de aplicación o los usuarios de una empresa. Datos operativos son los que residen
durante un tiempo determinado en el sistema, a diferencia de los datos de entrada y salida.85
Existen muchos tipos de Bases de Datos en función del modo en que se almacenan y
acceden a la información que guardan: relacional, jerárquica, en red, orientada a objetos. Ejemplos
de gestores de Bases de Datos relacionales o RDBMS (Relational Database Management System)
hay muchos: MySQL86, SQLite, Oracle87, Informix, SyBase, Microsoft SQL Server88, PostGres,
mSQL, entre otros.
85
Antonio López. “Enciclopedia de Informática y Computación” Deontología Informática, Edición 1998, Cultural S.A.
86
MySQL: Sistema de gestión de base de datos relacional, multihilo y multiusuario.
87
Oracle: Es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data
Base Management System), como uno de los sistemas de bases de datos más completos, destaca en soportes de
transacciones con estabilidad y escalabilidad y soporte multiplataforma.
88
Microsoft SQL Server: Es un sistema para la gestión de bases de datos basado en el modelo relacional, se caracteriza
por dar soporte en transacciones, es escalable, tiene estabilidad y seguridad, entre otros.
85
Un gestor de Base de Datos relacional almacena los datos en tablas, cada una de las
cuales esta formada por filas o registros y estas, a su vez, están formadas por columnas o campos.
Antes de definir una tabla, hay que normalizarla, proceso que consiste en evitar redundancias.
El acceso a los gestores de Bases de Datos se hace a través del lenguaje SQL (Structured
Query Language).
Las bases de datos documentales son unos tipos especiales de bases de datos que
almacenan información en forma de texto.
La estructura lógica de ese tipo de información es muy complicada de diseñar, puesto que
los diferentes documentos contenidos en la base de datos están almacenados en registros de
longitud variable.
Para agilizar y mejorar el proceso de búsqueda a lo largo de los diferentes textos que
componen la base de datos se deben seguir diversas estrategias (índices, búsquedas complejas,
etc.), que provocan una gran complicación al programar la recuperación de la información deseada
por los usuarios.
4.8.2. MySQL
Es un gestor de Base de Datos relacional, multihilo90 y multiusuario con más de 6 millones
de instalaciones.
Cabe mencionar que MySQL es gratuito tanto para usos privados, como comerciales
excepto en el caso de que se desarrolle un producto comercial que este basado en este último),
89
Antonio López. “Enciclopedia de Informática y Computación” Deontología Informática, Edición 1998, Cultural S.A.
90
Hilo de Ejecución, en sistemas operativos, es una característica que permite a una aplicación realizar varias t areas a la
vez concurrentemente.
86
tiene disponibilidad para distintos sistemas operativos (Unix, Windows 9x/NT/2000/XP, OS/2) y es
capaz de trabajar con millones de registros, además de que es muy rápido y no necesita grandes
recursos de máquina.
Las aplicaciones que siguen la arquitectura cliente-servidor (web, correo, dns, ftp, news)
basan su funcionamiento en dos extremos:
2.- Clientes, que cuando quieren contactar con el servidor, realizan conexiones a ese puerto.
MySQL sigue esta misma arquitectura y por tanto, para poder realizar operaciones, es
necesario tener ejecutado el programa servidor. Por defecto, el servidor MySQL escucha
91
peticiones en le puerto TCP 3306.
4.8.2.1. phpMyAdmin
Para empezar a crear páginas web con HTML es necesario contar con:
91
Puerto es una forma genérica de denominar a una interfaz a través de la cual los diferentes tipos de datos se pueden
enviar y recibir. Dicha interfaz puede ser de tipo físico, o puede ser a nivel de software (por ejemplo, los puertos que
permiten la transmisión de datos entre diferentes ordenadores), en cuyo caso se usa frecuentemente el término puerto
lógico. En el ámbito de Internet, un puerto es el valor que se usa, en el modelo de la capa de transporte, para distinguir
entre las múltiples aplicaciones que se pueden conectar al mismo host, o puesto.
92
Licencia Publica General, esta orientado principalmente a proteger la libre distribución, modificación y uso de software.
87
1. Editor de Texto (Bloc de Notas, Wordpad de Windows).
2. Navegador Web (Internet Explorer o Netscape Navigator).
La estructura de las etiquetas y atributos van precedidos de los siguientes símbolos < >,
de tal forma que el navegador pueda reconocer las instrucciones de HTML y no confundirlas con el
contenido que desplegará la página.
El texto que se encuentra entre estos símbolos indica, por un lado la instrucción que se
ejecutará y por otro lado, las especificaciones de la misma.
Para indicar el final de la instrucción se utiliza la misma etiqueta pero añadiendo una
diagonal.
Ejemplo:
La estructura principal de una página Web está conformada por las siguientes etiquetas:93
4.9.2. JAVASCRIPT
Javascript es un lenguaje de programación interpretado, es decir, que no requiere
compilación, utilizado principalmente en páginas web, con una sintaxis semejante a la del lenguaje
Java y el lenguaje C. Es considerado un lenguaje orientado a objetos.
Todos los navegadores modernos interpretan el código Javascript integrado dentro de las
páginas web. El lenguaje fue inventado por Brendan Eich en la empresa Netscape
93
www.entren.dgsca.unam.mx/Html/estr.htm Agosto – 09
88
Communications, que es la que desarrolló los primeros navegadores web comerciales. Apareció
por primera vez en el producto de Netscape llamado Netscape Navigator 2.0.
Los autores inicialmente lo llamaron Mocha y más tarde LiveScript pero fue rebautizado
como Javascript en un anuncio conjunto entre Sun Microsystems y Netscape, el 4 de diciembre de
1995.
En 1997 los autores propusieron Javascript para que fuera adoptado como estándar de la
European Computer Manufacturers' Association ECMA, que a pesar de su nombre no es europeo
sino internacional, con sede en Ginebra. En junio de 1997 fue adoptado como un estándar ECMA,
con el nombre de ECMAScript. Poco después también lo fue como un estándar ISO.
Para evitar estas incompatibilidades, el World Wide Web Consortium diseñó el estándar
Document Object Model (DOM, ó Modelo de Objetos del Documento en castellano), que incorporan
Konqueror, las versiones 6 de Internet Explorer y Netscape Navigator, Opera versión 7, y Mozilla
desde su primera versión.
Las tecnologías XML son un conjunto de módulos que ofrecen servicios útiles a las
demandas más frecuentes por parte de los usuarios. XML sirve para estructurar, almacenar e
intercambiar información.
89
XSL: Lenguaje Extensible de Hojas de Estilo, cuyo objetivo principal es mostrar cómo
debería estar estructurado el contenido, cómo debería ser diseñado el contenido de origen
y cómo debería ser paginado en un medio de presentación como puede ser una ventana
de un navegador Web o un dispositivo móvil, o un conjunto de páginas de un catálogo,
informe o libro.
XPath: Lenguaje de Rutas XML, es un lenguaje para acceder a partes de un documento
XML.
XLink: Lenguaje de Enlace XML, es un lenguaje que permite insertar elementos en
documentos XML para crear enlaces entre recursos XML.
XPointer : Lenguaje de Direccionamiento XML, es un lenguaje que permite el acceso a la
estructura interna de un documento XML, esto es, a sus elementos, atributos y contenido.
XQL : Lenguaje de Consulta XML, es un lenguaje que facilita la extracción de datos desde
documentos XML. Ofrece la posibilidad de realizar consultas flexibles para extraer datos de
documentos XML en la Web.
XSL: Funciona como un lenguaje avanzado para crear hojas de estilos. Es capaz de
transformar, ordenar y filtrar datos XML, y darles formato basándolo en sus valores.
XPath: Identifica partes de un documento XML concreto, como pueden ser sus atributos,
elementos, etc.
XLink: Por su lado, describe un camino estándar para añadir hiperenlaces en un archivo
XML. Es decir, es un mecanismo de vinculación a otros documentos XML. Funciona de
forma similar a un enlace en una página Web, es decir, funciona como lo haría <a
href="">, sólo que a href es un enlace unidireccional. Sin embargo, XLink permite crear
vínculos bidireccionales, lo que implica la posibilidad de moverse en dos direcciones. Esto
facilita la obtención de información remota como recursos en lugar de simplemente como
páginas Web.
XPointer: Funciona como una sintaxis que apunta a ciertas partes de un documento XML,
es como una extensión de XPath. Se utiliza para llegar a ciertas partes de un documento
XML. Primero, XLink permite establece el enlace con el recurso XML y luego es XPointer el
que va a un punto específico del documento. Su funcionamiento es muy similar al de los
identificadores de fragmentos en un documento HTML ya que se añade al final de una URI
y después lo que hace es encontrar el lugar especificado en el documento XML. Al ser
XPointer una extensión de XPath, XPointer tiene todas las ventajas de XPath y además
permite establecer un rango en un documento XML, es decir, con XPointer es posible
establecer un punto final y un punto de inicio, lo que incluye todos los elementos XML
dentro de esos dos puntos.
XQL: Lenguaje de consultas, se basa en operadores de búsqueda de un modelo de datos
para documentos XML que puede realizar consultas en infinidad de tipos de documentos
90
como son documentos estructurados, colecciones de documentos, bases de datos,
estructuras DOM, catálogos, etc.
<libro>
<titulo></titulo>
<capitulo>
<titulo></titulo>
<seccion>
<titulo></titulo>
</seccion>
</capitulo>
</libro>
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
indent="yes"
encoding="iso-8859-1"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
<!-- Utiliza el título del libro como título del documento XHTML -->
91
<xsl:template match="libro">
<html>
<head>
<title>
<xsl:value-of select="titulo"/>
</title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="libro/titulo">
<h1>
<xsl:apply-templates/>
</h1>
</xsl:template>
<xsl:template match="capitulo/titulo">
<h2>
<xsl:apply-templates/>
</h2>
</xsl:template>
92
<!-- Los títulos de las secciones aparecerán como H3 -->
<xsl:template match="seccion/titulo">
<h3>
<xsl:apply-templates/>
</h3>
</xsl:template>
</xsl:stylesheet>
<!-- Toma todos los elementos titulo dentro del elemento capítulo
/doc/capitulo/titulo | /doc/capitulo/autor
<my:crossReference
xlink:href="libro.xml"
xlink:role="http://www.example.com/linkprops/listalibros"
xlink:title="Lista de libros">
</my:crossReference>
documento.xml#xpointer(
/libro/capitulo[@public])xpointer(/libro/capitulo[@num="1"])
<bib>
93
for $b in doc("http://libro.example.com/bib.xml")/bib/libro
return
{ $b/titulo }
</libro>
</bib>94
4.9.4 STRUTS
Struts es una herramienta de soporte para el desarrollo de aplicaciones Web bajo el patrón
MVC bajo la plataforma J2EE (Java 2, Enterprise Edition). Se desarrollaba como parte del proyecto
Jakarta de la Apache Software Foundation, pero actualmente es un proyecto independiente
conocido como Apache Struts.
Cuando se programan aplicaciones Web con el patrón MVC95, siempre surge la duda de
usar un solo controlador o usar varios controladores, pues si se considera mejor usar un solo
controlador para tener toda nuestra lógica en un mismo lugar, es posible encontrase con un grave
problema, ya que el controlador se convierte en lo que se conoce un controlador de peticiones,
pero los Struts solucionan este problema, ya que implementa un solo controlador (ActionServlet)
que evalúa las peticiones del usuario mediante un archivo configurable (struts-config.xml). Los
componentes de control son los encargados de coordinar las actividades de la aplicación, que van
desde la recepción de datos del usuario, las verificaciones de forma y la selección de un
componente del modelo a ser llamado.
94
www.w3c.es/divulgacion/guiasbreves/tecnologiasXML Agosto – 09
95
Ver tema 4.9.4.1. Modelo MVC.
94
Por su parte los componentes del modelo envían al control sus eventuales resultados o
errores de manera de poder continuar con otros pasos de la aplicación. Esta separación simplifica
enormemente la escritura tanto de vistas como de componentes del modelo: Las páginas JSP no
tienen que incluir manejo de errores, mientras que los elementos del control simplemente deciden
sobre el paso siguiente.
96
www.es.wikipedia.org/wiki/Apache_Struts Agosto – 09
95
operaciones necesarias el flujo vuelve al controlador y este devuelve los resultados a una vista
asignada. Vemos las diferencias que supone el modelo con los modelos convencionales.
Revisando el esquema básico de un sistema convencional tenemos una entrada de datos (INPUT),
se procesan y se muestra el resultado (OUTPUT). Ver ejemplo en la Figura 45.
En el caso del patrón MVC el procesamiento se lleva a cabo entre sus tres componentes.
El controlador recibe una orden y decide quien la lleva a cabo en el Modelo. Una vez que el modelo
(la lógica de negocio) termina sus operaciones devuelve el flujo vuelve al controlador y este envía
el resultado a la capa de presentación. Es lo que permite que el sistema siga bajo la estructura de
MVC sin embargo dentro de este orden que seria su raíz de funcionamiento existe el poner
énfasis en el manejo de patrones de diseño, lo cuales apoyaría de una mejor manera el desarrollo
en el ámbito del proceso y el funcionamiento del desarrollo de los sistemas de una manera mas
factible y ordenada97.
97
www.monografias.com/trabajos28/aplicacion-paso-paso-struts/aplicacion-paso-paso-struts.shtml Septiembre - 09
96
Figura 46. Función de un sistema por medio de un esquema MVC.
El Controlador en cierta forma debe tener un registro de la relación entre órdenes que le
pueden llegar y la lógica de negocio que le corresponde. (Es como una operadora de teléfono que
recibe una petición y une dos líneas). Ver Figura 47.
Al utilizar este modelo se genera una separación total entre lógica de negocio y
presentación. A esto se le pueden aplicar opciones como el multilenguaje, distintos diseños de
presentación, sin alterar la lógica de negocio. La separación de capas como presentación, lógica
de negocio, acceso a datos es fundamental para el desarrollo de arquitecturas consistentes,
reutilizables y más fácilmente mantenibles, lo que al final resulta en un ahorro de tiempo en
desarrollo en posteriores proyectos.
97
En el lenguaje Java se dispone de unas clases muy sencillas para implantar el modelo
MVC: la clase Observer, del paquete útil. Aunque esa implementación del MVC con esas clases se
podría hacer a un nivel muy simple de interacción entre unas pocas clases.
Controlador:
o Implementado a través del servlet ActionServlet que llama a las clases
derivadas de Action que se definan.
Configuración:
o Se lleva a cabo a través del fichero web.xml (común a toda aplicación
Web) y el fichero struts-config.xml (común a toda aplicación que haga uso
de struts).
98
Hiperenlaces Envían usuario a otra pág.
Formularios:
HTML y HTTP proporcionan mecanismos para enviar información de usuario a la
aplicación
Struts proporciona la clase ActionForm.
Son JavaBeans con métodos para validar los datos recibidos
El desarrollador sólo define el ActionForm y Struts mapea automáticamente sus
propiedades con campos del formulario HTML con el mismo nombre.
Actions a medida:
Desde la versión 1.1 de Struts se prefiere el método execute() frente a perform()
ActionMapping.
De cara al exterior sirve para proporcionar una URI a un Action determinado.
Se especifica por configuración.
Ejemplo:
<action-mappings>
<action
path="/logonSubmit"
type="app.LogonAction"
name="logonForm"
scope="request"
99
validate="true"
input="/pages/logon.jsp"/>
</action-mappings>
ActionServlet:
Pieza central. “Reparte el juego”.
Recibe todas las peticiones y redirecciona al action determinado. También
completa y valida los ActionForms.
Extensible. Puede extenderse a través de subclases (no habitual).
JSPs es una tecnología orientada para crear páginas web con programación en Java. Con
esta tecnología se pueden crear aplicaciones web que se ejecuten en variados servidores web, de
múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las páginas JSP
están compuestas de código HTML/XML mezclado con etiquetas especiales para programar scripts
de servidor en sintaxis Java.
Struts no obliga utilizar JSPs para la vista, podría utilizarse otras alternativas
(templates velocity).
Struts incluye librerías de tags.
Facilitan interacción con componentes de controlador
Incorporan lógica útil (p.e. facilidad para incorporar bucles en
presentación)
Incorporan funcionalidad adicional: Soporte para internacionalización.
Alguna funcionalidad se ha incorporado en la especificación JSTL (Struts es
anterior a JSTL)
struts-html.tld.Tags JSP que encapsulan componentes de formularios HTML.
100
struts-tiles.tld. Tags para crear bloques reutilizables de presentación (tiles). Facilita
cambiar el aspecto general de una aplicación (Look & Feel).
Se basa en la directiva include de los JSPs
Permite crear definiciones de pantalla en base a bloques: cabecera, pie,
menu, cuerpo, etc.
Permite definir distribuciones uniformes para todo el sitio (layouts)
Ofrece un soporte alternativo para internacionalización (Tiles diferentes
dependiendo del Locale).
Vistas diferentes según roles, tipo de navegador, etc.
Componentes de configuración.
web.xml:
Todo lo que recibe el ServletContainer va a parar al ActionServlet.
Mapping de URLs (2 esquemas):
*.do
/do/*
Especificación de qué librerías de tags se van a utilizar (incluir taglibs adecuadas)
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
ApplicationResources.properties.
Fichero properties utilizado por defecto para las etiquetas de los mensajes
internacionalizados.
struts-config.xml:
Los componentes están débilmente acoplados para permitir reutilización e
independencia unos de otros
Struts-config.xml configura la relación entre ellos.
Define principalmente:
Action-mappings: Qué Actions ha de aceptar el ActionServlet
Form-beans: Las clases ActionForms que aceptará como entrada la
aplicación
101
Ejemplo de strutsconfig.xml:
Uno de los posibles procesos de desarrollo consiste en que una vez que se téngale diiseño
de datos realizado, mapear este archivo XML siguiendo la DTD de mapeo de Hibernate. Con esto
se puede generar el código de los objetos persistentes en clases Java y también crear BBDD
independientemente del entorno escogido. Hibernate se integra en cualquier tipo de aplicación
justo por encima del contenedor de datos.
102
Una posible configuración básica de Hibernate se observa en la Figura 49.
Arquitectura Base
Se puede observar como Hibernate utiliza la BBDD y la configuración de los datos para
proporcionar servicios y objetos persistentes a la aplicación que se encuentre justo por arriba de
él98.
El creador de PHP es Rasmus Lerdorf, miembro del equipo de desarrollo de Apache, creó
PHP en 1994. Su única intención fue la de crear un pequeño sistema de control para verificar el
número de personas que leían su curriculum vitae en la Web. En los meses siguientes a su
creación, PHP se desarrolló en torno a un grupo de programadores que comprobaban el código y
sus revisiones. Para dar más potencia al sistema, Rasmus creó funciones en lenguaje C para
permitir conexión a bases de datos. Este fue el comienzo de la potencia real del lenguaje. En 1995,
apareció un conjunto de herramientas sobre PHP. Esta biblioteca se llamó "Herramientas para
páginas personales" y contenían un analizador de código muy sencillo, un libro de visitas, un
contador y algunas macros que facilitaban el trabajo de los diseñadores.
98
www.javahispano.org/contenidos/archivo/77/ManualHibernate.pdf Diciembre – 09
103
A mediados de 1995, apareció una revisión pública llamada PHP/FI 2.0. Contaba con un
analizador sintáctico reescrito desde 0, además de unas herramientas escritas para el tratamiento
de datos desde un formulario (de ahí el nombre áeFI, Form ínterpreter) y conectividad con mSQL
(Gestor de bases de datos).
Zeev Suraski y Andi Gutmans decidieron crear una nueva versión de PHP/FI para solventar
unos problemas con una aplicación de comercio electrónico que estaban desarrollando. PHP 3.0
nació con suculentas innovaciones como la conectividad con varios gestores de bases de datos,
protocolos y una API ampliada. La versión oficial de PHP 3.0 vio la luz en junio de 1998, donde se
contemplaba ya la programación orientada a objetos.
En 1999 se realizó la primera revisión del motor Zend (Zend Engine), que aportaba
modularidad, claridad y herramientas de optimización para páginas de gran escala. Zend viene de
la unión de Zeev y Andi. PHP 4.0 vio la luz en mayo de 2000, dividida en 3 partes: El motor Zend,
la API de servidor y los módulos de funcionas. El motor Zend es el responsable de analizar el
código PHP, definir la sintaxis y del lenguaje de programación. La API permite la comunicación con
el servidor. Con esta API es posible utilizar PHP desde varios servidores. Los módulos contienen
funciones para el manejo de cadenas, archivos XML o tratamiento de imágenes. La orientación a
objetos no está muy lograda en PHP 4.0. Los objetos tienen un tratamiento muy pobre e ilógico.
PHP 5 incorpora una verdadera orientación a objetos. Añadiendo las palabras reservadas
public, protected y prívate a la definición de las propiedades y métodos de los objetos, se permite
una verdadera encapsulación. Además del considerable avance con respecto a los objetos, PHP 5
incorpora un control de errores muy mejorado, al estilo de los lenguajes de programación más
avanzados.
Cuando el cliente hace una petición al servidor para que le envíe una página Web, el
servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que generará el contenido de
manera dinámica (por ejemplo obteniendo información de una base de datos). El resultado es
enviado por el intérprete al servidor, quien a su vez se lo envía al cliente. Mediante extensiones es
también posible la generación de archivos PDF, Flash, así como imágenes en diferentes formatos.
104
Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL,
Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.
PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos,
tales como UNIX (y de ese tipo, como Linux o Mac OS X) y Windows, y puede interactuar con los
servidores de Web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.
PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza C#
VB.NET como lenguajes), a ColdFusion de la compañía Adobe (antes Macromedia), a JSP/Java de
Sun Microsystems, y a CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los
sistemas libres, bajo la licencia GNU, existe además un IDE (entorno de desarrollo integrado)
comercial llamado Zend Studio. Recientemente, CodeGear (la división de lenguajes de
programación de Borland) . Existe un módulo para Eclipse, uno de los IDE más populares.
El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend
Engine 2). La versión más reciente de PHP es la 5.3.0 (30 de junio de 2009), que incluye todas las
ventajas que provee el nuevo Zend Engine 2 como:
Mejor soporte para la Programación Orientada a Objetos, que en versiones anteriores era
extremadamente rudimentario, con PHP Data Objects.
Mejoras de rendimiento.
Mejor soporte para MySQL con extensión completamente reescrita.
Mejor soporte a XML ( XPath, DOM, etc. ).
Soporte nativo para SQLite.
Soporte integrado para SOAP.
Iteradores de datos.
Manejo de excepciones.
Es un lenguaje multiplataforma.
Completamente orientado a la Web.
Capacidad de conexión con la mayoría de los motores de base de datos que se
utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.
Capacidad de expandir su potencial utilizando la enorme cantidad de módulos
(llamados ext's o extensiones).
105
Posee una amplia documentación en su página oficial, entre la cual se destaca que
todas las funciones del sistema están explicadas y ejemplificadas en un único
archivo de ayuda.
Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
Permite las técnicas de Programación Orientada a Objetos.
Biblioteca nativa de funciones sumamente amplia e incluida.
No requiere definición de tipos de variables aunque sus variables se pueden
evaluar también por el tipo que estén manejando en tiempo de ejecución.
Tiene manejo de excepciones (desde PHP5).
Delimitadores:
PHP está muy relacionado con el lenguaje de hipertextos XTML; tal es el caso que el
código PHP aparece normalmente insertado dentro de un documento HTML. El documento PHP,
una vez insertado correctamente en el servidor, genera una página HTML que será enviada al
cliente, tal como se muestra en la Figura 50.:
Figura 50 Diagrama
que representa el
flujo del código PHP
dentro de un
documento HTML.
106
Ambos lenguajes dentro del mismo documento se pueden diferenciar por medio de
etiquetas de inicio y final del código PHP, las etiquetas más habituales para delimitar los bloques
de código PHP son las siguientes:
<?php
instrucciones PHP
?>
<html>
<head>
<title>Prueba PHP</title>
</head>
<body>
</center>
<img src=”php.gif” border=”0” />
<?php
echo “<h2>El modulo de PHP funciona correctamente…</h2>”;
?>
</center>
</body>
</html>
Una vez que es interpretado correctamente por el procesador de PHP el código anterior, el
resultado que muestra el navegador se visualiza en la Figura 51:
107
Como se puede observar en el ejemplo anterior, el código PHP se halla inmerso dentro de
un documento HTML que da formato a la página. Habitualmente se puede encontrar código PHP
insertado en cualquier parte del documento HTML y aparecerá tantas veces sea necesario. Cada
uno de los bloques de código PHP, al ser procesado, generará una salida en el documento HTML
resultado, justo en la posición en que dicho bloque está.
Sintaxis básica:
Al programar en PHP, es necesario conocer de su sintaxis como son los tipos de variables
que puede aceptar el lenguaje, definición de constantes y tipo y uso de los operadores
Declaración de variables:
En el caso de PHP, no es necesario declarar las variables entres de su uso, las variables
se crean en el instante en que son utilizadas por primera vez; para su inicialización, se utiliza el
operador de asignación (=); a partir de ese instante, se puede recuperar su contenido simplemente
haciendo referencia a la variable por su nombre; por otra parte, las variables no tienen asociada la
naturaleza del tipo de información que almacenan. De hecho, una variable podrá almacenar
durante todo su tiempo de vida diferentes tipos de datos.
Nombrado de variables:
Todos los nombres de las variables van precedidos por el símbolo de dólar, $, seguido al
menos por una letra de la a a la z o de la A a la Z, o un guión bajo (“_”) para después continuar por
cualquier combinación de letras ya sea con mayúsculas o minúsculas, de dígitos (del 0 al 9) y de
guiones bajos. En la Tabla 13 se muestran algunos ejemplos de identificadores válidos e inválidos:
108
Válidos Inválidos Motivo
$n $Prueba, valor Contiene el carácter no válido “,”
Tabla 13 Tabla con ejemplos validos e inválidos para nombrar variables en PHP.
Cabe destacar que, como el intérprete PHP distingue entre mayúsculas y minúsculas, los
nombres de variables con diferencias en mayúsculas o minúsculas en caracteres iguales
componen nombres de variables distintas; por tanto, los identificadores $n y $N son diferentes, es
decir, serían variables distintas.
Variables predefinidas:
PHP ofrece una gran cantidad de variables predefinidas a cualquier script que se ejecute
en su sistema. Estas variables guardan información relativa del entorno de ejecución del intérprete
y del propio PHP. Dependen de factores como el tipo de servidor en el que se ejecuta el intérprete
de PHP, la versión y su configuración, entre otras cuestiones.
Estas variables se pueden clasificar en dos grandes grupos: por una parte, las que el
entorno, el servidor Web, le pasa al intérprete de PHP y, por otra parte, las que el intérprete pone a
disposición del programador. La Tabla 14 muestra algunas de las variables del entorno más
utilizadas:
Variable Significado
Indica el nombre del equipo servidor sobre el que se
SERVER_NAME
ejecuta el script.
Indica el puerto del equipo servidor que usa el servidor
SERVER_PORT
Web para la comunicación.
Indica qué software está siendo utilizado en el equipo
SERVER_SOFTWARE
servidor.
Contiene el puerto que utiliza el peticionario para
REMOTE_PORT
comunicarse con el servidor Web.
Contiene la dirección remota desde la que se realiza la
REMOTE_ADDR
petición.
Indica el directorio raíz del documento bajo el que se
DOCUMENT_ROOT
ejecuta el script.
Contiene la dirección de la pagina (en caso de haberla)
HTTP_REFERER
desde la que el navegador saltó a la página actual.
Tabla 14 Tabla con descripción de variables predefinidas de PHP más utilizadas.
109
Estas variable se importan en el espacio de nombres global de PHP desde el entorno en el
que se esté ejecutando el interprete PHP. La mayoría es proporcionada por el intérprete de
comandos en el que se está ejecutando PHP. Otras variables de entorno son las CGI, para las que
no importa si PHP se está ejecutando como un módulo del servidor o con un intérprete CGI. La
Tabla 15 muestra algunas de las variables que el PHP ofrece al programador para facilitar su tarea:
La mayor parte de las secciones del código de un script PHP deben ser ejecutadas tan
pronto como dicho script es interpretado, pero, otras veces, es preferible que el código actúe
después de que se haya producido alguna acción específica o sólo si se dispara un evento.
También es habitual que partes del código se repitan un número indeterminado de veces durante la
110
ejecución del script PHP. Estas necesidades hacen que nazca la idea de dividir el código de un
script en partes menores, para que cada una de las cuales sirva a un propósito especifico e
individual.
Una función PHP es una sección separada de código a la que se le ha dado un nombre en
donde cualquier instrucción PHP válida puede aparecer en el cuerpo de la función, incluso la
llamada a otra función o la definición de clases. Utilizando este nombre, en un script se puede
llamar a esta sección de código tantas veces como se quiera y en los momentos en que se
necesite.
Las funciones dividen las tareas que deben hacer un script, agrupando instrucciones
relacionadas para la ejecución de una tarea. Esta estructuración del código nos permite escribir
scripts más sencillos, legibles y fáciles de entender. Asimismo las funciones pueden recibir valores
desde las sentencias que las llaman. Estos valores se denominan parámetros o argumentos y
pueden devolver valores. Para poder declarar una función en PHP es necesario utilizar la sintaxis:
Una vez declarada una función, ésta no se ejecuta hasta que se le llama desde cualquier
parte del script. Para llamar a una función, sólo hay que escribir una sentencia que contenga el
nombre de la función y entre paréntesis los valores o argumentos que se desean para llamarla. En
el momento en que ocurre esto, la ejecución del programa salta inmediatamente a la primera línea
de la función llamada. Después de ejecutar las sentencias que componen el cuerpo de la función,
el programa salta de nuevo a la posición en que fue llamada la función y continúa la ejecución de la
lógica siguiente.
111
Paso de parámetros:
En ocasiones, necesitamos definir funciones que acepten parámetros. Esto se hace para
conseguir que la función sea más utilizable dentro del propósito general para el que esta definida.
Por ejemplo, si quisiéramos utilizar una función múltiples veces a lo largo del programa, pero
variando alguno de sus valores internos en cada llamada. La mejor solución a este problema es
definir una función que pueda aceptar argumentos en su llamada para cada valor que necesitemos.
EJEMPLO:
<HTML>
<HEAD>
<TITLE>Trabajando con Funciones</TITLE>
<BODY>
<CENTER>
<H2>Funciones de Usuarios<I></I></H2>
< ?php
function cuentaAtras ($inicio)
{
for($i=$inicio;$i>0;$i--)
echo $i, “. . .<BR>”;
echo “¡ Boom ¡”;
}
?>
<TABLE BORDER=”0” CELLPADING=”4” CELLSPACING=”6”>
<TR ALIGN=”center”>
<TD BGCOLOR=”#FFBBAA”>
<?php
cuentaAtras(8);
?>
</TD>
<TD BGCOLOR=”#FFFBAD”>
<?php
cuentaAtras(5);
?>
</TD>
</TR>
</TABLE>
</CENTER>
112
</BODY>
</HTML>
PHP permite pasar parámetros de tres formas distintas: por valor, por referencia y por
defecto.
Parámetros por valor: Es la opción por defecto de PHP, en donde lo que recibe la función
es una copia del valor de la variable pasada como parámetro; de esta forma, las modificaciones
que puedan hacerse dentro del cuerpo de la función a la variable parámetro no afectan su valor
final.
Parámetros por referencia: Si se desea que los cambios que se producen en el cuerpo de
la función afecten a la variable que se pasó como argumento en la llamada a la función deberemos
pasar el parámetro por referencia. Como su propio nombre indica, a la función le llega una
referencia a la variable y por lo tanto los cambios que se realicen sobre el parámetro se realizan
sobre la variable. Para indicar qué parámetros se pasan por referencia, hay que marcarlos en la
definición de la función, anteponiendo el símbolo ampersand (&) al nombre del parámetro.
Parámetros por defecto: Este tipo de parámetros toma un valor predefinido. Para definir un
parámetro por omisión, hay que, además de nombrar el parámetro, escribir el operador de
asignación (“=”) y a continuación, el valor que vaya a recibir el parámetro. Cuando se usan
parámetros por defecto, éstos tienen que situarse hasta el final, después de cualquier otro
parámetro, de lo contrario no funcionaran correctamente. Por ejemplo:
<HTML>
<HEAD>
<TITLE>Trabajando con Funciones</TITLE>
<BODY>
<CENTER>
<H2>Funciones de Usuarios<I></I></H2>
<?php
$mifinal=0;
function cuentaAtras ($inicio, &$fin, $mensaje= ¡ Boom ¡” )
{
for(;$inicio>$fin;$inicio--)
echo $inicio, “. . .<BR>”;
113
$fin=$fin+2;
echo $mensaje; }
?>
<TABLE BORDER=”0” CELLPADING=”4” CELLSPACING=”6”>
<TR ALIGN=”center”>
<TD BGCOLOR=”#FFBBAA”>
<?php
//$mifinal vale 0
cuentaAtras(6, $mifinal);
//$mifinal vale 2
?>
</TD>
<TD BGCOLOR=”#FFFBAD”>
<?php
//$mifinal vale 2
cuentaAtras(8, $mifinal,”¡ Despierta !”);
//$mifinal vale 4
?>
</TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
Variables Globales: son aquellas que se definen fuera del cuerpo de una función y son
accesibles desde cualquier punto del código. En PHP, las variables globales deben ser
declaradas con la palabra reservada global.
Variables Locales: aparecen definidas dentro del cuerpo de una función y solo pueden ser
accedidas desde dentro de la misma función.
114
Devolución de valores:
La devolución de un valor desde una función trabaja de tal manera que el valor devuelto
puede ser asignado a una variable o utilizado dentro de una expresión. Se puede devolver
cualquier tipo de valores incluyendo listas y objetos, pero sólo un único valor; para devolver
múltiples valores, se debe utilizar un array.
Para poder hacer esto, se utiliza la palabra reservada return acompañada de una
expresión. En el instante en que aparece dentro del cuerpo de una función una sentencia con esta
palabra reservada, la función deja de ejecutarse para devolver el flujo de ejecución al punto del
programa donde se llamo a la función. Si después de return hay más líneas de código, dichas
líneas no se ejecutarán nunca; por eso, es habitual que aparezca como última instrucción del
cuerpo de una función. Por ejemplo:
<HTML>
<HEAD>
<TITLE>Trabajando con Funciones</TITLE>
</HEAD>
<BODY>
<H2>Funciones de Usuario<I></I></H2>
<?php
function elMayor($dato1,$dato2,$dato3)
{
$elmayor=($dato1>$dato2) ?$dato1:$dato2;
$elmayor=($elmayor>$dato3) ?$elmayor:$dato3;
return $elmayor;
}
?>
<TABLE BORDER=”0” CELLPADDING=”4” CELLSPACING=”6”>
<TR ALIGN=”center”>
<TD BGCOLOR=”FFFBAD”>
<?php
echo “El mayor de 17, 5 y 9 es <BR><H2>”.elMayor(17,5,9).”</H2>”;
?>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
115
PHP permite definir funciones en las que el número de parámetros no está fijado, es decir,
en PHP se permite que una función reciba como parámetro una lista de valores de longitud
variable. No se necesita de una sintaxis específica, pero, su funcionamiento se basa en el siguiente
conjunto de funciones definidas en PHP.
Por ejemplo:
<HTML>
<HEAD>
<TITLE>Trabajando con Funciones</TITLE>
</HEAD>
<BODY>
<H2>Funciones de Usuario<I></I></H2>
<?php
function elMayor()
{
$num_args = func_num_args();
$args = func_get_args();
$elmayor=($dato1>$dato2) ?$dato1:$dato2;
for($i=2; $i<$num_args;$i++)
$elmayor=($elmayor>$args[$i]) ?$elmayor:func_get_arg($i);;
return $elmayor;
}
?>
<TABLE BORDER=”0” CELLPADDING=”4” CELLSPACING=”6”>
<TR ALIGN=”center”>
<TD BGCOLOR=”FFFBAD”>
<?php
echo “El mayor de 17, 5, 22 y 19 es <BR><H2>”.elMayor(17,5,22,19).”</H2>”;
116
echo “El mayor de 1, 35, 22, 80, 7, 12 y 19 es
<BR><H2>”.elMayor(1,35,22,80,7,12,19).”</H2>”;
?>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
PHP proporciona un conjunto de funciones de gran utilidad a la hora de tratar con las
variables. Estas funciones son:
1. gettype (variable): Devuelve el tipo de dato pasado como parámetro, pudiendo devolver
como valor: integer, float, string, array, class, object y unknown type.
2. settype (variable, tipo): Establece el tipo de dato a guardar en una variable. Tiene dos
argumentos: el nombre de la variable y el tipo que se quiere establecer. Con esta función
se pueden realizar conversiones de un tipo de datos a otro. Devolverá true si ha tenido
éxito o false en caso contrario.
3. isset (variable): Indica si una variable ha sido inicializada con un valor, en cuyo caso
devuelve true y en caso contrario, devuelve false.
4. unset (variable): Destruye una variable liberando los recursos dedicados a dicha variable.
Es necesario indicar como parámetro el nombre de la variable a destruir.
5. empty (variable): Devuelve valor true si la variable aún no ha sido inicializada, o bien, tiene
un valor igual a 0 o es una cadena vacía y en caso contrario devuelve false.
6. is_int (variable), is_integer (variable), is_long (variable): Estas funciones devuelven true si
la variable pasada como argumento es de tipo integer; en caso contrario, devuelve false.
7. is_float (variable), is_real (variable), is_double (variable): Estas funciones devuelven true si
la variable pasada como argumento es de tipo float; en caso contrario, devuelve false.
117
8. is_numeric (variable): Esta función devuelve true si la variable pasada como argumento es
un número o una cadena numérica, en caso contrario, devuelve false.
9. is_bool (variable): Esta función devuelve true si la variable pasada como argumento es de
tipo lógico; en caso contrario, devuelve false.
10. is_array (variable): Esta función devuelve true si la variable pasada como argumento es de
tipo array; en caso contrario, devuelve false.
11. is_string (variable): Esta función devuelve true si la variable pasada como argumento es de
tipo string; en caso contrario, devuelve false.
12. is_object (variable): Esta función devuelve true si la variable pasada como argumento es de
tipo object; en caso contrario, devuelve false.
13. intval (variable, base), floatval (variable), strval (variable): Estas funciones sirven para
realizar conversiones de tipos (casting), de modo que convierten a integer, float o string,
respectivamente, el valor de la variable que se le pasa como parámetro. Estas funciones,
no pueden utilizarse para convertir arrays u objetos. La función intval () puede recibir
además un segundo parámetro que representa la base a utilizar en la conversión (10-
decimal, 8-octal y 16-hexadecimal), tomando por defecto la base 10 de los números
decimales.
Inclusión de ficheros:
Cuando un archivo se incluye con include (), el interprete sale del modo PHP y entra en
modo HTML, al principio del archivo referenciado y vuelve de nuevo al modo PHP al acabar de leer
dicho archivo. Por esta razón, cualquier código dentro del archivo referenciado que debiera ser
118
ejecutado como código PHP debe ser encerrado dentro de etiquetas válidas de comienzo y fin de
PHP.
Todas las funciones y variables definidas con anterioridad a la llamada a la función include
() son accesibles para el código presente en el fichero importado. Todos los elementos definidos en
el código PHP del fichero incluido estarán disponibles para el script llamante una vez se haya
terminado la lectura y ejecución del archivo incluido.
El ámbito de las variables que se definen en los scripts del fichero incluido depende del
lugar desde el que se realice la llamada. Si la llamada se realiza desde el cuerpo de una función,
las variables tendrán ámbito local, en cualquier otro caso tendrán ámbito global.
<HTML>
<HEAD>
<TITLE>Trabajando con include</TITLE>
119
</HEAD>
<BODY>
<CENTER>
<H2>Inclusión de Fichero</H2>
<?php
$fichero=””;
for($i=1;$i<5;$i++) {
$fichero=”fichero”.$i,”.inc”;
$numero=$i;
include($fichero);
}
?>
</CENTER>
</BODY>
</HTML>
PHP permite que desde los ficheros incluidos se devuelva un valor; para ello utiliza el
mismo mecanismo de una función, utilizando la palabra reservada return acompañada de una
expresión. Se puede devolver cualquier tipo de valores, incluyendo listas y objetos, pero solo un
único valor (para devolver múltiples valores, deberemos utilizar un array).
2.- require ( ) no puede ser utilizado con estructuras condicionales o de control de bucles porque el
contenido del fichero referenciado se incluye antes de que se evalúe la sentencia que lo contiene y
se incluye siempre aunque la condición que lo contiene no se cumpla. No obstante, si la línea en la
que aparece require ( ) no se ejecuta, tampoco se ejecutará el código del archivo al que esta
llamada haga referencia.
120
3.- En caso de que el fichero referenciado por require ( ) no exista, se genera un error fatal que no
nos permite continuar con la ejecución del script.
require_once( ) De igual forma que include( ) cuenta con la función include_once(), para
evitar la carga en más de una ocasión de un fichero, require ( ) hace lo propio con la
función require_once ( ), la cual tiene un comportamiento equivalente.
Un formulario es una sección de un documento que contiene texto normal, etiquetas HTML
y elementos especiales llamados controles (casillas de verificación o checkboxes, radiobotones o
radiobuttons, menús desplegables, entre otras) y rótulos (labels) asociados a estos controles.
Todos los controles presentes en un formulario, para que sean efectivos, deben aparecer
incluidos dentro de un elemento form de HTML. La etiqueta FORM actúa, por tanto, como
contenedor de controles. Pero, además, especifica entre otros:
El programa que manejará los datos del formulario una vez haya sido completado y
enviado (atributo action). El programa receptor debe ser capaz de interpretar las parejas
nombre/valor para poder hacer uso de ellas.
La forma en la que se enviarán los datos del usuario al servidor (atributo method).
121
El tipo MIME usado para enviar los datos del formulario (atributo enctype). El valor por
defecto de este atributo es application/x-www-form-urlencoded
Juego de caracteres que acepta el servidor para poder manejar este formulario (atributo
accept-charset). Los agentes de usuario pueden avisar al mismo del valor de este atributo
y/o restringir al usuario la posibilidad de introducir caracteres no reconocidos.
El atributo method del formulario form especifica el método HTTP usado para enviar los
datos del formulario al agente procesador. Este atributo puede tener dos valores:
get: El conjunto de datos del formulario se agrega (con el carácter “?” como separador) al
URL especificado en el atributo action (el programa que tratará los datos) y este nuevo
URL se envía al agente procesador.
post: Los datos del formulario se incluyen en el cuerpo del mensaje que se envía al agente
procesador.
El conjunto de datos del formulario que se envía al agente servidor es una secuencia de
parejas nombre_de_control/valor construida a partir de los elementos del formulario. Cada uno
de los controles tiene asociado un nombre que viene dado por su atributo name. De igual forma,
cada control tiene tanto un valor inicial, como un valor actual, que son ambos cadenas de
caracteres.99
El método get debería usarse cuando el formulario es idempotente (es decir cuando no
tiene efectos secundarios). Muchas búsquedas en Bases de Datos no tienen efectos secundarios
visibles y constituyen aplicaciones ideales del método get. Si el servicio asociado con el
procesamiento de un formulario causa efectos secundarios (por ejemplo, si el formulario modifica
una BD o la suscripción a un servicio), debería usarse el método post100.
Ejemplos:
Con get:
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
99
“PHP 5 A TRAVÉS DE EJEMPLOS” ABRAHAM GUTIERREZ RODRIGUEZ, GINÉS BRAVO GARCIA EDITORIAL
ALFAOMEGA RA-MA
100
www.webestilo.com/php/php09b.phtml Enero – 10
122
<body>
<H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesa2.phtml" METHOD="GET">
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
Figura 52. Pantalla que muestra un ejemplo de un formulario aplicando el metodo GET.
Figura 53 Pantalla que muestra un ejemplo de un formulario con los métodos GET y POST.
Con post:
123
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesa2.phtml" METHOD="POST">
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
124
Figura 55. Pantalla que muestra el resultado del procesado de los métodos GET y POST.
Archivo procesa2.phtml
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
El nombre que ha introducido por GET es: <?php echo $_GET['nombre']," ",$_GET['apellidos']
?><br>
El nombre que ha introducido por POST es: <?php echo $_POST['nombre']," ",$_POST['apellidos']
?>
<br>
</body>
</html>
Uniform Server es un paquete WAMP que permite que funcione un servidor en cualquier
computadora basada en el Sistema Operativo Windows. No es necesaria ninguna instalación ni
modificación al registro de Windows, sólo se deben descomprimir los archivos incluidos en la
unidad C:\. Fue desarrollado por Taras Slobodskyy para sus clientes y lanzado más adelante como
proyecto de fuente libre y abierto.
125
WAMP es un término usado para describir un sistema de infraestructura de internet que
usa las siguientes herramientas:
Su nombre se debe a que se quería que tuviese la connotación de algo que es firme y
enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría
en gobierno de EEUU. Además Apache consistía solamente en un conjunto de parches a aplicar al
servidor de NCSA por lo que se le denomino servidor parcheado.
101
NCSA: Servidor web.
www.es.wikipedia.org/wiki/NCSA_HTTPd Marzo-2010
126
El servidor Apache se desarrolla dentro del proyecto HTTP Server de la Apache Software
Foundation y es usado principalmente para enviar páginas Web estáticas y dinámicas en la World
Wide Web.
102
www.es.wikipedia.org/wiki/Servidor_HTTP_Apache Marzo - 10
127
CAPÍTULO V
DESARROLLO DE LA SOLUCIÓN
CAP. 5. DESARROLLO DE LA SOLUCIÓN
5.1. ESQUEMA GENERAL DE LA SOLUCIÓN
128
Descripción del Esquema General de la Solución:
BUSCADOR: permite hacer búsquedas en la web mediante cadenas sugeridas estructuradas por
mapas mentales.
USUARIO: considerado el perfil de usuario final que puede consultar mapas mentales, para
obtener cadenas sugeridas, recursos locales (txt, pdf, entre otros) y referencias a sitios web.
CONCENTRADO: contiene las palabras claves que constituyen los mapas mentales que son
estructurados a su vez por un experto.
Como se planteo al inicio de esta tesis, un prototipo es una representación limitada del
diseño de un producto que permite a las partes responsables de su creación, experimentar,
probarlo en situaciones reales y explorar su uso. Es considerado como un modelo previo no
definitivo de una aplicación o sistema, no se considera un producto final, ya que no lleva a cabo la
totalidad de las funciones necesarias del mismo. Apoya a los usuarios en la retroalimentación del
sistema, para obtener y validar los requerimientos del mismo.
Una vez definido este concepto se pretende diseñar este proyecto como un prototipo, ya
que no contempla la entrega de un sistema o aplicación completa a un usuario final.
Los programas comerciales actuales generalmente representan una elevada inversión, que
en ocasiones resultan inaccesibles para los usuarios particulares debido a sus costos. El software
129
libre presenta una alternativa cada vez más extendida. El empleo de herramientas de software libre
proporcionando una opción viable para la mayoría de usuarios tanto domésticos como
profesionales, ya que por su bajo costo proporcionan a las PYMES, un apoyo en su infraestructura
sin que se vean estancados sus intentos de crecimiento por no poder hacer frente al pago de
grandes cantidades en licencias.
Lo anterior dio la pauta para dar uso de dichas herramientas en el diseño y programación
del prototipo, sacando ventaja de las características económicas en cuanto al costo de adquisición.
Cabe mencionar que queda fuera del alcance de este proyecto la entrega de un sistema
final, así como su aplicación real en una empresa; sin embargo su funcionalidad es tal, que es
posible hacer mejoras a éste prototipo en cuanto al diseño y programación, para mejorar su
desempeño, quedando como objetivo primordial apoyar la búsqueda de información a través de
buscadores y soportada con Mapas Mentales, logrando con ello un área de oportunidad para las
PYMES de México.
Para efecto de poder ligar un buscador con un software de mapas mentales y que este
último fuera a su vez compatible con el lenguaje de desarrollo de este proyecto, nos dimos a la
tarea de investigar cuatro softwares de mapas mentales que cumplieran con los siguientes puntos:
130
5.3. BENCHMARKING SOBRE SOFTWARE DE MAPAS MENTALES
HERRAMIENTA
Es una herramienta –software- Es una herramienta en línea Es un código en Javascript que Mindmanager es un software de
que permite la elaboración de ideal para crear lluvias de ideas permite visualizar un árbol creación de mapas mentales que
103
mapas mentales o conceptuales. –Brainstorming– o mapas mediante VML en la pantalla, permite organizar las ideas y la
mentales –MindMap– de una ya sea en Internet Explorer 6+ o información de una forma clara y
forma sencilla en un simple Firefox 1.5+ precisa. Se integra a la
documento de texto. perfección con los productos de
Microsoft Office permitiendo la
exportación a Ms Word, Ms
Power Point y Ms Project. La
¿Qué es?
técnica de los mapas mentales
permite generar y organizar
ideas, tareas y actividades.
103
VML (Lenguaje de Marcado de Vectores), se utiliza para producir gráficos orientados a objetos (vectores) junto con la información de cómo se han de mostrar y como edit ar esta información.
http://es.wikipedia.org/wiki/Vector_Markup_Language Agosto – 09
131
HERRAMIENTA
Para crear un nuevo mapa se Esta herramienta permite al Utiliza nodos que pueden ser de Mindmanager permite:
debe ubicar la idea principal en usuario crear mapas mentales cualquier tamaño o color. Los Capturar, analizar y rehacer los
el centro, dentro de un ovalo y acerca de cualquier tema muy nodos pueden tener un titulo y propósitos de la información
las relaciones de esta se ubican fácilmente a través de palabras, metadatos ocultos; el mapa desde una gran variedad de
dentro de “nubes”, las cuales las cuales se pueden escribir y mental puede tener una fuentes.
pueden alojar otras relaciones o jerarquizar en un espacio que orientación hacia arriba, abajo, Racionalizar los procesos de
subrelaciones internas de menor ofrece el sitio Web en la parte derecha o izquierda; los vínculos negocio y acelerar la toma de
Jerarquía. izquierda de la pantalla. de los nodos pueden ser líneas decisiones.
rectas o curvas; se permite tener Asegurar fácilmente que todo
Una vez terminada la lluvia de un hipervínculo en cada nodo; se colaborador este informado e
ideas, podremos cambiar un pueden ampliar o reducir los involucrado en las distintas
¿Cómo Funciona?
poco el diseño escogiendo el tipo nodos hijos de un padre, aunado tareas. Es fácil de usar, dispone
de letra, tamaño y colores para a que este código tiene una de una sencilla interfaz gráfica
finalmente exportarlo como una función que permite buscar en para realizar una eficiente
imagen jpg. los títulos de los nodos o en los documentación de ideas.
mismo metadatos. Organiza información fácilmente.
Permite mover fácilmente el
contenido del mapa para
organizar rápidamente ideas y
crear mejores planes más
eficientes. Crea dinámicas
presentaciones mostrando los
132
HERRAMIENTA
104
www.text2mindmap.com/ Enero – 10
133
HERRAMIENTA
105
www.mindjet.com/WebApp/catalog/catalog.aspx Diciembre – 09
134
HERRAMIENTA
Ejemplo
135
5.3.1. CONCLUSIONES DEL BENCHMARKING
A continuación se hace una descripción final de los 4 softwares de mapas mentales para
determinar el que cumple con los requerimientos del diseño de nuestro prototipo:
FREEMIND: es gratuito, construido con lenguaje java, pero no es posible ligarlo a una BD, permite
visualizar mapas mentales en un navegador web.
Text2MindMap: es gratuito, construido con tecnología flash, no es fácil ligarlo con alguna
herramienta de desarrollo y/o Base de Datos y permite visualizar lo mapas mentales en un
navegador Web.
ECOTree: es gratuito, esta construido con lenguaje JavaScript, permite ser ligado a una
herramienta de desarrollo y a bases de datos y de fácil configuraron y permite visualizar mapas
mentales en un ambiente Web.
De todas las opciones anteriores fue seleccionada ECOTree, porque es libre y su código
esta hecho con Javascript, el cual se integra fácilmente con el lenguaje de desarrollo y por que
cuenta con el 90% de requisitos para su utilización.
Cabe mencionar que este programa consta de una carpeta de archivos que no necesita
instalarse en el ordenador como los programas comunes. Simplemente hay que copiar dicho folder
106
www.codeproyect.com/KB/scripting/graphic_javascript_tree.aspx Marzo – 09
136
en donde el usuario desee guardar todos los árboles que se elaboren con formato HTML ahí
mismo.
1.- ECOTree.css
2.- ECOTree.js
El primero contiene parámetros del diseño del árbol y el último tiene funciones codificadas
en lenguaje Javascript que nos permite usar el programa.
137
5.5. PROPUESTA DE PROTOTIPO “MY POLTREE”
5.5.1. CASOS DE USO
5.5.1.1. DIAGRAMA ACTORES RELACIÓN GENERALIZACIÓN
Autentificación
Usuario
Cabe la posibilidad de que se autentifiquen 3 tipos de usuarios con diferentes perfiles como
son:
ADMINISTRADOR DEL SISTEMA: Realiza el alta, baja, actualización o consulta de los usuarios
con el perfil de experto.
USUARIO FINAL: Realiza consultas en los mapas mentales, los cuales le muestran diversas
propuestas para optimizar su búsqueda de información, como son:
138
5.5.1.2. DIAGRAMA ACTOR CASOS DE USO
<<include>>
Realizar Mostrar
búsquedas Mapas
Usuario Final
<<include>>
Seleccionar Actualizar
Mapas Mapas
Experto
ABC de
<<include>>
Expertos
<<include>>
Alta de
<<include>>
Mapas
Asignar
Administrador de
Mapas a
Sistema
Expertos
139
5.5.1.3. MODELO DE CASOS DE USO
Realiza
Búsqueda.
Conocimiento del
<<include>> tema
Usuario final.
Ingresa Mapas
<<include>> Ingreso
controlado
Administra
Aplicación
<<include>> Vigila y monitorea
el sistema
evitando
<<include>> incongruencias.
Da
mantenimiento a
los mapas y a la
aplicación en
Administrador general .
140
5.5.1.3.1. CASO DE USO DEL PERFIL “ADMINISTRADOR”
En este punto, se describe el funcionamiento del caso de uso de los perfiles que se
consideran más importantes dentro del prototipo My Poltree. Uno de ellos es el perfil de
Administrador en uno de sus módulos. El Administrador realiza el alta, baja, actualización o
consulta de los usuarios con el perfil de expertos del prototipo My Poltree.
Del mismo modo se encarga de dar de alta nuevos mapas mentales par su
correspondiente asignación a expertos que estén dados de alta o registrados. Ver Anexos para
descripción más a detalle.
En este tema se toca el caso de uso del perfil Experto el cual selecciona un mapa que sea
de su propiedad y este podrá actualizarlo contando con un ambiente grafico para llevar a cabo esta
tarea. Ver Anexos para más detalle descriptivo.
141
5.5.2. DIAGRAMAS DE ACTIVIDADES
5.5.2.1. DIAGRAMA DE ACTIVIDADES PARA ADMINISTRADOR
[ FUNCIONES
ADMINISTRATIVAS ]
[ FUNCIONES
ADMINISTRATIVAS ]
Descripción de actividades:
2.- Administrar Expertos: el Administrador al elegir esta opción tendrá la oportunidad de hacer
diferentes funciones ligadas a la administración de Expertos.
142
3.- Alta experto: este proceso da al administrador la opción de dar de alta a un nuevo Experto.
4.- Editar experto: este proceso permite hacer cambios a los datos de un Experto.
5.- Eliminar experto: este proceso es el que permite al administrador eliminar un usuario Experto,
aquí es importante mencionar que todos los mapas están relacionados con un experto, por lo cual
antes de eliminar a un experto se deberá eliminar los mapas asociados a este o si es el caso,
asignar los mapas a otro experto.
6.-Administrar Mapas: si el administrador elige esta opción tendrá la oportunidad de llevar a cabo
diversas funciones relacionadas con los mapas.
7.- Alta de mapas mentales: en este proceso el usuario podrá dar de alta mapas mentales.
8.-Asignar mapa a experto: en este proceso el usuario deberá buscar el Experto para asignarle el
nuevo mapa mental.
9.- Ingresar datos de mapa: en esta etapa el administrador ingresa los nombres del mapa mental
(descripción de mapa y bloque).
10.- Buscar mapa mental: en este proceso el usuario hará la búsqueda de un mapa mental ya
almacenado en el concentrado, lo cual le permitirá hacer actualizaciones que se requieran
relacionadas con algún mapa mental.
11.-Asignar mapa a experto: en esta etapa el administrador puede reasignar un mapa a otro
experto.
12.- Editar datos de mapa. este proceso permite editar los datos que un mapa, tanto en su
descripción y el nombre del bloque principal.
13.- Eliminar mapa: este proceso le permitirá al usuario dar de baja un mapa mental.
143
5.5.2.2. DIAGRAMA DE ACTIVIDADES PARA EXPERTO
2 Ingreso Cuenta
[Desea Modificar Bloque]
de Usuario y
Password
7 Interfaz propia
para esta Actividad
5 Mostrar Mapa
Mental
Seleccionado
Descripción de actividades:
1.- Ingresa Pagina Principal: consiste en accesar a la página que tiene la interfaz propia del
experto.
2.- Ingresa cuenta de Usuario y Password: consiste en identificar a un usuario como experto.
3.- Mostrar Colección de Mapas Mentales: consiste en proporcionar una lista con cada uno de los
Mapas que son propiedad del experto identificado anteriormente.
144
4.- Elegir un Mapa Mental y Pulsar el Hipervínculo: consiste en seleccionar el nombre del Mapa
que se desee.
5.- Mostrar Mapa Mental Seleccionado: consiste en mostrar el contenido del Mapa seleccionado.
6.- Seleccionar Bloque para Operación: consiste en seleccionar un bloque del Mapa mostrado
anteriormente.
7.- Operaciones con el Bloque: consiste en elegir una de las cuatro operaciones de bloque válidas;
agregar bloque, modificar bloque, modificar link y eliminar bloque.
1.-Ingresa Aplicación.
6.-Acceso a
Catalogo de Documentos.
2.-Ingresa palabra
clave de búsqueda
[ SELECCION DE
BLOQUE O SALIR ]
8.-Botón de Búsqueda en
Google con cadena sugerida. .
5.-Visualiza mapa
Con bloque de coincidencia
Encontrada.
145
Descripción de actividades:
1.- Ingresa aplicación: consiste en accesar a la página que tiene la interfaz dedica al usuario final.
2.- Ingresa palabra clave de búsqueda: el usuario teclea una palabra denominada “Clave de
Búsqueda”.
3.- Mostrar las coincidencias encontradas: el buscador de mapas muestra las coincidencias
encontradas.
4.- Elegir coincidencia: muestra las palabras claves para elegir.
5.- Visualiza mapa: se visualiza el mapa con bloque seleccionado de coincidencia encontrada.
6.- Acceso a catálogo de documentos: si el bloque seleccionado esta configurado con un vínculo a
una carpeta específica, indica que puede accesar aun catalogo de documentos (Word, Excel, txt,
etc.).
7.- Liga a pagina Web sugerida: si el bloque esta configurado a un documento txt, indica que se
mostrara en pantalla una dirección de alguna página Web que el experto dio como sugerencia.
8.- Botón de búsqueda en Google con cadena sugerida: se enviara una cadena de caracteres
sugerida o inicial, partiendo desde el bloque seleccionado por el usuario para que se realice la
búsqueda de esta por Internet.
146
5.5.3. PANTALLAS My POLTREE
Figura 65. Interfaz que muestra como el Usuario final hace una consulta.
147
Figura 66. Interfaz gráfica para identificación del perfil de Administrador y Experto.
148
Figura 68. Interfaz que indica como el Administrador puede dar alta, baja y cambios a expertos.
Figura 69. Interfaz que muestra como el Administrador da altas, bajas y cambios de mapas a
expertos.
149
Figura 70. Interfaz que muestra el listado de mapas que le pertenecen a un experto.
Figura 71. Interfaz que muestra el mapa que selecciono el experto para su actualización.
150
5.6. DESCRIPCIÓN DE UNA PRUEBA REAL CON USUARIO REAL
5.6.1. EJEMPLO SOBRE AMBIENTE WEB
TEMA: Desarrollo de Software
MAPA MENTAL
RESULTADOS
CADENA DE BÚSQUEDA INTRODUCIDA EN BING DE
EN GOOGLE
MICROSOFT
151
NIVEL RESULTADOS
RESULTADOS
CADENA DE BÚSQUEDA INTRODUCIDA EN BING DE
EN GOOGLE
MICROSOFT
152
5.6.2. EJEMPLO SOBRE AMBIENTE EN EQUIPO LOCAL
TEMA: Documentos de Word
AMBIENTE: Local
RESULTADOS
NIVEL
1 *.doc 2,244
2 *.doc “Estadística” 78
2 *.doc “Informática” 60
2 *.doc “Calificaciones” 21
2 *.doc “Tesis” 946
3 *.doc “Estadística” and “Antecedentes e Introducción” 1
3 *.doc "Tesis" and "Buscadores" 4
3 *.doc "Tesis" and "Google" 4
3 *.doc "Tesis" and "Anteproyecto" 3
4 *.doc "Tesis" and "Buscadores" and “Search Engines” 3
4 *.doc "Tesis" and "Buscadores" and “Google” 4
153
RESULTADOS
NIVEL
CADENA DE BÚSQUEDA INTRODUCIDA EN GOOGLE
DESKTOP
Mapa Mental:
154
3. Consolida grandes cantidades de datos e ideas desde múltiples fuentes en un único mapa,
navega o busca en la Web desde o dentro de Mindmanager y agrega enlaces a un mapa
propio para referencias futuras.
9. Transformar mapas en archivos PDF de Adobe o Flash de forma totalmente interactiva sin
la necesidad de algún software especial.
11. Permite interactuar con otras personas a través de mapas en tiempo real, o presenta ideas
personales en la Web.
Estos últimos se integran con los sistemas existentes de seguridad y control de acceso de
la organización, para proporcionar seguridad en un nivel de usuario y de documento. Los usuarios
únicamente obtendrán resultados de búsqueda si tienen acceso al contenido de origen, lo que
garantiza que la información de la empresa permanezca de forma segura y protegida.
155
5.8. SUGERENCIAS PARA UPIICSA
156
157
BIBLIOGRAFÍA
CAPÍTULO I
www.virtual.unal.edu.co/cursos/enfermeria/2002847/lecciones/tematica4/subtema4-5.html
www.campusvirtual-hgm.net/alfin/contenido/1-1.html
www.bhsu.edu/education/edfaculty/lturner
www.brightplanet.com/technology/deepweb.asp
www.enssib.fr/bibliotheque/documents/dpssib/rrbouf.pdf
www.sims.berkele.edu/research/projects/how-muchinfo-2003
www.contactopyme.gob.mx/impactopymes.asp?Lenguaje=0&Cve_B=5
www.contactopyme.gob.mx/grafos.asp?v=0
www.servicepoint.es/white-papers/w-servicios-costes.html
www.idclatin.com/methodology.asp?ctr=mex
CAPÍTULO II
www.es.wikipedia.org/wiki/Buscador#Mixtos_Buscador_-_Directorio
www.desktop.google.com.mx/es/features.html
www.google.co.uk/enterprise/gsa/
www.142.ibm.com/software/dre/ecatalog/Detail.wss?locale=es_MX&synkey=I418435V33755A93
www.office.microsoft.com/es-es/sharepointserver/HA101656533082.aspx
www.ecm-spain.com/interior.asp?IdItem=9517
www.herramientasparapymes.com/que-es-ecm-gestion-de-contenido-empresarial
www.google.es/enterprise
www.google.es/enterprise/mini/index.html
www.google.com/enterprise/mini/features.html
www.google-store.com/appliance/product_info.php?currency=EUR&products_id=1&language=ES
www.promocion.org/que-es-y-como-funciona-google.htm
www.eduteka.org/BarraGoogle.php3
www.search.wikia.com/wiki/Search_Wikia/es
www.search.yahoo.com
www.aulaclic.es/internet/t_4_9.htm
www.es.altavista.com/about/
www.wolframalpha.com/
www.partner.microsoft.com/mexico/40108839
www.partner.microsoft.com/mexico/40108839
www.google.com/chrome googlechromereleases.blogspot.com
www.chiflame.net/story/como-funciona-google-chrome-navegador-futuro
158
www.tnrelaciones.com/anexo/buscadores
www.buscadoreshispanos.com/
www.desarrolloweb.com/actualidad/ranking-uso-buscadores-junio-2009-2046.html
www.revista-redes.rediris.es/html-vol8/vol8_6_Tabla1.htm
www.redalyc.uaemex.mx/redalyc/src/inicio/HomRevRed.jsp?iCveEntRev=106
www.65.99.205.133/~dgbcona/index.php?option=com_content&task=view&id=96&Itemid=255
CAPÍTULO III
www.scribd.com/doc/14434440/INTERNET-Y-EDUCACION-Aprendiendo-y-ensenando-en-los-
espacios-virtuales-
www.hipertexto.info/documentos/tipos_buscador.htm
www.posicionamientoweb.tripod.com/index.htm
www.seoposicionamientoweb.wordpress.com/2008/03/13/google-actualiza-sus-algoritmos/
www.es.geocities.com/directorioabierto/Introduccion.html
www.posicionamientoweb.tripod.com/msn/msn.htm
www.pisitoenmadrid.com/.../goyams.png
www.tusbuscadores.com/metabuscadores/
CAPÍTULO IV
JACOBSON, Ivar; BOOCH, Grady; RUMBAUGH, James. El Proceso Unificado de Desarrollo de
Software. Pearson Addisson-Wesley. Año 2000.
Raúl Alarcón (2000) “DISEÑO ORIENTADO A OBJETOS CON UML” Grupo EIDOS.
Buzan Tony & Barry (1996), "EL LIBRO DE LOS MAPAS MENTALES: Como utilizar al máximo las
capacidades de la mente" ED. URANO, 1996.
www.llramirezz.unad.googlepages.com/herramientas
Mc.Carthy, M.J.: Domine la era de la información: Ed. Robin-book, 1991.
Alamea, G.: “Técnicas para Generación de Ideas y Creatividad: Mapas Mentales”, 2005.
Ontoria, A.; Gómez, J.P.R.; De Luque, A.: Aprender con mapas mentales. Una estrategia para
pensar y estudiar: Ed. Narcea, 2003.
Damián J. Matich “Redes Neuronales: Conceptos Básicos y Aplicaciones” 2001.
Stuart J. y Peter N. “Inteligencia Artificial. Un enfoque moderno”.
www.elies.rediris.es/elies18/522.html
Elaine Rich, Kevin Knight “Inteligencia Artificial” 2da Ed.
Antonio López. “Enciclopedia de Informática y Computación” Deontología Informática, Edición
1998, Cultural S.A.
www.entren.dgsca.unam.mx/Html/estr.htm
www.w3c.es/divulgacion/guiasbreves/tecnologiasXML
159
www.es.wikipedia.org/wiki/Apache_Struts
www.monografias.com/trabajos28/aplicacion-paso-paso-struts/aplicacion-paso-paso-struts.shtml
www.javahispano.org/contenidos/archivo/77/ManualHibernate.pdf
PHP 5 A TRAVÉS DE EJEMPLOS” Abraham Gutiérrez Rodríguez, Ginés Bravo García
EDITORIAL ALFAOMEGA RA-MA
www.webestilo.com/php/php09b.phtml
www.es.wikipedia.org/wiki/NCSA_HTTPd marzo-2010
www.es.wikipedia.org/wiki/Servidor_HTTP_Apache
CAPÍTULO V
www.text2mindmap.com/
www.mindjet.com/WebApp/catalog/catalog.aspx
www.codeproyect.com/KB/scripting/graphic_javascript_tree.aspx
160
ANEXOS
ARCHIVO ECOTree
Un archivo ECOTree válido consta de 4 partes indispensables; con esto se quiere decir
que si a un archivo ECOTree le faltará alguna de estas, ya no se ejecutaría de manera correcta. A
continuación se muestran dichas secciones.
<html>
<head>
<title>ECOTree Simple Tree 4</title>
<script type="text/javascript" src="ECOTree.js"></script>
<link type="text/css" rel="stylesheet" href="ECOTree.css" />
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
<style>v\:*{ behavior:url(#default#VML);}</style> 1
<style>
.copy {
font-family : "Verdana";
font-size : 10px;
color : #CCCCCC;
}
</style>
<script>
var t = null;
t.add(1,-1,'DESARROLLO DE SOFTWARE',null,null,"#F08080");
t.add(2,1,'PROGRAMACIÓN');
t.collapseNode(2,false);
t.add(3,1,'BASE DE DATOS');
t.add(4,1,'INGENIERIA DE SOFTWARE');
t.collapseNode(4,false);
3 t.add(5,1,'ADMINISTRACIÓN DE PROYECTOS');
t.add(6,1,'INTELIGENCIA ARTIFICIAL');
t.collapseNode(6,false);
t.add(7,2,'.NET');
t.add(8,2,'C++',null,null,null,null,'www.borland.com');
t.add(9,2,'C');
t.add(10,2,'JAVA',null,null,null,null,'www.sun.com');
161
t.collapseNode(10,false);
t.add(11,10,'JAVA BÁSICO');
t.add(12,10,'JAVA WEB');
t.collapseNode(12,false);
t.add(13,12,'SERVLETS',null,null,null,null,'http://pdf.coreservlets.com/');
t.add(14,12,'JSP');
t.add(15,12,'J2EE');
t.add(16,12,'J2SE');
t.add(17,12,'J2ME');
t.add(18,4,'METODOLOGIA');
3 t.add(19,4,'NORMAS');
t.collapseNode(19,false);
t.add(20,19,'CASCADA');
t.add(21,19,'CMMI');
t.add(22,19,'MOPROSOFT');
t.add(23,19,'ISO');
t.add(24,6,'ROBÓTICA');
t.add(25,6,'PROGRAMACIÓN LOGICA');
t.add(26,6,'LENGUAJE NATURAL');
t.UpdateTree(); }
</script>
</head>
<body onload="CreateTree();">
<div id="sample2">
4 </div>
</body>
</html>
En la primera sección se mandan a llamar las librerías básicas que permiten que el
ECOTree funcione, aunado a los archivos en los que se basa el prototipo. Cabe mencionar que si
alguna de estas librerías faltara o no se escriba bien; directamente se vería reflejado en el árbol.
En la tercera sección se muestra el código que alimenta el árbol nodo a nodo. Su sintaxis
es:
t.add(id, pid, DSC. w, h, c, bc, Target, Meta)
En donde:
id #Nodo
pid #Nodo padre al que pertenece
DSC Titulo del nodo
w (opcional) Anchura del nodo en pixeles.
h (opcional) Altura del nodo en pixeles.
162
C (opcional) Color del nodo.
bc (opcional) Color de borde del nodo.
Target (opcional) Vínculo del nodo.
Meta (opcional) Metadatos del nodo. No se visualizan.
Se debe tener en consideración que un hijo no puede existir sin un padre. Tomando esto,
se entiende que este programa no funciona sin un nodo raíz e hijo sin padre. Por último en esta
parte del programa encuentra una función que actualiza el árbol “t.UpdateTree();”. Sin esta función
el navegador nos mostraría errores en la página.
La cuarta y última sección del código es sin duda tan importante como las otras tres ya que
en esta se llama a la función que crea el árbol:
<body onload=” CreateTree();”>
Nodos Hijos
Titulo del
Nodo
163
CONFIGURACION ECOTREE
Los parámetros y valores por default que se pueden utilizar en este programa son:
Valores
Parámetro Función
Default Opciones
iMaxDepth 100 Es el número máximo
de nodos permitido
en el árbol.
iLevelSeparation 40 Es la separación que
existe entre los
distintos niveles en
pixeles.
iSiblingSeparation 80 Es la separación que
existe entre nodos
hermanos en pixeles.
iSubtreeSeparatio Usuario Es la separación que
n existe entre nodos
vecinos de distinto
padre en pixeles.
iRootOrientation ECOTree.RO_TOP ECOTree.RO_BOTTOM Indica la dirección del
ECOTree.RO_RIGHT árbol. Los valores
ECOTree.RO_LEFT posibles son:
TOP De arriba
abajo.
BOTTOM De abajo
hacia arriba.
RIGHT De derecha
a izquierda.
LEFT De izquierda
a derecha.
iNodeJustification ECOTree.NJ_TOP ECOTree.NJ_CENTER Indica la alineación de
ECOTree.NJ_BOTTOM los nodos que
pertenecen a un
mismo nivel. Los
valores posibles son:
CENTER Los
164
Valores
Parámetro Función
Default Opciones
nodos son alineados
hacia el centro.
TOP Los nodos son
alineados hacia la
parte superior.
BOTTOM Los
nodos son alineados
en la parte inferior.
linkType “M” “B” Especifica el estilo de
los enlaces de los
nodos. Los valores
posibles son:
“M” Líneas Rectas
“B” Curvas
linkColor “blue” Usuario Especifica el color de
los enlaces de los
nodos.
nodeColor “#CCCCFF” Usuario Especifica el color de
los nodos.
nodeFill ECOTree. ECOTree.NF_FLAT Especifica si el color
NF_GRADIENT de los nodos se
degradará o no.
nodeBorderColor “blue” Usuario Especifica el color de
borde que tendrán los
nodos.
nodeSelColor “#FFFFCC”, Usuario Especifica el color a
utilizar cuando algún
nodo se seleccione.
levelColors [“#5555FF”,”#8888 Usuario Especifica en forma
FF”,”#AAAAFF”,”#C ordenada el color de
CCCFF”] cada nivel.
levelBorderColors [“#5555FF”,”#8888 Usuario Especifica en forma
FF”,”#AAAAFF”,”#C ordenada el color de
CCCFF”] los bordes por nivel.
165
Valores
Parámetro Función
Default Opciones
colorStyle ECOTree. ECOTree.CS_LEVEL Activa o desactiva los
CS_NODE valores que se le
dieron en la opción
levelColors. Los
valores posibles son:
NODE Cada nodo
utiliza un mismo color.
LEVEL Cada nodo
de un cierto nivel
utiliza un mismo color.
useTarget true false Activa o desactiva los
hipervínculos de los
nodos.
searchMode ECOTree.SM_DSC ECOTree.SM_META Especifica si dada una
ECOTree.SM_BOTH palabra o frase, esta
se buscara en los
títulos de los nodos,
en los metadatos o en
ambos.
selectMode ECOTree. ECOTree.SL_SINGLE Permite seleccionar a
SL_MULTIPLE ECOTree.SL_NONE un solo nodo, muchos
o a ninguno.
defaultNodeWidth 80 Usuario Especifica el ancho
del nodo en pixeles.
DefaultNode_ 40 Usuario Especifica la altura del
Height nodo en pixeles.
defaultTarget „Javascript:void(0);‟ Usuario Especifica la liga por
default de los nodos.
expandedImage „./img/less.gif‟ No Modificable A través de la imagen
de menos (-) permite
ocultar los hijos del
nodo seleccionado.
collapsedImage „./img/plus.gif‟ No Modificable A través de la imagen
de más (+) muestra
todos los hijos del
166
Valores
Parámetro Función
Default Opciones
nodo seleccionado.
transImage „./img/trans.gif‟ No Modificable Es un icono
transparente que se
utiliza en las
imágenes de las
opciones pasadas.
Configuración de los parámetros y valores de ECOTree.
167
Método Parámetros Función
Estos no serán visibles y nos
permitirán buscar información
contenida en los nodos. –opcional-
searchNodes(str) str = Es la cadena que se pretende Permite buscar la cadena
buscar. “str” en todos los nodos del
árbol. Los nodos encontrados
serán seleccionados y si es el
caso se ampliara la vista. Se
pueden usar mayúsculas o
minúsculas.
selectAll() Selecciona todos los nodos
del árbol. El método
UpdateTree() se llama
automáticamente.
unselectAll() Elimina todas las
selecciones.
collapseAll() Oculta todos los nodos
excepto el nodo raíz.
collapseNode nodeid = # de nodo. Oculta solo el nodo
(nodeid, upd) upd = Es el llamado al método especificado en nodeid.
UpdateTree().
selectNode nodeid = # de nodo. Selecciona únicamente el
(nodeid, upd) upd = Es el llamado al método nodo especificado en nodeid.
UpdateTree().
setNodeTitle nodeid = # de nodo. Actualiza el título del nodo
(nodeid, title, upd) title = Nuevo titulo del nodo. especificado en nodeid.
upd = Es el llamado al método
UpdateTree().
setNodeMetadata nodeid = # de nodo. Actualiza los metadatos
(nodeid, meta, upd) meta = Nuevo metadatos del nodo. -contenido- del nodo
upd = Es el llamado al método especificado en nodeid.
UpdateTree().
setNodeTarget nodeid = # de nodo. Actualiza el vínculo del nodo
(nodeid, target, target = Nuevo vínculo objetivo del especificado en nodeid.
upd) nodo.
upd = Es el llamado al método
168
Método Parámetros Función
UpdateTree().
setNodeColors nodeid = # de nodo. Actualiza el color y borde del
(nodeid, color, color = Nuevo color del nodo. nodo especificado en nodeid.
border, upd) border = Nuevo color de borde del
nodo.
upd = Es el llamado al método
UpdateTree().
getSelectedNodes() Devuelve una matriz de
objetos de JavaScript, con los
valores “id”, “dsc”, “meta” de
los nodos seleccionados.
Función de los métodos públicos de ECOTree.
169
Casos de uso “Administrador”
Altas, bajas y actualizaciones de usuarios con perfil Experto
Introducción
La finalidad de este documento es describir el funcionamiento del caso de uso de uno de
los módulos de Administrador
Descripción
El Administrador realiza el alta, baja, actualización o consulta de los usuarios con el perfil
de expertos, del prototipo My Poltree.
Precondiciones
Flujo normal
170
13. El usuario introduce la respuesta
14. El sistema verifica la respuesta, en caso de ser afirmativa elimina el registro y envía un
mensaje, en caso contrario regresar al paso 1.
15. Fin del caso de uso.
Flujos alternos.
Aplicados a Alta de Experto.
A) El sistema determina que los datos son incorrectos.
B) Regresar al paso 4 con un mensaje de error.
Post-condiciones
Reglas de negocio.
En el sistema debe de existir mínimo un usuario de tipo experto y a la par su mapa de este.
Alta de Mapas
Introducción
La finalidad de este documento es describir paso a paso, el funcionamiento del caso de
uso de Alta de Mapas.
Descripción
El usuario de perfil administrador podrá dar de alta nuevos mapas mentales.
171
Precondiciones.
Debe de tener un mapa aplicado a un tema específico y un autor (usuario de tipo Experto),
relacionado a este.
Flujo normal.
Flujos alternos.
Post-condiciones.
Reglas de negocio.
Los usuarios de tipo experto y administrador son los únicos que tienen permitido el acceso
al sistema My Poltree.
Los mapas nuevos que se incorporen al sistema deberán pertenecer a un Experto.
Introducción
La finalidad de este documento es describir paso a paso, el funcionamiento del caso de
uso de Asignar mapas a expertos.
Descripción
El usuario de perfil administrador podrá asignar expertos a mapas mentales.
172
Precondiciones.
Flujo normal.
Flujos alternos.
Post-condiciones.
Reglas de negocio.
Los usuarios de tipo experto y administrador son los únicos que tienen permitido el acceso
al sistema My Poltree.
Se esperaría que el usuario creador de un mapa fuese especialista en el tema del cual
realice el mapa.
Y tener en cuenta que la aportación de cada experto sea definida como compartida ya que
el fin de esta es el manejo efectivo de la información.
173
Casos de uso “Experto”
Introducción
La finalidad de este documento es describir el funcionamiento del caso de uso de
Seleccionar Mapas con el objetivo de Actualizar mapas.
Descripción
El usuario Experto seleccionara un mapa que sea de su autoría y este podrá actualizarlo
contando con un ambiente grafico para llevar a cabo esta tarea.
Precondiciones
El usuario de perfil Experto se identificó en el sistema.
Se ha ejecutado efectuado el despliegue de los mapas correspondientes al usuario de
tipo Experto.
Flujo normal
2. El sistema proporciona la lista de los mapas que le pertenecen al usuario de que fue
ingresado mencionado en el paso anterior.
Flujos alternos
Ninguno
Post-condiciones
Reglas de negocio
Ninguna
174
MANUAL DE INSTALACIÓN:
“MY POLTREE”
nalvarado@gmail.com
licisauroguzman@gmail.com
licmigueljimenezflores@gmail.com
Versión 0.1
México, Distrito Federal
2010
175
CONTENIDO
1. Introducción
2. Requerimientos
2.1. Hardware
2.1.1.Windows XP
2.1.2.Windows Vista
2.1.3.Windows 7
2.2. Software
5. Manual de Administrador
5.1. Acceso al módulo de administrador
5.2. Asignar cuentas de usuario experto
5.3. Asignar un mapa mental a usuario experto
5.4. Editar datos de un mapa mental
5.5. Reasignar un mapa mental a otro usuario experto
5.6. Dar de baja un mapa mental
5.7. Editar datos de un usuario experto
5.8. Dar de baja un usuario experto
6. Manual de Experto.
6.1. Acceso a módulo para experto
6.2. Interfaz gráfica de edición de mapas y sus funciones
6.3. Agregar un bloque
6.4. Agregar un link de páginas recomendadas
6.5. Agregar un link de descarga de un documento
6.6. Renombrar un bloque
6.7. Eliminar un bloque
176
Introducción
El presente documento describe las actividades necesarias para realizar la instalación en
diferentes plataformas de Windows el prototipo denominado “MY POLTREE”.
177
2. Requerimientos
2.1. Hardware
2.1.1. Windows XP
Procesador Pentium 455 MHz o superior
512 MB de RAM (mínimo)
200 MB libres en el Disco Duro
Puerto USB Libre
Monitor VGA o superior
Mouse Microsoft o compatible
Teclado Multimedia
Acceso a Internet
2.1.3. Windows 7
Procesador Pentium 1.0 GHz o superior
1024 MB de RAM (mínimo)
200 MB libres en el Disco Duro
Tarjeta Gráfica (mínimo 128 MB)
Puerto USB Libre
Monitor VGA o superior
Mouse Microsoft o compatible
Teclado Multimedia
Acceso a Internet
178
2.2. Software
Uniform Server es un paquete WAMP que permite que funcione un servidor en cualquier
computadora basada en el Sistema Operativo Windows. No es necesaria ninguna instalación ni
modificación al registro de Windows, sólo se deben descomprimir los archivos incluidos en la
unidad C:\
179
Para la Instalación de Uniform Server y ejecutar el servidor de Apache y el gestor MySQL,
a continuación se enlistan los pasos a seguir:
1. Abrir la el archivo START.EXE que se ubica en la ruta:
C:\UniServer5_0\UniServer
180
2. Aparecerá un cuadro de Mensaje. Para continuar dar clic en Aceptar.
3. Desplegar el menú contextual haciendo clic derecho sobre el botón azul con la etiqueta [1],
que se encuentra en la parte inferior derecha de la pantalla y seleccionar Install and Run
All Services para levantar los servicios del Servidor Apache y el gestor MySQL.
181
Nota: Espere de 15 a 20 segundos y aparecerá en pantalla la Bienvenida a MY POLTREE.
182
4. Manual de Usuario Final
Para que el usuario haga consultas, debe abrir la página de My Poltree en su navegador,
(de preferencia Mozilla Firefox).
La pantalla de Bienvenida de My Poltree es la que se ve a continuación:
Se debe introducir una palabra clave y hacer clic en el botón Buscar en Mapa, para que My
Poltree haga la tarea de buscar temas relacionados dentro del repositorio.
183
En este ejemplo se teclea la palabra “SOFTWARE”
My Poltree mostrará en pantalla los resultados con la palabra a buscar, si es su caso, se
visualizarán coincidencias, el usuario debe elegir una de ellas, para este ejemplo se elige Ing.
Software.
184
Los bloques pueden tener diferentes configuraciones, si el bloque seleccionado esta
configurado con un hipervínculo a un archivo de texto, indica que el usuario vera en pantalla un link
de una página sugerida por un experto, por otro lado, los bloques pueden estar configurados para
la descarga de algún documento, por ejemplo archivos Word, Excel, Power Point, PDF, imágenes,
videos, entre otros.
En la siguiente pantalla se muestra un ejemplo del bloque que fue seleccionado en las
coincidencias que encontró My Poltree y que está configurado para mostrar un link a una página
sugerida
185
El usuario copia el link sugerido que se muestra en pantalla y lo abre en su navegador para su
consulta como se ve en la pantalla siguiente.
186
En esta pantalla se muestra el cuadro de dialogo de la descarga de un documento.
187
En la pantalla siguiente se muestra un ejemplo en el cual se cambia la orientación del
mapa en pantalla, en este caso se elige la opción izquierda.
188
5. Manual de Administrador
5.1. Acceso al módulo de administrador
Paso 1. El Administrador debe abrir la página que le permite el acceso a My Poltree
Paso 2. El usuario debe teclear los datos de su cuenta de Administrador y dar clic en el botón
Entrar.
189
My Poltree mostrara en pantalla la bienvenida al usuario Administrador junto con las
opciones de Administrar Expertos, Administrar Mapas y la función Cerrar sesión.
190
Paso 4. Se asigna un nombre de usuario Experto y una clave de acceso y se da clic en Aceptar.
191
Paso 5. Teclear nombre de cuenta de experto en el campo Buscar Experto y dar clic en el botón
Buscar
My Poltree visualizará en pantalla las operaciones que se pueden hacer en la cuenta nueva
asignada, como Editar y Borrar.
La cuenta nueva de usuario experto asignada ya está lista para que le sea asignado un
Mapa Mental para su desarrollo, ir al Paso 3 para dar de alta a más usuarios con perfil experto.
192
5.3. Asignar un mapa mental a usuario experto
Paso 6. El Administrador debe seleccionar la opción Admin. Mapa, para agregar un mapa mental y
asignarlo al nuevo usuario experto, para ello debe dar clic en el botón Agregar.
Paso 7. My Poltree solicita el nombre de usuario experto para asignarle el nuevo mapa mental, se
debe teclear el nombre de cuenta y dar clic en el botón Buscar.
193
Paso 8. En pantalla se muestra el nombre del usuario experto al que se le desea asignar un mapa,
el cual se debe seleccionar.
194
My Poltree notifica que fue agregado un mapa.
El usuario puede teclear la descripción del nuevo mapa para verificar sus datos o en su
caso pueda reasignar a otro experto el mapa, editar sus datos o borrarlo si se considera necesario.
Hasta este punto ya se tiene registrado un nuevo usuario Experto con un Mapa Mental
asignado para su correspondiente desarrollo, si se requiere asignar más mapas al usuario u otros
se debe ir al Paso 6.
195
5.4. Editar datos de un mapa mental
Paso 10. Seleccionar Admin. Mapa y dar clic en el botón Buscar, de esta forma se visualizarán
mapas y propietarios registrados, dar clic en el botón editar del mapa que se desee actualizar, (en
este ejemplo se selecciono la descripción del mapa PYME ABC).
Paso 11. El administrador debe teclear los datos nuevos del mapa a editar y dar clic en Aceptar.
196
My Poltree notifica que fueron actualizados los datos del mapa seleccionado.
197
Paso 13. My Poltree solicita el nombre del experto para asignarle el mapa mental seleccionado,
puede dar clic en el botón enviar y seleccionarlo de la lista que aparece en pantalla, en este
ejemplo se asignará al usuario Experto 1.
198
5.6. Dar de baja un mapa mental
Paso 14. Seleccionar la opción Admin. Mapa y dar clic en el botón Buscar para visualizar los
mapas y propietarios registrados, dar clic en el botón Borrar del mapa que se requiere dar de baja,
(en este ejemplo fue seleccionado CASO PYME ABCD).
199
5.7. Editar datos de un usuario Experto
Paso 15. Seleccionar la opción Admin. Expertos y dar clic en el botón Buscar para visualizarla lista
de usuarios registrados y dar clic en el botón Editar del experto que se requiere actualizar, en este
ejemplo fue seleccionado Experto 2.
Paso 16. Se solicita teclear el nombre de usuario que se desea corregir y dar clic en Aceptar.
200
My Poltree notifica que se actualizó los datos de usuario Experto.
201
My Poltree indica que fue dado de baja el nombre de usuario Experto seleccionado.
Si el Administrador ya no requiere hacer más operaciones dentro del módulo, debe dar clic
en la opción Cerrar Sesión para salir, como se muestra en la siguiente pantalla.
202
6. Manual de Experto
6.1. Acceso a módulo para experto
Paso 1. El Experto debe abrir la página que le permite el acceso a My Poltree
Paso 2. El usuario debe teclear los datos de su cuenta de Experto y dar clic en el botón Entrar.
203
My Poltree muestra en pantalla el listado de mapas que tiene asignados el usuario Experto
y del mismo modo le indica que tiene la opción de seleccionar el que desee desarrollar o actualizar.
204
Donde:
Agregar hijo: como su nombre lo indica, permite asignar un hijo al bloque seleccionado.
Modificar bloque: permite cambiar el nombre del bloque seleccionado, sin embargo al
Experto no le está permitido renombrar el nombre del bloque principal.
Actualizar link: permite ingresar un link o liga al bloque seleccionado, pueden ser archivos
de paquetería Microsoft Office, PDF, MP3, imágenes, entre otros, los cuales deben estar
almacenados dentro de la carpeta destinada para su descarga. Del mismo modo se puede
ingresar la liga a un archivo TXT que contenga links a páginas recomendadas que son
asignadas por el Experto
Nota: no se permite eliminar un bloque que contenga bloques hijos, tampoco se permite eliminar el
bloque principal.
205
6.4. Agregar links para páginas recomendadas
Paso 4. Seleccionar el bloque al que se desea agregar un link, y teclear la ruta del archivo que
contiene las ligas recomendadas en un TXT en el campo “Inserta link”, seleccionar la función
Actualizar link y dar clic en el botón Aceptar.
206
6.5. Agregar un link de descarga de un documento
Paso 5. Seleccionar el bloque al que se desea agregar un link de descarga de documento y teclear
en el campo “Inserta link” la ruta del documento donde se encuentra almacenado dicho archivo,
seleccionar la opción Actualizar link y dar clic en el botón Aceptar.
My Poltree del mismo modo notifica que fue modificado o actualizado un bloque.
207
6.6. Renombrar un bloque
Paso 6. Para renombrar un bloque, se debe seleccionar y escribir el nombre en el campo
“Descripción” y seleccionar la opción Modificar bloque y dar clic en Aceptar.
208
6.7. Eliminar un bloque
Paso 7. Para eliminar un bloque, se debe seleccionar y elegir la opción Borrar bloque de la lista de
funciones y dar clic en el botón Aceptar.
209
El usuario Experto debe dar clic en Cerrar Sesión para salir del modulo para Expertos.
210
Código fuente del prototipo My Poltree
Interfaz para usuario final
<?php include("ar/JvFcn.php");?>
<?php include("ar/mostrar.php");?>
<HTML>
<HEAD>
<?php
if(isset($_GET['hacer'])){
if($_GET['hacer']){
config2();
saludo($_GET['fid']);
echo 'myTree.selectNode('.$_GET['s'].',true);';
end1();
}
}else{
}
?>
<script>
function buscar() {
var selnodes = myTree.getSelectedNodes();
if(selnodes.length > 0){
window.open("buscar.php?id="+selnodes[0].id);
}else{
alert('Selecciona el bloque de busqueda');
}
}
function ChangePosition() {
var pos = parseInt(document.formBuscar.rootPosition.value);
myTree.config.iRootOrientation = pos;
switch (pos)
{
case ECOTree.RO_TOP:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -20;
break;
case ECOTree.RO_BOTTOM:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -500;
break;
case ECOTree.RO_RIGHT:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -500;
break;
case ECOTree.RO_LEFT:
myTree.config.topXAdjustment = 20;
211
myTree.config.topYAdjustment = -20;
break;
}
myTree.UpdateTree();
}
</script>
<center><img src="IMAGENES/poltreen.GIF" />
<p><img src="IMAGENES/final.GIF" /></p>
</center>
<TITLE>BIENVENIDO A MY POLTREE</TITLE>
<script type="text/javascript" src="ar/ECOTree.js"></script>
<link type="text/css" rel="stylesheet" href="ar/ECOTree.css" />
</HEAD>
<body background="IMAGENES/linea.jpg" onLoad="CreateTree();">
<CENTER>
<H3>Introduce palabra clave: </H3><HR>
<form name="formBuscar" action="buscador.php" method="get">
<input type="text" name="q">
<input type="submit" value="Buscar en Mapa">
<?php
if(isset($_GET['hacer'])){
echo '<input type="button" name="Bdo" id="Bdo" value="Buscar en google"
OnClic="javascript:buscar();"/>';
echo '
<select name="rootPosition" id="rootPosition" onChange="ChangePosition();" >
<option value="0"selected="selected">Arriba</option>
<option value="1">Abajo</option>
<option value="2">Derecha</option>
<option value="3">Izquierda</option>
</select>
';
}
?>
</form>
</CENTER>
<HR>
<?php
if(isset($_GET['hacer'])){
$DesMapa=descripcion($_GET['fid']);
echo '<center><b>MAPA: <em>'.$DesMapa.'</em></b></center>';
}
?>
<div id="myTreeContainer"> </div>
</BODY>
</HTML>
212
Código fuente para establecer conexión con Google
<?php
$ar=1;
$idcad="";
$busca="";
$g1='http://www.google.com.mx/#hl=es&q=';
$g2='&meta=&aq=f&oq=';
$g3='&fp=5af4cc7663617887';
function dameid($id){
$link = mysql_connect('localhost', 'root','root');
if (!$link) {
die('Conexion no establecida: ' . mysql_error());
}
mysql_select_db("postal", $link);
$result = mysql_query("SELECT * FROM bloque WHERE id='".$id."'", $link);
$row = mysql_fetch_row($result);
global $ar;
global $idcad;
$ar=$row[1];
$idcad=$row[3];
}
$romper=1;
dameid($_GET['id']);
do
{
if($ar==-1)
{
$busca.='+%2B"'.$idcad.'" ';
$romper=2;
}else{
$busca.='+%2B"'.$idcad.'" ';
dameid($ar);
}
}while($romper==1);
//invierte cadena
$tok=strtok($busca,"+");
$arreglo[1]=$tok;
$i=2;
while ($tok) {
$tok = strtok ("+");
$arreglo[$i]=$tok;
$i=$i+1;
}
$i=$i-2;
$busca="";
for ($j=0;$j<=$i;$j++)
{
$busca=$busca.$arreglo[$i-$j];
}
$busca=$g1.$busca.$g2.$busca.$g3;
header("Location: ".$busca.'"');
?>
213
Código fuente para el buscador
En este archivo se muestra el código que define las características de las variables principales del
buscador y el nombre de la base de datos, cabe mencionar que esta fuente es una referencia
supervisada por Carlos Arjona de Onlinegrup
<?
/********************************************************************
buscador.php - Programado por carlos arjona - carjona@onlinegrup.com
Notas:
el buscador pide 2 variables pasadas por GET, y son las siguientes:
$sec -> esta define la seccion en la que buscaremos. Si se desea
buscar en todas las secciones hay que pasarle $sec = "TODAS"
// esta variable conecta con la base de datos, y requiere el nombre del host al que se desea
// conectar, el usuario y el password (sustituye las 3 variables por el valor correspondiente)
$link = mysql_connect(localhost, root, root);
// estas variables se usan para enviar un email cuando se ha realizado una búsqueda
// Si $notificar es TRUE enviara el email.
$notificar = FALSE;
$email_dest = "carjona@onlinegrup.com";
$asunto = "Búsqueda en byte1024";
$q=$_GET['q'];
$sec="TODAS";
if(strlen($q) <= $num_car_minimo)
{
echo $q."tama: ".strlen($q);
?>
<script type="text/javascript">
alert('El texto de consulta debe superar los <?echo $num_car_minimo;?> carácteres');
history.back();
</script>
<?
}
else
{
// enviamos el email si $notificar es cierto
if($notificar == TRUE)
mail($email_dest,$asunto,$q);
?>
214
<body background="IMAGENES/linea.jpg">
<table width="100%" cellpadding="0" cellspacing="2">
<tr>
<td>
<td width="90%">
<p class="titulo" align="center">Buscando "<i><?echo $q?></i>" en <b><?echo
strtoupper($sec);?></b></p>
</td>
<td>
</tr>
</table>
</body>
<br>
<?
/**************************************************************************************************/
// en este array guardaremos las tablas en las que permitiremos que se realice la busqueda
$tablas = array("bloque");
// este array guarda simplemente las carpetas en las que el buscador puede acceder. Si al
comprobar
// todos los elementos no encuentra ninguno igual a $sec, no busca
// esta variable solo la utiliza la funcion fileSearch()
$dirs = array("dai","articulos");
// en esta variable definiremos argumentos especiales que requiera la pagina php encontrada
// por ejemplo en las noticias siempre direccionaremos a noticias.php?sec=2&id=lokesea
// pues bien, tenemos que definir ese $sec de alguna forma
// el id=lokesea lo añade el buscador al generar el enlace
$paginas = array("index.php?hacer=1&");
// esta otra variable definira (con un valor numerico) que campo es el que define la descripcion
// que saldra en el enlace final que genera el buscador. Devuelve el numero de fid o familia al que
pertenece
$descs = array(3);
// esta variable definira cual es el identificativo de toda tabla. Por lo normal siempre sera
// el 0, pero pueden darse casos contrarios. Devuelve el numero del id del bloque se esta
buscando.
$keys = array(2);
// aqui guardamos las extensiones de los ficheros que dejaremos que el buscador lea.
// Es recomendable restringir los ficheros .php o los que guarden cosas que no queremos que se
vean
// pongo un ejemplo: si alguien busca "mysql_db_query" y aqui permitimos buscar en los ficheros
.php
// nos habrán capturado el password
$valid_ext = array("html","txt","htm");
/**************************************************************************************************/
215
// la busqueda se debe realizar en cada item de $tablas
if(strtoupper($sec) == "TODAS")
{
// buscamos en una tabla
$tabla_query = $tablas;
for($i=0; $i < count($tabla_query); $i++)
dbSearch($i);
?>
<p align="center"><?echo "<b>Hay $coincidencias coincidencia(s)</b>";?></p>
<center><img src="IMAGENES/esfer.jpg" />
<?
}
// esta funcion busca el texto definido por el array $q sobre la tabla definida por $numElemento,
// que se correspondera a un elemento del array $tablas
function dbSearch($numElemento)
{
// es necesario llamar a estas variables externas
global $q;
global $DBNAME, $link;
global $tablas, $paginas, $keys, $descs;
global $coincidencias;
216
<?echo "Búsqueda en $tablas[$numElemento]";?>
</td>
</tr>
<tr>
<td style="border: 1px solid #bbbbbb;" bgcolor="#f0f0f0">
<table width="100%" cellspacing="3" cellpadding="0">
<?
// realizamos la consulta SQL y escribimos los resultados
$select = "SELECT *";
$from = "FROM $tablas[$numElemento]";
$where = "WHERE ";
if(mysql_num_rows($result) > 0)
{
$coincidencias += mysql_num_rows($result);
// imprimimos resultados
for($row=0; $reg = mysql_fetch_array($result);
$row++)
{
// generamos todo el enlace
$desc = sprintf("%d",$descs[$numElemento]);
217
if($row % 2 == 0) $bgcolor = "#f8f8f8";
else $bgcolor = "fefefe";
?>
<tr>
<td bgcolor="<?echo $bgcolor;?>">
<?
// esto es especial para los comentarios, ya
que el link que se crea
// tiene que apuntar al comentario indicado
por #id
if($tablas[$numElemento] = "comentarios")
$posicion =$reg[$key];
echo "<img
src='images/punto.gif'> <a class='dai'
href='$paginas[$numElemento]$key_name=$posicion&s=$reg[0]'>$desc</a>";?>
</td>
</tr>
<?
}
}
else echo "<tr><td bgcolor='#f8f8f8' style='font-size: 10px;
font-family: tahoma;'>Sin resultados</td></tr>";
?>
</table>
</td>
</tr>
</table>
<br>
<?
}
return FALSE;
}
218
{
case "<": $tag++; break;
case ">": $tag--; break;
default:
if($tag == 0) $copia .= $string[$conta];
break;
}
}
return $copia;
}
?>
219
Código fuente que permite cargar las funciones básicas de ECOTree
El experto podrá interactuar con los mapas.
<?php include("seguridad.php");?>
<?php include("JvFcn.php");?>
<?php include("mostrar.php");?>
<html>
<head>
<?php JavaFunc();?>
<title>Actualizar-MAPAS</title>
<script type="text/javascript" src="ECOTree.js"></script>
<link type="text/css" rel="stylesheet" href="ECOTree.css" />
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
<style>v\:*{ behavior:url(#default#VML);}</style>
<style>
.copy {
font-family : "Verdana";
font-size : 10px;
color : #CCCCCC;
}
.gbd {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {
height:0;
position:absolute;
top:36px;
width:100%
}
a.gb1 {color:#00c !important}
a.gb2 {color:#00c !important}
a.gb3 {color:#00c !important}
a.gb4 {color:#00c !important}
#guser {padding-bottom:7px !important;text-align:right}
.style1 {
color: #FF0000;
font-weight: bold;
}
</style>
<!-- Empieza el script que busca las variables y ve que hacer phpmain.php-->
<?php config1();?>
<?php
if(isset($_POST['hacer']) ){
if($_POST['hacer']==1){
//cuando solo cambiamos de mapa
if(isset($_POST['fid'])){ //se puede cargar por el nombre de la variable fid
//ya obtuvo el fid, ahora se validará si es del dueño
$fid=$_POST['fid'];
$link = mysql_connect('localhost', 'root','root');
if (!$link){
die('Conexion no establecida: ' . mysql_error());
}
mysql_select_db("postal", $link);
$result = mysql_query("SELECT * FROM arbol WHERE fid='".$fid."'", $link);
if(result){
$exper = mysql_fetch_row($result);
if($exper[1]==$_SESSION[user_name]){
220
$descripcion=$exper[2];
$msj="";
saludo($fid);
}else{
$msj= "El Mapa que intentas acceder no es de tu propiedad";
}
}
//************************************************
}else{
$msj= "Error en el parametro fid";
}
}else{
//acaban los operaciones del oper
if($_POST['hacer']=='2'){
if(isset($_POST['sid'])){
if(isset($_POST['fid'])){
if(isset($_POST['dsc'])){
if(isset($_POST['rootOperacion'])){
//se han validado los datos para hacer las operaciones +++++++++++++++++++++++
$fid=$_POST['fid'];
$link = mysql_connect('localhost', 'root','root');
if (!$link){
die('Conexion no establecida: ' . mysql_error());
}
mysql_select_db("postal", $link);
$result = mysql_query("SELECT * FROM arbol WHERE fid='".$fid."'", $link);
if(result){
$exper = mysql_fetch_row($result);
if($exper[1]==$_SESSION[user_name]){
$descripcion=$exper[2];
$fid=$exper[0];
switch($_POST['rootOperacion'])
{
case 0://agregar un bloque
$result = mysql_query("INSERT INTO `postal`.`bloque` (`id` ,`pid` ,`fid` ,`dsc` ,`w`
,`h` ,`target` ,`meta`)VALUES (NULL , '".$_POST['sid']."', '".$_POST['fid']."', '".$_POST['dsc']."',
NULL , NULL ,'".$_POST['dsc2']."' , NULL)", $link);
if($result){
$msj="AGREGASTE UN BLOQUE";
}else{
$msj="Error agregando bloque";
}
break;
221
$msj="Error al intentar modificar un bloque";
}
}
break;
break;
222
}else{
$msj= "Error en el parametro de la descripción";
}
}else{
$msj= "Error en el parametro del mapa seleccionado";
}
}else{
$msj= "Error en el parametro del bloque seleccionado";
}
}else{
$msj= "Error en el parametro de mostrar";
}
}
}else{
//$msj= "Error en el parametro hacer";
}
?>
<?php end1();?>
<!-- termina todo lo que hace el script -->
</head>
if(isset($descripcion)){
echo '<input type="hidden" name="fid_dsc" value="'.descripcion.'">';
}else{
echo '<input type="hidden" name="fid_dsc">';
$descripcion="Selecciona un Mapa por Favor";
}
?>
<table >
<tr>
<td><label>Descripcion:
<input name="dsc" type="text" id="dsc" size="30" maxlength="30" />
</label></td>
<td><select name="rootOperacion" id="rootOperacion">
<option value="0" selected="selected">Agregar Hijo</option>
<option value="1">Modificar bloque</option>
223
<option value="3">Actualizar link</option>
<option value="2">Borrar bloque</option>
</select></td>
<td ><input type="button" name="Bdo" id="Bdo" value="Aceptar"
OnClick="javascript:ObtenId();"/></td>
<?php
echo'<td width="480"><div align="right"><span class="style1">'.$msj.'</span></div></td>';
?>
</tr>
<tr>
<td>
<label>Inserta link:
<input name="dsc2" type="text" id="dsc2" size="30" maxlength="2048" />
</label></td>
224
Código fuente que contiene las configuraciones de ECOTree
<?php
function JavaFunc(){
echo "
<script>
function ChangePosition() {
var pos = parseInt(document.form1.rootPosition.value);
myTree.config.iRootOrientation = pos;
switch (pos)
{
case ECOTree.RO_TOP:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -20;
break;
case ECOTree.RO_BOTTOM:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -500;
break;
case ECOTree.RO_RIGHT:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -500;
break;
case ECOTree.RO_LEFT:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -20;
break;
}
myTree.UpdateTree();
}
function SearchTree() {
var txt = document.form1.search.value;
myTree.searchNodes(txt);
}
function ObtenId() {
var selnodes = myTree.getSelectedNodes();
if (selnodes == \"\")
{
alert('No se ha seleccionado nodo para operar!!');
}else{
document.form1.sid.value=selnodes[0].id;
document.form1.hacer.value=2;
document.form1.submit();
}
}
</script>
";
}
function config1(){
225
echo"
<script>
var myTree = null;
function CreateTree() {
myTree = new ECOTree('myTree','myTreeContainer');
myTree.config.render=\"AUTO\";
myTree.config.linkType = 'M';
myTree.config.searchMode=ECOTree.SM_DSC;
myTree.config.linkColor = \"#8A4B08\";
myTree.config.nodeColor = \"#ACFA58\";
myTree.config.nodeBorderColor = \"#38610B\";
myTree.config.nodeSelColor=\"#F7FE2E\";
myTree.config.useTarget = true;
myTree.config.selectMode = ECOTree.SL_SINGLE;
myTree.config.defaultNodeWidth = 110;
myTree.config.defaultNodeHeight = 45;
myTree.config.iSiblingSeparation = 20;
";
}
function config2(){
echo"
<script>
var myTree = null;
function CreateTree() {
myTree = new ECOTree('myTree','myTreeContainer');
myTree.config.render=\"AUTO\";
myTree.config.linkType = 'M';
myTree.config.searchMode=ECOTree.SM_DSC;
myTree.config.linkColor = \"#8A4B08\";
myTree.config.nodeColor = \"#ACFA58\";
myTree.config.nodeBorderColor = \"#38610B\";
myTree.config.nodeSelColor=\"#F7FE2E\";
myTree.config.useTarget = true;
myTree.config.selectMode = ECOTree.SL_SINGLE;
myTree.config.defaultTarget = 'javascript:buscar();'
myTree.config.defaultNodeWidth = 110;
myTree.config.defaultNodeHeight = 45;
myTree.config.iSiblingSeparation = 20;
";
}
function end1(){
echo"
myTree.UpdateTree();
}
</script>
";
}
?>
226
Código fuente para la interfaz de Administrador
El administrador puede realizar el ABC de Expertos y Mapas
<?php include("seguridad2.php");?>
<html>
<head>
<style>
.copy {
font-family : "Verdana";
font-size : 10px;
color : #CCCCCC;
}
.gbd {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {
height:0;
position:absolute;
top:36px;
width:100%
}
a.gb1 {color:#00c !important}
a.gb2 {color:#00c !important}
a.gb3 {color:#00c !important}
a.gb4 {color:#00c !important}
#guser {padding-bottom:7px !important;text-align:right}
.style1 {
color: #FF0000;
font-weight: bold;
}
</style>
</head>
<body background="IMAGENES/linea.jpg" onLoad="CreateTree();">
<div class="gbh" style="right: 3.75pt;"></div>
<div id="guser" width="100%"><nobr><b><H3>Bienvenido <?php echo $_SESSION[user_name];
?></b> | <a href="experto.php?hacer=mostrar" class="gb4">Admin.Expertos</a> |<a
href="experto.php?hacer=mostrarar" class="gb4">Admin. Mapa</a> | <a href="logout.php"
class="gb4">Cerrar Sesion</h3></a></nobr></div>
<!-- Esta parte cambia el if de acuerdo a lo que se planee hacer -->
<?php
include("funcionesexperto.php");
require_once 'PHPPaging.lib.php';
if(isset($_REQUEST['hacer'])){
if($_GET['hacer']=='mostrar'){
mostrar("");
}
if($_GET['hacer']=='buscar'){
mostrar("");
buscar ($_GET['valor']);
}//codigo para buscar un experto
227
if($_GET['hacer']=='editar'){
editar($_GET['usuario']);
}//codigo para editar un experto -mostrar-
if($_POST['hacer']=='editarex'){
if($_GET['hacer']=='agregar'){
agregar();
}//codigo para agregar un experto -mostrar-
if($_POST['hacer']=='agregarex'){
if($_POST['usuario']<>"" and $_POST['pass'] <>""){
if(strlen($_POST['pass'])>4){
$msj=agregarex($_POST['usuario'],$_POST['pass']);
}else{
$msj='El password debe contener 5 caracteres minimo';
}
}else{
$msj='Debe llenar los campos';
}
mostrar($msj);
}//codigo para agregar un experto -haciendolo-
if($_GET['hacer']=='borrar'){
$link = mysql_connect('localhost', 'root','root');
if (!$link){
die('Conexion no establecida: ' . mysql_error());
}
mysql_select_db("postal", $link);
$result=mysql_query("select * from `postal`.`arbol` WHERE `arbol`.`own` =
'".$_GET['usuario']. "'",$link);
if($result){
$num_rows = mysql_num_rows($result);
if($num_rows==0){
$result = mysql_query("DELETE FROM `lr`.`authorize` WHERE `authorize`.`username` = '"
.$_GET['usuario']. "' LIMIT 1",$link);
if($result){
$msj="ELIMINASTE A: ".$_GET['usuario'];
}else{
$msj="Error al intentar eliminar";
}
mostrar($msj);
228
}else{
mostrar("EL USUARIO AUN TIENE MAPAS");
}
}
}//codigo para borrar un experto
if($_GET['hacer']=='mostrarar'){
mostrarar("");//muestra interfaz administración de mapa
}
if($_GET['hacer']=='buscarar'){
mostrarar("");
buscarar ($_GET['valor']);
}
if($_GET['hacer']=='mostrarexperto'){
mostrarexperto("");
}//codigo para agregar un experto -mostrar-
if($_GET['hacer']=='buscarex'){
mostrarexperto("");
buscarex ($_GET['valor']);
}
if($_GET['hacer']=='mostrarexperto2'){
mostrarexperto2("",$_GET['fid']);
}//codigo para agregar un experto -mostrar-
if($_GET['hacer']=='buscarex2'){
mostrarexperto2("",$_GET['fid']);
buscarex2 ($_GET['valor'],$_GET['fid']);
}
if($_GET['hacer']=='asignar'){
mostrarexperto2(asignar($_GET['fid'],$_GET['experto']),"");
}
if($_GET['hacer']=='agregarar'){
agregarar("","",$_GET['experto'],"agregararex");
}
if($_GET['hacer']=='agregararex'){
//validar los datos
if($_GET['dsca']<>"" and $_GET['dscb']<>""){
mostrarar(agregararex($_GET['experto'],$_GET['dsca'],$_GET['dscb']));
}
}
if($_GET['hacer']=='borrarbol'){
mostrarar(borrarbol($_GET['fid']));
}
if($_GET['hacer']=='editarar'){
229
editarar($_GET['fid'],$_GET['des']);
}
if($_GET['hacer']=='editararbol'){
$msj=editararbol($_GET['fid'],$_GET['desarbo'],$_GET['desbloo'],$_GET['desarbn'],$_GET['desblo
n']);
mostrar($msj);
}
}
?>
</body>
</html>
<?php include("seguridad.php");?>
<?php include("funcionesexperto.php");?>
<script type="text/javascript">
function mostrar_arbol (a)
{
document.form1.fid.value=a;
document.form1.hacer.value=1;
document.form1.submit();
}
</script>
<style>
.copy {
font-family : "Verdana";
font-size : 10px;
color : #CCCCCC;
}
.gbd {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {border-top:1px solid #c9d7f1;font-size:1px}
230
.gbh {
height:0;
position:absolute;
top:36px;
width:100%
}
a.gb1 {color:#00c !important}
a.gb2 {color:#00c !important}
a.gb3 {color:#00c !important}
a.gb4 {color:#00c !important}
#guser {padding-bottom:7px !important;text-align:right}
.style1 {
color: #FF0000;
font-weight: bold;
}
</style>
</head>
<body background="IMAGENES/linea.jpg" onLoad="CreateTree();">
<div class="gbh" style="right: 3.75pt;"></div>
<div id="guser" width="100%"><nobr><b><h3>Bienvenido <?php echo $_SESSION[user_name];
?></b> | <a href="paginarbol.php" class="gb4">Seleccion Mapa</a> | <a href="logout.php"
class="gb4">Cerrar Sesion</h3></a></nobr></div>
<form id="form1" name="form1" method="post" action="index.php">
<input type="hidden" name="fid">
<input type="hidden" name="hacer">
</form>
<h2 align="center"><span class="style1">Selecciona un Mapa</span></h2>
<table width="407" border="1" align="center">
<tr>
<th width="101" bgcolor="#33CCFF" scope="col"><div align="center">fid</div></th>
<th width="290" bgcolor="#33CCFF" scope="col">Descripcion</th>
<th width="290" bgcolor="#33CCFF" scope="col">Bloque Padre</th>
</tr>
<!-- empieza la tabla -->
<?php
if(isset($_SESSION[user_name]))
{
require_once 'PHPPaging.lib.php';
231
// Abrimos la conexión al servidor MySQL
$link = mysql_connect('localhost', 'root', 'root');
mysql_select_db('postal', $link);
232
<!-- termina la tabla -->
</table>
<?php
if(isset($_SESSION[user_name])){
// Imprimimos algo de información
echo'<div align="center">';
echo "<b>Página ".$paging->numEstaPagina()." de ".$paging->numTotalPaginas()."<br />";
echo "</b>Mostrando ".$paging->numRegistrosMostrados()." resultados, del ".$paging-
>numPrimerRegistro()." al ".$paging->numUltimoRegistro();
echo " de un total de ".$paging->numTotalRegistros()."<br /><br />";
// Imprimimos la barra de navegación
echo $paging->fetchNavegacion();
echo '</div></th>';
}
?>
</body>
</html>
233
Comercialización de My Poltree
Estrategia de Mercado
1.- ¿Cuánto costó el prototipo?
Por Concepto de Transporte a Escuela
Nombre Horas totales Costo/hora Subtotal
Natalia 150 $33.5 $5,025
Isauro 200 $20 $4,000
Miguel 280 $55 $15,400
Total 630 $24,425
234
Por concepto de otros gastos
Concepto Costo Subtotal
Asesoría PHP $3,200 $3,200
Papelería, impresiones, $1,500 $4,500
comida, etc.
Total $7,700
235
Es un prototipo con interfaz intuitiva que puede ser usado en las PyMES o cualquier otra
área que lo justifique.
Dado la naturaleza de este proyecto, no es fácil determinar un precio de venta, puesto que
nos encontramos con una apertura de mercado (sin competencia), por lo cual suponemos que una
PyME puede invertir $10,000 o más en esta solución.
De igual forma al ser un bien intangible es difícil determinar el costo-beneficio de este
proyecto y por lo tanto se trata de un caso de estudio que esta fuera del alcance de nuestra tesis y
queda abierto para su estudio y análisis futuros.
4.- Conclusión Prueba Real
Queda postergada una prueba real dentro de una organización, la cual nos permitirá
mejorar la funcionalidad de este proyecto.
Las empresas que deseen tener esta prueba dentro de ellas, sólo deberán cubrir los gastos
de instalación que se mencionan en el punto número 2 esta estrategia de mercado.
RETORNO DE INVERSIÓN
Suponiendo que una PYME puede invertir $10,000 o más en esta solución y pensando que
en 1 mes se instalaría la solución en una empresa. Llegamos a la conclusión de que en promedio
de 8 meses estaremos recuperando más del costo total de este proyecto. De igual forma en 10
meses estaríamos obteniendo ya una utilidad.
236