Servicio semántico de información musical

-

Español
143 pages
Obtenez un accès à la bibliothèque pour le consulter en ligne
En savoir plus

Description


El presente proyecto de fin de carrera trata de construir una aplicación Web que sea capaz de realizar el análisis semántico de un texto relacionado con el mundo de la música y de enriquecer este análisis con información musical adyacente. El sistema resultante va a integrar la información prestada por dos servicios Web externos para conseguir este propósito. El análisis semántico va a ser realizado con la ayuda del servicio Web semántico OpenCalais, que recibirá el texto y devolverá las entidades reconocidas según el contexto. Esta respuesta será tratada por el sistema para escoger las pertenecientes al ámbito musical y con ellas realizar una petición de información a la base de datos de MusicBrainz, accediendo a la misma a través de su servicio Web. El sistema trabajará esta información para presentarla de manera amigable y atractiva al usuario final. -----------------------------------------------------------------------------------
This dissertation aims to build a Web application that is capable of performing a semantic analysis of text associated with the world of music and enriches this analysis with adjacent musical information. The resulting system will integrate the information provided by two external Web services to achieve this purpose. The semantic analysis will be done with the help of semantic Web service OpenCalais that will receive the text and will return the entities depending on context. This response will be treated by the system for choosing those entities that are related to the music field. A request for extra information will be done to the MusicBrainz database, accessing it through its Web service. The system will work to present this information in a friendly and attractive way to end users.
Ingeniería en Informática

Sujets

Informations

Publié par
Publié le 01 janvier 2010
Nombre de lectures 22
Langue Español
Poids de l'ouvrage 4 Mo
Signaler un problème











×

ǣ À À
ǣ ±

19deJuliode2010


ulo
Tít:ServicioSemánticodeInformaciónMusical

Autor:RocíoMartínezVidaurrázaga

Director:CésardePabloSánchez

Presidente:

Vocal:

Secretario:

ELTRIBUNAL

RealizadoelactodedefensaylecturadelProyectoFindeCarreraeldía__de_______de20__
enLeganés,enlaEscuelaPolitécnicaSuperiordelaUniversidadCarlosIIIdeMadrid,acuerda
otorgarlelaCALIFICACIÓNde

SECRETARIO


VOCAL

PRESIDENTE

AmitutorCésardePablo,porprestarmesuayudaentodomomento.

AtodoslosprofesoresycompañerosquedurantemisañosdeUniversidadmehanayudadoa
formarmetantoenlopersonalcomoenloprofesional.

Amifamiliayaminovioporprestarmesuapoyoentodomomentoyporestarahíenlos
malosmomentosayudándomealevantarme.

Enespecialmegustaríaagradeceramimadre,quetantomeayudódurantetodamividaymás
aúnenlosañosuniversitarios,animándomeaseguirantecualquieradversidadyapoyándome
entodasmisdecisiones.


ElpresenteproyectodefindecarreratratadeconstruirunaaplicaciónWebqueseacapazde
realizarelanálisissemánticodeuntextorelacionadoconelmundodelamúsicayde
enriqueceresteanálisisconinformaciónmusicaladyacente.

ElsistemaresultantevaaintegrarlainformaciónprestadapordosserviciosWebexternos
paraconseguirestepropósito.

ElanálisissemánticovaaserrealizadoconlaayudadelservicioWebsemánticoOpenCalais,
querecibiráeltextoydevolverálasentidadesreconocidassegúnelcontexto.Estarespuesta
serátratadaporelsistemaparaescogerlaspertenecientesalámbitomusicalyconellas
realizarunapeticióndeinformaciónalabasededatosdeMusicBrainz,accediendoalamisma
atravésdesuservicioWeb.Elsistematrabajaráestainformaciónparapresentarlademanera
amigableyatractivaalusuariofinal.

Palabrasclave:


Ͳ


Ͳ


Ͳ


Ͳ

ServiciosWeb

Websemántica

OpenCalais

MusicBrainz

ThisdissertationaimstobuildaWebapplicationthatiscapableofperformingasemantic
analysisoftextassociatedwiththeworldofmusicandenrichesthisanalysiswithadjacent
musicalinformation.

TheresultingsystemwillintegratetheinformationprovidedbytwoexternalWebservicesto
achievethispurpose.

ThesemanticanalysiswillbedonewiththehelpofsemanticWebserviceOpenCalaisthatwill
receivethetextandwillreturntheentitiesdependingoncontext.Thisresponsewillbe
treatedbythesystemforchoosingthoseentitiesthatarerelatedtothemusicfield.Arequest
forextrainformationwillbedonetotheMusicBrainzdatabase,accessingitthroughitsWeb
service.Thesystemwillworktopresentthisinformationinafriendlyandattractivewayto
endusers.

Keywords:


Ͳ


Ͳ


Ͳ


Ͳ

WebServices

SemanticWeb

OpenCalais

MusicBrainz

Contenido

Agradecimientos...........................................................................................................................5
Resumen........................................................................................................................................6
Abstract.........................................................................................................................................7
Contenido......................................................................................................................................8
Índicedeilustraciones.................................................................................................................11
Índicedetablas...........................................................................................................................14
1.Introducciónyobjetivos......................................................................................................15
1.1.Introducción................................................................................................................15
1.2.Objetivos.....................................................................................................................15
1.3.Fasesdeldesarrollo.....................................................................................................17
1.4.Mediosempleados......................................................................................................17
1.5.Estructuradelamemoria............................................................................................18
1.6.Acrónimos...................................................................................................................18
2.Websemántica....................................................................................................................20
2.1.¿QuéeslaWebsemántica?........................................................................................20
2.2.Ontologías...................................................................................................................21
2.3.CapasdelaWebSemántica........................................................................................22
3.ServiciosWeb......................................................................................................................25
3.1.¿Quéson?....................................................................................................................25
3.2.TiposdeServiciosWeb................................................................................................29
3.2.1.ServiciosWebSOAP.............................................................................................29
3.2.2.ServiciosWebREST..............................................................................................31
3.2.3.Diferencias...........................................................................................................32
3.3.ServicioWebdeOpenCalais........................................................................................33
3.3.1.¿Quées?..............................................................................................................33
3.3.2.¿Cómoseconsiguelainformación?....................................................................34
3.3.3.¿Cómosedevuelvelainformación?....................................................................35
3.4.ServicioWebdeMusicBrainz......................................................................................36
3.4.1.¿Quées?..............................................................................................................36

3.4.2.¿Cómoseconsiguelainformación?....................................................................38
3.4.3.¿Cómosedevuelvelainformación?....................................................................39
3.5.Tecnologíautilizada.....................................................................................................40
3.5.1.Ajax......................................................................................................................41
3.5.2.PHP......................................................................................................................42
3.5.3.DOM....................................................................................................................43
3.5.4.Apache.................................................................................................................43
3.5.5.JSON.....................................................................................................................43
4.Descripcióndelsistema.......................................................................................................44
4.1.Entornodedesarrollo.................................................................................................46
4.2.Arquitectura................................................................................................................46
4.3.Diagramasdesecuencia..............................................................................................49
4.3.1.OperacióndeAnalizarsinerror:..........................................................................49
4.3.2.OperaciónAnalizarconerrorenCalais:..............................................................53
4.3.3.OperaciónPulsarsobreentidadreconocida:......................................................54
4.3.4.OperaciónPulsarsobreentidadreconocidaconerrordeMusicBrainz:.............55
4.4.Interfazdeusuario......................................................................................................59
4.5.Descomposiciónporcomponentes.............................................................................60
4.6.OpenCalaisWebServices...........................................................................................63
4.6.1.Configuración......................................................................................................64
4.6.2.Llamadas.............................................................................................................64
4.6.3.Respuestas...........................................................................................................65
4.7.MusicBrainzWebService............................................................................................65
4.7.1.Llamadas.............................................................................................................65
4.7.2.Respuestas...........................................................................................................69
4.8.Librerías.......................................................................................................................75
4.8.1.HelpBalloon.........................................................................................................75
4.9.Diseñodelaimplementación......................................................................................76
4.10.Entornodeejecución..............................................................................................93
4.11.Pruebasrealizadas...................................................................................................93
4.12.Problemáticaencontradaysolucionespropuestas..............................................113
5.Conclusiones.....................................................................................................................116
5.1.Conclusiones..............................................................................................................116

5.2.Futuraslíneasdetrabajo...........................................................................................117
6.ReferenciasBibliográficasymaterialconsultado.............................................................118
7.Anexos...............................................................................................................................119
7.1.AnexoI:Manualdeusuario......................................................................................119
7.2.AnexoII:Planificación...............................................................................................134
7.2.AnexoIII:Presupuesto..............................................................................................140

Índicedeilustraciones

Ilustración1:CapasdelaWebSemántica[6]............................................................................................22
Ilustración2:CapasdeunServicioWeb[6]................................................................................................26
Ilustración3:EstructuradeunmensajeSOAP[6]......................................................................................30
Ilustración4:MensajeSOAPdeejemplo[6]...............................................................................................31
Ilustración5:FuncionamientodeAjax.......................................................................................................42
Ilustración6:Ejecucióndelcódigodelladodelservidor............................................................................47
Ilustración7:FiguraEjecucióndelcódigodelladodelcliente...................................................................47
Ilustración8:Arquitecturafinaldelsistema...............................................................................................48
Ilustración9:DiagramadesecuenciaPulsarAnalizar................................................................................51
Ilustración10:DiagramadesecuenciaPulsarAnalizarconError..............................................................53
Ilustración11:DiagramadesecuenciaPulsarsobreentidadreconocida..................................................55
Ilustración12:DiagramadesecuenciaPulsarsobreentidadreconocidaconError...................................57
Ilustración13:Interfazdeusuariodelsistema...........................................................................................59
Ilustración14:Diagramadecomponentesdelsistema..............................................................................61
Ilustración15:EjemplopasodeparámetrosenXMLalservicioWebdeOpenCalais.................................64
Ilustración16:XMLderespuestadelaprimerallamadaaMusicBrainzparaArtistas..............................69
Ilustración17:derespuestadelaprimerallamadaaMusicBrainzparaÁlbumes.....................................70
Ilustración18:derespuestadelasegundallamadaaMusicBrainzparaArtistas.....................................71
Ilustración19:derespuestadelasegundallamadaaMusicBrainzparaGrupos......................................73
Ilustración20:derespuestadelasegundallamadaaMusicBrainzparaÁlbumes....................................74
Ilustración21:EjemplodetooltipusandolalibreríaHelpBalloon..............................................................75
Ilustración22:CódigoJavaScriptparalacreacióndellamadasXMLHttpRequest.....................................76
Ilustración23:CódigoJavaScriptparaelestablecimientodelosparámetrosdeOpenCalais...................77
Ilustración24:CódigoJavaScriptparalallamadaaOpenCalais...............................................................77
Ilustración25:CódigoJavaScriptparagestionarlasllamadasasíncronas................................................77
Ilustración26:CódigoJavaScriptconlallamadaalafunciónqueevalúalarespuestadeOpenCalais....78
Ilustración27:CódigoJavaScriptconlallamadaalafunciónqueprocesalarespuestadeOpenCalais..78
Ilustración28:CódigoJavaScriptparaevaluarlarespuestaJSON.............................................................78
Ilustración29:CódigoJavaScriptpararesolverlasreferenciasdelarespuestaJSON...............................79
Ilustración30:CódigoJavaScriptquedevuelveagrupadaslascategoríasArtistas,GruposyÁlbumes....79
Ilustración31:CódigoJavaScriptparaprocesarlarespuestaJSONyextraerlainformacióndependiendo
delacategoría............................................................................................................................................80
Ilustración32:CódigoJavaScriptparacrearloslinksdelasentidadesreconocidasdentrodeltexto.......81
Ilustración33:CódigoJavaScriptparaavanzarlascoordenadasdelaentidaddentrodeltexto..............82
Ilustración34:CódigoJavaScriptparaalmacenarlostamañosdelosarraysdecategorías.....................83
Ilustración35:CódigoJavaScriptparacomprobarlasrepeticionesdeunaentidaddentrodeltexto.......84
Ilustración36:CódigoJavaScriptquehacelasllamadasalafunciónquehacelasllamadasalservicio
WebdeMusicBrainz...................................................................................................................................84
Ilustración37:CódigoJavaScriptparahacerlasllamadassíncronasaMusicBrainz..................................85
Ilustración38:CódigoJavaScriptparahacerlasegundallamadaaMusicBrainzdependiendodela
categoría....................................................................................................................................................86
Ilustración39:CódigoJavaScriptparagestionarlarespuestadelasllamadasasíncronas.......................86
Ilustración40:CódigoJavaScriptparahacerlasegundallamadadelacategoríaArtista.........................86
Ilustración41:CódigoJavaScriptparaextraerlainformacióndeunArtista.............................................87

Ilustración42:CódigoJavaScriptparaformatearlainformacióndeunartistadependiendodelcontenido
delamisma................................................................................................................................................87
Ilustración43:CódigoJavaScriptparaformatearlasURLSdelaentidad..................................................87
Ilustración44:CódigoJavaScriptparaañadiralasURLSdelaentidadunaimagenparaidentificarlos...88
Ilustración45:CódigoJavaScriptparacreareltooltip...............................................................................88
Ilustración46:CódigoJavaScriptpararealizarlallamadadeaMusicBrainzparaGrupos.......................89
Ilustración47:CódigoJavaScriptparadiferenciarentrelasllamadasdeArtistayGrupo.........................89
Ilustración48:CódigoJavaScriptpararealizarlasegundallamadaaMusicBrainzdemandandola
informaciónnecesariaparaGrupos...........................................................................................................89
Ilustración49:CódigoJavaScriptparaextraerlainformaciónparalosGrupos.........................................90
Ilustración50:CódigoJavaScriptparaprocesarlainformacióndelosdiscosdelgrupo...........................90
Ilustración51:CódigoJavaScriptparaformatearlasURLSdeGrupos......................................................90
Ilustración52:CódigoJavaScriptparacreareltooltipconlainformacióndelosGrupos..........................91
Ilustración53:CódigoJavaScriptparaestablecerlaURLdellamadaaMusicBrainzparaÁlbumes.........91
Ilustración54:CódigoJavaScriptpararealizarlallamadaaMusicBrainzconlainformaciónparaÁlbumes
....................................................................................................................................................................91
Ilustración55:CódigoJavaScriptparaformatearlainformacióndelascancionesqueformanelÁlbum92
Ilustración56:CódigoJavaScriptparaformatearlasURLSdelÁlbum.......................................................92
Ilustración57:CódigoJavaScriptparacreareltooltipconlainformacióndelÁlbum...............................92
Ilustración58:ResultadoPrueba01...........................................................................................................96
Ilustración59:ResultadoPrueba01.ContenidodeltooltipparaArtista...................................................97
Ilustración60:ResultadoPrueba01.ContenidodeltooltipparaArtistacontinuación..............................97
Ilustración61:ResultadoPrueba01.ContenidodeltooltipparaArtistasintodoelcontenido.................98
Ilustración62:ResultadoPrueba01.ContenidodeltooltipparaArtistasinRating..................................98
Ilustración63:ResultadoPrueba01.ContenidodeltooltipparaGrupo....................................................99
Ilustración64:ResultadoPrueba01.ContenidodeltooltipparaGrupocontinuación............................100
Ilustración65:ResultadoPrueba01.ContenidodeltooltipparaGruposintodalainformación............100
Ilustración66:ResultadoPrueba01.ContenidodeltooltipparaGrupoenlarepetición........................101
Ilustración67:ResultadoPrueba01.ContenidodeltooltipparaÁlbum..................................................101
Ilustración68:ResultadoPrueba01.ContenidodeltooltipparaÁlbumcontinuación............................102
Ilustración69:ResultadoPrueba01.ContenidodeltooltipparaÁlbumcontinuación............................102
Ilustración70:ResultadoPrueba02.........................................................................................................104
Ilustración71:ResultadoPrueba03.........................................................................................................105
Ilustración72:ResultadoPrueba03.ContenidoGrupo............................................................................106
Ilustración73:ResultadoPrueba03.ContenidoÁlbum...........................................................................106
Ilustración74:ResultadoPrueba04.........................................................................................................108
Ilustración75:ResultadoPrueba05.........................................................................................................109
Ilustración76:ResultadoPrueba05.Entidadmalreconocida.................................................................109
Ilustración77:ResultadoPrueba06.........................................................................................................110
Ilustración78:ResultadoPrueba07.........................................................................................................111
Ilustración79:ResultadoPrueba07.ContenidoArtista...........................................................................112
Ilustración80:ResultadoPrueba08.........................................................................................................113
Ilustración81:Puestaenmarcha.DescomprimirZIP...............................................................................120
Ilustración82:Puestaenmarcha.EditarficheroconfiguracióndeApache.............................................121
Ilustración83:Puestaenmarcha.AccesoaWampServer.......................................................................121
Ilustración84:Puestaenmarcha.EditarconfiguracióndeApacheconWampServer.............................122
Ilustración85:Puestaenmarcha.InformacióndelficherodeconfiguracióndeApache.........................122
Ilustración86:Puestaenmarcha.InformacióndelficherodeconfiguracióndeApache.........................123

Ilustración87:Puestaenmarcha.IconoApache......................................................................................123
Ilustración88:Puestaenmarcha.IniciarApache....................................................................................123
Ilustración89:Puestaenmarcha.IniciarApache....................................................................................124
Ilustración90:Puestaenmarcha.IconoApacheiniciado........................................................................124
Ilustración91:Puestaenmarcha.Contenidodelasolución....................................................................125
Ilustración92:Puestaenmarcha.Iniciarpágina.....................................................................................126
Ilustración93:Puestaenmarcha.PulsarAnalizar...................................................................................127
Ilustración94:Puestaenmarcha.PulsarLimpiar....................................................................................128
Ilustración95:Puestaenmarcha.PulsarsobrelaentidadGrupo............................................................129
Ilustración96:Puestaenmarcha.PulsarsobrelaentidadGrupo............................................................130
Ilustración97:Puestaenmarcha.PulsarsobrelaentidadGrupo............................................................130
Ilustración98:Puestaenmarcha.PulsarsobrelaentidadArtista...........................................................131
Ilustración99:PulsarsobrelaentidadArtista..........................................................................................131
Ilustración100:Puestaenmarcha.PulsarsobrelaentidadArtista.........................................................132
Ilustración101:Puestaenmarcha.PulsarsobrelaentidadÁlbum........................................................132
Ilustración102:Puestaenmarcha.PulsarsobrelaentidadÁlbum.........................................................133
Ilustración103:Puestaenmarcha.PulsarsobrelaentidadÁlbum.........................................................133
Ilustración103:Planificacióndelproyecto.DiagramadeGantt..............................................................139
Ilustración105:Presupuestodelproyecto...............................................................................................142