Proyecto Web Semántica para alumnos del IPN

26/Aug/2015 | Eder

Inicio » Proyectos » Software » Proyecto Web Semántica para alumnos del IPN

No muchas personas se imaginan las complicadísimas tecnologías detrás de Facebook y otras redes sociales para organizar la información y así aprovecharla de una manera inteligente. Justamente en este proyecto hacemos una introducción a la web semántica y las herramientas necesarias.

¿Qué carajo es la Web Semántica?

La web semántica es simplemente una web enfocada a los seres humanos para facilitar la búsqueda de información de acuerdo a lo que necesitemos. Ejemplo, si nosotros hacemos la búsqueda ganadores del concurso de minirobótica entonces el buscador nos arrojará muchos resultados…de diferentes universidades del mundo cuando en realidad solamente nos interesa saber los ganadores del torneo realizado en ESIME Azcapotzalco, y eso implica que solamente nos enfocamos a estudiantes del Instituto Politécnico Nacional (cosa que no especificamos desde un principio en el término de búsqueda).

Es por ello que este proyecto pretende generar resultados de búsqueda más personalizados de acuerdo a los intereses y otros metadatos de los usuarios; es decir, si una chica de UPIICSA busca lugares para comer pizza entonces el buscador deberá mostrarle los restaurantes de Iztacalco donde vendan pizza. En contraparte, si un chico de ESCOM hace la misma búsqueda entonces debería recibir en primer lugar los restaurantes de pizza cercanos a Lindavista.

Ese es el objetivo principal de este proyecto, que finalmente fue convertido en una pequeña comunidad de preguntas y respuestas mediante la interacción entre usuarios.

Características del proyecto

  • Proyecto que utiliza los frameworks Java: Struts 2, Spring y Hibernate
  • Su funcionamiento es 100% AJAX
  • Diseño adaptable a diferentes pantallas (frontend)
  • Participan 3 entidades: alumno, profesor y administrador
  • Registro y login de usuarios
  • Los usuarios especifican escuela e intereses
  • Creación, edición y eliminación de temas clasificados mediante una taxonomía de etiquetas
  • Votación de respuestas
  • Sistema de estadísticas individuales y del sistema en general
  • Los datos se almacenan en formatos MySQL, XML y RDF/FOAF
  • Buscador de temas, categorías y alumnos clasificados por escuela o intereses
  • Los usuarios pueden añadir y eliminar contactos en común (conocidos)

Cabe destacar que este proyecto utiliza un vocabulario RDF llamado FOAF (Friend Of A Friend) y es quien nos permite hacer la magia para clasificar los intereses de los usuarios, sus datos principales (nombre, correo electrónico, nickname, escuela) así como las personas que conoce. La plantilla de ejemplo es la siguiente (bug conocido y arreglado: el sexo de los usuarios se registraba incorrectamente).

<?xml version="1.0" encoding="windows-1252"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <foaf:Person rdf:about="http://comunipn.blog.nativehex.com/rdf/portz">
    <foaf:interest>Dormir</foaf:interest>
    <foaf:schoolHomepage>UPIICSA</foaf:schoolHomepage>
    <foaf:gender>Masculino</foaf:gender>
    <foaf:mbox>[email protected]</foaf:mbox>
    <foaf:nick>portz</foaf:nick>
    <foaf:family_name>Overflow</foaf:family_name>
    <foaf:givenname>Buffer</foaf:givenname>
  </foaf:Person>
  <foaf:Person rdf:about="http://comunipn.blog.nativehex.com/rdf/nullencio">
    <foaf:interest>Dormir</foaf:interest>
    <foaf:schoolHomepage>ESCOM</foaf:schoolHomepage>
    <foaf:gender>Femenino</foaf:gender>
    <foaf:mbox>[email protected]</foaf:mbox>
    <foaf:nick>nullencio</foaf:nick>
    <foaf:family_name>Or</foaf:family_name>
    <foaf:givenname>Eder</foaf:givenname>
  </foaf:Person>
  <foaf:Person rdf:about="http://comunipn.blog.nativehex.com/rdf/sfgnite">
    <foaf:interest>Dormir</foaf:interest>
    <foaf:schoolHomepage>UPIICSA</foaf:schoolHomepage>
    <foaf:gender>Masculino</foaf:gender>
    <foaf:mbox>[email protected]</foaf:mbox>
    <foaf:nick>sfgnite</foaf:nick>
    <foaf:family_name>Naur</foaf:family_name>
    <foaf:givenname>Backus</foaf:givenname>
  </foaf:Person>
  <foaf:Person rdf:about="http://comunipn.blog.nativehex.com/rdf/yosoydebatiz">
    <foaf:givenname>Pedro</foaf:givenname>
    <foaf:family_name>Pedroza</foaf:family_name>
    <foaf:nick>yosoydebatiz</foaf:nick>
    <foaf:mbox>[email protected]</foaf:mbox>
    <foaf:gender>Femenino</foaf:gender>
    <foaf:schoolHomepage>Vocacional 9</foaf:schoolHomepage>
    <foaf:interest>Videojuegos, Novelas</foaf:interest>
  </foaf:Person>
  <foaf:Person rdf:about="http://comunipn.blog.nativehex.com/rdf/xyz">
    <foaf:givenname>Naur</foaf:givenname>
    <foaf:family_name>Form</foaf:family_name>
    <foaf:nick>xyz</foaf:nick>
    <foaf:mbox>[email protected]</foaf:mbox>
    <foaf:gender>Masculino</foaf:gender>
    <foaf:schoolHomepage>UPIICSA</foaf:schoolHomepage>
    <foaf:interest>Dormir</foaf:interest>
    <foaf:knows>
        <foaf:Person>
            <foaf:nick>nullencio</foaf:nick>
        </foaf:Person>
    </foaf:knows>
  </foaf:Person>
</rdf:RDF>

Créditos del proyecto

Los créditos de este proyecto se atribuyen a Eder Ortega y José Barrera; esto mismo fue utilizado para cumplir con la entrega del proyecto final de la materia Web Application Development.

Acerca de Eder
Software Engineer, estudiante politécnico del CECyT No. 3 y ESCOM-IPN.

Comentarios