Está en la página 1de 163

Metodologa de diseo para el desarrollo de mashups semnticos

Luis E. Nieto Pealver

Directora: Dra. Alicia Daz

Tesis presentada para obtener el grado de Magster en Ingeniera de Software

Facultad de Informtica Universidad Nacional de La Plata 2012

AGRADECIMIENTOS
Amidirectora,AliciaDaz,porsuapoyo,experiencia,dedicacinypacienciaparainiciarmeenel mundodelaWebSemntica. Alosque,deunaformauotra,formanpartedemicamino:mispadres,mishermanos(Carlos, Julieta,Carolina,Ricardo),Lucaymis2solesymedio(Agus,Guilleyelmschiquito,todavasin nombre),lesagradezcoelapoyoconstante,lapacienciaylashorasquitadas.

RESUMEN
Durantelos ltimosaos,ycadavezmsrpido,vienensurgiendonuevastecnologasWeb.La aparicindelaWeb2.0ylaintegracindeestastecnologashanabiertonuevaseinnovadoras formasdecolaboracinquemerecenserconsideradas. EntreelconjuntodetecnologasWeb2.0seencuentranlosmashups,definidoscomoaplicaciones WebformadasporAPIs,contenidoycomponentesdeaplicacinconelfindeextraerinformacin dediversasfuentes,combinarlaypresentarlaenotrasformas.Normalmente,unmashupmejorala presentacin visual de la informacin, ofrece valor agregado a sus usuarios combinando la informacindediferentesfuentesoambascosas. Porejemplo,unmashuppodrabuscarelpreciodeundeterminadoproductoenAmazon.comyen BestBuy.com(atravsdelasAPIsdeambos),compararlos2preciosydevolverlealusuarioesta informacinparaquepuedadecidirdndecomprarelproducto.Elmashupinclusopodrabuscar lospreciosdeestos2proveedoresperidicamente,paraqueelusuariopuedairviendoelcambiode losmismosydecidaelmejormomentoparacomprar.Estostiposdemashups,tambi nllamados mashupsWeb2.0,tienenalgunaslimitaciones,comoserpobreescalabilidadamedidaqueaumenta lacantidaddefuentesdeinformacinconlasquetrabaja. ConelsurgimientodelaWebSemnticaaparecieronlos mashupssemnticos,loscualescarecende las limitaciones mencionadas anteriormente. El concepto de Web Semntica hace referencia a informacinpublicadaenlaWebdetalformaqueresultecomprensibleaunamquina(esdecir, que su significado est explcitamente definido) y que pueda conectarse con otra informacin externa. As,unmashupsemnticosedefinecomounaaplicacinWebqueextraeinformacindediversas fuentes, la combina (integra) y presenta en otras formas. La caracter stica principal de esta informacin es que resulta comprensible a una mquina (su significado est explcitamente definido). A la estructura donde cada fuente organiza su informacin se la denomina ontologa, y en consecuencialatareadeunmashupsemnticoconsisteenintegrarlainformacindelasontologas delasdistintasfuentesconlasquetrabaja.Esteeselproblemamscomplejoaresolverporpartede unmashupsemntico. Enel mbitodelaIngenieradeSoftwareseempleandistintasmetodologasparaeldesarrollode aplicaciones,porejemploelProcesoUnificadoRational.Estasmetodologasnosiempreresultan vlidasparaelcasodelasaplicacionesWebdebidonosloaquenoproporcionantodaslastcnicas ynotacionesrequeridas,sinotambinalaburocraciayrigidezdelasmismas. ActualmenteexistenmetodologasparaaplicacionesWeb,perolagranmayoranocontemplael casodelasaplicacionesWebsemnticas,yenconsecuenciase necesitadeunametodologaque ayudealdiseadorduranteeldesarrollodelasmismas. El objetivo de este trabajo consiste en definir una metodologa para el diseo de un mashup semntico,quesealosuficientementegeneralparaindependizarsedelaplataformautilizada,yque definacadaprocesoyactividadenformaprecisa,indicandosupropsito,entradasysalidas,actores

involucradosyelconjuntodemtodosytcnicasqueseutilicenpararealizarcadaactividad.

ndice
AGRADECIMIENTOS........................................................................................................................2 RESUMEN...........................................................................................................................................3 CAPTULO1INTRODUCCIN.....................................................................................................8 1.1Motivacinehiptesisdeestainvestigacin...........................................................................12 1.2Objetivos...................................................................................................................................14 1.3Aportedeestatesis..................................................................................................................15 1.4Organizacin............................................................................................................................15 CAPTULO2ESTADODELARTE...............................................................................................17 2.1EvolucindelaWebysusaplicaciones...................................................................................17 2.1.1LaWeb1.0.......................................................................................................................18 2.1.2LaWeb2.0.......................................................................................................................18 2.1.3LaWebmvil...................................................................................................................19 2.1.4LaWebSemntica...........................................................................................................20 2.1.5AplicacionesRIA(AplicacionesEnriquecidas)..............................................................20 2.2AspectospropiosdeldesarrollodeaplicacionesWeb.............................................................20 2.3Aspectospropiosdeldesarrollodemashupssemnticos........................................................22 2.4Desafosdeldesarrollodemashupssemnticos.....................................................................25 2.5Accesoalasfuentesdeinformacin........................................................................................27 2.5.1ServiciosWeb...................................................................................................................27 2.5.2ServiciosWebsemnticos................................................................................................28 2.6Estadodeldesarrollodemashups............................................................................................29 2.6.1Conclusiones.....................................................................................................................31 2.7MtodosdediseodeaplicacionesWeb..................................................................................31 2.7.1OOWS(ObjectOrientedApproachforWebSolutionsModeling)..................................32 2.7.2OOHDM(ObjectOrientedHypermediaDesignMethod)...............................................34 2.7.3UWE(UMLbasedWebEngineering).............................................................................36 2.7.4IDM(InteractiveDialogueModel)..................................................................................38 2.7.5WebML(WebModelingLanguage).................................................................................40 2.7.6Hera.................................................................................................................................42 2.7.7WSDM(WebSemanticsDesignMethod)........................................................................44 2.8Anlisisdelasdistintasmetodologas.....................................................................................46 2.9Conclusiones............................................................................................................................49 CAPTULO3ONTOLOGASYLAWEBSEMNTICA............................................................51 3.1Ontologas................................................................................................................................51 3.2OntologasbienconocidasdelaWebSemntica....................................................................54 3.3LenguajespararepresentarontologasenlaWebSemntica..................................................57 3.4RDF(ResourceDescriptionFramework)...............................................................................59 3.5RDFS(RDFSchema)..............................................................................................................61 3.6OWL(WebOntologyLanguage).............................................................................................63 3.6.1AlgunascaractersticasdeOWL......................................................................................64 3.7Contenidodeunaontologa.....................................................................................................65 3.7.1Definicindelasclasesysusrelaciones..........................................................................65 3.7.2Definicindelaspropiedadesdelasclases......................................................................66 3.7.3Definicindelasrestriccionessobrelaspropiedades......................................................68 3.7.4Creacindeinstancias(individuos)delasdistintasclases..............................................70 3.8Lasontologasylosmashupssemnticos................................................................................70 3.9Conclusiones............................................................................................................................71 CAPTULO4MEDIACINDEONTOLOGAS..........................................................................72

4.1Razonesporlasqueseproducendiscrepanciasentrelasontologas.......................................72 4.2Formasquepuedetomarlamediacindeontologas..............................................................76 4.3Tcnicasparaelmapeodeontologas.....................................................................................77 4.4Resolucindelmapeodeontologas........................................................................................78 4.4.1Heterogeneidadterminolgica..........................................................................................78 4.4.2Heterogeneidadsemntica................................................................................................79 4.5Conclusiones............................................................................................................................85 CAPTULO5METODOLOGAPARAELDISEODEMASHUPSSEMNTICOS...............87 5.1Definicindelosobjetivosdelmashupsemntico.................................................................89 5.1.1Definirlosobjetivosdelmashupsemntico.....................................................................90 5.2Modeladodeldominio.............................................................................................................90 5.2.1Determinareldominioyalcancedelaontologa.............................................................91 5.2.2Reutilizarontologasexistentes........................................................................................92 5.2.3Enumerarlostrminosimportantesdelaontologa........................................................94 5.2.4Definirlasclasesysusrelaciones....................................................................................95 5.2.5Definirlaspropiedadesdelasclases................................................................................97 5.2.6Definirlasrestriccionessobrelaspropiedades................................................................98 5.2.7Crearinstancias(individuos)delasdistintasclases........................................................99 5.3Mediacindeontologas........................................................................................................100 5.3.1Mapearontologas..........................................................................................................102 5.4Accesoalasfuentesdeinformacin......................................................................................102 5.4.1Accederalasfuentesdeinformacin.............................................................................103 5.5Diseodelapresentacin.....................................................................................................103 5.6Implementacin.....................................................................................................................104 5.7Pruebas...................................................................................................................................104 5.8Conclusiones..........................................................................................................................105 CAPTULO6CASODEESTUDIO.............................................................................................106 6.1Definicindelosobjetivosdelmashupsemntico................................................................106 6.2Modeladodeldominio...........................................................................................................107 6.2.1Determinareldominioyalcancedelaontologa...........................................................108 6.2.2Reutilizarontologasexistentes.....................................................................................109 6.2.3Enumerarlostrminosimportantesdelaontologa.......................................................109 6.2.4Definirlasclasesysusrelaciones..................................................................................109 6.2.5.Definirlaspropiedadesdelasclases.............................................................................111 6.2.6Definirlasrestriccionessobrelaspropiedades...............................................................114 6.2.7Crearinstancias(individuos)delasdistintasclases.......................................................114 6.3Mediacindeontologas........................................................................................................122 6.4Accesoalasfuentesdeinformacin......................................................................................123 6.5.Diseodelapresentacin....................................................................................................124 6.6Implementacin.....................................................................................................................124 CAPTULO7CONCLUSIONES.................................................................................................142 7.1Trabajosfuturos......................................................................................................................143 APNDICEARDF........................................................................................................................145 A.1Espaciosdenombres,URIseidentidad................................................................................148 A.2Identificadoresenelespaciodenombresrdf........................................................................149 A.3NotacionesparaRDF............................................................................................................150 APNDICEBRDFS.....................................................................................................................152 B.1Subclases...............................................................................................................................153 B.2Subpropiedades.....................................................................................................................153 B.3Tipoyrangodelaspropiedades............................................................................................154

APNDICECTCNICASPARAELMAPEODEONTOLOGAS..........................................155 C.1Tcnicasquetrabajananivelelemento.................................................................................155 C.2Tcnicasquetrabajananivelestructura................................................................................157 C.3Tcnicasquetrabajananivelinstancia.................................................................................158 C.4Tcnicasbasadasenlasemntica..........................................................................................158 BIBLIOGRAFA..............................................................................................................................159

Captulo1Introduccin

CAPTULO1INTRODUCCIN
LaWebest cadavezmspresenteenlavidadelaspersonas.Desdeelmomentoenquesurgi, cambi la forma de trabajar, y al mismo tiempo, sufri una maduracin tal que le permiti convertirse en una plataforma muy atractiva y dominante para el desarrollo e implantaci n de aplicacionesdenegociosysociales[Murugesan,2008]. LossistemasyaplicacionesWebofrecenactualmenteunavariedaddecontenidoyfuncionalidada unagrancantidaddeusuarios,quienesesperanquefuncionencadavezmejor,queresultenms confiables,msseguras,quesepuedanpersonalizar,queseansensiblesalcontexto,etc. Debidoaquesehaincrementadoladependenciaconestostiposdeaplicacionesduranteel ltimo tiempo,surendimiento,confiabilidad,calidad,mantenimientoyescalabilidadsehanvueltomuy importantes.Adems,muchasaplicacionesWebestnfuertementeintegradasconotrossistemas tradicionalesdeinformacin,comobasesdedatosysistemasdeprocesamientodetransacciones, conlocual,sudiseo,desarrollo,implementacinymantenimientoresultacadavezmscomplejo [Murugesan,2008]. Enlosltimosaos,ycadavezmsrpido,vienensurgiendonuevastecnologasWeb.Laaparicin delaWeb2.0ylaintegracindeestastecnologashanabiertonuevaseinnovadorasformasde colaboracinquemerecenserconsideradas[Razaetal.,2008]. EntreelconjuntodetecnologasWeb2.0seencuentranlosmashups.Eltrminomashuptienesu origenenlamsica:2omsfuentesmusicalesunidasenun nicotrabajo1. Enel mbitodela Web,unmashupsedefinecomounaaplicacinWebformadaporAPIs2,contenidoycomponentes deaplicacinconelfindeextraerinformacindediversasfuentes,combinarlaypresentarlaen otras formas [Makki, 2008]. Normalmente, un mashup mejora la presentacin visual de la informacin,ofrecevaloragregadoasususuarioscombinandolainformacindediferentesfuentes, oambascosas[Yu,2011]. Porejemplo,unmashuppodrabuscarelpreciodeundeterminadoproductoenAmazon.comyen BestBuy.comatravsdelasAPIsdeambos,compararlos2preciosydevolverlealusuarioesta informacinparaquepuedadecidirdndecomprarelproducto.Elmashupinclusopodrabuscar lospreciosdeestos2proveedoresperidicamente,paraqueelusuariopuedairviendoelcambiode losmismosydecidaelmejormomentoparacomprar[Yu,2011]. SegnlasAPIsqueempleenlosmashups,loshaydedistintotipo,porejemplo3: Mashupsqueempleanmapas Muchas personas acumulan una gran cantidad de informacin sobre distintas cosas y
1 http://www.wikipedia.org 2 ApplicationProgrammingInterface:InterfazdeProgramacindeAplicaciones 3 http://www.masternewmedia.org/news/2007/08/09/mashups_what_are_they_mashup.htm

8|163

Captulo1Introduccin actividades,yestnacostumbradosaanotartodaestainformacinjuntoconsusubicaciones, lacualpuedepresentarsegrficamenteempleandomapas.Unodelosgrandesimpulsores para estos tipos de mashups fue Google con su API Google Maps, permitiendo a los desarrolladoresWebcombinartodotipodeinformacinenunmapa.Tambinaparecieron lasAPIsdeMicrosoft(VirtualEarth),Yahoo(YahooMaps)yAOL(MapQuest). Ejemplode mashupqueempleaunaAPIdemapas es Livetrain mapfor theLondon Underground4,elcualmuestraenunmapaelmovimientodelostrenesdelareddesubtes deLondrescasientiemporeal. Mashupsdevideosyfotos Laaparicindesitiosqueguardanfotosyredessociales,comoFlickr5,hadadolugarauna variedaddemashupsinteresantes.Debidoaqueestosproveedoresdecontenidoguardan metadatosasociadosalasimgenes(porejemplo,quinsaclafoto,unadescripcin,dnde ycundofuesacada,etc)losdiseadorespuedencombinarlasfotosconotrainformacin quesepuedaasociarconlosmetadatos. Ejemplo de mashup que emplea una API de fotos es AlphaLearnr6, el cual ayuda a aprenderelalfabetomediantefotos. Mashupspararealizarbsquedasycompras Losmashupspararealizarbsquedasycomprashanexistidodesdemuchoantesquese adoptaraeltrminomashup.AntesdelsurgimientodeAPIsparalaWeb,herramientasde comparacindecompras,comoBizRate7,PriceGrabber8yFroogledeGoogle9combinaban tecnologasdeltipobusinesstobusiness(B2B)yscreenscrapingparamezclardatos. Parafacilitarlacreacindeestosmashups,eBayyAmazon(entreotros)lanzaronAPIspara accederasuscontenidos. EjemplodemashupqueempleaunaAPIdeAmazones 22books10,elcualpermitecrear, compartiryverlistasdelibros. Mashupsdenoticias Fuentesdenoticias(comoelNewYorkTimes,laBBCoReuters)utilizantecnolog asde sindicacincomoRSSyAtomparaladifusindenoticiasrelacionadascondiversostemas.

4 5 6 7 8 9 10

http://traintimes.org.uk/map/tube/ http://www.flickr.com/ http://www.rapidmonkey.com/alphalearnr/#/C http://www.bizrate.com/ http://www.pricegrabber.com/ http://www.google.com/shopping http://www.22books.com/

9|163

Captulo1Introduccin EjemplodemashupqueempleaAPIsdenoticiases Diggdot.us11,elcualcombinacanales de fuentes relacionadas con informacin tecnolgica como Digg.com12, Slashdot.org13 y Del.icio.us14. Estostiposdemashups,tambinllamadosmashupsWeb2.0,presentanlassiguientescaractersticas yventajas15: Reutilizacin SeconstruyenconpartesyserviciosdeotrasaplicacionesWebyaexistentes,agregando cdigo para integrar los mismos. Al igual que el mercado de componentes visuales construidoalrededordeloscomponentesActiveXenlos'90,losmashupssonunaformade reutilizacin,peroaunaescalamuchomsgrande. Modelosimpleyliviano Generalmenteseconstruyenusandotcnicascomocortarypegar,fragmentosJavascript, canales(feeds)yXMLparaconectarlasdiferentespartes.Adems,norequiereninstalacin, actualizaciones,plugins,derechosdeadministrador,etc,salvounnavegadorWebylaURL delmashup. Facilidaddedesarrollo Permitenlacreacindeaplicacionesquenuncapodranhabersidojustificadassegnla relacincomprar/construir. Sinembargo,losmashupsWeb2.0tambintienensuslimitaciones[Yu,2011]: Escalabilidadpobre ComolosdiferentesproveedorespublicansuinformacinempleandodiferentesAPIs,esto implicaunprocesodeaprendizajeconstante,debiendoaprenderunaAPIdistintacadavez que surge un nuevo proveedor. La construccin de estos tipos de mashups no resulta escalable,alavezqueexigeunmantenimientocostoso. Difcilintegracin Amedidaqueaumentaelnmerodefuentesdeinformacinconlasquetrabajaelmashup, los usuarios se benefician ya que cuentan con ms informacin, pero al mismo tiempo aumentaelesfuerzonecesariopararealizarlaintegracindelasmismas,yaquecadaunase encuentraorganizadadedistintaforma,empleandodiferentesestndares.
11 12 13 14 15 http://doggdot.us/ http://digg.com/ http://slashdot.org/ http://delicious.com/ http://www.zdnet.com/blog/hinchcliffe/mashupsthenextmajornewsoftwaredevelopmentmodel/106

10|163

Captulo1Introduccin ConelsurgimientodelaWebSemnticaaparecieronlosmashupssemnticos.ElconceptodeWeb Semntica, propuesto por Tim BernersLee en el ao 200616, hace referencia a informacin publicada en la Web de tal forma que resulte legible a una mquina, que su significado est explcitamentedefinidoyquepuedaconectarseconotrainformacinexterna.Conceptualmente,la WebSemnticaserefiereaunconjuntodemejoresprcticasparapublicaryconectarinformacin estructuradaenlaWeb. Enlaprctica,laideadelaWebSemnticasepuederesumircomo[Yu,2011]: UsarelmodelodedatosRDF17parapublicarinformacin UsarenlacesRDFparainterconectarinformacindediferentesfuentes

ParaaclararelconceptodeWebSemntica,sepresentaacontinuacinunacomparacinconlaWeb tradicional[Yu,2011]: EnlaWebtradicional,cualquierapuedepublicarcualquiercosaencualquiermomento Lo mismo es cierto para la Web Semntica: cualquiera, en cualquier momento, puede publicarcualquierinformacin,conlaexcepcinquelamismatienequeestructurarsesegn unmodelollamadoRDF.AlorganizarselainformacinenunmodeloRDF,lamismapuede serusadapormquinas,noporpersonas. ParaaccederalaWebtradicionalseempleannavegadoresWeb Lo mismo es cierto para la Web Semntica, sin embargo, como est organizada en documentos RDF, se utilizan navegadores semnticos que puedan entenderlos, pudiendo seguirlosenlacesRDFparanavegarlasdiferentesfuentesdeinformacin.Losnavegadores Webtradicionales,porotrolado,estndiseadosparatratarcondocumentosHTML,conlo cualnoresultancomomejoropcinparaaccederalaWebSemntica. EnlaWebtradicionaltodoestrelacionadoentres LomismoesciertoparalaWebSemntica.Unhechoimportante,sinembargo,esquelos documentosHTMLcontenidosenlaWebtradicionalestnconectadosporenlacessintipo. ParalaWebSemnticaseutilizanenlacescontipoqueconectancosasarbitrariasenel mundo,conlocualsepuedenconstruiraplicacionesmuchomsinteligentes. TeniendoencuentaestascaractersticasdelaWebSemntica,ladiferenciaentreunmashupWeb 2.0 y uno semntico es que en este ltimo la informacin resulta legible a una mquina (su significadoestexplcitamentedefinido).Esdecir,unmashupsemnticoesunaaplicacinWebque extraeinformacindediversasfuentes,lacombina(integra)ypresentaenotrasformas,peroesta
16 http://www.w3.org/DesignIssues/LinkedData.html 17 ResourceDescriptionFramework:FrameworkdeDescripcindeRecursos

11|163

Captulo1Introduccin informacinpresentalacaractersticadepoderserinterpretadaporunamquina[Yu,2011]. EjemplodeunmashupsemnticoesRevyu18,desarrolladousandotecnologasyestndaresdela Web Semntica, en el que cualquiera puede ingresar para calificar y realizar una crtica sobre cualquier cosa en el mundo. Toda crtica que se ingresa se expresa, adems de su forma tradicional, como un grafo RDF. Revyu tambin consume datos semnticos de la Web para mejorarlaexperienciaporpartedelusuario. Lasprincipalescaractersticasdelosmashupssemnticosson[Yu,2011]: Escalabilidadbuena EnlaWebSemntica,lainformacinseexpresausandografosyestndaresRDF(un nico conjuntodeestndares),conlocualnoexisteunaAPIespecficaparaquecadaproveedor expongasuestructuradedatos.Porlotanto,laconstruccinyelmantenimientoresultan muyescalables,nohabiendonecesidaddeunaprendizajeconstantedenuevasAPIs. Fcilintegracin Amedidaqueaumentaelnmerodefuentesdeinformacinconlasquetrabajaelmashup semntico,losusuariossebeneficianyaquecuentanconmsinformacin,yelesfuerzo necesariopararealizarlaintegracindelasmismaspermaneceprcticamenteconstante,ya queelmashupsemnticotrataalasfuentesdemanerauniforme.

1.1Motivacinehiptesisdeestainvestigacin
LaWebSemnticarepresentaundesarrolloimportantesobrelaWebtradicional,ysurgienelao 2001apartirdeuntrabajodeTimBernersLee[BernersLeeetal.,2001]enelcualsedescribala ideadeagregarmssignificadoalainformacindisponibleenlaWeb,yhacerlodetalformaquela mismanoslopudieraserledaporlasaplicacionesdesoftware,sinotambininterpretada. EnestetrabajosepresentaelconceptodeWebSemntica,elcualimplicatenerlainformacin definidayorganizadadetalformaquepuedaserusadaporlasaplicacionesdesoftwarenoslopara su visualizacin, sino tambin para automatizacin, integracin y reutilizacin en varias aplicaciones. Deestaforma,BernersLee,HendleryLassilavieronalaWebSemnticacomounaevolucin, natural y necesaria, de la Web, con menos limitaciones sint cticas en cuanto al manejo de la informacin. SedijoqueunmashupsemnticoesunaaplicacinWebqueextraeinformacin(legibleauna mquinayconunsignificadoexplcitamentedefinido)dediversasfuentes,lacombina(integra)y presentaenotrasformas.
18 http://revyu.com/

12|163

Captulo1Introduccin Conelfindeaclararelfuncionamientodeunmashupsemntico,sepresentaacontinuacinel siguiente ejemplo: suponiendo queexiste unagente inteligente querecorre la Web buscando informacin,sequieresabertodolorelacionadoconunapersonadeterminada[Yu,2011]. Sielagente,alirrecorriendolaWeb,cadapginafuerauntpicodocumentoWeb,nopodra recopilarnada til.Lo nicoquepodraentenderdecadapginaseranlasetiquetasHTML,las cuales,ademsdeinformaralnavegadorsobrecmopresentarlainformacin,notransmitennada tilsobrelosrecursossubyacentes(paraelagente,cadapginaWebesunacadenadecaracteres). Si en cambio las pginas Web no fueran las tradicionales, adems de las etiquetas HTML, contendran algunas declaraciones que podran ser recopiladas por el agente. Por ejemplo, suponiendo que la primera pgina que accede el agente sea la pgina personal de la persona (http://www.liyangyu.com),stapodraproporcionarlassiguientesdeclaraciones: ns0:LiyangYu ns0:nombre "Liyang Yu". ns0:LiyangYu ns0:sobrenombre "LaoYu". ns0:LiyangYu ns0:autor <ns0:_x>. ns0:_x ns0:ISBN "978-1584889335". ns0:_x ns0:editorial <http://www.crcpress.com>. As,laprimeradeclaracinsepuedeleer: Elrecursons0:LiyangYutieneunns0:nombrecuyovaloresLiyang Yu. Oas: Elrecursons0:LiyangYutieneunapropiedadns0:nombrecuyovaloresLiyang Yu. La tercera declaracin es distinta a las 2 primeras. Al especificar el valor de la propiedad ns0:autorparaelrecursons0:LiyangYu,enlugardeutilizarunacadenadecaracterescomo valor,utilizaotrorecurso,elcualest identificadopor ns0:_x (encerradoentre < y > paraque resultemsevidente). SuponerqueelsiguientesitioWebquerecorreelagenteseawww.amazon.com.Igualqueantes,si lainformacindeestesitiofuerauntpicodocumentoWeb,elagentenopodrahacermucho,pero siproporcionaralassiguientesdeclaraciones: ns1:libro-1584889330 ns1:ISBN "978-1584889335". ns1:libro-1584889330 ns1:precio USD62.36. ns1:libro-1584889330 ns1:revision "4.5 estrellas". Alcompararestasdeclaracionesconlasprimeras,seapreciaqueelrecurso ns0:_x representa exactamenteelmismotemindicadoporelrecursons1:libro-1584889330. Unavezquesehaceestaconexinsurgenotras.Porejemplo,unapersonaquetieneunapginaWeb conlaURLhttp://www.liyangyu.com,tieneunlibropublicadoyelprecioactualdelmismo(en 13|163

Captulo1Introduccin Amazon)esU$S62.36.Lomsimportanteesqueestehechonosemencionaexplcitamenteen ningunodelossitiosWebporseparado.Eslapersonaquienhaintegradolainformaci ndeambos parallegaraestaconclusin. Para el agente, esta integracin tampoco resulta difcil: al ver el nmero ISBN 9781584889335enambasdeclaraciones,haceunaconexinentrelas2,agregandoautomticamente lasiguientedeclaracin: ns0:_x sameAs ns1:libro-1584889330. Enesteejemplo,elagentecombina(integra)lainformacinprovenientedemsdeunafuente.Para queelagentepuedahacerestaintegracin,lainformacinsedebeestructurardetalformaqueno slolapuedaleer,sinotambincomprender. Enesteejemplo,elfuncionamientodelagenteeseldeunmashupsemntico:extraerinformacin (estructuradadetalformaquelapuedacomprender)dedistintasfuentes,integrarlaypresentarla. La estructura donde cada fuente organiza su informacin con esta caracterstica se denomina ontologa, y en consecuencia la tarea del mashup semntico consiste en integrar las distintas ontologas, y es el problema ms complejo de resolver por parte del mashup semntico. Este problemarecibeelnombredemediacindeontologas. El objetivo de este trabajo consiste en definir una metodologa para el diseo de mashups semnticos,queayudealosdesarrolladoresaconstruirlosdesdecero. Estametodologaestar formadaporunaseriedeprocesos,loscualessedescompondrnenun conjunto de actividades. Para la descripcin de cada proceso y actividad, se especificar una introduccin;directricesdetalladaspropuestaspararealizarelprocesoolaactividad(definicin, objetivoprincipalalograr,entrada,salida,actoresinvolucrados,elmomentoenquesetieneque realizarylosdetallesderealizacin). Finalmente,lametodologapropuestaseevaluarmedianteuncasodeestudio.

1.2Objetivos
El objetivo principal de este trabajo es proponer una metodologa de diseo para mashups semnticos,paralocualhabrque: Analizarelprincipalproblemaaresolvereneldiseodemashupssemnticos,esdecir,la integracindelainformacinprovenientedelasdistintasfuentes. AnalizarmetodologasexistentesparaeldesarrollodeaplicacionesWebeinvestigarcules contemplanelmanejodeinformacinsemntica.

14|163

Captulo1Introduccin Proponerunametodologadediseoespecficaparaelcasodelosmashupssemnticos. Validarlametodologadediseoatravsdeuncasodeestudio.

1.3Aportedeestatesis
Delcumplimientodelosobjetivosdeestetrabajosedesprendenlassiguientescontribuciones: Explicar las distintas razones por las cuales se dificulta la integracin de informacin provenientededistintasfuentes. Especificarunametodologaparaeldiseodemashupssemnticos. Explicarlassolucionesposiblesparadistintoscasosdondesedebaintegrarinformacin.

1.4Organizacin
En el Captulo 2, Estado del Arte, se presenta brevemente la evolucin de la Web y sus aplicaciones,semencionancaractersticaspropiasdelosmashupssemnticosylosdesafosque imponeeldesarrollodeestostiposdeaplicaciones.Finalmenteseanalizanbrevementealgunosde los mtodos principales para el diseo de aplicaciones Web y se discute su adecuacin a los mashupssemnticos. EnelCaptulo3,OntologasylaWebSemntica,sepresentaelconceptodeontologayalgunos deloslenguajesparasurepresentacin,comoserRDF,RDFSyOWL. EnelCaptulo4,Mediacindeontologasseexplicaelprincipalproblemaaresolverporpartede unmashupsemntico:lamediacindeontologas.Semuestranlastcnicasexistentesyadoptadas enelcasoprcticodesarrolladoenelCaptulo6. EnelCaptulo5,Metodologaparaeldiseodemashupssemnticossepresentaunapropuesta metodolgicaparaeldiseodemashupssemnticos. En el Captulo 6, Caso de estudio, se presenta un caso prctico, desarrollado ntegramente siguiendolapropuestametodolgicapresentadaenelCaptulo5. EnelCaptulo7,Conclusiones,seincluyenlasconclusionesylimitacionesalpresentetrabajo,y trabajosfuturos. EnelApndiceA,RDF,sedesarrollanendetallelosconceptosdeRDF. EnelApndiceB,RFDS,sedesarrollanendetallelosconceptosdeRDFS. 15|163

Captulo1Introduccin EnelApndiceC,Tcnicasparaelmapeodeontologas,senombranalgunastcnicasparael mapeo deontologas. El mapeo de ontologas es una forma quepuede tomar la mediacin de ontologas.

16|163

Captulo2Estadodelarte

CAPTULO2ESTADODELARTE
Desdehaceunosaos,lamayorpartedelainfraestructuradedatossebasaenlaWeb,formada tantoporusuarioscomoporproveedoresdedatos.LaWebsehaconvertidoenpartefundamentalde la vida diaria de la gente, al igual que las redes que proporcionan la energa elctrica y las comunicaciones,porejemplo.Hoyenda,laspersonasseinforman,seeducan,seentretienenpor mediodeaplicacionesyserviciosWeb[Rossietal.,2008]. Todaestainfraestructuraest unidamedianteunacomplejainterconexindehardware,software, estndaresinternacionalesyprcticasaceptadas.Parahacerfrentealcrecimientodelossistemas Webyasegurarsueficacia,confiabilidadymantenimiento,hasurgidoladisciplinadeIngenier a Web,lacualcombinalasprcticastradicionalesdegestindeproyectosydesarrollodesoftware conunprocesoquevaevolucionandoatravsdeinnovaciones,talescomolaWebSemnticayla Web2.0. MuchosdesarrolladoressiguenviendoaldesarrolloWebslocomolacreacindepginasHTML, pasanporaltolosrequisitosanivelsistemayconsideracionesclavedediseo,nohacenusode metodologasdedesarrolloydiseoWeb,etc.Adems,errneamente,desarrollanestossistemasde lamismaformaquelossistemastradicionales[Murugesan,2008]. El objetivo de este captulo consiste en exponer los principales trabajos relacionados con metodologas para el desarrollo de aplicaciones Web, presentando, con el fin de facilitar su comprensin,unabrevereseasobrelaevolucindelaWebysusaplicaciones,comentandosus caractersticaspropiasencuantoadesarrolloylosprincipalesaspectosatenerencuenta.

2.1EvolucindelaWebysusaplicaciones
LaevolucindelaWebsepuedeanalizardesdedistintasperspectivas[Murugesan,2008]: elcrecimiento(nmero)desitiosypginasWeb elnmerodeusuarios lacantidaddevisitas lafuncionalidadylainteractividadqueofrecenlasaplicacionesWeb lastecnologasutilizadasparalacreacindeaplicacionesWeb larepercusinsocialyenlosnegociosdelaWeb unacombinacindetodosestos

Asimismo,estaevolucinhareunidodistintasdisciplinas,talescomotecnologasdemediosde comunicacin,cienciasdelainformacinycienciasdelacomunicacin,facilitandolacreacin, mantenimiento, distribucin y uso de diferentes tipos de informacin desde cualquier lugar y momento,empleandounavariedaddedispositivoscomocomputadorasdeescritorio,porttilesyde bolsillo,PDAs,telfonosmviles,etc. 17|163

Captulo2Estadodelarte EnloquerefierealdiseoWeb,resulta tilclasificarlossistemasyaplicacionesWebsegnsus caractersticasytecnologasutilizadasparasucreacindelasiguientemanera: laWebesttica laWebdinmica laWeb2.0 laWebmvil laWebSemntica

2.1.1LaWeb1.0
LaWebestticaes,antetodo,unacoleccindepginasHTML(estticas)queproporcionan informacinsobreproductos,serviciosofrecidos,etc.Alcomienzo,lamayoradelossitiosWeb eransimplementeunacoleccindepginas estticas.Despusdeuntiempo,laWebsevolvi dinmica,generandopginassobrelamarcha.LacapacidaddecrearpginasWebapartirdel contenidoalmacenadoenbasesdedatospermiti alosdesarrolladoresproporcionarinformacin personalizada a los visitantes. Estos tipos de sitios son conocidos como Web din micos [Murugesan,2008]. ApesarqueunvisitantedeestossitiosWebobtieneinformacinpersonalizadasegnsusrequisitos, lainteraccinenlosmismosesprincipalmenteenunsolosentido,ylainteractividaddelusuariose encuentralimitada(losusuariosnocumplenningnpapelenlageneracindecontenido).Alos sitiosWebestticosodinmicos,quenotienen,otienenmuypoca,interaccinconelusuario,se losconocecomoWeb1.0. LasprincipalescaractersticasdelaWeb1.0son[Tayloretal.,2008]: Aplicacionesdeunanicafuncin Publicacindebasesdedatosprivadas Elintercambioeintegracindeinformacinsloesposibleenlamentedelusuario(la informacinseencuentraensilos)

2.1.2LaWeb2.0
En los ltimos aos han surgido unos nuevos tipos de aplicaciones Web, conocidos como aplicaciones Web 2.0 (o Aplicaciones Orientadas a Servicios, SOA), las cuales permiten a las personascolaborarycompartirinformacin.Ejemplosincluyensitiosderedessociales,sitiosde colaboracin,etc[Murugesan,2008]. EstasegundageneracindeaplicacionesWebofreceinterfacesmsinteligentesyfacilidadespara losusuariosparageneraryeditarcontenidoy,as,enriquecerlosmismos. 18|163

Captulo2Estadodelarte Adems de aprovechar el potencial de los usuarios para generar contenido, facilitan su mantenimiento (por ejemplo, mediante el uso de etiquetas) y acceso (por ejemplo mediante la suscripcinacanalesdenoticias).EstosnuevostiposdeaplicacionesWebsontambi ncapacesde integrarmltiplesserviciosenunainterfazdeusuariorica(verSeccin2.1.5). Con la incorporacin de nuevas tecnologas Web como AJAX, Ruby, blogs,wikis, marcadores sociales y etiquetas, la Web se est volviendo cada vez ms dinmica e interactiva, donde los usuariosnoslopuedenaccederalcontenidodeunsitio,sinotambincontribuiralmismo. Todo este conjunto de tecnologas/estndares/formatos tambin constituye una desventaja al momentodeintegrartodaestainformacin,yaquelamismaseorganizadedistintasformas,ypor sobretodo,est pensadaparaserinterpretadaporlaspersonas,nopormquinas.Enlaseccin1.1 sepresentaunejemplosobreesto. Otra caracterstica de la nueva Web es la proliferacin de APIs, las cuales facilitan a los desarrolladoreslaobtencindeinformacinylacreacindenuevasaplicacionesbasadasenla misma. LasprincipalescaractersticasdelaWeb2.0son[Tayloretal.,2008]: Sepotencianlossilosdecontenido LasAPIsfacilitanlaintegracindeinformacin,aunquesonlosusuariosquienesrealizanla mayorpartedeestatarea,yaquelainformacin(generadaporusuariosoporpropietarios), noresultafcilmenteaccesiblenitransferible(anpermaneceensilos) SurgelaWebsocial

2.1.3LaWebmvil
Losavancesenlacomputacinmvilylascomunicacionesinalmbricas,juntoconlaadopcin generalizada de dispositivos mviles (telfonos inteligentes, PDAs y PCs de bolsillo), estn permitiendoaunnmerocrecientedeusuariosaccederalaWebutilizandodispositivosdemano [Murugesan,2008]. LostelfonosmvilescompitenconlascomputadorascomoplataformaparaelaccesoalaWeb. Estatendenciavaenaumento,amedidaquelostelfonosinteligentessevuelvancadavezms asequibles,queunmayornmerodepersonaslosusanyquemsaplicacionesWebmigranala Webmvileinalmbrica. Las aplicaciones Web mviles pueden tambin ofrecer algunas caractersticas adicionales en comparacin a las aplicaciones Web tradicionales de escritorio, tales como servicios de localizacin,capacidadessensiblesalcontextoypersonalizacin.

19|163

Captulo2Estadodelarte

2.1.4LaWebSemntica
EnlasaplicacionesWebactuales,lainformacinsepresentaenlenguajenatural,locualresulta fcilmenteprocesablealossereshumanos,noas alasaplicaciones.LaWebSemnticatienepor objetivosuperarestabarrera[Murugesan,2008]. SegnTimBernersLee[BernersLeeetal.,2001],laWebSemnticaesunaextensindelaWeb actual,dondealainformacinseledaunsignificadobiendefinido,facilitandoalasaplicacionesy alagentetrabajarencooperacin. ElconceptodeWebSemnticaimplicatenerinformacindefinidayorganizadadetalformaque puedaserusadaporlasaplicacionesdesoftwarenosloparasuvisualizacin,sinotambinpara automatizacin, integracin y reutilizacin en varias aplicaciones. Asociar significado con contenidooestablecerunacapadedatoscomprensiblesalasaplicacionespermiteaplicacionesm s inteligentes,facilitandotambinlosserviciosinteroperables. Elobjetivo ltimodelaWebSemnticaessoportarelintercambioglobaldeinformacindeuna manera escalable, adaptable y extensible, para que la misma pueda ser utilizada para un descubrimientomsefectivo,paraautomatizacin,integracinyreutilizacinatravsdevarias aplicaciones.

2.1.5AplicacionesRIA(AplicacionesEnriquecidas)
LasaplicacionesRIA19 sonaplicacionesWebqueseejecutanenunnavegador,norequierenla instalacin de software adicional y tienen las mismas caractersticas y funcionalidad de las aplicaciones tradicionales de escritorio. RIA representa la evolucin del navegador, desde una interfazestticadeltipopedidorespuesta,aunainterfazdinmicayasincrnica.Algunosejemplos deaplicacionesRIAincluyenaGoogleEarth,Gmail,etc[Murugesan,2008]. LaconstruccindeaplicacionesWebutilizandoestetipodetecnologa,sinembargo,nogarantiza unamejorexperienciaporpartedelusuario.Paraagregarvalor,losdesarrolladoresdebenabordar lasnecesidadesrealesdelosusuarioseimplementartcnicasestructuradasparalarealizacinde pruebasafindecomprenderyvalidarelusoydiseoapropiadosparalasmismas.

2.2AspectospropiosdeldesarrollodeaplicacionesWeb
ParaeldiseodemejoressistemasyaplicacionesWebresultaesencialcomprendercorrectamente lascaractersticasydemandaspuestassobreestostiposdeaplicaciones,loscualestienenciertas caractersticasnicasquediferenciansudesarrollodelsoftwaretradicional. ElentornooperativodelasaplicacionesWeb,juntoconsuenfoquededesarrolloeimplantaci n
19 RichInternetApplication:AplicacionesdeInternetEnriquecidas

20|163

Captulo2Estadodelarte msrpido,lasdiferenciandelasaplicacionestradicionales.Adems,seponemayor nfasisenla seguridad,yaqueresultanmssusceptiblesaviolacionesquelasaplicacionestradicionales. AlgunasdelascaractersticasprincipalesdelasaplicacionesWebson[Murugesan,2008]: La mayora son evolutivas por naturaleza, requiriendo frecuentes cambios en cuanto a contenido, funcionalidad, estructura, navegacin, presentacin o implementacin. En particular,evolucionanentrminosdesusrequisitosyfuncionalidad,especialmentedespus queseponenenuso.Enlamayoradeloscasos,lafrecuenciaylamagnituddeloscambios sonmuchomayoresqueenlasaplicacionestradicionales.Porlotanto,gestionarconxitosu evolucin,cambioylosnuevosrequisitosresultaundesafograndeenlotcnico,enlo organizativoyenlorelativoalagestin. Estnpensadasparaserutilizadasporunacomunidaddeusuariosgrande,diversayremota, condiferentesnecesidades,expectativasyhabilidades.Porlotanto,lainterfazdeusuarioy lascaractersticasdeusabilidaddebensatisfacerlasnecesidadesdeunacomunidaddiversay annima. Por otra parte, el nmero de usuarios que acceden en cualquier momento es impredecible,pudiendovariarbastante,creandoproblemasderendimiento. Exigenlapresentacindelaunavariedaddecontenido:texto,imgenes,audio,video,etc. Porlotanto,sudesarrolloincluyelacreacinygestindecontenidoypresentacindeuna manera atractiva, y una posterior gestin de cambios en forma continua despus del desarrolloinicialeimplantacin. Por lo general demandan un mayor grado de atractivo esttico, junto con una fcil navegacin. Frecuentementenecesitancontemplarelusodemltiplesidiomas,diferentessistemasde unidades,etc. Las necesidades de seguridad y privacidad son en general ms exigentes que en las aplicacionestradicionales. Necesitan soportar una variedad de dispositivos de visualizacin y formatos, hardware, softwareyredesconvelocidadesdeaccesomuydiferentes. Las ramificaciones encuantoalas fallas ola insatisfaccin delos usuarios pueden ser mucho peores que para el caso de los sistemas convencionales. Por otra parte, las aplicacionesWebpuedenfallarpormuchasrazonesdiferentes. Los tiempos de desarrollo son ms cortos, y esto influye significativamente en las metodologasdediseoydesarrolloyenelprocesoqueseadopteparasudesarrollo. LaproliferacindenuevastecnologasWeb,normasylapresincompetitivaparausarlas traesuspropiasventajasytambindesafosadicionalesparaeldesarrolloymantenimiento. 21|163

Captulo2Estadodelarte Lanaturalezaevolutivarequiereunprocesodedesarrolloincremental.

2.3Aspectospropiosdeldesarrollodemashupssemnticos
AdiferenciademuchosestndaresyprotocolosdeInternet,losmashupsnosurgieronapartirdeun procesodediseo,sinoamedidaquelagenteempez acombinarlosestndaresyprotocolos existentesenformasinnovadoras[Feiler,2008]. Desde la visin del usuario, un mashup generalmente se caracteriza por presentar informacin especficasinrequerirdelusuariomuchainteraccin.Esdecir,eselmashupynoelusuarioquien realizalasntesisdelainformacinparapoderpresentarla.Unaformadedescribirlosmashups consisteenconsiderarloscomoadministradoresdecomplejidad,conlocualseincluyenlos2 tiposprincipales:losmultifuenteylosdepresentacin[Feiler,2008]: Mashupsmultifuente Muchosmashupscombinaninformacinde2omsfuentes.Porejemplo,parauncdigo postaldado,unmashuppodracombinarlainformacindelcensojuntoconlainformacin econmica;otropodracombinarlosrestaurantesylassalasdecine,etc.Elcorazndeun mashupmultifuenteconsisteenlacombinacindefuentesdeinformacinagregandovalor. Mashupsdepresentacin Unmashupnonecesitacombinar2fuentesdeinformacin.Ensulugar,puedeutilizarlas tecnologasdelaWeb2.0parapresentarlamismainformacindemanerasdiferentes,por ejemplo,enformadetextoyenunmapa. Conelfindecaracterizarelfuncionamientodeunmashup,semuestraacontinuacinunmashup existentellamadoBeardscratchersCompendium20,elcualbuscayfiltrainformacinrelacionadaala msicaendistintas fuentes deinformacin enla Web(YouTube,YahooSearch,YahooMusic, Wikipedia,TwitteryFlickrentreotras).Estemashupseencuentradisponibleenunrepositorio llamadoProgrammableWeb21,yenlafigura2.3.1puedeverselapantallainicialdelmismo:

20 http://beardscratchers.com/ 21 http://www.programmableweb.com/

22|163

Captulo2Estadodelarte

Figura2.3.1PantallainicialdelmashupBeardscratchersCompendium Comosepuedeverdelafigura2.3.1,elmashupsolicitaqueseingreseelartistamusicalsobreel quesequiereobtenerinformacin,luegoconsultalasdistintasfuentesdeinformacinymuestraen unasegundapantalla(figura2.3.2)informacinrelacionadaconelperfildelartista,discografa, fotos,videos,fechasdesusprximaspresentaciones,etc.

Figura2.3.2SegundapantalladelmashupBeardscratchersCompendium 23|163

Captulo2Estadodelarte Paraqueeste(ocualquierotro)mashuppuedatomarinformacindedistintasfuentesycombinarla, lamismadeberepresentarsedetalformaquepuedaserledayprocesadaporelmismo. Unodelosproblemasquesurgeesquecadafuentebrindasuinformacinorganizndolaendistintas estructurasyempleandodiferenteslenguajes.As,hayfuentesqueempleanestructurasrelacionales usandobasesdedatos(SQLServer,MySQL,Oracle,PostgreSQL,etc),otrasqueempleanhojasde clculo como Excel, otras que emplean canales ( feeds) de noticias como RSS/Atom, otras que empleanserviciosWeb,etc. Porestarazn,sibienlautilidaddelosmashupsWeb2.0aumentaamedidaquecrecelacantidad defuentesdeinformacin(losusuariossebeneficianyaquecuentanconmsinformacinparasus aplicaciones), tambin aumenta la complejidad de integracin de las mismas (con un nmero pequeodefuentes,laintegracindelainformacinnopresentagrancomplejidad,peroamedida queaumentalacantidaddefuentes,aumentalacomplejidaddeintegracin[Tayloretal.,2008]). Debido al problema de integracin que presentan los mashups Web 2.0, surgen los mashups semnticos.Comosedijoantes,laWebSemnticahacereferenciaainformacinpublicadaenla Webdetalformaqueresultelegibleaunamquina,quesusignificadoestexplcitamentedefinido yquepuedaconectarseconinformacinexterna.Enlaprctica,esteconceptosepuederesumir como[Yu,2011]: ElusodeunmodelodedatosRDFparapublicardatosestructuradosenlaWeb ElusodeenlacesRDFparainterconectardatosdediferentesfuentesdedatos

Esdecir,todoloquesepublicaenlaWebSemnticasondocumentosRDF(documentosparaser usadospormquinas,noporpersonas).Alemplearun nicoconjuntodeestndares(RDF),cada fuente expone su informacin en una misma estructura, llamada ontologa, la cual puede representarseendistintoslenguajes(RDF,RDFS,OWL)segnsucomplejidad. Unavezquelasfuentestienenorganizadasuinformacinenontologas,unmashupsemnticolas deberintegrar.Esteproblema,llamadomediacindeontologas,eselmscomplejoaresolver,ya quecadaontologaporlogeneralempleasuspropiostrminosyrelaciones. Segn lo explicado anteriormente, se puede hacer la siguiente caracterizacin de un mashup semntico: Trabajacondistintasfuentes,cadaunadelascualesorganizasuinformacinensupropia ontologa, empleando sus propios trminos y relaciones, lo cual da lugar al problema conocidocomomediacindeontologasalmomentodeintegrartodaestainformacin. La informacin con la que trabaja se encuentra estructurada en un nico conjunto de estndares(RDF),conlocualpuedetrataratodaslasfuentes deinformacindeforma uniforme[Tayloretal.,2008]. AligualqueunmashupWeb2.0,encuantoalainterfazdeusuariosuelesermssimpleque 24|163

Captulo2Estadodelarte unaaplicacinWebtradicional,requiriendounanavegacinfcilyrpidasindemasiada interaccinporpartedelosusuarios. Exigelapresentacindeunavariedaddecontenido:texto,imgenes,audio,video,etc.

2.4Desafosdeldesarrollodemashupssemnticos
Comosedijoantes,unmashupsemnticoesunaaplicacinWebqueextraeinformacindediversas fuentes, la combina (integra) y presenta en otras formas, pero esta informaci n presenta la caractersticadepoderserinterpretadaporunamquina. Alasestructurasdondecadaunadeestasfuentesorganizantodasuinformacinselasdenomina ontologas.Lasontologasmodelanlaestructuradelainformacin(porejemplo,larepresentacin deunconjuntodeclasesysuspropiedadesoatributos),lasemnticadelainformacin(enforma de axiomas que expresan restricciones, como relaciones de herencia o restricciones sobre las propiedades)ylasinstanciasdelainformacin(llamadasgeneralmenteindividuos).Paraintegrar lasontologassedebeentenderlarelacinentrelasestructuras(clases,propiedades,relaciones)en lasdiferentesontologas,yusarlasemnticadelasmismasparamodelarestasrelacionesyascrear unaontologaintegradayconsistente[Udreaetal.,2007]. Comoejemplo,considerar2fuentesdeinformacinqueclasificandiferentestiposdecmarasde foto [Walton, 2007]. Suponer adems que ambas fuentes guardan su informacin empleando diferentesformatos,porejemplo,lafuente1empleaunabasededatosrelacionalSQL,mientrasque lafuente2empleaXML[Euzenat&Shvaiko,2007]. Como un mashup semntico es una aplicacin Web que integra informacin (informacin semntica)dedistintasontologas,elprimerpasoconsisteentransformarlarepresentacinde cadafuenteenunaontologa(verfigura2.4.1).

Figura2.4.1Transformacindelaestructuradecadafuenteenunaontologa As, la fuente 1, que organiza su informacin en una base de datos relacional, mediante el wrapper1transformaestarepresentacinenlaontologaLO 1,yelwrapper2hacelomismocon lafuente2,obteniendolaontologaLO2. Luego,suponerquelasontologasLO1yLO2tienenlaestructuramostradaenlasfiguras2.4.2y 25|163

Captulo2Estadodelarte 2.4.3respectivamente:

Figura2.4.2OntologaLO1paraclasificarlosdiferentestiposdecmarasdefoto

Figura2.4.3OntologaLO2paraclasificarlosdiferentestiposdecmarasdefoto Laintegracindeestasontologasconsisteenlaiteracindelossiguientespasos[Klein,2001]: 1. Encontrarloslugaresdondeambassesolapan. 2. Relacionarlosconceptossemnticamentecercanosmedianterelacionesdeequivalenciay subsuncin. 3. Verificarlaconsistencia,coherenciaynoredundanciadelresultado. Paralaimplementacindeestospasossehanpropuestodistintassoluciones,cadaunadesdepuntos devistasdistintos,abarcandobasesdedatos,sistemasdeinformacin,inteligenciaartificial,etc. Estassolucionesaprovechanlasdiversaspropiedadesdelasontologas(estructura,instanciasde datos,semntica,etiquetas,etc),usanycompartentcnicas dediferentescampos(estadsticay 26|163

Captulo2Estadodelarte anlisis de datos, aprendizaje automtico, razonamiento automatizado, lingstica, etc) y atacan problemas similares difiriendo en la forma en que combinan y explotan sus resultados. Como consecuencia,sondifcilesdecompararydescribir[Euzenat&Shvaiko,2007]. Elobjetivodeestetrabajoconsisteendefinirunametodologaparadisearunmashupsemntico,la cual,portodoloexplicadoantes,deber contemplarelproblemadelaintegracindelasdistintas ontologas.

2.5Accesoalasfuentesdeinformacin
Sedijoquecadafuentepuedeorganizarsuinformacindedistintaforma,empleandoestructuras relacionales(basesdedatosSQLServer,MySQL,Oracle,PostgreSQL,etc),hojasdeclculocomo Excel,canales(feeds)denoticiascomoRSS/Atom,serviciosWeb,etc. Paraaccederalainformacinqueproporcionaunafuente,unmashuppuede[Feiler,2008]: Utilizar un servicio Web para obtener informacin desde un recurso del cual no tiene control.Enestos casos,elmashupaccedealainformacinquebrindaelservicioWeb medianteunaAPIproporcionadaporelmismo.Ejemplosdeestostiposdeserviciossonlos proporcionadosporeBay,Amazon,Flickr,Google,etc. Obtenerinformacindesdeunrecursosobreelcualstienecontrol .Puedeserunabasede datos,unarchivoodatosqueestnenelmismocdigodelmashup.Comoelmashups tienecontrolsobreestosrecursos,puedeusarunaAPIono. ObtenerinformacindesdeunrecursosobreelcualnotienecontrolsinusarunaAPI . Ejemplosdeestosonloscanales(feeds)denoticiasRSS.Siestoscanalessonp blicos, cualquierapuedeleerlossinutilizarunaAPIpropietaria.

2.5.1ServiciosWeb
OriginalmentelaWebconsistadedocumentos(pginasWeb)yenlacesentrelosmismos.Laidea inicialfuedesarrollarunabasededatosconinformacinuniversalquepudieraseraccedidade formasimpleyconfiableporlosconsumidores[Cardoso,2007]. Distintas organizaciones aprovecharon estas tecnologas para gestionar, organizar y distribuir informacinentresusclientesysocios,yamedidaquecomenzaronaimplementarsolucionespara comercioelectrnicosedieroncuentaquelasmismasnoresultabansuficientesparavendersus productosporInternet. Porotrolado,debidoalaglobalizacin,lasorganizacionesfueronfusionndoseprogresivamente, creandoentornoscompuestosporsistemas,aplicaciones,procesosyfuentesdedatosheredados, autnomos, distribuidos y heterogneos, surgiendo la necesidad de interconectarlos a fin de 27|163

Captulo2Estadodelarte satisfacerlascrecientesexpectativasdesusclientesydelnegocioymejorarsuproductividady eficiencia, lo cual dio lugar al desarrollo y despliegue de soluciones para integracin de aplicacionesempresariales(EAI). LamayoradelassolucionesparaEAIrequerandeprotocolosyformatoscostososypropietarios, que presentaban muchas dificultades al momento de integrar sistemas internos con sistemas externosejecutndoseenotrascomputadoras.Paralograresteniveldeintegracin,sedesarrollaron solucionesdeltipobusinesstobusiness(B2B),basadasenelusodeXMLpararepresentardatos, quealserindependientesdelaplataformaydelproveedor,permitanprocesarcualquierdocumento queseajustaraalmismo. LassolucionesdeB2Bmuchasvecespresentabanunfuerteacoplamientoentrelasaplicaciones, limitandolaflexibilidaddelossistemas.Comoresultado,yparasuperarestaslimitaciones,surgi elconceptode arquitecturaorientadaaservicios (SOA22),elcualdefineunmtododediseo, desarrollo, despliegue y gestin de componentes computacionales discretos para lograr la estructuracin, bajo acoplamiento y estandarizacin de funcionalidad entre las aplicaciones de software. SibienhaymuchasposibilidadesdiferentesparaimplementarunaarquitecturaSOA(serviciosWeb, JavaRMI,DCOMyCORBA),losserviciosWebsonactualmentelasolucinmsdeseable,yaque eliminanmuchosdelosproblemasdeinteroperabilidadentrelasaplicaciones. Los servicios Web estn basados en tecnologa de computacin distribuida y proporcionan un medioestndardeinteroperabilidadentrediferentesaplicacionesdesoftware,utilizandoprotocolos yformatosXML,ycumplenconvariosestndaresdelaWeb,comoWSDL23ySOAP24,haciendoa estaplataformadeserviciosindependientedellenguajeydelproveedor. Se puede definir a los servicios Web como entidades computacionales accesibles a travs de Internetmedianteinterfacesindependientesdelaplataformaydellenguajedeprogramacin[Preist, 2004].

2.5.2ServiciosWebsemnticos
Los servicios Web prometen hacer frente a las necesidades de integracin de aplicaciones proporcionandounmarcobasadoenestndares(WSDL,UDDI25,SOAP,etc)paraintercambiar informacinentrelasmismasdeformadinmica.Actualmente,estosestndaresestndiseados pararepresentarlainformacinsobrelasinterfacesdelosservicios,laformaenquesedespliegany cmollamarlos,peroestnlimitadosparaexpresarculessonlascapacidadesyrequerimientosde losservicios,impidiendolaintegracinautomticadeaplicaciones[Cardoso,2007]. Sitodoslosproveedoresdeserviciosacordaranunformatoestndarparalarepresentacindesus
22 23 24 25 ServiceOrientedArchitecture:ArquitecturaOrientadaaServicios WebServicesDefinitionLanguage:LenguajedeDefinicinparaServiciosWeb SimpleObjectAccessProcotol:ProtocolodeAccesoSimpleaObjetos UniversalDescription,DiscoveryandIntegration:DescripcinUniversal,DescubrimientoeIntegracin

28|163

Captulo2Estadodelarte servicios,nohabranecesidaddeestasemntica.Comonotodaslasaplicaciones,ysusservicios correspondientes,sepuedenestandarizar,estollevaadisparidadesenlasespecificacionesdelos serviciostantoenlosproveedorescomoenlossolicitantes. Unprimerpasohacialasolucindeesteproblemaeselevarseporencimadeestasdiferenciasenla representacindelasinterfacesdelosservicioseidentificarlassimilitudessemnticasentrelos mismos [Paolucci et al., 2002]. El agregado de semntica para representar las necesidades y capacidadesdelosserviciosWebesesencialparalaautomatizacindeldescubrimientoyejecucin delosmismos. EstanecesidaddesemnticaenlosserviciosWebhallevadoalaconvergenciadelosconceptos serviciosWebyWebsemntica,dandolugaralosserviciosWebsemnticos.Losservicios Web semnticos son servicios Web cuyas propiedades, capacidades, interfaces y efectos estn codificadosdeformanoambiguaysoninterpretablesporunamquina[McIlraithetal.,2001]. SialosserviciosWebyalainformacindisponiblealmashupselesagregaestasemntica,se podr lograr que la aplicacin tome decisiones inteligentes. Por ejemplo, el mashup semntico comprender qu serviciosrepresentaninformacindemapas,culesrepresentantiendasenlnea, etc.Yapartirdeestosservicios,elmashupsemnticosabr qu informacinrepresentaunttulo, unadescripcin,unprecio,etc[Chase,2007A]. Actualmentecon2tendencias,OWLS26 yWSMO27,losserviciosWebsemnticosprometenun sistema quecomprenda qu representan los datos subyacentes, pudiendo utilizarlos de maneras especficas.

2.6Estadodeldesarrollodemashups
Engeneral,eldesarrollodemashupssiguesiendoengranmedidaunaactividad adhoc:segeneran manualmente utilizando tecnologas como HTML, CSS y JavaScript, resultando una tarea que consumemuchotiempoydifcilalusuariotpicodeInternet. Enlos ltimosaos,sehanpropuestounaseriedeherramientasparasimplificarelprocesode creacindemashups[Fischeretal.,2009]: Herramientasqueempleanprogramacin SonherramientasqueutilizanunIDEparacrearlosmashups.IBMWebSpheresMash 28es unentornodedesarrolloyejecucinparaaplicacionesWebdinmicasquepermiteunafcil reutilizacin y rpida integracin de diferentes servicios Web. BungeeConnect 29 es otra plataformaquepermitealosusuarioscrearaplicacionesWeb,automatizandolaimportaci n deserviciosWebpblicos,ascomotambinbasesdedatosyalmacenesdedatos.
26 27 28 29 OWLorientadoaServicios WebServiceModellingOntology:OntologadeModeladodeServiciosWeb http://www01.ibm.com/software/webservers/smash http://www.bungeelabs.com/

29|163

Captulo2Estadodelarte Herramientasqueempleanlenguajesdescripting ExistenherramientasqueempleanlenguajesdescriptingcomoWSO2MashupServer 30,la cualpermitecomponerservicios,desplegarserviciosdesarrolladosenJavaScript,accedera serviciosREST,canales(feeds),etc. Herramientasqueconectancomponentes Herramientas que conectan componentes, como Yahoo Pipes 31, Openkapow32, Proto Financial33, Anthracite34 y Lotus Mashups35 mezclan y combinan datos, funcionalidad o presentacin conectando componentes grficamente, los cuales proporcionan distintas funcionalidades(recuperacin,transformacinypresentacindedatos)ysedebenconectar paralograrlacoordinacindeseada.Generalmentesoportandiferentestiposdefuentesde datos,talescomoserviciosWebRESTy/oSOAP. Herramientasparahojasdeclculo Herramientas para hojas de clculo, como Extensio Excel Extender 36, se centran en la mezcladedatos.Adiferenciadelasqueconectancomponentes,losdatosprovenientesde unafuenteseinsertanenlasceldasdeunahojadeclculo.ExtensioExcelExtenderutiliza serviciosWebdeltipoSOAPparacrearmashups,ypuedeproporcionaraccesoaSAP,varias basesdedatosyarchivosplanos. Herramientasqueempleanprogramacinpordemostracin Laprogramacinpordemostracinpermitealosusuariosaprenderunsistemamediante ejemplos.Dapper37esunservicioonlinequepuedecrearunaAPIparacualquiersitioWeb, seleccionandogrficamenteloscamposquesedebenextraer. Herramientasbasadasenlageneracinautomticademashups PiggyBank38,elcualesunaextensinparaFirefoxqueconviertealnavegadorenunmashup semntico,puedeprocesardatos RDFymezclarlosentres automticamente.Los datos RDFqueprocesaPiggyBankpuedenprovenirdearchivosRDFoscrapersqueextraendatos nosemnticosylostransformanenRDF.

30 31 32 33 34 35 36 37 38

http://ws02.org/projects/mashup http://pipes.yahoo.com/pipes/ http://openkapow.com/ http://www.protosw.com/ http://www.metafy.com/products/anthracite http://www01.ibm.com/software/lotus/products/mashups/ www.extensio.com/ http://www.dapper.net/ http://simile.mit.edu/piggybank/

30|163

Captulo2Estadodelarte

2.6.1Conclusiones
Eldesarrollodemashupsqueempleanprogramacinolenguajesdescriptingrequiereexperiencia entecnologasWebyprogramacinsisequierencrearmashupscomplejos,resultndoledifcilaun usuariosinexperienciasucreacin. Las herramientas semiautomticas (las que emplean programacin por demostracin, las que conectancomponentesylaspensadasparahojasdeclculo)estnpensadasparausuariosfinalessin muchosconocimientostcnicos,perorequierendeotrosconocimientosprevios:elusuariofinal debeseleccionarmanualmentelasfuentesdeinformacin,locualnoslorequierelaubicacin (URL,porejemplo)decadafuente,sinotambinconocimientosobrelaestructuraysemnticadela informacinquecontienen.Adems,esprobablequeelusuariofinalnoconozcamuchasfuentes disponibles, encontrndose limitado a un conjunto de fuentes conocidas, las cuales pueden no satisfacersusrequisitosparaunasituacinespecfica. Enlasherramientasqueconectancomponentes,seespecificanlosmashupsmedianteunflujode diferentescomponentespararecuperar,transformar,combinarypresentarinformacinapartirde diferentes fuentes.A medida queaumenta la complejidad del mashup, aumenta la cantidad de componentesaconectar,resultndolecadavezmsdifcilaunusuarioseleccionarlosmismos. Otra limitacin importante de los mashups que emplean programacin, lenguajes de scripting, programacinpordemostracin,queconectancomponentesylospensadosparahojasdeclculoes lafaltadeadaptabilidad,locualsignificaquesilasfuentesdeinformacinyfuncionalidadesdel proveedorcambiansuestructuraocomportamiento,elmashuptienequeserrediseado,requiriendo conocimientossobretecnologasWebyprogramacin. En la generacin automtica de mashups las fuentes se seleccionan automticamente y la informacinrecuperadasecombinasininteraccindelusuario.Estageneracinautomticarequiere lautilizacinextensivadesemntica,peroprometesuperarlaslimitacionesgeneralesindicadas anteriormente.

2.7MtodosdediseodeaplicacionesWeb
ParaeldesarrollodeaplicacionesWeb,laIngenieraWebhaadaptadolosmtodosdelaIngeniera de Software, que fueron concebidos inicialmente para dar soporte al desarrollo de software tradicional,esdecir,nopensadoparalaWeb. Los mtodos de la Ingeniera Web se basan en un principio similar [Fons et al., 2008]: las aplicacionesWebdebenserdesarrolladascomenzandoporunadescripcinslida,precisaysin ambigedades a partir de un esquema conceptual. Luego, este esquema conceptual se debe transformar adecuadamente en su producto software correspondiente haciendo corresponder las primitivas conceptuales con sus representaciones software. Para lograr esto, los esquemas conceptualestradicionales,quesecentrabanprincipalmenteenlacapturadelaestructuraestticay elcomportamientodelsistema,seextendieronconnuevosmodelosymecanismosdeabstraccin 31|163

Captulo2Estadodelarte paracapturarlosnuevosaspectosintroducidosporlasaplicacionesWeb. EntrelasmetodologasmsimportantesparaeldiseodeaplicacionesWeb,sepuedennombrarlas siguientes,discriminndolassegntenganencuenta,ono,elaspectosemnticodelainformacin: Notienenencuentaelaspectosemnticodelainformacin: OOWS OOHDM UWE IDM WebML Stienenencuentaelaspectosemnticodelainformacin: HERA WSDM

A continuacin se presenta una descripcin de cada una de las metodologas nombradas anteriormente.

2.7.1OOWS(ObjectOrientedApproachforWebSolutionsModeling)
OOWS[Fons etal.,2008]esunmtododelaIngenieraWeb,guiadopormodelos(MDA),que proporcionaunsoportemetodolgicoparaeldesarrollodeaplicacionesWebqueutilizatcnicasdel modeladoconceptual. Algunascaractersticas: Proporcionaunaguametodolgicayprecisaparairdelproblemaalasolucin(producto softwarefinal). Se centra en la integracin del modelado conceptual y del diseo de la navegacin: al modeladodelanavegacinseloconsideracomounanicafasegenrica. Extiende el mtodo de modelado conceptual orientado a objetos llamado OOMethod, introduciendo unmodelo de navegacin para especificar caractersticas especficas a las aplicacionesWeb.

OOMethod es un mtodo, orientado a objetos, de produccin de software que proporciona capacidadesdegeneracindecdigobasadasenmodeloseintegralastcnicasdeespecificacin formalesconlasnotacionesconvencionalesdelmodeladoorientadoaobjetos. OOMethod proporcionaunmodeloindependientedelaplataforma(PIM)dondesecapturanlos aspectosestticosydinmicosdelsistemapormediode3vistascomplementarias,lascualesestn 32|163

Captulo2Estadodelarte definidasporlossiguientesmodelos: Un Modelo Estructural que define la estructura del sistema (sus clases,operaciones y atributos)ylasrelacionesentreclases(especializacin,asociacinyagregacin)pormedio deundiagramadeclases. UnModeloDinmicoquedescribelassecuenciasdevidavlidasparaunobjetoparatodas lasclasesdelsistemausandodiagramasdetransicindeestados.Lasinteraccionesentrelos objetos (comunicaciones entre objetos) tambin se representan mediante diagramas de secuenciasenestemodelo. UnModeloFuncionalquecapturalasemnticadeloscambiosdeestadoparadefinirlos efectosdeserviciousandounaespecificacintextualformal.

LasaplicacionesWebintroducenpropiedadesadicionalesquenosontratadasporestostiposde mtodosduranteelproceso,conlocuallosmismosrequierenalgunasextensionesparahacerles frente.Estasnuevaspropiedadeshacenreferenciaaaspectoscomolanavegacin,presentacin,y otrascaractersticasavanzadascomolapersonalizacin.Paralograresto,OOWSintroduce3nuevos modelosalPIM: Modelodeusuarios:permiteespecificarunacategorizacinsobrelostiposdeusuariosque puedeninteractuarconelsistema,ascomolasrelacionesentrelosmismos. Undiagramadeusuariospermiteespecificarlostiposdeusuariosquepuedeninteractuar conelsistema,loscualesseorganizanjerrquicamenteatravsderelacionesdeherencia, permitiendoespecificarlaespecializacindelanavegacin.Lossubtiposdeusuariospueden heredar lasemnticadenavegacinasociadaasus supertipos, permitiendo reutilizarlas descripcionesdenavegacin. Estemodeloclasificalostiposdeusuariosen3grupos: Usuariosannimos (representadosconun'?').Representanalosusuariosqueno estnvalidadosenelsistema. Usuariosregistrados(representadosconuncandado).Representanalosusuariosque sevalidaron(registraron)enelsistema. Usuarios genricos (representados con una 'X'). Representan usuarios abstractos (usuariosquenosepuedeninstanciar).

Modelodenavegacin:permiteespecificarlavisibilidaddelsistema(entrminosdedatos yfuncionalidad)yloscaminosvlidosparaatravesarlaestructuradelmismo(lasemntica denavegacin)paracadatipodeusuario. SeentiendepornavegacinaunsaltodeunapginaWebaotra,provocadoporlaseleccin 33|163

Captulo2Estadodelarte deunenlace,enelquesecambiadecontenido(informaciny/ofuncionalidad). ElmodelodenavegacinrepresentalasemnticanavegacionaldeunaaplicacinWeben baseaunmodelodeobjetosyalosrequisitosdenavegacin.Elmodelodenavegacinse introdujoenelenfoqueOOWSparaespecificarlavistasobreelsistemaentrminosde clases,atributosylasoperacionesyrelacionesentrelasclasesparacadatipodeusuario definidoenelmodelodeusuarios. Estemodeloseconstruyeen2fases.Laprimerfase, fasegeneral,defineunavisinglobal sobrelanavegacin.Lasegundafase, fasedetallada,haceunadescripcindetalladadelos elementosdefinidosenlafaseanterior. Modelodepresentacin:sepresentaparaespecificarlosrequisitosdepresentacindelos elementosdefinidosenelModelodeNavegacin. Unavezqueest construidoelmodelodenavegacin,hayqueespecificarlosrequisitosde presentacinutilizandoestemodelo,elcual dependeengranmedidadelanterior,yaque utilizaloscontextosdenavegacinparadefinirlaspropiedadesdepresentacin. Los requisitos de presentacin se especifican por medio de patrones. Los patrones de presentacinbsicossonlossiguientes: Paginacindelainformacin:estepatrnpermiteespecificarla informacinpara hacerelpaginado.Todaslasinstanciasrecuperadassedividenenbloqueslgicosde modoqueslounbloqueseavisiblealavez.Seproporcionanmecanismospara avanzaroretroceder. Criterios de ordenamiento: este patrn define un ordenamiento de poblacin de clasesascendenteodescendente,utilizandoelvalordeunoomsatributos.Sepuede aplicaryaseaalasclasesdenavegacinoalasestructurasdeacceso,alos ndicesy alosfiltros,especificandocmoseordenarnlasinstanciasrecuperadas. Disposicindelainformacin:hay3patronesbsicosdedisposicinyunoperador dedisposicin.Los3patronesson:registro,tabular(verticalyhorizontal)yrbol. Eloperador(maestrodetalle)seaplicaalasrelacionesmuchosamuchosusando unodeestospatronesbsicosdedisposicinparamostrarlapartedeldetalle.

2.7.2OOHDM(ObjectOrientedHypermediaDesignMethod)
ElMtododeDiseoHipermediaOrientadoaObjetos [Rossi&Schwabe,2008] esunenfoque basado en modelos para desarrollar aplicaciones Web. Permite al diseador especificar una aplicacinWeb,vistacomounainstanciadeunmodelohipermedia,medianteelusodevarios metamodelosespecializadosquesecentranendiferentesaspectosdelaaplicacin.Unavezquelos mismossehanespecificadoparaunaaplicacindada,esposiblegenerarelcdigoqueimplementa 34|163

Captulo2Estadodelarte laaplicacin. OOHDMutilizadiferentesmecanismosdeabstraccinycomposicinenunframeworkorientadoa objetosparapermitir,porunlado,unadescripcinconcisadeelementosdeinformacincomplejos y, por otro, especificar los complejos patrones de navegacin y las transformaciones de las interfaces. EnOOHDMunaaplicacinWebseconstruyeen5pasosquedansoporteaunmodelodeproceso incrementalodeprototipos.Cadapasosecentraenunaspectoparticulardeldise o,construyendo un modelo apropiado. Durante todo el proceso se utiliza la clasificacin y la generalizacin/especializacin para mejorar la capacidad de abstraccin y las oportunidades de reutilizacin. Los5pasosqueconformanestemtodoson: 1. Obtencin de los requisitos: consiste en reunir las necesidades de todos los interesados (stakeholders).Paralograresto,esnecesarioidentificarprimeroalosactoresylastareas quedebenrealizar. Luego,sepreparanlosescenarios(ounborradordelosmismos)paracadatareaytipode actor. Luego,estosescenariosformanloscasosdeuso,queserepresentanmedianteDiagramasde InteraccindeUsuario(UIDs).Estosdiagramasproporcionanunarepresentacingrficay concisadelflujodeinformacinentreelusuarioylaaplicacindurantelaejecucindeuna tarea.LosUIDssonvalidadosconlosactores,yrediseadosencasodesernecesario.En secuencia,seaplicaunconjuntodepautasalosUIDsparaextraerunmodeloconceptual bsico. 2. Diseo conceptual: se construye un modelo conceptual del dominio de la aplicacin utilizandoprincipios bienconocidos delmodeladoorientadoaobjetos.Nosetienenen cuentalostiposdeusuariosylastareas,slolasemnticadeldominiodelaaplicacin.Se construyeunesquemaconceptualapartirdelossubsistemas,clasesyrelaciones.OOHDM utilizaUML,conalgunasextensiones,paraexpresareldiseoconceptual. 3. Diseo de la navegacin: en OOHDM, a una aplicacin se la ve como una vista de navegacinsobreelmodeloconceptual.Estoreflejaunagraninnovacin,quereconoceque losobjetos(elementos)porloscualesnavegaelusuarionosonobjetosconceptuales,sino otrostiposdeobjetosqueseconstruyenapartirdeunoomsobjetosconceptuales,para adaptarsealosusuariosyalastareasalascualessedebedarsoporte. Enotraspalabras,paracadaperfildeusuariosepuededefinirunaestructuradenavegacin diferentequereflejelosobjetosylasrelacionesenelesquemaconceptualdeacuerdoalas tareasquedeberealizarestetipodeusuario.Laestructuradeclasesdenavegacindeuna aplicacinWebsedefinemedianteunesquemaquecontienelasclasesdenavegacin.

35|163

Captulo2Estadodelarte EnOOHDMexisteunconjuntopredefinidodetiposbsicosdeclasesdenavegacin:nodos, enlaces, anclas y estructuras de acceso. La semntica de nodos, enlaces y anclas es la habitual en las aplicaciones hipermedia. Los nodos en OOHDM representan ventanas lgicas(ovistas)sobrelasclasesconceptualesdefinidasduranteeldiseoconceptual.Los enlaces son realizaciones hipermedia de relaciones conceptuales, as como tambin asociaciones relacionadas con las tareas. Las estructuras de acceso, como los ndices, representanlasposiblesformasdeiniciarlanavegacin. LaestructuradenavegacindeunaaplicacinWebsedescribeentrminosdecontextosde navegacin,quesonconjuntosdenodosrelacionadosqueposeenalternativasdenavegacin (opciones)similares,yresultansignificativosparaundeterminadopasoenalgunatareaque estrealizandoelusuario. 4. Diseoabstractodelainterfaz:elmodeloabstractodeinterfazseconstruyedefiniendolos objetosperceptibles,tambinllamados widgets,quecontieneninformacin(porejemplo, unaimagen,unmapadelaciudad,etc)entrminosdeinterfaces.Lasinterfacessedefinen comoagregacionesrecursivasdeclasesprimitivas odeotrasinterfaces.Losobjetosde interfazsehacencorresponderconlosobjetosdenavegacin,brindndolesunaapariencia perceptible,oavaloresdeentrada.Elcomportamientodelainterfazsedefineespecificando laformadecontrolarloseventosexternosygeneradosporlosusuariosycmoserealizala comunicacinentrelainterfazylosobjetosdenavegacin. 5. Implementacin: la implementacin hace corresponder la interfaz y los objetos de navegacinconobjetosentiempodeejecucinypuedeinvolucrararquitecturaselaboradas, porejemplo,clienteservidor,enlaquelasaplicacionessonclientesaunservidordebasede datoscompartidoquecontienelosobjetosconceptuales.

2.7.3UWE(UMLbasedWebEngineering)
LaIngenieraWebBasadaenUML[Kochetal.,2008]surgiafinesdeladcadadel90conlaidea deencontrarunaformaestndarparalacreacindemodelosdeanlisisydiseodesistemasWeb basadaenlosmtodosvigentesenesemomento(OOHDM,RMMyWSDM).Elobjetivofueusar unlenguajecomn,oalmenosdefinirlascorrespondenciasbasadasenmetamodelos,entrelos enfoquesexistentes. En ese momento el Lenguaje Unificado de Modelado (UML), que evolucion a partir de la integracinde3tcnicasdiferentesdemodelado(Booch,OOSEyOMT)parecaserunenfoque prometedorparaelmodeladodesistemas.Apartirdeesosprimerosesfuerzosdeintegraci n,UML seconvirtienlalinguafrancadelaIngenieradeSoftware(orientadaaobjetos). UnacaractersticadestacadadeUMLesqueproporcionaunconjuntodeayudas (losllamados mecanismos de extensin) para la definicin de lenguajes de modelado de dominio especfico (DSL).Adems,losnuevosDSLssiguensiendocompatiblesconUML,locualpermiteelusode todassuscaractersticas(extensionesWebespecficas,porejemplo). 36|163

Captulo2Estadodelarte TantolaaceptacindeUMLcomoestndarparaeldesarrollodesoftware,comolaflexibilidadque ofrecenlosmecanismosdeextensin,sonlasrazonesdelaeleccindeUMLenlugardetcnicasde modeladopropietarias.LaideaseguidaporUWEdeadherirseanormasnoselimitaaUML, tambin utiliza XMI como formato de intercambio de modelos (con la esperanza de futuras herramientasdeinteroperabilidad,posiblesgraciasaunXMIverdaderamenteportable),MOFpara el metamodelado, los principios guiados por modelos dados por el enfoque de la Arquitectura GuiadaporModelos(MDA)deOMG,ellenguajedetransformacinQVTyXML. EldesarrollodesistemasWebestsujetoacambioscontinuosenlosrequisitosdelusuarioyenla tecnologa,conloquelosmodelos,encualquieretapadelprocesodedesarrollo,tienenqueser fcilmente adaptables a estos cambios. Para hacer frente eficientemente a esta flexibilidad requerida, UWE aboga por una estricta separacin de incumbencias en las primeras fases del desarrolloeimplementaunprocesodedesarrolloguiadopormodelos. LametodologapropuestaporUWEcomprendelossiguientespasos: 1. Especificacinderequisitos:elprimerpasohaciaeldesarrollodeunsistemaWebesla identificacindelosrequisitos,loscualesseespecificanenUWEmedianteun modelode requisitos. Los requisitos se pueden documentar en diferentes niveles de detalle. UWE propone2niveles:enprimerlugar,segeneraunadescripcingeneraldelasfuncionalidades, las que se modelan con casos de uso UML. En una segunda fase, se desarrolla una descripcinmsdetalladadeloscasosdeuso,porejemplo,diagramasdeactividadUML quedescribenlasresponsabilidadesyaccionesdelaspartesinteresadas. 2. Definicindelcontenido:losmodelosdeanlisisproporcionanlabaseparalosmodelosde diseo,enparticular,elmodelodecontenidodeunsistemaWeb.Elobjetivodelmodelode contenidoesproporcionarunaespecificacinvisualdelainformacindeldominiorelevante paraelsistemaWebqueincluyeprincipalmenteelcontenidodelaaplicacinWeb.Sin embargo, muy a menudo tambin incluye a las entidades del dominio necesarias para aplicacionesWebpersonalizadas.Estasentidadesconstituyenelllamadoperfildeusuarioo modelodeusuario. 3. Establecimientodelaestructuradenavegacin:basadoenelanlisisderequisitosyel modeladodelcontenido,semodelalaestructuradenavegacindeunaaplicacinWeb.Las clasesdenavegacinrepresentannodosnavegablesdelaestructuradehipertexto;losenlaces de navegacin indican enlaces directos entre las clases de navegacin. Cada clase de procesosestasociadaconuncasodeusoquemodelaunprocesodenegocio. Estos modelos se utilizan para representar diferentes vistas de la misma aplicacin Web correspondientes a las diferentes incumbencias (contenido, estructura de navegacin y presentacin): El modelo de contenido se utiliza para especificar los conceptos que son relevantes al dominiodelaaplicacinylasrelacionesentrelosmismos.

37|163

Captulo2Estadodelarte Laestructuradenavegacinsemodelaporseparadodelcontenido,aunquesederivadel mismo. ElmodelodenavegacinrepresentaloscaminosdenavegacindelsistemaWebqueseest modelando. Elmodelodepresentacintieneencuentalastareasderepresentacinylacomunicacin hombremquina.

UWEproponeporlomenosuntipodediagramaUMLparalavisualizacindecadamodelopara representarlosaspectosestructuralesdelasdiferentesvistas.Sinembargo,muyamenudoseusan diagramas de interaccin UML o mquinas de estado para representar los aspectos de comportamientodelsistemaWeb.

2.7.4IDM(InteractiveDialogueModel)
IDM [Bolchini&Garzotto,2008] eselresultadodeunalargaexperienciaenlaconstrucciny utilizacin de modelos para el diseo de aplicaciones hipermedia. A principios de los 90, se comenzconHDM(HypertextDesignModel),quefueelprimermodeloparaeldiseoconceptual de esta clase de aplicaciones. HDM era relativamente simple y, en algunos aspectos, un tanto ingenuo. An as, propona algunos conceptos centrales que inspiraron a muchos modelos posteriores. HDMevolucion progresivamenteenotrosmodelos(HDM+,HDM2yW2000)que,paraabordar lacrecientecomplejidaddelasaplicacioneshipermedia,eranmuchomsricosysofisticadosquesu antecesor,peroesteaumentodecapacidadexpresivatuvoalgunosinconvenientes:ladificultadde aprenderlateoraylaprcticadeestosmodelosnosecompensabaentrminosdeunamayor calidaddediseo;laproduccindedocumentacinsobreeldiseo,enproyectosindustriales,se hizocadavezmsconsumidoradetiempo(yaquelasespecificacioneserancadamsdetalladas),al mismotiempoquesupodercomomediodecomunicacinentrelaspartesinteresadasdisminua drsticamente (especialmente entre las personas que no tenan ninguna capacitacin formal en modelizacin). As, despus de pasar de la simplicidad (HDM) a la complejidad (W2000), se volvi progresivamentealasimplicidad,siendoIDMelfinaldeestapar bola.IDMsecentraenlos conceptosdediseoverdaderamentefundamentalesparahacerrentableunproceso.Noselimitaa ofrecerunaherramientadeespecificacinparaquelosdiseadoresgenerensussoluciones:los ayudaacrearrepresentacionesabstractas,mnimasyexpresivasy,sobretodo,aentendercmo pensaralmomentodehacerundiseo. IDMconcibelasinteraccionesdelusuarioconunaaplicacinhipermediacomoundilogo:una secuencia de actos del tipo preguntarespuesta: la seleccin de un enlace es la contra parte operacionalaunapreguntaqueelusuariosehaceasmismoyvuelvealsistema.Elefectode laseleccindeunenlace,esdecir,lavisualizacindelapginadestinodelenlace,eslarespuesta 38|163

Captulo2Estadodelarte quematerialmenteofreceelsistema,segnlosdiseadores,sobrecmoresponderalapreguntadel usuario. ElprocesodediseoprevistoporIDMsecomponede3actividadesprincipales: Diseo conceptual (CIDM): asumiendo un enfoque orientado a dilogos, las primeras cuestionesquedebeabordareldiseadorsepuedenresumirenlassiguientespreguntas: Culesel tema deldilogo?,esdecir,qu puede(odebe)decirlealusuariola aplicacin? Culessonloscambiosdetemasrelevantesaloscualessedebedarsoportedurante eldilogoentreelusuarioylaaplicacin? Cules son las posibles formas, diferentes, de organizar el dilogo?, es decir, agruparlosdiferentes temas atravsdeloscualeselusuariopuedainiciarelflujo realdelaconversacin

Se pueden proporcionar respuestas precisas y detalladas a las preguntas anteriores slo cuando se haya elegido un canal de entrega especfico (factores determinantes como el tamao de la pantalla, los mecanismos de sealizacin, los medios disponibles, el rendimiento,etc.)Sinembargo,sepuedenhacerdeterminadasdecisionesconantelacin,lo quesellamadiseoconceptual. Enestafaseinicial,sedebedefinirunesquemaconceptualdelaaplicacininteractivaafin detransmitirtodaslasestrategiasdedilogosnecesarias,sinentrarendetallesquepuedan dependerdecuestionestcnicasdeldispositivorealdeentrega. Diseo lgico (LIDM): a diferencia del diseo conceptual, el diseo lgico empieza tomandodecisionesquegeneralmentedependendeuncanalespecficoatravsdelcualse puedetransmitirlaaplicacin(yasealaWebtradicional,uncanaloral,TVinteractiva,un canalmvil,etc). Mientras que un esquema de diseo conceptual CIDM define toda la estrategia de interaccinalacualsedebedarsoporteduranteeldilogodelaaplicacinconelusuario, los diseadores pueden desarrollar uno o ms diseos lgicos, uno para cada canal especficoparaelcualdeseandisearlaaplicacin.EldiseolgicoIDMsepuedever comounaversindetalladadeldiseoconceptual,dondesedecidenlosdetallesenbasea unavariedaddefactoresdependientesdeloscanales,talescomolaslimitacionesimpuestas poreltipodedispositivodisponiblessobreundeterminadocanal(porejemplo,tamaodela pantalla),losdispositivosdesealizacin(porejemplo,teclado,lpizinteligente,mouse, scroller,entradadeaudio,punterostctiles,punterosdeseguimientoocular),losmediosque se pueden utilizar (por ejemplo, audio, texto visual, imgenes, grficos o video), el rendimientoesperado,ydesumaimportancia,losescenariostpicosdeuso(porejemplo, domsticoodeoficina,paraircaminando,usomvilenelauto,etc.) Diseo de pginas (PIDM): el diseo de pginas IDM (PIDM) significa definir los 39|163

Captulo2Estadodelarte elementos que deben comunicarse al usuario en un solo acto de dilogo. Ahora los diseadorestienenquecrearlaspginasrealesquecontienenloselementosnecesariospara mantenereldilogo.

2.7.5WebML(WebModelingLanguage)
ElLenguajedeModeladoWeb(WebML)[Brambilla etal.,2008]esunametodologadediseo Webdetercerageneracin,concebidaen1998,comoconsecuenciadelosprimerosmodelosylos trabajospionerosenhipermediaydiseoWeb,comoHDMyRMM.LametaoriginaldeWebML eradarsoportealdiseoyalaimplementacindelasllamadasaplicacionesWebintensivasen datos, definidas como sitios Web para acceder y mantener grandes cantidades de datos estructurados,generalmentealmacenadoscomoregistrosenbasesdedatos,comolasaplicaciones decomercioelectrnicoyenlnea,sitiosWebinstitucionalesdeorganizacionesprivadasypblicas, bibliotecasdigitales,portalescorporativosysitiosdecomunidades. Paralograresteobjetivo,WebMLreutiliz losmodelosdedatosconceptualesexistentesypropuso unanotacinoriginalparaexpresarlascaractersticasdenavegacinycomposicindelasinterfaces hipertexto.ElmodelohipertextodeWebMLadoptunenfoquemuydiferentedelosanteriores:en lugardeofrecerunelevadonmerodeprimitivaspararepresentartodaslasposiblesformasde organizar una interfaz hipertexto que se pueden presentar en las aplicaciones Web con gran volumendedatos,elfocosecentrenlainvencindeunnmeromnimodeconceptos,quepodan estarcompuestosdeformasbiendefinidasparaobtenerunnmeroarbitrariodeconfiguraciones. Estaopcininicialdediseoinfluyprofundamenteenladefinicindellenguajeyensuevolucin haciaclasesmscomplejasdeaplicaciones.CuatrograndesversionesdeWebMLcaracterizanla progresindelmismo: WebML 1: la versin inicial contaba slo de un conjunto fijo de primitivas para la representacindesitiosWebdegranvolumendedatosydeslolectura;elfocosecentraba enlaorganizacinmodulardelainterfaz,ladefinicindelanavegacinylaextracciny publicacindecontenidoenlainterfaz. WebML2:seagreg soporteparalarepresentacindelasaccionesdenegocio(llamadas operaciones)provocadasporlanavegacindelusuario;deestamanera,elpoderexpresivose ampli para admitir caractersticas como la gestin de contenido, la autenticacin y la autorizacin. WebML 3:laintroduccindelconceptode plugin transform aWebMLenunlenguaje abierto,extensibleporlosdiseadoresconsuspropiasprimitivasdenivelconceptual,afin deampliarelpoderexpresivoparacubrirlasnecesidadesdelasnuevasaplicaciones.Esta transicindestac elpapeldelmodeladobasadoencomponentesyfuelabasedetodaslas extensionessubsiguientes. WebML4:lanocindepluginfueexplotadaparaagregarextensionesortogonalesalncleo 40|163

Captulo2Estadodelarte de WebML, cubriendo los sectores y las aplicaciones no asociadas previamente con el desarrolloorientadoamodelos.Porejemplo,seincorporaronlainteraccindeservicios Web y las primitivas de modelado de flujo de trabajo como plugins para permitir la modelizacinylaimplementacindeaplicacionesdistribuidas;otrasextensionesapuntaron enladireccindeaplicacionesWebmulticanalysensiblesalcontexto. WebMLesunlenguajevisualparaespecificarlaestructuradelcontenidodeunaaplicacinWeby laorganizacinypresentacindedichocontenidoenformadehipertexto.Unrasgodistintivode WebML es la presencia de una lnea industrial de desarrollo en paralelo a la investigacin acadmica. El enfoque WebML para el desarrollo de aplicaciones Web se compone de diferentes fases. InspiradoenelmodeloespiraldeBoehmydeacuerdoconlosmtodosmodernosparaeldesarrollo Webyaplicacionessoftware,elprocesoWebMLseaplicademaneraiterativaeincrementalde manera que las distintas fases se repiten y refinan hasta que los resultados cumplan con los requisitosdelasaplicaciones. Elciclodevidadelproducto,porlotanto,sesometeavariosciclos,cadaunoproduciendoun prototipoounaversinparcialdelaaplicacin.Encadaiteracin,laversinactualdelaaplicacin sepruebayevalayluegoseextiendeosemodificaparahacerfrentealosrequisitosrecogidos anteriormente,ascomotambinlosrequisitosrecientementeaparecidos.Estetipodeciclodevida iterativo e incremental resulta particularmente apropiado para el contexto Web, donde las aplicacionesdebendesplegarseconrapidez(entiempoInternet)ylosrequisitospuedencambiar duranteeldesarrollo. LasfasesdeWebMLson: Anlisisderequisitos:secentraenrecogerinformacinsobreeldominiodelaaplicaciny las funciones que se esperan y en especificarlas a travs de descripciones fciles de comprender.Laentradaaestaactividadeselconjuntodelosrequisitosdenegocioque motivaneldesarrollodelaaplicacin.Losresultadosprincipalesdeestafaseson: Laidentificacindelosgruposdeusuarios,cadaunodelos cuales representaa usuariosconlasmismascaractersticasoquejueganelmismopapeldentrodeun procesodenegocio. Laespecificacinderequisitosfuncionalesquerespondenalasfuncionesquedeben facilitarsealosusuarios.Paracadagrupodeusuarios,seidentificanyespecificanlas actividadesrelevantesallevaracabo. Laidentificacindeobjetosdeinformacinbsicos,esdecir,losprincipalesactivos deinformacinaseraccedidos,intercambiadosy/omanipuladosporlosusuarios. LadescomposicindelaaplicacinWebenvistas,esdecir,diferenteshipertextos diseadosparacumplirconunconjuntobiendefinidoderequisitosfuncionalesyde usuario.Cadagrupodeusuarioscontarconalmenosunavistadelsitioquesoporte 41|163

Captulo2Estadodelarte lasfuncionesdescritasparaelgrupo. Modelado conceptual: consiste en definir esquemas conceptuales, que expresan la organizacindelaaplicacinaunniveldeabstraccinalto,independientedelosdetallesde implementacin.ParaWebML,elmodeladoconceptualconsisteen: undiseodedatos:secorrespondeconlaorganizacindelosobjetosdeinformacin bsicosidentificadospreviamenteenelanlisisderequisitosenunesquemadedatos coherenteyexhaustivo,posiblementeenriquecidoatravsdeobjetosderivados. undiseodehipertexto:eldiseohipertextoacontinuacinproduceesquemasde vistasdelsitiosobreelesquemadedatospreviamentedefinido.Lasvistasdelsitio expresan la composicin del contenido y los servicios dentro de las pginas hipertexto,as comotambinlanavegacinylainterconexindecomponentes.Para aplicacionesdondediferentesgruposdeusuariosrealizanmltiplesactividades,o para aplicaciones multicanal, en la que los usuarios pueden adoptar diferentes dispositivosdeacceso,eldiseohipertextorequiereladefinicindemltiplesvistas delsitio,tratandolosgruposdeusuariosinvolucradosysusrequisitosdeacceso.

Implementacin:eldesarrollodeaplicacionesconWebMLesasistidoporWebRatio,una herramienta comercial para disear eimplementar aplicaciones Web.La arquitectura de WebRatioconstade2capas:unacapadediseo,queproporcionalasfuncionesparala edicinvisualdelasespecificaciones,yunacapadetiempodeejecucin,queimplementa losserviciosbsicosparaejecutarlasunidadesWebMLsobreunframeworkdeaplicaciones Webestndar.

2.7.6Hera
El propsito de Hera [Houben et al., 2008] es dar soporte al diseo de aplicaciones que proporcionenestructurasWebbasadasenlanavegacin(presentacioneshipermedia)sobredatos estructuradossemnticamenteenunaformapersonalizadayadaptable.Elenfoquedediseose centraenlosmodelosquerepresentanlosaspectoscentralesdeldiseodelaaplicacin. Antesdepodercrearunmodeloparaespecificareldiseodelaaplicacin,esnecesariocomopunto deinicioenHeraunmodelodeldominio(DM),elcualdescribelaestructuradelosdatos.El nico propsitodelDMesdefinirlaformaenqueeldiseadorpercibelaestructurasemnticadelos datos:diceloquesenecesitasaberacercadelcontenidosobreelquesequierequefuncionela aplicacin.BasadoenesteDM,eldiseadorcreaunmodelodelaaplicacin(AM)quedescribe una estructura de navegacin basada en hipermedia sobre el contenido. Esta estructura de navegacinest diseadaenarasdeentregarypresentarelcontenidoalusuariodeunaformaque permitaunaccesoefectivo(semnticamente)almismo. Asuvez,esteaccesopuedeimplicarlapersonalizacinoadaptacinqueseconsiderepertinente. Herapermitelapersonalizacinylaadaptacindinmicadelcontenido.Atalefecto,semantienen 42|163

Captulo2Estadodelarte datosdecontexto(bajocontroldelaaplicacin)enunmodelodecontexto(CM).Estosdatosde contextosonnormalmenteactualizadosenbasealas(inter)accionesdelusuario,as comoala informacinexterna. Porlotanto,sobrelabasedelDMyelCM,elAMsirvecomounarecetaqueprescribec mose transformaelcontenidoenunaestructuradenavegacin.Parasermsprecisos,elinstanciarelAM concontenidoconcretoresultaenpginasAM(AMP).EstasAMPssepuedenconsiderarcomo pginas que contienen contenido (que se muestra) y primitivas de navegacin (basadas en las relacionessemnticassubyacentesdelDM)queelusuariopuedeutilizarparanavegaraotrasAMPs yasmoversesemnticamenteaunapartediferentedelcontenido. UnaAMPens mismanoest todavalistaparaunnavegador,perosepuedetransformarenuna presentacinadecuadamedianteungeneradordepresentacin,esdecir,unmotorqueejecutauna especificacin,porejemplo,unmodelodepresentacin(PM)deldiseodelapresentacinconcreta entrminosdediseoyotrosdetallesdepresentacin(especficosdelnavegador).ParaHera,esta fasedegeneracindelapresentacinensmismanoesespecficaypuedeserhechadelamanera queseprefiera.As,elAMespecificalaconstruccin(msconceptualosemntica)delaestructura denavegacinsobreelcontenido,mientrasquelafasedepresentacinposterior,posiblemente especificadaporunPM,esresponsabledelatransformacindeestaestructuraenloselementosque seajustanalasituacinconcretadenavegacin. Antesqueeldiseodelaaplicacinpuedaconsiderarlanavegacinpersonalizadasobrelos contenidosdeldominio,sedebenespecificarlosdatosrelevantes.Comounprimerpaso necesario en el enfoque, el paso del modelado de datos lleva a la construccin de los modelosdedatosparaloscontenidosdeldominioyelcontextodelusuario. ElmodeladodeloscontenidosdeldominioutilizaRDFSysobretodoest dirigidoala capturadelaestructurasemnticadeloscontenidosdeldominio.Inclusopermitealmodelo que sea una ontologa OWL. Por ejemplo, un modelo representado en UML se puede representar fcilmente como una definicin RDFS u OWL mediante un proceso de conversindeUMLaOWL[Hartetal.,2004]. ElCMsemodelaeimplementadeformasimilaralDM.Laprincipaldiferenciaentreambos esquelosdatosdecontenidoestnpensadosparaserpresentadosalusuario,mientrasque losdatosdecontextotienenelpropsitodedarsoportealaadaptacindependientedel contextodelaaplicacin.As,losdatosdecontenidonormalmentecontienenlainformacin que finalmente se muestra al usuario, mientras que los datos de contexto contienen la informacinutilizada(internamente)paralapersonalizacinyadaptacindelaentregade contenido. TantolosdatosdelDMcomolosdelCMseimplementanusandounrepositorioSesame 39. ParaelCM,queest bajoelcontroldirectodelaaplicacin,estopermitequelaaplicacin gestioneyactualiceelcontextotalcomoellalopercibe.Juntoaesto,tambinproporciona
39 http://www.openrdf.org/about.jsp

ModeladodeDatos

43|163

Captulo2Estadodelarte losmediosparaqueotrosprocesosutilicenyactualicen(partesde)estainformacin. OtragranventajadelusodeSesameeslaposibilidaddecombinarvariasfuentesdedatos (tanto datos de contenido como de contexto) al mismo tiempo. En esta forma, los diseadorespuedenacoplarfuentesdedatosadicionalesalasyaexistentesyporlotanto fcilmente extender el contenido del dominio. Esto tambin ofrece posibilidades para explotarlosconocimientosadicionalescuandoserealizaunabsqueda. AldarsoporteirrestrictoaDMsRDFSuOWL,Heraresultaespecialmenteadecuadopara (re)utilizar ontologas de dominios existentes. Por otra parte, muchas fuentes de datos existentesqueannoestndisponiblesenRDFSuOWLpuedenserutilizadasatravsde lastcnicasdelaWebSemntica[Thiranetal.,2005]. Sobrelabasedeladefinicindeldominio,elmodeladodelaaplicacinresultaenelmodelo deaplicacin(AM)queespecificaelcomportamientodenavegacindelaaplicacinWeb. ElAMpermitealosdiseadoresespecificarcmoseestructuraelacceso(denavegacin)a losdatos(recuperadosdinmicamentedesdeeldominio)describiendoqudatossemuestran alusuarioyaqu pginasWebpuedenavegarelmismo.Almismotiempo,elAMpermite queestaespecificacinseadinmica,detalmaneraqueelaccesonavigacionalalosdatosse puedapersonalizarparaunusuarioyadaptarauncontextodeterminado. ModeladodelaAplicacin

2.7.7WSDM(WebSemanticsDesignMethod)
WSDM[DeTroyer etal.,2008]fuepresentadoporDeTroyeryLeuneen1998[DeTroyer& Leune,1998].Enesemomentolassiglaseranpor WebSiteMethodysloapuntabaasitiosWeb que proporcionaran informacin. Desde entonces, el mtodo evolucion mucho y actualmente permite, adems del diseo de aplicaciones Web tradicionales, el diseo de aplicaciones semnticas,deahelcambiodelnombreaWebSemanticsDesignMethod. MsqueunmtododediseoWeb,WSDMesunametodologa,esdecir,nosloproporciona primitivasdemodeladoquepermitenaundesarrolladorWebconstruirmodelosquedescribenel sitio/aplicacinWebdesdediferentesperspectivasyadiferentesnivelesdeabstraccin,sinoque tambinproporcionaunaformasistemticadedesarrollarestostiposdeaplicaciones.Eldesarrollo deunsitio/aplicacinWebconWSDMcomienzaconlaformulacindeladeclaracindelamisin ysigueunafilosofadediseobiendefinidaquebrindaaldiseadorelsoportenecesariopara estructurarelsitioWeb.Elmtodoconsisteenunasecuenciadefases,dondecadaunatieneuna salidabiendefinida.Paracadafase,seproporcionaun(sub)mtodoquedescribecmoderivarla salidaapartirdesuentrada(lasalidadeunafaseeslaentradadelafasesiguiente).Tambi nes importante notar que WSDM permite desarrollar sistemas Web anotados semnticamente, permitiendolaWebSemntica. WSDMsigueunenfoquedediseoguiadoporelpblico.Estosignificaqueparaeldiseose 44|163

Captulo2Estadodelarte tomancomopuntodepartidaalosdistintostiposdeusuarios(visitantes)ysusnecesidades,yquela estructuraprincipaldelsitioWebsederivaapartirde stos.Concretamente,estosetraduceen diferentesrutasdenavegacinofrecidasdesdelapginainicial,unaparacadatipodiferentede visitante. Las5fasesquecomponenWSDMson: 1. Declaracindelamisin:elobjetivodeestafaseesidentificarelpropsitodelsistemaWeb, as comotambinlatemticaylosusuariosfinales.Losusuariosfinalessonlosusuarios quesequierenabordarolosqueestarninteresadosenelsistemaWeb.Latemticadel sistema Web est relacionada con la finalidad y los usuarios finales del mismo: debe permitirelcumplimientodelafinalidaddelsistemaWeb,ydebeadaptarsealosusuarios finales.Lasalidadeestafaseesladeclaracindelamisin.Lamismaestarformuladaen lenguajenaturalydeberdescribirelpropsito,latemticaydestinatariosdelsistemaWeb. Dehecho,ladeclaracindelamisinestableceloslmitesdelprocesodediseo.Permite (enlassiguientesfases)decidirqu informacinofuncionalidadincluiroexcluir,cmo estructurarlaycmopresentarla. 2. Modeladodeusuarios:losusuariosfinalesidentificadosenladeclaracindelamisinson refinadosenclasesdeusuarios.Estosignificaquelosdiferentestiposdeusuariosson identificados yclasificados enclases segnsus requisitos:los usuarios con los mismos requisitos deinformacin yfuncionalidadpasan asermiembros dela mismaclase,los usuariosconmsrequisitosformansubclases.Deestemodoseconstruyeunajerarquade clases.Paracadaclase,sedanlascaractersticasrelevantes(porejemplo,edad,nivelde experiencia,etc). 3. Diseoconceptual:seutilizaparaespecificarlainformacin,funcionalidadyestructuradel sistemaWeb,anivelconceptual.Undiseoconceptualhaceunaabstraccindecualquier tecnologadeimplementacinoplataformadestino.Lainformacinylafuncionalidadse especifican durante la subfase Modelado de tareas e informacin. Toda la estructura conceptual, incluidas las posibilidades de navegacin para cada clase de pblico, se especificandurantelasubfaseDiseodelanavegacin. ModeladodeTareaseInformacin En lugarde comenzar con unmodelo conceptual de datos global, como hace la mayoradelosmtodosdediseoWeb,WSDMcomienzaanalizandolosrequisitos de las diferentes clases de usuarios, lo cual da lugar a una serie de pequeas descripciones conceptuales, llamadas fragmentos de objetos, que modelan la informacinylafuncionalidadnecesariasparasatisfacerestosrequisitos. ModeladodeTareas Elpropsitodelmodeladodetareasesmodelarendetallelasdiferentestareas quedebensercapacesderealizarlosmiembrosdecadaclasedeusuarioy describirformalmentelosdatosylafuncionalidadquesenecesitaparaesas 45|163

Captulo2Estadodelarte tareas. ModeladodelaInformacin Cuandosecompletaelmodelodetareas,secreaunfragmentodeobjetopara cadatareaelementalenestemodelo.Elobjetivoprincipaldeunfragmentode objetoesdescribirformalmentelainformacinylafuncionalidadnecesarias por el usuario cuando tiene que realizar la tarea asociada. Si el requisito asociadoalatareaesunrequisitodeinformacinpuro(esdecir,elusuario slobuscainformacin;nonecesitarealizaracciones),elfragmentodeobjeto puedeconsiderarsecomoladescripcinconceptualdelainformacinquese muestraen(unapartede)lapantalla.Atalefecto,essuficienteunlenguajede modelado conceptual estndar. Sin embargo, para poder tratar la funcionalidad(porejemplo,llenarunformularioyprocesarlo),tambinse necesitaunlenguajedemanipulacindedatos. WSDMutilizaOWLparamodelarlasnecesidadesdeinformacin.Suuso comolenguajedeespecificacinparalosfragmentosdeobjetospermiteuna fcilintegracinyelusodeontologasdedominiosexistentes. 4. Diseodelaimplementacin:losmodelosdeldiseoconceptualsecomplementanconla informacinnecesariaparaunaimplementacinreal.Constade3subfases: Diseodela estructuradelsitio,DiseodelapresentacinyDiseolgicodedatos.Duranteel diseodelaestructuradelsitio,sehaceunacorrespondenciaentrelaestructuraconceptual del sistema Web y las pginas, es decir, el diseador decide qu componentes (que representeninformacinyfuncionalidad)yenlacessevanaagruparenpginasWeb.Parael diseoconceptual,sepuedendefinirdiferentesestructurasdelsitio,dirigidasadistintos dispositivos,contextos,oplataformas.Eldiseodelapresentacinseutilizaparadefinirla aparienciadelsistemaWebas comotambineldiseodelaspginas.Eldiseolgicode datossloesnecesarioparasistemasWebintensivosendatos.Enelcasoquelosdatosse mantenganenunabasededatos,seconstruyeunesquemadelamisma(osepuedeutilizar unoyaexistente),yseestableceunacorrespondenciaentreelmodeloconceptualdedatosy lafuentededatosreal. 5. Implementacin:laimplementacinrealpuedegenerarseautomticamenteapartirdela informacinrecogidadurantelasfasesanteriores. Las5fasesanteriores,mostradasdeformasecuencial,enlaprcticaseejecutanenformabastante iterativa.

2.8Anlisisdelasdistintasmetodologas
Segnlasdescripcionesdelasdistintasmetodologas,sepuederealizarelsiguienteanlisis:

46|163

Captulo2Estadodelarte OOWS Metodologabasadaenmodelos,basadaenotrallamadaOOMethod.Alos3modelosde OOMethod, le agrega otros 3 para hacerle frente a las caractersticas propias de las aplicacionesWeb: modelodeusuarios (paracategorizarlos distintos tipos deusuarios: annimos,registradosygenricos), modelodenavegacin (paraespecificarlavisibilidad delsistemayloscaminos vlidos paraatravesarlaestructuradelmismo)y modelode presentacin(paraespecificarlosrequisitosdepresentacindeloselementosdefinidosen elmodelodenavegacin). Estametodologanotieneencuentaelaspectosemnticodelainformacin,propiodelos mashupssemnticos.Unmashupsemntico,adiferenciadeotrotipodeaplicacinWebms tradicional,generalmentenorequierehacerunadistincinentredistintostiposdeusuarios, yaquesueletrabajarconun nicotipo(annimo),yporlotantonosenecesitadefinirun modelodeusuarios. Porlogeneral,losmashupssemnticos,encuantoalainterfazdeusuario,suelenestar organizadosen2o3pantallas,dondeenlaprimeray/osegundaseingresanlasdistintas opcionesdebsqueda/clasificacin/ordenamiento/etc,yenlapantallasiguientesemuestra todalainformacinyacondensada.Enconsecuencia,tampocoresultanecesariounmodelo denavegacin,oalmenosunotandetalladocomoelqueproponeestametodologa. OOHDM Metodologa basada en modelos, permite construir una aplicacin Web en 5 pasos: 1) obtencin delos requisitos (renelas necesidades de los interesados,identificando los actoresylastareasquedebenrealizarparaluegoelaborarunborradorconlosescenarios paralosmismos.Estosescenariosformanloscasosdeuso),2) diseoconceptual(armaun modeloconceptualdeldominiosintenerencuentalosusuariosylastareas),3) diseodela navegacin(paracadaperfildeusuariodefineunaestructuradenavegacindiferenteque refleja los objetos ylas relaciones en elesquema conceptual segnlas tareas quedebe realizarestetipodeusuario),4) diseoabstractodelainterfaz (definelos widgets que contieneninformacinentrminosdeinterfaces),5) implementacin(hacecorresponderla interfazyobjetosdenavegacinconobjetosentiempodeejecucin). Al igual que la metodologa anterior, no tiene en cuenta el aspecto semntico de la informacin. Por las mismas razones explicadas anteriormente, el paso 3 (diseo de la navegacin)sloseaplicaparauntipodeusuario,lomismoparaelpaso1(obtencindelos requisitos)encuantoalaidentificacindelosdistintosactoresytareas. UWE Metodologabasadaenmodelos,permiteconstruirunaaplicacinWebenlossiguientes pasos:1)especificacinderequisitos(seespecificanmedianteunmodeloderequisitos,los cualessepuedendocumentarcondiferentesnivelesdedetalle),2) definicindelcontenido 47|163

Captulo2Estadodelarte (proporciona una especificacin visual de la informacin del dominio relevante para el sistemaWeb),3)establecimientodelaestructuradenavegacin(semodelalaestructura de navegacin de la aplicacin Web segn el anlisis de requisitos y el modelado del contenido).ParatodosestospasosutilizaUML. Aligualquelasmetodologasanteriores,notieneencuentaelaspectosemnticodela informacin.Estametodologacomplementaaunaparaaplicacionestradicionalesenel hechodecontemplareldiseodelaestructuradenavegacin. IDM Metodologadondeelprocesodediseosecomponede3actividadesprincipales:1) diseo conceptual(asumiendounenfoqueorientadoadilogos,serespondeapreguntascomoqu puede(odebe)decirlealusuariolaaplicacin?,culessonloscambiosdetemasrelevantes aloscualessedebedarsoporteduranteeldilogoentreelusuarioylaaplicacin?,cules sonlasposiblesformas,diferentes,deorganizareldilogo?,etc),2) diseolgico (toma decisionesquegeneralmente dependendeuncanalespecficoatravsdelcualsepuede transmitirlaaplicacin,porejemplolaWebtradicional,uncanaloral,TVinteractiva,un canal mvil, etc), 3) diseo de pginas (se crean las pginas reales que contienen los elementosnecesariosparamantenereldilogo). Aligualquelasmetodologasanteriores,notieneencuentaelaspectosemnticodela informacin. Similar a la metodologa UWE en cuanto al diseo de la estructura de navegacin. WebML MetodologadediseoWebdetercerageneracin,compuestadediferentesfases,inspirada enelmodeloespiraldeBoehm.Lasfasesson:1)anlisisderequisitos(recogeinformacin sobreeldominiodelaaplicacinylasfuncionesqueseesperanylasespecificaatravsde descripciones fciles de comprender), 2) modelado conceptual (define esquemas conceptualesqueexpresanlaorganizacindelaaplicacinaunniveldeabstraccinalto, independiente de los detalles de implementacin), 3) implementacin (el desarrollo es asistidoporWebRatio,unaherramientacomercialparadiseareimplementaraplicaciones Web). Tampocotieneencuentaelaspectosemnticodelainformacin.Similaralasanterioresen cuantoaldiseodelaestructuradenavegacin. Hera Metodologaques tieneencuentaelaspectosemnticodelainformacin.Elprimerpaso consisteendefinirunmodelodeldominio(describelaestructurasemnticadelosdatos). ParaelmodeladodeldominiosepuedeutilizarRDFSuOWL.Sobreelmodelodeldominio se define un modelo de la aplicacin (describe una estructura de navegacin sobre el 48|163

Captulo2Estadodelarte contenido,lacualestdiseadaconelfindeentregarypresentarelcontenidoalusuariode unaformaquepermitaunaccesoefectivosemnticamentealmismo).Esteaccesopuede implicarlapersonalizacinoadaptacinqueseconsiderepertinente,paralocualsepueden mantenerdatosdecontextoenun modelodecontexto,elcualseimplementadeforma similarelmodelodeldominio. El aspecto a sealar de esta metodologa es que no tiene en cuenta el problema de la integracindelainformacindelasdistintasfuentes(ontologas)queutilizaunmashup semntico.Esdecir,trabajasobreunaontologaynoungrupodestas. WSDM Metodologaquestieneencuentaelaspectosemnticodelainformacin.Permite,adems deldiseodeaplicacionesWebtradicionales,eldiseodeaplicacionesWebsemnticas.El mtodoconsisteenunasecuenciadefasessiguiendounenfoqueguiadoporelpblico:1) declaracindelamisin(identificaelpropsitodelsistemaWeb,latemticaylosusuarios finales),2)modeladodeusuarios(losusuariosfinalesidentificadosenladeclaracindela misin son refinados en clases de usuarios), 3) diseo conceptual (especifica la informacin,funcionalidadyestructuradelsistemaWebanivelconceptual),4) diseodela implementacin (losmodelosdeldiseoconceptualsecomplementanconlainformacin necesariaparaunaimplementacinreal.Constade3subfases:diseodelaestructuradel sitio, diseo de la presentacin y diseo lgico de datos), 5) implementacin (la implementacinrealpuedegenerarseautomticamenteapartirdelainformacinrecogida durante las fases anteriores). Para realizar todo el modelado de la informacin (fase 3) empleaOWL. Al igual que la anterior, esta metodologa tampoco tiene en cuenta el problema de la integracindelasdistintasontologas.Adems,algunastareasnosonnecesariasparaun mashup semntico, como la identificacin de los distintos tipos de usuarios y la categorizacindelosmismosenclases. Enbaseaesteanlisis,seconcluyequeresultanecesariocontarconunametodologapropiaparael casodelosmashupssemnticos,lacualbrindesoportealprincipalproblemaaresolverdurantesu desarrollo:laintegracindelainformacindelasdistintasontologas.

2.9Conclusiones
Enestecaptulosepresent unareseasobrelaevolucindelaWebysusaplicaciones,sealando lascaractersticasytecnologasutilizadasparasucreacin. TambinsevieronaspectosespecficosaldesarrollodeaplicacionesWebymashupssemnticos, comoserelaccesoalasfuentesdeinformacin,laintegracindelainformacindelasdistintas fuentesycaractersticasdelainterfazdeusuario.

49|163

Captulo2Estadodelarte Luego se vio el estado del desarrollo de mashups semnticos, donde se mencionaron algunos proyectosqueestnsiendodesarrolladospordistintasorganizaciones,comentandosusventajasy desventajas. Finalmente se diouna brevedescripcin sobre unconjunto de metodologas para el diseode aplicacionesWeb,realizandounanlisisdecadaunatraslocualseconcluy queningunadelas metodologasanalizadasseadaptaalcasodelosmashupssemnticos,porqueentreotrascosas,no contemplan el manejo de mltiples fuentes de informacin, no tienen en cuenta el aspecto semntico de la informacin o no contemplan el problema de la integracin de las distintas ontologas, en virtud de lo cual resulta necesario contar con una metodolog a propia para el desarrollodemashupssemnticos.

50|163

Captulo3Ontologas

CAPTULO3ONTOLOGASYLAWEBSEMNTICA
SedijoqueunmashupsemnticoesunaaplicacinWebqueextraeinformacindediversasfuentes, lacombina(integra)ypresentaenotrasformas.Lacaractersticaprincipaldeestainformacines queresultalegibleaunamquinaysusignificadoestexplcitamentedefinido[Yu,2011]. Cadafuenteorganizasuinformacinenontologas.Paraqueelmashupsemnticopuedaintegrar lasdistintasontologas,necesitacomprenderelsignificadodelainformacinquerepresentacada una,paralocualdebecomprendersusemntica. Laspersonas,dealgunamanera,representansimblicamenteelmundo,susobjetosylasrelaciones entrelosmismos.Porejemplo,unapersonaalconsultardeterminadainformacin,puededistinguir qu parte de la misma hace referencia a una direccin, gracias a un conocimiento extra o contextoquepuedeutilizar. Sisequierequeunaaplicacindesoftware,enestecasounmashupsemntico,comprendael significado de la informacin, se necesita, al menos parcialmente, automatizar el proceso de interpretacinsemntica. Elobjetivodeestecaptuloconsisteendefinirelconceptodeontologayexplicarbrevemente algunos de los principales lenguajes para su representacin (RDF, RDFS y OWL). Para una explicacin ms detallada sobre RDF y RDFS se pueden consultar los Apndices A y B respectivamente.

3.1Ontologas
Una ontologa intenta capturar el significado (la semntica) de un rea de conocimiento determinada,lacualsecorrespondeconloqueunapersonasabeacercadeesedominio[Daconta et al.,2003].Estasemnticaescaracterizadaporlaontologadefiniendolostrminos(lascosas sobre las que se quiere hablar) y las relaciones que se pueden establecer sobre los mismos. Generalmente, estos conceptos y sus relaciones se implementan como clases, relaciones, propiedades,atributosyvalores(delaspropiedades/atributos). Existenvarias definicionesparaelconceptodeontologa.Porejemplo,lams conocida:una ontologaesunaformalizacindeunaconceptualizacin[Gruber,1993]. EnelentornodelaWebSemntica,ladefinicinpresentadaeneldocumentoCasosdeUsoy RequisitosenOWL40porlaW3Cresultamuyadecuada: Unaontologadefineformalmenteunconjuntocomndetrminosqueseutilizanparadescribiry representarundominio.Definelostrminosutilizadosparadescribiryrepresentarun reade
40 http://www.w3.org/TR/webontreq/

51|163

Captulo3Ontologas conocimiento. Hayvariascosasquesedebenaclararapartirdeestadefinicin[Yu,2011]: Laontologaesespecficadeldominio,yseutilizaparadescribiryrepresentarun reade conocimiento.Undominioesunreaespecficadeconocimiento,porejemplo,lafotografa, lamedicina,laeducacin,etc. Laontologacontienelostrminos,llamadosclasesoconceptos,ylasrelacionesentrelos mismos. Las relaciones entre estas clases se pueden expresar usando una estructura jerrquica:lassuperclasesrepresentanconceptosdealtonivel(conceptosgenerales)ylas subclases representan conceptos ms especficos, los cuales tienen todos los atributos y caractersticasdelosconceptosgenerales. Ademsdelasrelacionesentrelasclases,hayotronivelderelacinexpresadousandoun grupoespecialdetrminos,laspropiedades,lascualesdescribendiversascaractersticasy atributosdelasclases,ytambinsepuedenutilizarparaasociardiferentesclasesjuntas.Por lotanto,las relaciones entrelas clases noslosondeltiposuperclaseosubclase,sino tambinrelacionesexpresadasentrminosdepropiedades.

Altenerlostrminosylasrelacionesentre stosclaramentedefinidos,laontologacodificael conocimiento del dominio de tal manera que el mismo pueda ser comprendido por una computadora.Estaeslaideabsicadeunaontologa. Sepuedenresumirlosbeneficiosdeunaontologadelasiguientemanera[Yu,2011]: Proporcionaunacomprensin/definicincomnycompartidasobrealgunosconceptosclave deldominio ProporcionalostrminosquesepuedenutilizaralcrearlosdocumentosRDFeneldominio Proporcionaunaformadereutilizarelconocimientodeldominio Explicitalossupuestosquesehacensobreeldominio Juntoconloslenguajesdedescripcindeontologas,comoRDFSyOWL,proporcionauna formadecodificarelconocimientoylasemnticadetalmaneraqueunamquinalospueda comprender Posibilitaunprocesamientoagranescala

Lafigura3.1.1muestraunfragmentodelaontologadelcasoprcticodesarrolladoenelCaptulo6, en donde las elipses representan las clases (conceptos), los rectngulos las propiedades (caractersticasdelosconceptos)ylasflechaslasrelaciones:

52|163

Captulo3Ontologas

Figura3.1.1Fragmentodeontologadesarrolladaenelcasoprctico En la figura 3.1.1 se pueden ver, por ejemplo, las clases ServicioVideos, ServicioNoticias,ServicioLibrosyServicioImagenes,loscualesrepresentanlas fuentesdeinformacincorrespondientes.Asuvez,cadaunadeestasclasesesuntipoespecialde Servicio.SepuedeverqueunServiciocualquieratieneunParametro(ovarios),elcual tieneunnombre(nombreParametro)yunvalor(valorParametro),yqueeltipodedatos decadaunodeestosesunacadena(String). Enlafigura3.1.1tambinaparecenlasclasesLibro,Video,ImagenyArticulo,ysepuede verqueunLibroesescritoporunAutor,unaImagenespublicadaporunAutor,unVideo essubidoporunAutor,yqueunArticuloesinformadoporunaFuentedenoticias. Tambin, segn la ontologa, una Imagen se caracteriza por tener una descripcin (descripcionImagen),untamao(tamanioImagen),unttulo(tituloImagen),yunpar dedirecciones:unaparaverlaentamaonormal( urlImagen)yotraparaverlaentamaogrande (urlImagenGrande).

53|163

Captulo3Ontologas

3.2OntologasbienconocidasdelaWebSemntica
Sedijoqueunaontologadefineunvocabulariocomnparacompartirinformacinenundominio, elcualincluyedefiniciones(quepuedenserinterpretadasporunamquina)deconceptosbsicosen eldominioylasrelacionesentrelosmismos. Algunasdelasrazonesporlascualessedesarrollaunaontologason[Noy&McGuinness,2001]: Paracompartirunentendimientocomndelaestructuradelainformacin[Musen,1992], [Gruber,1993]. Por ejemplo, suponer que distintos sitios Web contienen informacin mdica o prestan serviciosdeasistenciamdica.Siestossitioscompartenypublicanlamismaontologacon los trminos que usan todos, agentes de software pueden extraer y agrupar toda esta informacinpararesponderaconsultasdeusuariosoutilizarlacomodatodeentradaaotras aplicaciones. Parapermitirlareutilizacindelconocimientodeldominio Por ejemplo, diferentes dominios necesitan modelos para representar el tiempo, lo cual incluyelosconceptosdeintervalosdetiempo,puntoseneltiempo,medidasrelativasde tiempo,etc.Siungrupodeinvestigadoresdesarrollaestaontologaendetalle,otrospueden reutilizarlaparasusdominios.Adems,sisetienequeconstruirunaontologageneral,se puedenintegrarvariasontologasexistentesquedescribanlaspartesdelgrandominio. Paraexplicitarsupuestosdeldominio Explicitarsupuestosdeldominiosubyacenteaunaaplicacinposibilitacambiarfcilmente estossupuestossicambiaelconocimientoquesetienesobreeldominio.Silossupuestosse insertandirectamenteenellenguajedeprogramacin,losmismosnosloresultandifciles de encontrar y comprender sino tambin de cambiar, en particular para alguien sin experienciaenprogramacin.Adems,lasespecificacionesexplcitassobreelconocimiento deldominioresultan tilesparalosnuevosusuariosquetienenqueaprenderelsignificado delostrminosdeldominio. Paraanalizarelconocimientodeldominio Analizar el conocimiento del dominio es posible una vez que est disponible una especificacin declarativa de los trminos. El anlisis formal de los trminos es extremadamentevaliosotantocuandosetratadereutilizarontologasexistentescomode extenderlas[McGuinnessetal.,2000]. LarealizacindelaWebSemnticadependedeunnmerodefactores,unodeloscualesesla habilidaddereutilizarontologasexistentes[Staab etal.,2004].Laconstruccindeontologases unatareaqueconsumetiempoytrabajo,porlocualdependeengranmedidadelaposibilidadde 54|163

Captulo3Ontologas reutilizarontologas,existiendoactualmentemotoresdebsqueda,comoSwoogle41yOntosearch42 [Doran,2006]. Albuscarontologas existentes paraevaluarsureutilizacin,las mismas vienenenunaamplia variedad[Antoniou&vanHarmelen,2008]: Cuerposdeconocimientoespecializados Algunasontologassondesarrolladasporunamplioequipodeexpertosdurantemuchos aos.Porejemplo,la ontologadelcncer43 delInstitutoNacionaldelCncer(NCI)en EstadosUnidos,elvocabularioIconclass44paradescribirimgenesculturales,etc. La ontologa del cncer del NCI es una terminologa pblica, profunda y compleja en comparacin con vocabularios clnicos ms amplios, implementando ricas relaciones semnticasentrelosnodosdesustaxonomas.Lasrelacionessemnticasestndestinadasa facilitarlainvestigacinydarsoportealainfraestructurabioinformticadelInstituto.Los tpicosdescritosenlaontologaincluyenenfermedades,medicamentos,productosqumicos, diagnsticos,tratamientos,genes,anatoma,organismosyprotenas. Iconclass es un sistema de clasificacin diseado para el arte y la iconografa. Es la herramienta cientfica ms ampliamente aceptada para la descripcin y recuperacin de temasrepresentadosenlasimgenes(obrasdearte,ilustracionesdelibros,reproducciones, fotografas,etc)yesutilizadopormuseoseinstitucionesdeartedetodoelmundo. Vocabulariosintegrados El Sistema Unificado de Lenguaje Mdico (UMLS)45 integra 100 vocabularios y clasificacionesbiomdicasdesarrolladasindependientementeenunanicaontologagrande, conmsde750000conceptosymsde10millonesdeenlacesentrelosmismos.Noes sorprendentequelasemnticadeunrecursoqueintegramuchosvocabulariosdesarrollados independientementeseabastantebaja,peronoobstanteharesultadosermuy tilenmuchas aplicaciones,almenoscomopuntodepartida. Ontologasdenivelsuperior Mientras que las ontologas anteriores son muy especficas del dominio, se han hecho algunos intentos para definir ontologas de aplicacin general (a veces conocidas como ontologasdenivelsuperior).Unaontologadenivelsuperiorselimitaametaconceptos, genricos,abstractosyfilosficos,yporlotantosonlosuficientementegeneralescomopara hacerfrente(aunnivelalto)aunampliorangode reasdedominio.Enestasontologasno seincluyenaquellos conceptos especficos aundeterminadodominio,perobrindanuna
41 42 43 44 45 http://swoogle.umbc.edu/ http://www.ontosearch.com/ http://www.mindswap.org/2003/CancerOntology/ http://www.iconclass.nl/ http://umlsinfo.nlm.nih.gov/

55|163

Captulo3Ontologas estructura y un conjunto de conceptos generales sobre los cuales se pueden construir ontologasdedominio(ontologasmdicas,financieras,deingeniera,etc).Los2principales ejemplossonCyc46ySUO47. OpenCyceslaversincdigoabiertodelatecnologaCyC,labasedeconocimientogeneral msgrandeymscompleta,quesepuedeutilizarcomobasedeunaampliavariedadde aplicacionesinteligentes,comosistemasexpertos,juegos,etc. SUO (StandardUpperlevelOntology)est desarrollandounestndarqueespecifiqueuna ontologadenivelsuperiorquedesoportealasaplicacionesinformticastalescomola interoperabilidad de datos, la bsqueda y recuperacin de informacin, inferencia automatizadayelprocesamientodellenguajenatural. Recursoslingsticos Algunosrecursosfueronconstruidosoriginalmentenocomoabstraccionesdeundominioen particular,sinomsbiencomorecursoslingsticos,loscualeshandemostradoser tiles como puntos de partida para el desarrollo de ontologas. El ejemplo principal de esta categoraesWordNet48,conmsde90000trminos. WordNet es una gran base de datos lxica de ingls: sustantivos, verbos, adjetivos y adverbios se agrupan enconjuntos de sinnimos cognitivos, llamados synsets,cada uno expresandounconceptodistinto.Estossynsetsestninterconectadosentres pormediode relaciones conceptuales semnticas y lxicas. La red resultante de palabras y conceptos relacionados de manera significativa se puede navegar con el navegador y tambin se encuentradisponibleparadescargarseenformalibreypblica. Otras[Yu,2011] EnlaWebhaymuchsimaspginaspersonales,dondeencadaunaelautorproporciona generalmente cierta informacin personal, como correo electrnico, fotos, intereses, etc, crendosedeestaformaunaredsocialconlacualsepuederesponderapreguntascomo quintienelosmismosinteresesqueyo?. ComotodoslossitiosWebpersonalesseconstruyenparalosojoshumanos,hayquehacer todoloanteriordeformamanual,resultandomuydifcilcrearunaaplicacinquelohaga automticamente. Para que estos documentos resulten comprensibles a una aplicacin, se debe crear una ontologa sobre personas y cada pgina personal tiene que estar conectada a algn documentoRDFescritomedianteelusodeestaontologa(tienequeestaretiquetada).

46 http://www.opencyc.org/ 47 http://suo.ieee.org/ 48 http://wordnet.princeton.edu/

56|163

Captulo3Ontologas EstafuelamotivacindetrsdelproyectoFOAF(FriendofaFriend)49:unvocabulario(una ontologa)queincluyelostrminosbsicosquedescribeninformacinpersonal,comoquin esuno,aqusededicayquinessonsusamigos.Sirvecomoestndarparatodoaquelque quieramarcarsuspginaspersonalesyvolverlasdocumentosquepuedanserprocesadospor mquinas. OtroejemploesDBPedia50.Probablemente,lawikimsexitosaypopularseaWikipedia,la enciclopedia en lnea ms grande, creada y mantenida por una comunidad de autores distribuidaanivelmundial. Sin embargo, similar a cualquier sitio wiki tradicional, su uso implica asimilar toda la informacinybuscaratravsdelaspginasparaencontrarloquesebusca.Parasolucionar esto,sedesarroll unagenteparaextraerlainformacinestructuradaexistenteencada pgina (en lugar de agregar marcas semnticas a cada pgina de la wiki), con la caractersticaqueestainformacinobtenidatomalaformadeungrafoRDF. LoanterioreslaideasobrecmotransformarWikipediaparaqueresultemstil.

3.3LenguajespararepresentarontologasenlaWebSemntica
Una ontologa se representa mediante un lenguaje de representacin del conocimiento y no mediantelenguajenatural,porquesequierequeestarepresentacinsealomsclarayprecisa posible.Estelenguajepuedetomardistintasformas,porejemplo,ungrfico,untextoexpresadoen unciertocdigo(RDF/S,OWL,OKBC,CycL,Prolog,etc),etc.Loimportantenoeslaformaque tomaestelenguaje,sinocunpoderosoresultapararepresentarlaontologa. Una cuestin corolaria es que los lenguajes ms sofisticados estn respaldados por una lgica rigurosa y formal, lo que hace que la ontologa pueda ser interpretada por una aplicacin de software. Esta seccin presenta una introduccin a los siguientes lenguajes para la representacin de ontologas:RDF51yRDFS52yOWL53. Estos,yotroslenguajes,estnorganizadosenunajerarquasegnun diagramadecapasdelaWeb Semntica,bajoelsiguienteprincipio:unlenguajedeunadeterminadacapaaprovechalasventajas de los lenguajes de las capas inferiores. La figura 3.3.154 muestra este diagrama de capas (de acuerdoalosestndaresdelaW3C),dondesepuedeverqueXMLest enlaparteinferiordela pila,conlocual,elrestodeloslenguajesutilizanlasintaxisXML(XMLproporcionalabasepara lainteroperabilidadenlaWeb).
49 50 51 52 53 54 http://www.foafproject.org/ http://dbpedia.org/ ResourceDescriptionFramework RDFSchema WebOntologyLanguage http://www.w3.org/2007/Talks/0130sbW3CTechSemWeb/layerCake4.png

57|163

Captulo3Ontologas

Figura3.3.1DiagramadecapasdelaWebSemntica LacapaquesigueaXMLesladeRDF/S,lacualproporcionaunlenguajesimpleparaexpresarlos conceptosylasrelacionesdeunaontologa,juntoconsusinstancias.Sobreestacapaseencuentra OWL,elcualpermiteladefinicindeunaontologamuchomsexpresiva. Hayquemencionarademsque,apesarquetodasestascapasseexpresanenXML,igualmentese deberecurriralos intrpretes especficosparacomprenderellenguajeparticularconelfinde aprovecharrealmenteloqueofrececadauno.Porejemplo,aunqueRDF/SyOWLsepuedenvalidar comoXMLlegtimos,slolosintrpretesdeRDF/S yOWLpuedeninterpretarlasrespectivas capas. En general, los intrpretes ms altos pueden interpretar correctamente todas las capas inferiores.Porlotanto,unintrpretedeOWLpuedeutilizarcualquierconstruccinRDF/SoXML, ademsdelcdigoOWLespecfico. Finalmente,enlapartesuperiorseencuentranlosmtodosderazonamientoypruebas,lacapa llamadaWebdeconfianza,queutilizapruebasautomatizadas,ascomotambincaractersticasde seguridadeidentidadqueansiguensiendorelativamentemenosconocidasyporlotanto,menos maduras,quelastecnologas.Enlapartesuperiordelapilaestnlasaplicaciones,lascualespueden utilizar todas las capas de la Web Semntica y, por lo tanto, mostrar un comportamiento ms inteligenteuofrecerserviciosmsinteligentes.

58|163

Captulo3Ontologas

3.4RDF(ResourceDescriptionFramework)
LaWebalaqueseest acostumbradoest hechadedocumentosenlazadosentres.Cualquier conexinentreundocumentoyla(s)cosa(s)quedescribedelmundolahace nicamentelapersona queleeeldocumento.Porejemplo,puedehaberunenlacedesdeundocumentosobreShakespearea un documento sobre Stratford, pero no existe la nocin de la entidad Shakespeare o su vinculacinconlaentidadStratford[Allemang&Hendler,2008]. EnlaWebSemnticaseempleaelconceptode recurso parareferirsealascosasdelmundo.Un recursopuedesercualquiercosa,tangibleointangible,sobrelacualsequierahablar.Porejemplo: autores,libros,editores,lugares,gente,hoteles,habitaciones,unpuestodetrabajo,etc. Enunareddeinformacin,cualquierapuedecontribuiralconocimientosobreunrecurso.Fueeste aspectodelaWebactualloquelepermiti crecertanrpido.ParaimplementarlaWebSemntica senecesitaunmodelodedatosquepermitaquelainformacinsedistribuyaatravsdelaWeb. Aunqueselosuelellamarlenguaje,RDFesesencialmenteunmodelodedatosmuysimple,con variasrepresentaciones.RDFesunaforma,noambigua,deestablecerinformacinsobrealgo(un recurso),esdecir,unaformadeespecificarinformacinsobreunrecurso,lacualseespecifica mediantelaspropiedadesdelmismo.Las propiedadesdescribenlasrelacionesentrelosrecursos, porejemplo:escritopor,ttulo,etc.[Chase,2007B] Enconclusin,paradescribirunrecursoenRDF,selohacemediantesuspropiedades. ElbloquedeconstruccinbsicodeRDFesunaterna,compuestapor: Unsujeto(engramtica,elsujetoeslacosasobrelacualtratalaoracin). Un predicado (en gramtica, el predicado representa una caracterstica sobre la cual se quierehablardelsujeto). Unobjeto(elvalordelpredicadodelaterna).

Aestasternasselaspuedeorganizarcomoungrafodirigido,dondelosarcos,dirigidosdesdeel nodoorigen(elsujeto)haciaelnododestino(elobjeto),representanlaspropiedades(predicados). Enlafigura3.4.1sepuedeverunejemplodeestegrafo,dondetantolosnodoscomolosarcosse etiquetan.ParalafiguraseutilizlaontologadelcasoprcticoquesedesarrollaenelCaptulo6, mostradaenparteenlafigura3.1.1.

59|163

Captulo3Ontologas

Figura3.4.1GrafoRDF En la figura 3.4.1 se han etiquetado los nodos y los arcos con nombres simples como www.lucisfoto.com,1198x1800,tituloImagen,etc.EnlaWebSemntica,esto noresultasuficienteparaidentificaralgo.Porejemplo,alhablarsobreShakespeare,todossabende loqueseest hablando?EnlaWebSemnticasetienequesermsespecfico:enqu sentidose hacereferenciaalapalabraShakespeare? RDF soluciona este problema mediante una tecnologa de la Web actual: las URIs 55. Un tipo especialdeURIeslaURL56uotrotipodeidentificadornico.LasURIsnoslohansidodefinidas paralosrecursosenlaWebsinotambinparaobjetostandiversoscomonmerosdetelfono, nmerosdeISBNyubicacionesgeogrficas.Esdecir,unaURIeslaidentificacinglobaldeun recursoWeb.EjemplosdeURIs: http://www.example.org/file.xml#element(home) http://www.example.org/file.html#home http://www.example.org/file2.xml#xpath1(//q[@a=b])

Loimportantedetodoesto,esqueRDFutilizaURIsparaidentificarlosrecursos.Laformaque tomenlasURIsnoesimportante. ParapublicardatosRDFenlaWeb,resultaadecuadolarepresentacinenformadetextomsquela representacinenformadegrafo.ExistendistintasmanerasdeexpresarRDFenformatextual. AlgunasdelasrepresentacionestextualesmscomunesparaRDFson:


55 UniformResourceIdentifier 56 UniformResourceLocator

60|163

Captulo3Ontologas TernasN EstanotacinreferencialosrecursosmediantesusURIscompletas.Porejemplo: <http://www.WorkOnt.org/Examples/C3Manufacture.rdf#Producto1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.WorkOnt.org/Examples/C3Manufacture.rdf#Producto> . 3RDF(N3) Combinalanotacinanteriorconelusode qnames,conlocualdebehaberunaasociacin entre stos (locales) y las URIs (globales). Las ternas se expresan en el orden sujeto predicadoobjecto,seguidodeunpunto(.).Porejemplo: @prefix mfg: <http://www.WorkOnt.com/Examples/C3/Manufacturing.rdf#> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> mfg:Product1 rdf:type mfg:Product . RDFXML EslaformamspopularyconvenienteparalaWebSemntica[Chase,2007B].Porejemplo:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.com#" xmlns:dc="http://purl.org/dc/elements/1.1/#"> <rdf:Description rdf:about="http://www.chaosmagnet.com"> <ex:nombre>Chaos Magnet</ex:name> <dc:creador rdf:resource="http://www.nicholaschase.com" /> </rdf:Description> </rdf:RDF>

RDFdescribecmoespecificarinformacinsobreunrecurso,perolainformacinens mismano significa nada. Para definir los tipos de objetos y sus relaciones, como clases y subclases, es necesariohaceralgunosagregadosalvocabulario.EstosagregadosseencapsulanenRDFSchema, tambinconocidocomoRDFS,elcualtienesupropioespaciodenombresyunaseriedeelementos yatributospredefinidos.

3.5RDFS(RDFSchema)
ElnombreoficialesRDFVocabularyDescriptionLanguage,peroporrazoneshistricasseemplea eltrminoSchema.

61|163

Captulo3Ontologas RDFcreasimplementeunaestructuraenformadegrafopararepresentarlosdatos,mientrasque RDFSproporcionaelvocabularioqueseutilizarenestegrafo[Allemang&Hendler,2008]. Analizarelcasodeunauniversidad,enlacualhayprofesoresqueimpartendeterminadoscursos.Si slosequierehablarsobreelprofesorPoelcursoC,sepuedeutilizarRDF.PeroRDFnotienela capacidadsuficienteparahablarsobreloscursos,loscursosdeprimerao,losprofesores,etc.,es decir, sobre los conjuntos (clases) que definen los tipos de recursos. Tampoco tiene RDF la capacidaddehablarsobrelasrelacionesentreestosconjuntos,esdecir,lasrelacionesentrelos profesoresyloscursos.Paradefinirunvocabulariomedianteelcualsepuedandefinirlosdistintos conceptos(clases)ysusrelaciones,esnecesariohaceralgunosagregados,loscualesseencapsulan enRDFS. LaconstruccinbsicaparaespecificarunconjuntoenRDFSesunaclase,lacualsedefineenel espaciodenombresrfds(rdfs:Class). En RDFS,aligualqueenlamayora delos lenguajes deprogramacin,unode los usos ms importantesdelasclasesesimponerrestriccionessobrequsepuedeafirmarsobreundeterminado concepto. Unavezdefinidaslasclases,sedebernestablecerlasrelacionesentrelasmismasmedianteuna jerarquadesuperclaseysubclase.RDFSproporcionaunnuevorecurso, rdfs:subClassOf, paraexpresarlarelacinesunentreclases: Sujeto dep:Futbolista Predicado rdfs:subClassOf Objeto dep:Deportista

Tabla3.5.1Ejemplodeusodelidentificadorrdfs:subClassOf EnRDFSnoserequierequelasclasesformenunajerarquaestricta,conlocualunaclasepuede tenervariassuperclases. RDFSproporcionaunmedioporelcuallasclasessepuedenrelacionarentres pormediodela relacindesubclaseylasinferenciasquedefinenelsignificadodeestaconstruccin.Estopermitea quien modela en RDFS describir (utilizando la nocin de conjuntos) las relaciones entre los elementosquesedescribenenunacoleccindeternasRDF.Perosisequieredarunsignificadoa los datos, se necesita algo ms que hablar sobre los elementos: se tiene que hablar sobre las propiedadesquelosvinculan,esdecir,lospredicadosdelasternas. RDFS proporciona un mecanismo sencillo para esto, basado en el recurso rdfs:subPropertyOf. La intuicin dice que esta construccin es anloga a rdfs:subClassOf, pero para las propiedades. Por ejemplo la relacin hermano es ms especficaquelarelacinpariente:sialguienesmihermano,entoncestambinesmipariente. Sepuededecirquecuandoseutilizaunapropiedad,elsujetodelaternavienedeunaciertaclasey el objeto proviene de otra. Esto se expresa en RDFS con los recursos rdfs:domain y 62|163

Captulo3Ontologas rdfs:range,respectivamente. EldominioserefierealsujetodecualquierternaqueutilizaPcomosupredicado,yelrangoal objetodecualquierternaqueutilizaaPcomopredicado.CuandoseafirmaquelapropiedadPtiene dominioD(orangoR),seestdiciendoquecadavezqueseuselapropiedadP,sepuedeinferirque elsujeto(oelobjeto)deesaternaesunmiembrodelaclaseD(oR).

3.6OWL(WebOntologyLanguage)
LaexpresividadquebrindanRDFyRDFSesmuylimitada.RDFselimitaapredicadosbinarios mientrasqueRDFSalasjerarquasdesubclasesypropiedades,condefinicionesdedominioy rangodeestaspropiedades. El Web Ontology Working Group del W3C 57 ha identificado una serie de casos de uso caractersticosquerequierenmayorexpresividadquelaquebrindanRDFyRDFS. Un nmero de grupos de investigacin tanto en Estados Unidos como en Europa ya haba identificadolanecesidaddeunlenguajedemodeladodeontologasmspoderoso.Estocondujoa unainiciativaconjuntaparadefinirunlenguajemsrico,llamadoDAML+OIL58. DAML+OIL,asuvez,setom comopuntodepartidaparaqueelWebOntologyWorkingGroup delW3CdefinieraOWL,ellenguajedestinadoaserelestndaryampliamenteaceptadoparala WebSemntica. Comoseve,lasinicialesparaelnombrenocoincidenconelmismo.LaeleccindeOWLsurge comounhomenajealproyectoOneWorldLanguagedeWilliamH.Martindela o1970[Mitri& Chase,2006]. RDFSesmuy til,peronosolucionatodoslosposiblesrequisitos.Las aplicacionescomplejas suelenrequerirmsposibilidades: Caracterizacindepropiedades IdentificacindeobjetoscondiferentesURIs Disyuncinoequivalenciadeclases Poderconstruirclases,noslonombrarlas Queunprogramapuedarazonarsobrealgunostrminos.Porejemplo:silosrecursosAyB tienenlamismapropiedadfoaf:email,entoncesAyBsonidnticos

RDFS proporciona capacidades de inferencias bastante rudimentarias: tipos (en funci n de la pertenencia de clases) y propiedades. RDFS se puede considerar como un lenguaje ontolgico simple.OWLproveecaractersticasmsavanzadasdemodelizacinparadescribircmosepueden relacionarlosdatos.
57 http://www.w3.org/2001/sw/WebOnt/ 58 http://www.daml.org/2001/03/daml+oilindex.html

63|163

Captulo3Ontologas ComolenguajeOWLtiene2objetivoscomplementariosyconflictivos:poderllegaradescribiruna ampliavariedaddeconceptosyrelaciones,peroalmismotiempo,hacerusodeestosconceptos requiere un software que pueda darle sentido a los mismos. Desafortunadamente, cuantas ms opcionesofrezcaunlenguaje,msdifcilresultaescribirsoftwarequelascontempleatodas. Pararesolveresteproblema,enlaespecificacininicialdeOWLelW3Cidentific 3versiones(o especies)deOWL:OWLLite,OWLDLyOWLFull. OWLFull:eslaversinmsexpresivadelastres.Bsicamentepermitehacercualquiercosa quepermitaRDF:sepuedendefinirclases,usarclasescomopropiedadeseindividuos,y construir ontologas que no sean necesariamente decidibles, lo cual significa que un programapodranocontarconlasuficienteinformacinpararespondertodaslaspreguntas sugeridasporlosdatos.InclusolasespecificacionesdeOWLsealanqueespocoprobable queunasolaherramientaalgunavezdesoporteatodaslascaractersticasdeOWLFull. OWLDL:lassiglasDLsignificanDescriptionLogic(lgicadedescripcin).Estaversin tiene mucha de la expresividad de OWL Full, pero requiere que las ontologas sean decidibles.Tambinexigequetodaslasclasessedefinanexplcitamente,ytieneciertas restriccionessobrealgunasdelascaractersticasmsavanzadasdeOWL. OWL Lite: es la versin ms chica de OWL. Es para aquellos que necesiten crear una ontologamssencilla,yquenonecesitentodalaexpresividaddellenguaje.Porejemplo, OWLLitepermiteespecificarquedebeexistirunapropiedadparaunobjeto,yquelamisma debetenerunvalor,peronosepuedeespecificarquvalordebeser.Estaeslaversinms fcilparaconstruirherramientas.

3.6.1AlgunascaractersticasdeOWL
OWLesunacapaextra,casicomoRDFScomparadoconRDF Tienesupropioespaciodenombres,suspropiostrminos SebasaenRDFS Propiedades: EnOWLsepuedecaracterizarelcomportamientodelaspropiedades.Porejemplo, unapropiedadpuedeserlainversadeotra,equivalenteaotra,simtricaconotra, disjuntadeotra,transitiva,etc. OWLhaceunadistincinentre2tiposdepropiedades: DatatypeProperty(su rangoesunliteralcontipo)y ObjectProperty(surangoesunindividuodeuna claseenparticular). Clases EnRDFSsepuedencrearsubclasesdeclasesexistentes,ynadams. EnOWL,sepuedenconstruirclasesapartirdeotrasmediante: La enumeracin de su contenido (la clase consiste exactamente de 64|163

Captulo3Ontologas determinadosindividuos) Lainterseccin,unin,complemento(porejemplo,sepuededefinirunaclase llamada Literatura como la unin de las clases Novela, Poesa e Historias_Cortas) En OWL, toda clase es automticamente una subclase de owl:Thing. Esto significaquenoesnecesariodefinirexplcitamenteestarelacin,selaasume(se puedepensarque owl:Thing eslaclasebasedesdelacualsederivantodaslas dems). OWLtambin defineuna segundaclase, owl:Nothing,la cual representa una clasevaca,sinmiembros. SepuededeclararqueunaclaseAesequivalenteaunaclaseB,que2clasesson disyuntas,etc.

Comoseve,OWLesmuycomplejo: Lacombinacindelasdistintasconstruccionesdeclasesconlasdistintasrestriccioneses muypotente. LalgicaquesigueOWLeslamismaalaseguidaporRDFyRDFS: ExtenderlasposibilidadesquedanRDFyRDFSconnuevascaractersticas Definirlasemntica,esdecir,elsignificadoentrminoderelaciones Poderinferirnuevasrelacionesenbasealasanteriores

3.7Contenidodeunaontologa
Comosedijo,unaontologaest formadaporclases,relacionesentrelasmismas,propiedadesde lasclases,restriccionessobrelaspropiedadeseinstancias(individuos)delasdistintasclases.A continuacin se explican cada uno de estos conceptos, siguiendo una gua desarrollada por Horridge[Horridge,2009].

3.7.1Definicindelasclasesysusrelaciones
Unaclaserepresentauntrmino(importanteparalaontologa)quedescribeungrupodeobjetos similares.Lasclasesseorganizanenunajerarquadeltiposuperclase/subclase(taxonoma),lacual representaunarelacindeltipoesun:unaclaseAesunasubclasedeBsicadainstanciadeAes tambinunainstanciadeB.Otraformadeverunarelacintaxonmicaesmedianteunarelacin tipode:AesuntipodeB. Conlajerarquadeclasesestablecida,sepuedenespecificarciertascaractersticas,porejemplo: Clasesdisyuntas Lasclasessondisyuntassinopuedentenerinstanciasencomn.Porejemplo,dadaslas 65|163

Captulo3Ontologas clases A y B,disyuntas,nopuedeexistirunainstanciaquepertenezcaaambas.Muchos sistemaspermitenespecificar,explcitamente,quevariasclasessondisyuntas.Especificar quelasclasessondisyuntaspermitealsistemavalidarmejorlaontologa. Clasescomplementarias Unaclasecomplementaria(deotra)contienetodoslosindividuosquenoestncontenidosen laclasealaqueseest complementando.PorejemplosepuedetenerlasuperclaseA,ylas subclases B y C.Sila clase B es complementaria de C, stadeber contenertodos los individuosquesonByquenoseanC.

3.7.2Definicindelaspropiedadesdelasclases
Unavezquesehandefinidoalgunasclases,sedebedescribirlaestructurainternadelosconceptos querepresentanlasmismas.Hay2grandestiposdepropiedades: Propiedadesdetipoobjeto:losvaloresdeestaspropiedadessonindividuos(instancias)de otrasclases. Propiedades de tipo datatype: los valores de estas propiedades son un tipo de datos (enteros,cadenas,etc).

SiellenguajeconelquesemodelalaontologaesOWL, stetambintieneuntercertipode propiedad:ladetipoanotacin.Laspropiedadesdetipoanotacinsepuedenutilizarparaagregar informacin(metadatos)alasclases,alosindividuosyalaspropiedades.Ejemplosmscomunes deestosmetadatosson:comentarios,fechadecreacin,autor,referenciasarecursoscomopginas Web,etc. Enunajerarquadeclasesdeltiposuperclase/subclase,todaslassubclasesheredanlaspropiedades desussuperclases.Laspropiedades,aligualquelasclases,puedentenersubpropiedades,conlo cualtambinsepuedenformarjerarquas(taxonomas)depropiedades.Aligualquelasclases,las subpropiedadesespecializanasussuperpropiedades. Lassubpropiedadessepuedencrearparalos2tiposdepropiedades,peroloquenosepuedehacer esmezclarlas,esdecir,nosepuedecrearunasubpropiedaddetipo datatypedeunapropiedadde tipoobjetoporejemplo. Hay2conceptosqueseaplicantantoalaspropiedadesdetipoobjetocomoalasdetipodatatype: Dominio:sonlasclasessobrelascualesseaplicaunapropiedad,olasclasesalasque describeunapropiedad. Rango:sonlasclasespermitidasparalosvaloresdeunapropiedad.

Sobrelaspropiedadesdetipoobjetosepuedenespecificarciertascaractersticas:

66|163

Captulo3Ontologas Propiedadesinversas Todapropiedaddetipoobjetotienesucorrespondientepropiedadinversa.Siunapropiedad vincula un individuo a con un individuo b, entonces su propiedad inversa vincula el individuo b con el a. Guardar la informacin en los 2 sentidos es redundante, sin embargo,desdelaperspectivadelaadquisicindelconocimientoesconvenientecontar explcitamenteconlas2partesdelainformacin. Cuandoseestableceeldominioyrangodeunapropiedad,lapropiedadinversatendr por dominioelrangodelaprimera,yporrangoeldominiodelaprimera. Propiedadesfuncionales Siunapropiedadesfuncional,paraunindividuodado,nopuedehabermsdeunindividuo queest relacionadoconelprimeroatravsdelapropiedad.Porejemplo,lapropiedad tienePorMadreBiolgicaA:algoslopuedeteneruna madrebiolgica.Sisedice queelindividuoa tienePorMadreBiolgicaA b,ytambinsedicequeelindividuo a tienePorMadreBiolgicaAac,entonces,sitienePorMadreBiolgicaAes funcional,sepuedeinferirque b y c debenserlosmismosindividuos.Tambinhayque sealarquesiseespecific a by ccomo2individuosdiferentes,entoncesladeclaracin anteriorllevaraaunaincoherencia. Alaspropiedadesfuncionalestambinselasconocecomopropiedadesdeunsolovalor,y esla nicacaractersticadelaspropiedadesdeltipo objeto quetambinsepuedeaplicar sobrelasdeltipodatatype. Propiedadesfuncionalesinversas Siunapropiedadesfuncionalinversasignificaquelapropiedadinversaesfuncional. Propiedadestransitivas SiunapropiedadPestransitiva,ylamismarelacionaunindividuo aconunindividuob,y tambinalindividuobconelindividuoc,entoncessepuedeinferirqueelindividuoase relacionaconelindividuocatravsdelapropiedadP. Siunapropiedadestransitiva,suinversatambinloes.Siunapropiedadestransitiva,no puedeserfuncional. Propiedadessimtricas SiunapropiedadPessimtrica,ylamismarelacionaunindividuo aconunindividuob, entonceselindividuobtambinserelacionaconelindividuo aatravsdelapropiedadP. Dichodeotramanera,lapropiedadessupropiapropiedadinversa.

67|163

Captulo3Ontologas Propiedadesantisimtricas Si una propiedad P es antisimtrica, y la misma relaciona un individuo a con otro b, entonceselindividuobnosepuederelacionarconelindividuoatravsdelapropiedadP. Propiedadesreflexivas UnapropiedadPsedicequeesreflexivacuandolamismadeberelacionarunindividuo a consigomismo. Propiedadesirreflexivas UnapropiedadPirreflexivarelacionaunindividuoaconunindividuob,dondeaybno sonlosmismos. Finalmente,paraambostiposdepropiedadessepuedenespecificarvalorespordefecto: Siunvalorenparticulareselmismoparalamayoradelasinstanciasdeunaclase,sepuede definiralmismocomovalorpordefectodelapropiedad.Luego,cuandosecreeninstancias de una clase que contenga esta propiedad, se asignar el valor por defecto de forma automtica,elcualluegopuedecambiaracualquierotroquepermitanlasrestricciones.Es decir,losvalorespordefectoestnporconveniencia,noexigennuevasrestriccionessobreel modelonicambianelmodelodeningunamanera.

3.7.3Definicindelasrestriccionessobrelaspropiedades
Laspropiedadesdescribenrelacionesbinarias:lasdetipo datatype describenlasrelacionesentre individuos y valores de datos, mientras que las de tipo objeto describen relaciones entre 2 individuos. Por ejemplo, un individuo a est relacionado con un individuo b a travs de la propiedadP.AhoraconsiderartodoslosindividuosquetienenunarelacinPconotrosindividuos: sepuedeveraestosindividuoscomopertenecientesalaclasedeindividuosquetienenalguna relacinP.Laideaesqueunaclasedeindividuossedescribeosedefineporlasrelacionesenlas cualesparticipanlosmismos.EnOWLsepuedendefinirestasclasesutilizandorestricciones. Lasrestriccionespuedenser: Restriccionesexistenciales Lasrestriccionesexistencialesdescribenclasesdeindividuosqueparticipanenalmenosuna relacinalolargodeunapropiedadespecificadaconindividuosquesonmiembrosdeuna determinada clase. En OWL a este tipo de restriccin se lo conoce con el nombre de someValuesFrom (algunosValoresDe). En la herramienta para edicin de ontologas Protg59 se emplea la palabra some para denotar las restricciones
59 http://protege.stanford.edu/

68|163

Captulo3Ontologas existenciales. Restriccionesuniversales Lasrestriccionesexistencialesespecificanlaexistenciadealmenosunarelacinalolargo deunadeterminadapropiedadaunindividuoqueseamiembrodeunaclaseespecfica.Sin embargo, las restricciones existenciales no exigen que las nicas relaciones que puedan existirparala propiedad dadadeban serconindividuos queseanmiembros dela clase especificada. Las restricciones universales describen clases de individuos que, para una determinada propiedad, slo tienen relaciones a lo largo de esta propiedad con individuos que son miembrosdeunaclaseespecificada. EnOWLaestetipoderestriccinselaconoceconelnombrede allValuesFrom (todosLosValoresDe). En Protg se emplea la palabra only para denotar las restriccionesuniversales. Paraunadeterminadapropiedad,lasrestriccionesuniversalesnoespecificanlaexistenciade unarelacin.Meramenteafirmanquesiexisteunarelacinparalapropiedad,entoncesdebe serconindividuosqueseanmiembrosdeunaclaseespecfica. Restriccionesdecardinalidad EnOWLsepuededescribirlaclasedeindividuosquetienenporlomenos( min),alosumo (max)oexactamente(exactly)unnmeroespecficoderelacionesconotrosindividuoso valoresdetipodedatos. ParaunadeterminadapropiedadP,unarestriccindecardinalidadmnimaindicaelnmero mnimo de relaciones P en las que un individuo debe participar. Una restriccin de cardinalidadmximaespecificaelnmeromximoderelacionesPenlasqueunindividuo puede participar. Una restriccin de cardinalidad exacta especifica el nmero exacto de relacionesPenlasqueunindividuodebeparticipar. Siademsdeespecificarelnmeroexactoderelaciones P enlasquedebeparticiparun individuoseespecificanlostiposdeobjetos(clases)dentrodelarestriccin,setratadeuna restriccindecalidadcualificada. Tipodedatos Unarestriccinsobretipodedatosdescribequtipodevalorespuedetenerlapropiedad.A continuacinselistanlostiposmscomunes: Cadena:eseltipomssimplequeseutilizaparalaspropiedades. Nmero:describepropiedadesconvaloresnumricos. Booleano:sonbanderasdeltipos/no. 69|163

Captulo3Ontologas Enumeraciones: especifican una lista de los valores especficos permitidos para la propiedad. Instancia: permiten la definicin de relaciones entre individuos. Las propiedades cuyos valorespuedenserunainstanciadebendefinirunalistadelasclasespermitidasapartirde lascualesprovienenlasinstancias.

3.7.4Creacindeinstancias(individuos)delasdistintasclases
Laltimaactividadconsisteencrearlasinstanciasindividualesquehicieranfaltaparalasclasesde lajerarqua.Definirunainstanciaindividualdeunaclaserequiere: laeleccindeunaclase lacreacindeunainstanciaindividualdeesaclase completarlosvaloresdelaspropiedades

3.8Lasontologasylosmashupssemnticos
Conelfindeexplicarconmayordetallelarelacinentrelasontologasylosmashupssemnticos, setomacomoejemploacontinuacinuntrabajoquemuestracmosepuederelacionarinformacin genticaconinformacinsobresecuenciasbiolgicasparaencontrardependenciasconlanicotina [Sahoo etal.,2008](sesabequeaproximadamenteentreun40%y60%deladependenciaala nicotinasedebeacontribucionesgenticas,yelrestoengranpartealmedioambiente). Enestetrabajoseexplicacmosepuededarsoportealaintegracindeinformacinempleando tecnologas de la Web Semntica, mostrando cmo consultas biolgicas complejas pueden ser respondidasporunmashupsemntico.Porejemplo:Qu genesparticipanenungrannmerode secuencias?Qu genes(oproductosgnicos)interactanentres?Qu genesseexpresanenel cerebro? Estasconsultasbiolgicasrequierenlaintegracindegrancantidaddeinformacinprovenientede variasfuentes(porejemplo,EntrezGene[Maglott etal.,2005],KEGG [Kanehisa etal.,2004], HomoloGene60,etc),lascualesnosoportanelprocesamientoautomticodeinformacin,necesario pararesponderaestaspreguntascomplejas.Porejemplo,ungranobstculoparalaintegracinesel formatoutilizadoporlasfuentesdeinformacin.As,losrecursosdisponiblesparaEntrezGeney HomoloGene estn en mltiples formatos, incluyendo XML. Aunque XML estandariza la representacindelainformacindesdeunpuntodevistasintctico,noexplicitalasrelacionesentre losdistintostiposdeentidades.Esdecir,aunqueelarchivoXMLdeEntrezGeneseaprocesablepor unamquina,nosepuedeintegrarfcilmente,oautomticamente,conotrasfuentesdeinformacin sinintervencinhumana. Una de las muchas ventajas al utilizar una ontologa como modelo de representacin del
60 http://www.ncbi.nlm.nih.gov/sites/entrez/query.fcgi?db=homologene

70|163

Captulo3Ontologas conocimientoparaintegrarinformacindefuentesheterogneasesquelasemnticaformaldela mismapermiteaunmashupsemnticointerpretarconsistentementelainformacinyrazonarsobre lamisma.

3.9Conclusiones
Enestecaptulosepresentelconceptodeontologa,estructurasobrelacualestnorganizadaslas fuentesdeinformacinqueutilizaunmashupsemntico,yqueresultanfundamentalesparalaWeb Semntica. Seviotambinqueexistendistintoslenguajespararepresentarontologas,cadaunodeloscuales proporcionadistintascapacidadesdeexpresividad.Asporejemplo,RDFdescribecmoespecificar informacinsobreunrecursoatravsdelaspropiedadesdelmismo,mientrasqueRDFSpermite establecerjerarquasdesubclasesypropiedades,condefinicionesdedominioyrangoparaestas ltimas. Adiferenciadeestos2lenguajes,OWLbrindaunacapacidaddeexpresividadmuchom sgrande,a talpuntoqueellenguajeestorganizadoen3grupos:OWLLite,OWLDLyOWLFull. Finalmente se vieron las entidades que forman una ontologa (clases, relaciones, propiedades, instancias)ysemostr unejemploenelcualsesealalaimportanciadelarelacinentrelas ontologasylosmashupssemnticos. Unavezcomprendidoelconceptodeontologa,sedeberesolverelproblemadelaintegracindelas mismas(mediacindeontologas),debidoaquecadafuenteorganizasuinformacinensupropia ontologa.

71|163

Captulo4Mediacindeontologas

CAPTULO4MEDIACINDEONTOLOGAS
UnsupuestoclavedelaWebSemnticaesquehabr muchasontologasdisponibles,lascuales sernconstruidasparadiferentescoleccionesdeinformacinydiferentes tiposdeaplicaciones. Existenmuchasrazonesparaestaproliferacindeontologas:porejemplo,porlogeneralresulta msfcilconstruirunaontologanuevaqueencontrarunaexistentequeresulteapropiadaparauna tareadeterminada.Delmismomodo,muchasvecessequieretenercontroldirectosobrelaontologa deundominioparticular,enlugardedependerdeterceros[Walton,2007]. La tarea de un mashup semntico consiste en combinar (integrar) informacin de las distintas ontologas con las que trabaja, para lo cual deber conciliar las diferencias entre las distintas ontologas,procesoqueseconocecomo mediacindeontologas [Davies etal.,2006],yesel principalproblemaaresolvereneldiseodeunmashupsemntico. Elobjetivodeestecaptuloconsisteenexplicarlasrazonesporlascualessepresentandiscrepancias entre las ontologas y comentar algunos mtodos para solucionarlas, mostrando algunos casos prcticosqueseemplearonenelCaptulo6. EnelApndiceCseencuentraunaclasificacindelasdistintastcnicasparamapearontologas.

4.1Razonesporlasqueseproducendiscrepanciasentrelasontolog as
Para ilustrar por qu se debe realizar la mediacin de ontologas, se pueden considerar los fragmentosde2ontologasquesemuestranenlasfiguras4.1.1y4.1.2,lascualesestnpensadas paraclasificardiferentestiposdecmarasdefoto[Walton,2007].

Figura4.1.1Ontologa1paraclasificardiferentestiposdecmarasdefoto

72|163

Captulo4Mediacindeontologas

Figura4.1.2Ontologa2paraclasificardiferentestiposdecmarasdefoto Alexaminarestas2ontologas,sepuedenapreciar(almenos)lossiguientesproblemas: Algunosconceptospuedentenernombresdiferentes,porejemplo, Cmaraesequivalente a Tipo de cmara. Esto se conoce como heterogeneidad estructural [Muthaiyah, 2008],yaquenohayunacorrespondenciaentrelasestructurasdelasontologas. Algunos conceptos pueden estar presentes slo en una de las ontologas, por ejemplo, Tipo de tarjetayFormato medio. Algunos conceptos pueden ser similares, sin ser idnticos, por ejemplo Cmara de rolloyBack de rollo. Algunosconceptospuedenestarrelacionados,sinserequivalentes,porejemplo Tipo de rollo,yBack de 35 mm. Puedehabersupuestosnodeclaradosenunaontologa,porejemplo,todaslas Cmaras digitalessonAutofoco.

Losproblemasdeheterogeneidadpuedenproducirseadiferentesniveles,sinembargoselospuede clasificarenlassiguientescategoras[Bouquetetal.,2004]: Heterogeneidad sintctica: se produce cuando 2 ontologas se expresan en distintos lenguajes,porejemploOWLyFLogic.Estetipodeheterogeneidadgeneralmentesetrata enelplanoterico,cuandoseestablecenlasequivalenciasentrelasconstruccionesdelos diferentes lenguajes. Por lo tanto, a veces es posible traducir ontologas expresadas en diferenteslenguajesconservandoelsignificado[Euzenat&Stuckenschmidt,2003].Estetipo deheterogeneidadsepresentamuypocoenlaWebSemnticadebidoaqueellenguajems ampliamenteutilizadoesOWL.

73|163

Captulo4Mediacindeontologas Heterogeneidadterminolgica:seencuentrantodaslasformasdediscrepanciasrelacionadas conelprocesodenombrarlasentidadespresentesenunaontologa.Ejemplostpicosde discrepanciasenestenivelsonlossiguientes: Diferentespalabrasqueseutilizanparanombraralamismaentidad(sinonimia),por ejemploPapervsArtculo La misma palabra se utiliza para nombrar diferentes entidades (polisemia), por ejemploSierra(herramienta)vsSierra(cordillera) Palabrasdeidiomasdiferentesseutilizanparanombraralasentidades( Paper vs Artculo) Variacionessintcticasdelamismapalabra(diferenteortografa,abreviaturas,usode prefijososufijosopcionales,etc),porejemplokinesilogovsquinesilogo

Heterogeneidadconceptual(tambinllamadaheterogeneidadsemntica[Euzenat,2001]):se encuentrandiscrepanciasquetienenqueverconelcontenidodeunaontologa,lascuales explican, por ejemplo, por qu diferentes ontologas sobre el mismo dominio pueden comenzarapartirdediferentesclasesprimitivas,oporqu diferentesontologaspueden contener afirmaciones diferentes (posiblemente contradictorias) acerca de las mismas entidades.Estasdiscrepanciassepuedendividiren2tiposprincipales: Diferenciasmetafsicas:tienenqueverconladescomposicindelmundo(esdecir, quentidades,propiedadesyrelacionesestnrepresentadasenunaontologa). Diferenciasepistmicas:tienenqueverconlasafirmacionesquesehacensobrelas entidadesseleccionadas.

Lasformasprcticasenlasquepuedensurgirdiferenciasmetafsicassoninnumerables,pero selaspuedeagruparen3tiposabstractos: Cobertura:2ontologaspuedendiferirentres porquecubrendiferentespartes,que posiblementesesuperponen,delmundo(oinclusodeunnicodominio). 2ontologasquesediferenciansloporlaporcindelmundoquedescribenpueden ser disyuntas opueden solaparse. Un ejemplo sencillo de 2ontologas disyuntas puedeserelcasodeunaontologaOsobreftbolyunaO'sobrecricket.Siseasume quenohayinterseccinentrelas2,unamediacindirquelas2ontologasnotienen ningunarelacin. Lasituacinesligeramentediferentecuandolas2ontologassesuperponen(parcial ocompletamente).Unejemplosencilloesunaontologa Oquedescribalosdeportes deequipoyunaO'quedescribalosdeportesdeinterior(algunosdeportescomoel voleypuedenperteneceraambasontologas).Enestecaso,sedebereconocerla partecomnyresolverlosposiblesproblemassintcticosyterminolgicos.

74|163

Captulo4Mediacindeontologas Granularidad: 2 ontologas pueden diferir entre s porque la primera ofrece una descripcinms(omenos)detalladadelasmismasentidades. Considerarelcasode2ontologasOyO'quedescribanlamismapartedelmundo, pero a diferentes niveles de granularidad. Ejemplos sencillos son: cuando O caracteriza la posicin de objetos fsicos slo mediante 2 coordenadas (latitud y longitud),mientrasque O' tieneencuentatambinunaterceracoordenada(altura sobre el nivel del mar); cuando O expresa medidas en centmetros y O' en milmetros;etc. Paralagranularidad,lamediacindebeproporcionarunaformadepasardelnivelde representacindeunaontologaalnivelderepresentacindelaotra.Estaoperacin es ms compleja que la operacin requerida en el caso de la cobertura, ya que requiere poner en relacin modelos que son intrnsecamente heterogneos (por ejemplo,hechosdelaformapos(x, y)enOconhechosdelaformapos(x, y, t)enO',dondexeypuedenexpresarseendiferentesunidadesdemedida). Perspectiva:unaontologapuedeproporcionarunpuntodevistasobreundominio queseadiferentedeladoptadoenotraontologa. Suponer2ontologas O y O' quedescribenlamismaregindelmundo,almismo niveldegranularidad,perodesdeunaperspectivadiferente.Unejemplopuedeser una representacin que utilice expresiones contextuales (como aqu, ahora, ayer),yaqueelcontenidodeestetipodeexpresionesdependeesencialmentede dnde,cundo,quinlodijo,ysuinterpretacincorrectageneralmenterequierela capacidaddecambiarlaperspectivadeuno.Tambinhayejemplosmenosdirectos: partidarios de 2 partidos polticos diferentes harn descripciones opuestas de los mismospolticos;froseaplicar adiferentescondicionesclimticasenFinlandia queenGrecia,etc. Enestecaso,lamediacindebeproporcionarunaformadecambiarlaperspectiva deunaontologa,cambiarsupuntodevista.Paraalgunasformasdeheterogeneidad, estopuedehacersedemanerasistemticayenunaformarelativamentesencilla(por ejemplo para descripciones contextuales), sin embargo, en general, el cambio de perspectivaesunatareamuydifcilparacualquiermtododemediacin. Heterogeneidadsemitica(tambinllamadaheterogeneidadpragmtica):serefiereacmo interpretanlaspersonaslasentidades.Dehecho,lasentidadesquetienenexactamentela mismainterpretacinsemnticaavecesseinterpretandiferenteporlaspersonasenrelacin conelcontexto.Porejemplo,sielconcepto Europaapareceenelesquemadeclasificacin deunrepositoriomultimediaalolargodeunarutacomo Imgenes/ByN/Europa,nose puedeconcluirqueseaequivalentealconceptoEuropaenunaontologageogrfica,yaque elsignificadopragmticodelprimeroeseldeuncontenedordeimgenesenblancoynegro deEuropa,mientrasqueelsegundosetratadeuncontinente(estonoquieredecirquelos2 conceptosnoestnconectados,sinoquesedebetenerencuentalaestructuradeambos). Estetipodeheterogeneidadesdifcildedetectarparaunamquina,yanmsdifcilde 75|163

Captulo4Mediacindeontologas resolver. Losproblemasdeheterogeneidadterminolgicosysemnticossonpropiosdeesteenfoque,yen muchomenormedidalosdebidosasintaxisporelusodeOWLcomolenguajeestndarparala representacindeontologas.

4.2Formasquepuedetomarlamediacindeontologas
Lamediacindeontologaspuedetomardistintasformas[Daviesetal.,2006]: Correspondencia(mapeo)deontologas:elmapeodeontologasconsisteenencontrarlas correspondencias entre las entidades (relacionadas semnticamente) de diferentes ontologas. Al descubrimiento (semi)automtico de tales correspondencias se lo conoce comoalineacindeontologas. Unindeontologas:cuandoserealizalaunindeontologas,secreaunanuevaontologa como unin de las ontologas originales, la cual captura todo el conocimiento de las primeras. El desafo en la unin de ontologas es asegurar que se reflejen todas las correspondenciasydiferenciasentrelasontologasenlaontologaunin.

Paraelcasodeunmashupsemntico,interesaelmapeodeontologas,yaqueelmismotieneque trabajarconvariasontologascombinndolas.Comosedijo,elmapeoconsisteendefinirrelaciones entrelas distintas ontologas (representaciones heterogneas),lascuales sepuedenutilizarpara transformarlaexpresindeunaontologaenunaformacompatibleconladeotra.Estopuede ocurriracualquiernivel[Bouquetetal.,2004]: sintctico:atravsdetransductoresquepreservenlasemntica terminolgico:atravsdefuncionesquemapeeninformacinlxica conceptual:atravsdelatransformacingeneraldelasrepresentaciones pragmtico:atravsdeunatransformacinquecuideelcontexto

Estosignificaquecualquierprocesodemapeodeontologastiene4componentes: Componente sintctico: las transformaciones sintcticas necesarias para transformar un formatoderepresentacinaotro. Componenteterminolgico:lapartedelmapeoqueexpresalasrelacionesterminolgicas entrelasexpresionesutilizadasparanombrarlasentidadesquesevanamapear.Ejemplos sencillos son: el mismo nombre para 2 entidades; 2 entidades que se denominan con expresionesquesonunatraduccindelaotraenunlenguajediferente;elnombredeuna entidadesunaabreviaturadelnombredelaotra;etc. Componenteconceptual:lapartedelmapeoqueexpresalarelacinentrelasentidadesen diferentes ontologas. Ejemplos sencillos son: el concepto c1 en la ontologa O1 es 76|163

Captulo4Mediacindeontologas equivalentealconceptoc2enlaontologaO2;elconceptoc1enlaontologaO1es similar alconcepto c2 enlaontologa O2;elindividuo i1 enlaontologa O1 esel mismoindividuoi2enlaontologaO2;etc. Componentesemitico/pragmtico:lapartedelmapeoquetiendeunpuentesobreeluso delasentidadesendiferentesontologas.Porejemplo,queelconcepto c1utilizadoenuna ontologaO1paraclasificarunacoleccindedocumentosseutilizaenunsentidodefinido porc2enlaontologaO2;queelnombreusadoparaunconceptoenunaontologasetoma deunlxicoL;etc.

Debequedarclaroqueelproblemadelmapeodeontologasnoestrivial,especialmentesiseintenta automatizaresteproceso.Sinembargo,hayunagranvariedaddetcnicasquesepuedenutilizar,y muchas veces se pueden hacer simplificaciones. Por ejemplo, se pueden requerir slo mapeos parcialesentrelasontologas,esdecir,slolaspartesrelevantesparalatareaaresolver.

4.3Tcnicasparaelmapeodeontologas
Sehanpropuestomuchassolucionesparaelmapeodeontologas,queabarcandiferentespuntosde vista: bases de datos, sistemas de informacin, inteligencia artificial, etc. Estas soluciones aprovechanlasventajasdelasdiversaspropiedades delasontologas:estructuras,instanciasde datos,semntica,etiquetas,etc.yusantcnicasdediferentescampos:estadsticayanlisisdedatos, aprendizajeautomtico,razonamientoautomatizado,lingstica,etc.Estassolucionescomparten algunastcnicasyhacenfrenteaproblemassimilares,perodifierenenlaformaenquecombinany explotansusresultados.Comoconsecuencia,sonmuydifcilesdecompararydescribir,careciendo deunmarcouniforme[Euzenat&Shvaiko,2007]. Unaposibledivisindelastcnicasparamapearontologaspuedeser[Euzenat&Shvaiko,2007]: Las quetrabajananivel elemento:consideran las entidades delas ontologas enforma aisladadesusrelacionesconotrasentidades. Las que trabajan a nivel estructura: consideran a las entidades de las ontologas para compararsusrelacionesconotrasentidades,enlugarde,oademsdecompararsusnombres oidentificadores. Lasquetrabajananivelinstancia:consideranlasinstanciasparaencontrarsimilitudes. Lasquesebasanenlasemntica:lacaractersticaprincipaldeestastcnicasesqueusanla semnticadelateorademodelosparajustificarsusresultados.

77|163

Captulo4Mediacindeontologas

4.4Resolucindelmapeodeontologas
Parademostraralgunospasosprcticosdemapeodeontologas,seexplicalohechoeneldiseodel mashup semntico del caso prctico mostrado en el Captulo 6. En este ejemplo, el objetivo principaldelmashupsemnticoconsisteenpermitirleaunusuariobuscarundeterminadoconcepto endistintasfuentesdeinformacin(Flickr,Picasa,Amazon,Google,YahooyYouTube)yqueasu vezpuedaintercambiarlasmismasavoluntad,creandoalgototalmentenuevosinrealizarning n tipodeprogramacin(deestaforma,elmashupsemnticotratauniformementeaestasfuentes). Lostiposdeheterogeneidadquesepresentan,nosloenestecasoyaquesonpropiasdeeste enfoque,son: Terminolgica (hay variaciones enlos nombres para las mismas entidades en diferentes ontologas:haysinonimia,polisemia,etc) Semntica(haydiferenciasenelmodeladodelmismodominiodeinter s:diferenciasenla cobertura,granularidady/operspectiva)

AestostiposseledebeagregarelSintctico,nopropiodeesteenfoque(verSeccin4.4.2)

4.4.1Heterogeneidadterminolgica
Enesteejemplo,albuscarimgenes(FlickryPicasa),lainformacinquesenecesitadelasmismas eselttulo,eltamao,unadescripcin,laimagenensmismayelautor(nombrerealy/onombre de usuario si lo tuviera). En la tabla 4.4.1.1 se puede ver para cada uno de estos atributos la informacinquedevuelvecadaunadelasfuentes: Atributo ttulo tamao Flickr Picasa

Devuelve informacin sobre el Devuelve informacin sobre el title(ttulo) title(ttulo) Devuelve informacin sobre el Devuelve informacin sobre el height_t (alto) y el width_t height(alto)yelwidth(ancho) (ancho) Devuelve informacin sobre Devuelve informacin description(descripcin) summary(resumen) sobre

descripcin imagen

Devuelveinformacinsobre url_l Devuelve informacin sobre url (URLconladireccindelafoto) (URLconladireccindelafoto) Nodevuelveestainformacin Devuelve informacin sobre el Devuelveinformacinsobreel name ownername(dueo) (nombre)conrespectoaotrasobreel author(autor) Tabla4.4.1.1InformacindevueltaporlasfuentesFlickryPicasa 78|163

nombreautor Nodevuelveestainformacin usuario

Captulo4Mediacindeontologas Comosepuedeverapartirdelatabla4.4.1.1,hayalgunasvariaciones enlosnombresparauna mismaentidad(descriptionysummaryporejemplo). Tambin,sepuedeverqueFlickrparaeltamaodelafotodevuelveheight_tywidth_t,yala fotoensmismaladevuelvecomourl_l,yaqueFlickrdevuelveparaunafotocualquieradistintos tamaos(desdemuychicoamuygrande).Almomentoderealizarlaconsultaaestafuente,seopt porun nicotamao(dadoporlaterminacin_t),yseeligi visualizarlafotoentamaogrande (url_l). Enesteejemplo,pararesolverelproblemadeheterogeneidadterminolgica,elmapeoentrelos conceptos de las distintas ontologas se hizo manualmente, es decir, dado un concepto en una ontologa,sebusc/determinsumejorequivalenteenlaotra.

4.4.2Heterogeneidadsemntica
Para mostrar el problema de la heterogeneidad semntica, siguiendo con el ejemplo del caso prctico,semuestraacontinuacinelcasodelafuenteYouTube.Enesteejemplo,paradescribirun videocualquiera,interesalasiguienteinformacin: ttulodelvideo descripcindelvideo unaimagendelvideo fechadepublicacindelvideo duracindelvideo elvideoensmismo

Alhacerunaconsultaaestafuente,lainformacindevueltatieneelsiguienteformatoXML(en negritaseencuentraresaltadalainformacinrelevanteparaelmashupsemntico):
<?xml version='1.0' encoding='UTF-8'?> <feed xmlns='http://www.w3.org/2005/Atom' xmlns:app='http://www.w3.org/2007/app' xmlns:media='http://search.yahoo.com/mrss/' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:gd='http://schemas.google.com/g/2005' xmlns:yt='http://gdata.youtube.com/schemas/2007' gd:etag='W/&quot;CkECR386fSp7ImA9Wx9UE0g.&quot;'> ... <entry gd:etag='W/&quot;C04CRX47eCp7ImA9Wx9UE0w.&quot;'> <id>tag:youtube.com,2008:video:iLmt4G2tXHY</id> <published>2011-02-10T04:26:04.000Z</published> <updated>2011-02-10T04:26:04.000Z</updated> <category scheme='http://schemas.google.com/g/2005#kind' term='http://gdata.youtube.com/schemas/2007#video'/> <category scheme='http://gdata.youtube.com/schemas/ 2007/categories.cat' term='Entertainment' label='Entertainment'/>

79|163

Captulo4Mediacindeontologas
<category scheme='http://gdata.youtube.com/schemas/ 2007/keywords.cat' term='vos-ke'/> <category scheme='http://gdata.youtube.com/schemas/ 2007/keywords.cat' term='vlogs'/> <category scheme='http://gdata.youtube.com/schemas/ 2007/keywords.cat' term='divertido'/> <category scheme='http://gdata.youtube.com/schemas/ 2007/keywords.cat' term='random'/> <category scheme='http://gdata.youtube.com/schemas/ 2007/keywords.cat' term='mamadas'/> <category scheme='http://gdata.youtube.com/schemas/ 2007/keywords.cat' term='funny'/> <title>calentamiento vacuno</title> <content type='application/x-shockwave-flash' src='http://www.youtube.com/v/iLmt4G2tXHY?f=videos& amp;app=youtube_gdata'/> <link rel='alternate' type='text/html' href='http://www.youtube.com/watch?v=iLmt4G2tXHY& amp;feature=youtube_gdata'/> <link rel='http://gdata.youtube.com/schemas/2007#video.responses' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/ iLmt4G2tXHY/responses?v=2'/> <link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/ iLmt4G2tXHY/related?v=2'/> <link rel='http://gdata.youtube.com/schemas/2007#mobile' type='text/html' href='http://m.youtube.com/details?v=iLmt4G2tXHY'/> <link rel='self' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/ iLmt4G2tXHY?v=2'/> <author> <name>voskevlogs1</name> <uri>http://gdata.youtube.com/feeds/api/users/voskevlogs1</uri> </author> <yt:accessControl action='comment' permission='allowed'/> <yt:accessControl action='commentVote' permission='allowed'/> <yt:accessControl action='videoRespond' permission='moderated'/> <yt:accessControl action='rate' permission='allowed'/> <yt:accessControl action='embed' permission='allowed'/> <yt:accessControl action='list' permission='allowed'/> <yt:accessControl action='syndicate' permission='allowed'/> <gd:comments> <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/ iLmt4G2tXHY/comments?v=2' countHint='0'/> </gd:comments> <media:group> <media:category label='Entertainment' scheme='http://gdata.youtube.com/schemas/2007/ categories.cat'> Entertainment </media:category> <media:content url='http://www.youtube.com/v/iLmt4G2tXHY?f=videos&

80|163

Captulo4Mediacindeontologas
amp;app=youtube_gdata' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='216' yt:format='5'/> <media:content url='rtsp://v4.cache6.c.youtube.com/ CiILENy73wIaGQl2XK1t4K25iBMYDSANFEgGUgZ2aWRlb3MM/ 0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='216' yt:format='1'/> <media:content url='rtsp://v8.cache8.c.youtube.com/ CiILENy73wIaGQl2XK1t4K25iBMYESARFEgGUgZ2aWRlb3MM/ 0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='216' yt:format='6'/> <media:credit role='uploader' scheme='urn:youtube'> voskevlogs1 </media:credit> <media:description type='plain'> vos-ke vlogs video 1 alentamiento vacuno una vreve descipcion del calentamiento global y sus consecuencias.... no mames al chile que verdad tan desastrosa.... </media:description> <media:keywords> vos-ke, vlogs, divertido, random, mamadas, funny </media:keywords> <media:player url='http://www.youtube.com/watch? v=iLmt4G2tXHY&amp;feature=youtube_gdata_player'/> <media:thumbnail url='http://i.ytimg.com/vi/iLmt4G2tXHY/default.jpg' height='90' width='120' time='00:01:48' yt:name='default'/> <media:thumbnail url='http://i.ytimg.com/vi/iLmt4G2tXHY/hqdefault.jpg' height='360' width='480' yt:name='hqdefault'/> <media:thumbnail url='http://i.ytimg.com/vi/iLmt4G2tXHY/1.jpg' height='90' width='120' time='00:00:54' yt:name='start'/> <media:thumbnail url='http://i.ytimg.com/vi/iLmt4G2tXHY/2.jpg' height='90' width='120' time='00:01:48' yt:name='middle'/> <media:thumbnail url='http://i.ytimg.com/vi/iLmt4G2tXHY/3.jpg' height='90' width='120' time='00:02:42' yt:name='end'/> <media:title type='plain'>calentamiento vacuno</media:title> <yt:duration seconds='216'/> <yt:uploaded>2011-02-10T04:26:04.000Z</yt:uploaded> <yt:videoid>iLmt4G2tXHY</yt:videoid> </media:group> <yt:statistics favoriteCount='0' viewCount='1'/> </entry> <entry gd:etag='W/&quot;C08FRn47eCp7ImA9Wx9UEkQ.&quot;'> <id>tag:youtube.com,2008:video:D5xmLylim4U</id> ... </entry> ... </feed>

Comoseve,porcadavideodentrodelelementoraz<feed> hayunelemento<entry>,dentro delcualseencuentradetallada,enformadeatributosuotroselementos,lainformacinsobreel mismo. 81|163

Captulo4Mediacindeontologas Sisecomparalainformacinproporcionadaporestafuenteconlanecesariaporlaontologa,las discrepanciassemnticassedebenaaspectosquetienenqueverconlacobertura(lainformacin provenientedeYouTubecubrepartesquesesuperponenconlasdelaontologa)ylagranularidad (lainformacinprovenientedeYouTubecontieneunadescripcinmsdetalladadelasmismas entidadesdelaontologa). Al igual que en el caso de la heterogeneidad terminolgica, para resolver el problema de heterogeneidad semntica, el mapeo entre los conceptos de las distintas ontologas se hizo manualmente. Entodosloscasos,lainformacindevueltaporlasdistintas fuentesest estructuradaenXML similaralejemplomostradoparaYouTube.Esdecir,lainformacinestpensadaparaserprocesada porunapersona,peronoporunamquina(lainformacinnotienedefinidoexplcitamenteun significado).SiguiendoconelejemplodeYouTube,sisetomaralainformacindelprimervideo quesemuestraenelfragmentoanteriorparacrearunainstanciadelaclase Videoenlaontologa delejemplo,lamismatendraelsiguienteformato:
<owl:NamedIndividual rdf:about="http://www.semanticweb.org/ontologies/tesis#Video1"> <rdf:type rdf:resource="http://www.semanticweb.org/ontologies/tesis#Video"/> <fechaVideo rdf:datatype="&xsd;string"> 2011-02-10T04:26:04.000Z </fechaVideo> <duracionVideo rdf:datatype="&xsd;string">216</duracionVideo> <tituloVideo rdf:datatype="&xsd;string"> calentamiento vacuno </tituloVideo> <urlImagenVideo rdf:datatype="&xsd;anyURI"> http://i.ytimg.com/vi/iLmt4G2tXHY/1.jpg </urlImagenVideo> <urlVideo rdf:datatype="&xsd;anyURI"> http://www.youtube.com/v/iLmt4G2tXHY? f=videos&amp;amp;app=youtube_gdata </urlVideo> <descripcionVideo rdf:datatype="&xsd;string"> vos-ke vlogs video 1 alentamiento vacuno una vreve descipcion del calentamiento global y sus consecuencias.... no mames al chile que verdad tan desastrosa.... </descripcionVideo> <esSubidoPor rdf:resource="http://www.semanticweb.org/ontologies/tesis#Autor1"/> </owl:NamedIndividual> <owl:NamedIndividual rdf:about="http://www.semanticweb.org/ontologies/tesis#Autor1"> <rdf:type rdf:resource="http://www.semanticweb.org/ontologies/tesis#Autor"/> <usuario rdf:datatype="&xsd;string"> http://gdata.youtube.com/feeds/api/users/voskevlogs1 </usuario> <nombreAutor rdf:datatype="&xsd;string">voskevlogs1</nombreAutor>

82|163

Captulo4Mediacindeontologas
</owl:NamedIndividual>

Comparandolos2ltimosfragmentosdecdigo(XMLyOWL),sepuedeverqueparaYouTubela informacindecadavideoest enunelemento <entry>,mientrasqueparalaontologaenun elemento<NamedIndividual>,ymedianteunatributoaboutsedistingueeltipo.Paraelcaso deYouTube,lainformacincorrespondientealafechaenlacualsesubielvideoseencuentraen el elemento <published>, y para la ontologa dentro del elemento <fechaVideo> (fechaVideoesunadelaspropiedadesqueseasignalaclaseVideo). Unmashupsemnticotrabajaconfuentesqueorganizansuinformacindemaneratalquelamisma puedaserinterpretadaporelmashup,esdecir,informacinorganizadaenontologas.Comose mostrenelfragmentoanterior,estas6fuentesorganizansuinformacinenXML(tambinpodran haberlo hecho empleando estructuras relacionales, hojas de clculo, canales de noticias, etc), apareciendodeestaformatambinproblemasrelacionadosalaheterogeneidadsintcticadebidoal empleodedistintoslenguajes/formatos/estndares. En el ejemplo del caso prctico, para resolver el problema de la heterogeneidad sintctica, se convirti elformatodevueltoporcadafuente(XML)alformatodelaontolog a(OWL)mediante transformacionesXSL61.As comoparaelcasodelosdocumentosHTMLseempleanhojasde estiloCSS,paralosdocumentosXMLseempleanhojasdeestiloXSL. AcontinuacinsemuestralatransformacinXSLparaelcasodelafuentedeYouTube:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns="http://www.semanticweb.org/ontologies/tesis" xmlns:n1="http://www.w3.org/2005/Atom" xmlns:media='http://search.yahoo.com/mrss/' xmlns:yt='http://gdata.youtube.com/schemas/2007'> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <rdf:RDF > <xsl:apply-templates select="/n1:feed/n1:entry"/> </rdf:RDF > </xsl:template> <xsl:template match="n1:entry"> <xsl:element name="owl:NamedIndividual"> <xsl:attribute name="rdf:about"> http://www.semanticweb.org/ontologies/tesis# <xsl:value-of select="n1:id"/> </xsl:attribute> <xsl:element name="rdf:type"> <xsl:attribute name="rdf:resource"> http://www.semanticweb.org/ontologies/tesis#Video </xsl:attribute> </xsl:element> 61 http://www.w3.org/Style/XSL/

83|163

Captulo4Mediacindeontologas
<xsl:element name="duracionVideo"> <xsl:attribute name="rdf:datatype"> http://www.w3.org/2001/XMLSchema#nonNegativeInteger </xsl:attribute> <xsl:value-of select="media:group/yt:duration/@seconds"/> </xsl:element> <xsl:element name="fechaVideo"> <xsl:attribute name="rdf:datatype"> http://www.w3.org/2001/XMLSchema#date </xsl:attribute> <xsl:value-of select="n1:published"/> </xsl:element> <xsl:element name="descripcionVideo"> <xsl:attribute name="rdf:datatype"> http://www.w3.org/2001/XMLSchema#string </xsl:attribute> <xsl:value-of select="media:group/media:description"/> </xsl:element> <xsl:element name="tituloVideo"> <xsl:attribute name="rdf:datatype"> http://www.w3.org/2001/XMLSchema#string </xsl:attribute> <xsl:value-of select="media:group/media:title"/> </xsl:element> <xsl:element name="urlVideo"> <xsl:attribute name="rdf:datatype"> http://www.w3.org/2001/XMLSchema#anyURI </xsl:attribute> <xsl:value-of select="n1:content/@src"/> </xsl:element> <xsl:element name="urlImagenVideo"> <xsl:attribute name="rdf:datatype"> http://www.w3.org/2001/XMLSchema#anyURI </xsl:attribute> <xsl:value-of select="media:group/media:thumbnail[1]/@url"/> </xsl:element> <xsl:element name="esSubidoPor"> <xsl:attribute name="rdf:resource"> http://www.semanticweb.org/ontologies/tesis# <xsl:value-of select="n1:author/n1:uri"/> </xsl:attribute> </xsl:element> </xsl:element> <xsl:element name="owl:NamedIndividual"> <xsl:attribute name="rdf:about"> http://www.semanticweb.org/ontologies/tesis# <xsl:value-of select="n1:author/n1:uri"/> </xsl:attribute> <xsl:element name="rdf:type"> <xsl:attribute name="rdf:resource"> http://www.semanticweb.org/ontologies/tesis#Autor </xsl:attribute>

84|163

Captulo4Mediacindeontologas
</xsl:element> <xsl:element name="nombreAutor"> <xsl:attribute name="rdf:datatype"> http://www.w3.org/2001/XMLSchema#string </xsl:attribute> <xsl:value-of select="n1:author/n1:name"/> </xsl:element> <xsl:element name="usuario"> <xsl:attribute name="rdf:datatype"> http://www.w3.org/2001/XMLSchema#string </xsl:attribute> <xsl:value-of select="n1:author/n1:uri"/> </xsl:element> </xsl:element> </xsl:template> </xsl:stylesheet>

Deestaformalatransformacintraducelarepresentacindelainformacindeunafuente(XMLen este caso)en la representacin ontolgica correspondiente. En esta transformacin a suvezse encuentranlosmapeosnecesariospararesolverlosproblemasporheterogeneidadterminolgicay semntica.

4.5Conclusiones
Un mashup semntico es una aplicacin que trabaja con informacin proveniente de diversas fuentes,cadaunadelascualeslaorganizaensupropiaontologa.Altratarconvariasontologas,al momento de integrar la informacin de las mismas el mashup debe resolver los problemas de heterogeneidaddebidoalasdistintasdiscrepanciasquesepresentan,procesoqueseconocecomo mediacindeontologas. Estasdiscrepanciaspuedendeberseacuestionesrelacionadasconelaspectosintctico(debidoal uso de distintos lenguajes para representar las ontologas), el aspecto terminolgico (debido al nombre con el cual se designan las distintas entidades presentes en una ontolog a), el aspecto semntico(debidoalcontenidodelasontologas,pudindosepresentardiscrepanciasporcobertura, granularidady/operspectiva)y/oelaspectopragmtico(debidoalcontextoenelcuallaspersonas interpretanlainformacin). En el caso de un mashup semntico, los tipos de heterogeneidad que se presentan con mayor frecuenciasonlosdebidosacuestionesterminolgicasysemntica,yenmuchomenormedidalos debidosacuestionessintcticas. Para la mediacin de ontologas, se pueden buscar las correspondencias semnticas entre las distintasentidades(mapeodeontologas)osepuedecrearunanuevaontologacomounindelas ontologasquesebuscamediar,lacualcapturetodoelconocimiento(unindeontologas).Parael caso de unmashup semntico, interesa el primer caso(el mapeo), ya queel mismo tiene que trabajarconvariasontologascombinndolas. 85|163

Captulo4Mediacindeontologas Paraelmapeodeontologas,sepuedenempleartcnicasquetrabajananivelelemento,anivel estructura,anivelinstanciaolasquesebasanenlasemntica.Debidoalalcancedeestostemas,se explicaronalgunosdeloscasosquesepresentaronenelejemploprctico,mostrandocomoselos resolvi. Tambin,sedebemencionarquesehandesarrolladounaseriedeherramientasbasadasenlaidea quelaspersonasestnmejorequipadasparamapearontologas.Estasherramientasestndiseadas detalmaneraqueresultafcildefinirlosmapeos,ytambinsepuedencombinarconmtodos automatizados que generan mapeos candidatos. Ejemplos de estas herramientas incluyen: ConcepTool62,PROMPT63,OntoMap64yMAFRA65.

62 63 64 65

http://www.aktors.org/technologies/conceptool/ http://protege.stanford.edu/plugins/prompt/prompt.html http://ontomap.sourceforge.net/ http://mafratoolkit.sourceforge.net/

86|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos

CAPTULO5METODOLOGAPARAELDISEODEMASHUPS SEMNTICOS
El objetivo de este trabajo consiste en definir una metodologa para el diseo de mashups semnticos,queayudealosdesarrolladoresadisearlosdesdecero.Comosedijoantes,unmashup semnticoesunaaplicacinWebqueextraeinformacindediversasfuentes,lacombina(integra)y presentaenotrasformas.Lacaractersticaprincipaldeestainformacinesqueresultalegibleauna mquinaysusignificadoestexplcitamentedefinido. Lossiguientesprincipiosguiarnlaconstruccindeestametodologa: Deber serlosuficientementegeneralparapermitiraundesarrolladordisearunmashup semnticoindependientementedelaplataformadedesarrolloutilizada. Deber definir cada proceso y actividad en forma precisa, indicando claramente su propsito, entradas, salidas y los actores involucrados, adoptndose las siguientes definiciones: Proceso: conjunto de actividades cuyo objetivo es el desarrollo o evolucin del software[Sommerville,2007]. Actividad: cuerpo definido del trabajo a realizar, incluyendo su informacin de entradaysalidarequeridas[IEEE,1997].Lasactividadessepuedendividirenceroo mstareas.

La metodologa propuesta, que se evaluar en un caso de estudio tratado en el Captulo 6, se estructuraenlossiguientesprocesos: 1. 2. 3. 4. 5. 6. 7. Definicindelosobjetivosdelmashupsemntico Modeladodeldominio Mediacindeontologas Accesoalasfuentesdeinformacin Diseodelapresentacin Implementacin Pruebas

Este trabajo no tratar los ltimos 3 procesos de la metodologa propuesta ( Diseo de la presentacin,ImplementacinyPruebas)debidoaqueestostemasseencuentrantratadosen otrostrabajos. Enlafigura5.1puedeverselaestructurageneraldelametodolog a, basadaenlapropuestapor NeOn[GarcaCastroetal.,2009]paraeldesarrollodeaplicacionessemnticas:

87|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos

Figura5.1Estructurageneraldelametodologapropuesta

88|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos Elobjetivodeestecaptuloconsisteenexplicarcadaunodelosprocesosyactividadesqueforman lametodologapropuestaparaeldiseodeunmashupsemntico,describiendocadaunadelas actividades queconformarn los procesos utilizando lasiguienteplantilla [GarcaCastro etal., 2009]: Nombredelaactividad Objetivo Explicaelobjetivoprincipaldelaactividad Entrada Salida Recursos necesarios para realizar la Resultadosobtenidosdespusderealizarla actividad actividad Participantes Identificalagenteinvolucradaenlarealizacindelaactividad Cundo Explicaenqumomentoserealizalaactividad Tabla5.1Plantillaparaespecificarunprocesooactividad

5.1Definicindelosobjetivosdelmashupsemntico
Duranteesteproceso,sedebeformularladeclaracindelosobjetivosdelmashupsemntico,yaque delocontrario,nosecontar conunabaseadecuadaparatomardecisionesreferidasalproceso siguiente(Modeladodelaontologadereferencia),oparaevaluarlaefectividaddelmismo. Tambin,estadeclaracinservir comobaseparadecidirqu informacinincluir(ono),cmo estructurarlaycmopresentarla. Lafinalidaddecualquiermashup(semnticoo2.0)espresentarleinformacinalusuariodela formams tilposible,debiendoserlainteraccinconelmismolomssimpleysloconloque resulte necesario. Por esta razn, para establecer los objetivos se emplear el lenguaje natural utilizandolaterminologadelusuario[Feiler,2008]. Comolosmashups(semnticoso2.0)sonaplicacionesWebsimples,conmetasbienespecficas, tienenpocosobjetivos.Porejemplo,enelcasoprcticodesarrolladoenelCaptulo6,seespecifica queelobjetivoprincipaldelmashupsemnticoconsistir enpermitirleaunusuariobuscaren distintas fuentes de informacin (libros, artculos de noticias, imgenes y videos), pudiendo intercambiarlasmismas avoluntad,(usaruna,todas,oungrupodeestasfuentes)sinrealizar ningntipodeprogramacin(caractersticadecualquiermashup).Porestarazn,esteproceso estarcompuestoporunasolaactividad:Definirlosobjetivosdelmashupsemntico.

89|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos

5.1.1Definirlosobjetivosdelmashupsemntico
Definirlosobjetivosdelmashupsemntico Objetivo Estaactividadestablecelosobjetivosquedebecumplirelmashupsemntico Entrada Lasnecesidadesdelolosusuarios Participantes Desarrolladoresdelmashupsemnticoyopcionalmenteelclienteolosusuariosfinales. Es necesario que algunos de los desarrolladores tengan experiencia en tecnologa semntica Cundo Estaactividadsedeberealizaralcomienzo,enelprocesode Definicindelosobjetivos delmashupsemntico Tabla5.1.1.1ActividadDefinirlosobjetivosdelmashupsemntico Salida Una declaracin con los objetivos del mashupsemntico

5.2Modeladodeldominio
Unavezestablecidoslosobjetivosdelmashupsemntico,lametadeesteprocesoesconvertirlosen descripcionesformales,quesepuedanutilizarmstardeparaimplementarelmashupsemntico. Esteprocesotrataconelmodeladodeldominiodelmashupsemntico. YaseaquesedesarrollensistemastradicionalesoaplicacionesparalaWeb,apareceelconcepto demodelo,elcualseutilizaenelcontextodemodelodeldominio.Paraunsistemasoftware,un modelodeldominiorepresentalosconceptosylasestructurasdedatosrelacionadasapartirdeun dominio de aplicacin. Tambin codifica el conocimiento que gua el comportamiento de la aplicacin,yseexpresamedianteunconjuntodeclasesyunadescripcindelasinteraccionesentre lasmismas,porejemplo,medianteunacoleccindediagramasdediseoUML.Elmodelodel dominioeslapartecentraldeunsistemasoftware. EnelcasodelaWebSemntica,lasaplicacionesutilizanontologasymodelosRDF,esdecir,en cualquieraplicacinparalaWebSemntica,laontologaeselmodelodeldominio[Yu,2011]. Para un mashup semntico, esta ontologa representa su modelo del dominio (contiene los conceptosylasrelacionesentrelosmismos)yeslaquepermiteestablecerlascorrespondencias (mapeos) entre los distintos conceptos y relaciones entre las ontologas de las fuentes de informacinconlascualestrabaja.

90|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos As,unmashupsemnticoquetrabajecon3ontologas,A,ByC,deberintegrarlainformacinde lasmismasestableciendolosmapeoscorrespondientestomandosuontologacomoreferencia. Lafinalidaddeesteprocesoesmodelareldominiodelmashupsemnticoenunaontologa,lacual seutilizar comoreferenciaparaluegopoderrealizarlamediacindelasdistintasontologasde cadaunadelasfuentesdeinformacin. Eldesarrollodeunaontologaincluye: ladefinicindelasclases; laorganizacindelasclasesenunajerarquataxonmica(subclasesuperclase); ladefinicindelaspropiedadesyladescripcindelosvalorespermitidosparalasmismas; laasignacindevaloresalaspropiedadesparalasdistintasinstancias.

Teniendoencuentaesto,ysiguiendolaguapropuestaporHorridge[Horridge,2009],esteproceso estarcompuestodelasactividadesDeterminareldominioyalcancedelaontologa,Reutilizar ontologasexistentes,Enumerarlostrminosimportantesdelaontologa,Definirlasclasesy sus relaciones, Definir las propiedades de las clases, Definir las restricciones sobre las propiedadesyCrearinstancias(individuos)delasdistintasclases.

5.2.1Determinareldominioyalcancedelaontologa
Paradeterminareldominioyalcancedelaontologadereferenciasedebernresponderalgunas preguntas: Culeseldominioqueabordarlaontologa? Paraqusevaautilizarlaontologa? Aqutipodepreguntasdebedarrespuestalainformacinenlaontologa? Quinutilizarymantendrlaontologa?

Lasrespuestasaestaspreguntaspuedencambiarduranteeldiseodelaontologa,peroencualquier instantedetiempoayudanalimitarelalcancedelmodelo. Enelcasoprctico,paradeterminareldominioyalcancedelaontologasetuvoencuentaquese debatratarconinformacinrelacionadaconlibros,videos,imgenesyartculosdenoticias.La ontologadebapermitirresponderapreguntascomo: Qulibros,videos,artculosdenoticiasy/oimgeneshayrelacionadosaunconcepto? Culeslainformacindetalladadeloslibros,videos,artculosdenoticiasy/oimgenes quetieneninformacinsobreunconcepto?

Lasrespuestasaestaspreguntasayudanadeterminareldominioyalcancedelaontologa.

91|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos

Determinareldominioyalcancedelaontologa Objetivo Estaactividaddeterminaeldominioyalcancedelaontologa Entrada Salida La salida del proceso Definicin de los Unadeclaracinconeldominioyalcance objetivos del mashup semntico (una delaontologa declaracin con los objetivos del mashup semntico) Participantes Desarrolladoresdelmashupsemnticoyopcionalmenteelclienteolosusuariosfinales Cundo Estaactividadsedeberealizarunavezdefinidoslosobjetivosdelmashupsem ntico(al comienzo) Tabla5.2.1.1ActividadDeterminareldominioyalcancedelaontologa

5.2.2Reutilizarontologasexistentes
Casisiempreconvieneconsiderarloquehanhechootrosycomprobarsisepuederefinaryextender paraundominioytareaenparticular.Reutilizarontologasexistentespuedeserunrequisitosiel sistemanecesitainteractuarconotras aplicaciones comprometidas conontologas particulares o vocabularioscontrolados. Haymuchasontologasdisponiblesenformatoelectrnicoquesepuedenimportarenelentorno queseestutilizando.Elformalismoenelqueseexpreseunaontologanoimporta,yaquemuchos sistemasderepresentacindelconocimientopuedenimportaryexportarontologas.Inclusosiun sistema de representacin del conocimiento no puede trabajar directamente con un formalismo particular,latareadetraducirunaontologadeunformalismoaotronosueleserdifcil. Comosedijoantes,avecestambinresultamsfcilconstruirunaontologanuevaqueencontrar unaexistentequeresulteapropiadaparaunatareadeterminada.Tambinsepuedequerertenerel controldirectosobrelaontologadeundominioparticular,enlugardedependerdeterceros. Conrespectoalasfuentesdeinformacinconlasquetrabajaelmashupsemntico,sepueden presentarlossiguientescasos: 1. Queningunacuenteconunmodelosemntico(esdecir,queningunafuentecuenteconuna ontologa) 2. Quetodascuentenconunmodelosemntico(esdecir,quetodaslasfuentescuentenconuna ontologa) 92|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos 3. Unacombinacindelos2casosanteriores. Sialgunafuentedeinformacincontaraconunaontologa,lamismapodrareutilizarse(totalo parcialmente)paramodelareldominiodelmashupsemntico,yporlotantoservircomoontologa de referencia contra la cual integrar el resto. An cuando todas las fuentes contaran con una ontologa,tambinsepodrareutilizarotraontologaexistenteparamodelareldominio. Enelcasoqueningunafuentecontaraconunaontologa,sepodratomarelmodelodedatos subyacentedeunadelasfuentes(uotromodelodedatosexistente)paramodelarlaontolog ade referencia. Sisetomaladecisindereutilizarunaontologaexistente(ounmodelodedatosquesirvapara modelarlaontologadereferencia),encasodeexistirmsdeunaprimerohabrqueseleccionarla que mejor se ajuste a los objetivos del mashup semntico, y luego determinar si la misma se reutilizartotaloparcialmentesegnelresultadodelaactividadanterior( Determinareldominioy alcancedelaontologa).Conestaontologadereferencia,habr querealizarlamediacinconel resto de las ontologas de las otras fuentes de informacin (ver la actividad Mediacin de ontologas). Enelcasoprctico,ningunafuentedeinformacincontabaconunaontologa,ysetomladecisin decrearunaontologanueva,debiendorealizarlasactividades Enumerarlostrminosimportantes delaontologa,Definirlasclasesysusrelaciones,Definirlaspropiedadesdelasclases, DefinirlasrestriccionessobrelaspropiedadesyCrearinstancias(individuos)delasdistintas clasesafindeobtenerlaontologadereferencia.Seesperaqueenunfuturocadavezmsfuentes cuentenconunaontologa. Reutilizarontologasexistentes Objetivo Estaactividadbuscaontologaspreviasquesepuedanadaptaraldominioyalcancedela ontologadereferencia Entrada Salida Salida de la actividad Determinar el Un conjunto de ontologas o modelos de dominio y alcance de la ontologa datossubyacentes(encasodeexistir) correspondiente al proceso Modelado del dominio Participantes Desarrolladoresdelmashupsemntico Cundo Estaactividadsedeberealizarunavezdefinidoseldominioyalcancedelaontolog ade referenciaquesebuscamodelar Tabla5.2.2.1ActividadReutilizarontologasexistentes 93|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos

5.2.3Enumerarlostrminosimportantesdelaontologa
Resultatilhacerunalistadeaquellostrminossobrelosquesedeseanhacerdeclaraciones: Culessonlostrminossobrelosquesequierehablar? Qupropiedadestienenesostrminos? Qusequerradecirsobreesostrminos?

Inicialmente, es importante obtener una lista completa de estos trminos sin preocuparse del solapamiento entre los conceptos que representan, las relaciones entre los mismos o si un determinadoconceptosedebeconsiderarcomounaclaseocomounapropiedad. Las siguientes 2actividades,Definirlasclases yrelacionesentrelas mismasyDefinirlas propiedadesdelasclases,estnestrechamenterelacionadas.Esdifcilhacerunadeellasprimeroy luegolaotra.Porlogeneral,secreanalgunasdefinicionesdelosconceptosenlajerarqu ayluego se continan describiendo las propiedades de estos conceptos y as sucesivamente. Estas 2 actividadessontambinlasmsimportantesenesteproceso. Porejemplo,algunosdelostrminosimportantesparaelcasoprcticoeran:libro,nmerodeISBN, ttulo, idioma, editorial, precio, autor, usuario, video, fecha de publicacin, duracin, imagen, tamao,artculodenoticia,resumen,etc. Enumerarlostrminosimportantesdelaontologa Objetivo Estaactividadbuscaobtenerunalistaconlostrminosmsimportantesparalaontologa, concentrndoseenloimportantedejandodeladolosdetallesinnecesarios Entrada Salida Salida de la actividad Determinar el Un listado con los trminos ms dominio y alcance de la ontologa importantesparalaontologa correspondiente al proceso Modelado del dominio Participantes Desarrolladoresdelmashupsemnticoyopcionalmenteelclienteolosusuariosfinales. Cundo Estaactividadsedeberealizarunavezdefinidoseldominioyalcancedelaontolog aque sebuscamodelar Tabla5.2.3.1ActividadEnumerarlostrminosimportantesdelaontologa 94|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos

5.2.4Definirlasclasesysusrelaciones
Hayvariosenfoquesposibleseneldesarrollodeunajerarquadeclases: De arriba hacia abajo (topdown): comienza con la definicin de los conceptos ms generaleseneldominioylaposteriorespecializacindelosmismos. Deabajohaciaarriba(bottomup):comienzaconladefinicindelasclasesmsespecficas (las hojas de la jerarqua) y la posterior agrupacin de las mismas en conceptos ms generales. Una combinacin de los 2 enfoques anteriores: primero se definen los conceptos ms relevantesyluegoselosgeneralizayespecializademaneraapropiada.

Ninguno de los enfoques anteriores es, intrnsecamente, mejor que cualquiera de los otros. El enfoquemsadecuadodependeengranmedidadelavisinquesetengasobreeldominio.Seacual seaelmtodoqueseelija,porlogeneralsecomienzaporladefinicindelasclases.Apartirdela lista creada en la actividad 5.2.3 (Enumerar los trminos importantes de la ontologa), se seleccionanlostrminosquedescribenlosobjetos,loscualessernlasclasesenlaontologade referencia,queseorganizarnenunajerarquadeltiposuperclase/subclase(taxonoma). Nohayuna nicajerarquacorrectadeclasesparaundominiodado.Lajerarquadependedelos posiblesusosdelaontologa,delniveldedetallenecesarioparalaaplicacin,delaspreferencias personales,ymuchasvecesderequisitosdecompatibilidadconotrosmodelos. Conlajerarquadeclasesestablecida,sepuedenespecificarciertascaractersticas,porejemploqu clases son disyuntas o cules complementarias. A continuacin, se enumeran algunas caractersticas/recomendacionesatenerencuentaaldesarrollarunajerarquadeclases: Transitividaddelasrelacionesjerrquicas SiBessubclasedeAyCessubclasedeB,entoncesCessubclasedeA. Evitarlosciclosdeclases Sedicequehayuncicloenunajerarquacuandounaclase A tieneunasubclase B yal mismotiempo,BesunasuperclasedeA.Lacreacindeestecicloesigualadeclararquelas clases A y B sonequivalentes:todaslasinstanciasde A soninstanciasde B,ytodaslas instanciasdeBsontambininstanciasdeA. Cundointroducirunanuevaclase(ono) Unadelasdecisionesmsdifcilesdetomarduranteelmodeladoescundointroduciruna nuevaclaseocundorepresentarunadistincinatravsdelosdiferentesvaloresdeuna propiedad.Resultadifcilnavegartantounajerarquamuyanidadaconmuchasclasescomo 95|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos unajerarquamuyplanaconmuypocasclasescondemasiadainformacincodificadaen propiedades.Encontrarelequilibrioadecuadonoresultafcil. Hayvariasreglasqueayudanadecidircundointroducirnuevasclasesenunajerarqua: Lassubclasesdeunaclasegeneralmente(1)tienenpropiedadesadicionalesquela superclasenotiene,o(2)tienenrestriccionesdiferentesalasdelasuperclase,o(3) participanenrelacionesdiferentesquelassuperclases. Enotraspalabras,seintroduceunanuevaclaseenlajerarquageneralmenteslo cuandohayalgoquesepuededecirsobreestaclasequenosepuededecirsobrela superclase.Enlaprctica,cadasubclasedeberatenernuevaspropiedades,onuevos valores para esas propiedades, o sobrescribir algunas restricciones para las propiedadesheredadas. Sinembargo,avecespuederesultartilcrearnuevasclases,inclusosinointroducen ninguna propiedad nueva. Por ejemplo, una ontologa que trata sobre un sistema electrnico de registros mdicos puede incluir una clasificacin de las diversas enfermedades.Estaclasificacinpuedesersloeso,unajerarquadetrminos,sin propiedades(oconelmismoconjuntodepropiedades).Enesecaso,siguesiendo til organizarlostrminosenunajerarquaenlugardetenerunalistaplanaporque(1) permitir unaexploracinynavegacinmsfcily(2)permitir almdicoelegir fcilmenteunniveldegeneralidaddeltrminoqueseaapropiadoparalasituacin. Otraraznparaintroducirnuevas clasessinnuevas propiedades esparamodelar conceptosentreloscualeslosexpertosdeldominiocomnmentehacendistinciones, apesarquesepuedehaberdecididonomodelartaldistincin. Porltimo,nosedebencrearsubclasesdeunaclaseparacadarestriccinadicional.

Enelcasoprctico,algunasdelasclasesquesedefinieronfueron: Libro, Imagen, Video, Articulo, Servicio, ServicioLibros, ServicioImagenes, ServicioVideos, ServicioNoticias, Parametro, Autor, Fuente (las clases ServicioLibros, ServicioImagenes,ServicioVideosyServicioNoticiasrepresentanlasfuentesde donde se obtendr la informacin correspondiente). Se establecieron las clases ServicioLibros, ServicioImagenes, ServicioVideos y ServicioNoticias comosubclasesdeServicio.Porejemplo,entrelasclasesServicioyParametrosedefini unarelacinllamadatiene(unServiciotieneParametros).

96|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos

Definirlasclasesysusrelaciones Objetivo Estaactividadbuscaobtenerunalistaconlasclasesdelaontologaorganizadasenuna estructurajerrquicadeltiposuperclase/subclase,ysusrelaciones Entrada Salida Salida de la actividad Enumerar los Unajerarquataxonmicaconlasclasesde trminos importantes de la ontologa laontologaysusrelaciones correspondiente al proceso Modelado del dominio(elconjuntodetrminosrelevantes para el dominio y alcance de la ontologa quesebuscamodelar) Participantes Desarrolladoresdelmashupsemntico Cundo Estaactividadsedeberealizarunavezdefinidos los trminosmsimportantes dela ontologa Tabla5.2.4.1ActividadDefinirlasclasesysusrelaciones

5.2.5Definirlaspropiedadesdelasclases
Lasclasespors solasnoproporcionaninformacinsuficientepararesponderlaspreguntasdela actividad5.2.1(Determinareldominioyalcancedelaontologa).Unavezquesehandefinido algunasclases,sedebedescribirlaestructurainternadelosconceptosquelasmismasrepresentan. Una vez seleccionadas las clases a partir de la lista de trminos creada en la actividad 5.2.3 (Enumerarlostrminosimportantesdelaontologa),esprobablequelamayorpartedelos trminosrestantesseanpropiedadesdeestasclases. Enelcasoprctico,algunasdelaspropiedadesquesedefinieronparalaclase Libro fueron: titulo,isbn,idioma,precio,editorial,url.

97|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos Definirlaspropiedadesdelasclases Objetivo Estaactividadbuscaobtenerunalistaconlaspropiedadesdelasclasesdelaontologa, lascualesaligualquelasclases,puedenorganizarseenunaestructurajer rquicadeltipo superpropiedad/subpropiedad Entrada Salida Salida de la actividad Enumerar los Un conjunto con las propiedades de las trminos importantes de la ontologa clases de la ontologa. Estas propiedades correspondiente al proceso Modelado del tambin pueden organizarse en una dominio (conjunto de trminos relevantes estructurajerrquica para el dominio y alcance de la ontologa quesebuscamodelar) Participantes Desarrolladoresdelmashupsemntico Cundo Estaactividadsedeberealizarunavezdefinidos los trminosmsimportantes dela ontologayobtenidosapartirdestoslasclasesquelosrepresentan Tabla5.2.5.1ActividadDefinirlaspropiedadesdelasclases

5.2.6Definirlasrestriccionessobrelaspropiedades
Unarestriccindescribeunaclaseannima(unaclasesinnombre).Laclaseannimacontiene todos los individuos que satisfacen la restriccin, es decir, todos los individuos que tienen las relacionesnecesariasparaserunmiembrodelaclase.Deestaforma,lasrestriccionesseemplean enlasdescripcionesdeclasesOWLparaespecificarsuperclasesannimasdelaclasequeseest describiendo. Ejemplosderestricciones: LaclasedeindividuosquetienealmenosunarelacinP. LaclasedeindividuosquetienealmenosunarelacinPconlosmiembrosdelaclaseA. LaclasedeindividuosqueslotienerelacionesPconindividuosquesonA. Laclasedeindividuosquetienemsde3relacionesP.

98|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos Definirlasrestriccionessobrelaspropiedades Objetivo Esta actividad busca refinar las propiedades obtenidas en la actividad Definir las propiedades de las clases, estableciendo restricciones que se pueden aplicar a las mismas Entrada Salida Salida de la actividad Definir las Un conjunto actualizado con las propiedadesdelasclases,correspondiente restricciones que se pueden aplicar a las al proceso Modelado del dominio (el propiedadesdelasclasesdelaontologa conjunto de propiedades que describen las clasesdelaontologaquesebuscamodelar) Participantes Desarrolladoresdelmashupsemntico Cundo Estaactividadsedeberealizarunavezdefinidos los trminosmsimportantes dela ontologadereferenciayobtenidosapartirde stoslasclasesquelosrepresentanjunto consuspropiedades Tabla5.2.6.1ActividadDefinirlasrestriccionessobrelaspropiedades Enelcasoprctico,debidoalosobjetivosdelmashupsemntico,nohubonecesidaddedefinir restriccionesadicionales.

5.2.7Crearinstancias(individuos)delasdistintasclases
Laltimaactividad,aligualquelaactividad5.2.2( Reutilizarontologasexistentes),esopcional, yconsisteencrearlasinstanciasindividualesquehicieranfaltaparalasclasesdelajerarqua.Esta actividad es opcional porque no siempre es necesario que una ontologa tenga individuos pertenecientesalasclasesquetienedefinidas. En el caso prctico se definieron algunos individuos para las clases ServicioImagenes, ServicioNoticias, ServicioLibros, ServicioVideos y Parametro, los cuales actancomovaloresinicialesparapoderrealizarluegolabsquedaenlasdistintas fuentesde informacin(representanlosparmetrospararealizarlasbsquedas). Definirunainstanciaindividualdeunaclaserequiere: laeleccindeunaclase lacreacindeunainstanciaindividualdeesaclase completarlosvaloresdelaspropiedades

99|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos Porejemplo,paralaclaseServicioImagenessecrearon2instancias:unallamadaFlickry la otra Picasa, las cuales tienen los datos necesarios para poder acceder a esas fuentes de informacin.

Crearinstancias(individuos)delasdistintasclases Objetivo Esta actividad busca crear las instancias necesarias para las clases obtenidas en la actividadDefinirlasclasesysusrelaciones Entrada Salida SalidadelasactividadesDefinirlasclases Unconjuntodeinstanciascorrespondientes ysusrelaciones,Definirlaspropiedades a las clases de la ontologa que se est de las clases y Definir las restricciones diseando sobre las propiedades, correspondiente al procesoModeladodeldominio Participantes Desarrolladoresdelmashupsemntico Cundo Estaactividadsedeberealizarunavezdefinidaslasclases,propiedadesyrestricciones quesepuedanestablecersobrelasmismas Tabla5.2.7.1ActividadCrearinstancias(individuos)delasdistintasclases

5.3Mediacindeontologas
EnlaWebSemnticatodalainformacinest organizadaenontologas.Porlotanto,elmashup semntico al realizar la mediacin de las distintas ontologas con las que trabaja, los tipos de heterogeneidadquesepresentarnenmuchomayormedidasernlosdebidosalasdiscrepancias terminolgicasyconceptuales(semnticas),yenmuchomenormedidalosdebidosadiscrepancias sintcticas(enelcasoquelasdistintasontologasseexpresenenunlenguajedistintoalOWL).Este procesosemuestraenlafigura5.3.1.

100|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos

Figura5.3.1MediacinenlaWebSemntica Sinembargo,enlaWeb1.0y2.0lainformacinest organizadademaneratalquesloresulta comprensiblealaspersonas(porejemplo,informacinorganizadaendocumentosHTML,XML, etc).Comosedijoantes,lainformacinorganizadadeestaformanotransmitenada tilsobrelos recursossubyacentes. Unmashupsemnticotrabajaconinformacinestructuradaenontologas,porloquesedebern traducircadaunadelasrepresentacionesqueempleanlasdistintasfuentesensucorrespondiente representacinontolgica,paraluegopoderrealizarlamediacinentrelasmismas.Esteprocesoes loquesemuestraenlafigura5.3.2.

Figura5.3.2MediacinenlaWeb1.0/2.0

101|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos Enestecaso,antesderesolverlosproblemasporlasdiscrepanciasterminolgicasyconceptuales, primerosetendrnqueresolverlasdiscrepanciassintcticasdebidoalempleodedistintoslenguajes paraorganizarlainformacin. Porejemplo,enelcasoprctico,las6fuentesconlasquetrabajaelmashup(YouTube,losservicios denoticiasdeGoogleyYahoo,Amazon,FlickryPicasa)tienenorganizadasuinformacinen XML. Losmtodosqueseutilicenpararealizarelmapeodelasontologasdependern,entreotrascosas, delacomplejidaddelasmismasyeldominiodeinformacinqueabarquen. Esteprocesoestarcompuestoporlaactividad:Mapearontologas.

5.3.1Mapearontologas
Mapearontologas Objetivo Estaactividadbuscamapearlas distintasontologasconlas cuales trabajaelmashup semnticotomandolaontologadereferenciaobtenidaenelproceso5.2( Modeladodel dominio) Entrada Salida Lainformacindelasdistintasfuentescon La informacin de las distintas fuentes las cuales trabajar el mashup semntico, integradasegnlaontologadereferencia ms la ontologa que se tomar como referenciapararealizarlamediacin(esla diseada en el proceso Modelado del dominio) Participantes Desarrolladoresdelmashupsemntico Cundo Estaactividadsedeberealizarunavezdesarrolladalaontologadereferencia Tabla5.3.1.1ActividadMapearontologas

5.4Accesoalasfuentesdeinformacin
Unavezquesetienendefinidoslosmapeosentrelasontologasdelasdistintasfuentes,elmashup semnticodebeextraerlainformacinproporcionadaporcadaunaparacombinarlaypresentarlaen otrasformas,paramejorarlapresentacinvisualdelamismaoambascosas. 102|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos Losmapeosentrelasdistintasontologassirvenparaque: Cuandoelmashupsemnticolealainformacinde2fuentessimilares(FlickryPicasapor ejemplo),sepaqu informacindeunafuentesecorrespondeconqu informacindela otra. Cuandoelmashupsemnticolealainformacinde2fuentesdistintas(Flickryelservicio denoticiasdeGoogleporejemplo),sepacombinarlainformacindeunafuenteconla informacindelaotra.

Segnloexplicado,esteprocesoestar compuestoporlaactividad: Accederalasfuentesde informacin.

5.4.1Accederalasfuentesdeinformacin
Accederalasfuentesdeinformacin Objetivo Estaactividadbuscaobtenerlainformacindelasdistintasfuentesconlascualestrabaja el mashup semntico. La informacin que se obtenga de cada una de las fuentes dependerdelosobjetivosdelmismo Entrada Salida Lasfuentesdeinformacinsobrelascuales La informacin de las distintas fuentes trabajarelmashupsemnticoylaontologa organizadasegnlaontologadereferencia dereferencia,lacualtienelosmapeosentre lasontologasdelasdistintasfuentes Participantes Desarrolladoresdelmashupsemntico Cundo Estaactividadsedeberealizarunavezdefinidoslosmapeosentrelasontologasdelas distintasfuentesdeinformacin Tabla5.4.1.1ActividadAccederalasfuentesdeinformacin

5.5Diseodelapresentacin
El objetivo de este proceso es complementar el diseo conceptual obtenido de los procesos anterioresconlosdetallesnecesariosparasuimplementacin.Enprincipio,seraposiblegenerar unaimplementacinapartirdeldiseoconceptual,peroestonoesrealistaporvariasrazones[De 103|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos Troyer etal.,2008].Porejemplo,laWebest muyorientadaalovisual,ylosestndarespara presentacinsehanvueltomuyaltosenlosltimosaos.LossistemasWebprofesionalesnecesitan tenerunaaparienciaprofesional,ylosdiseadoresgrficos,porlogeneral,estninvolucradospara lograresto.Adems,unmashup(semnticoo2.0)norequieredemuchosclics,pero,porotrolado, demasiadainformacinenunasolapginasobrecargarlamismaydisminuirlausabilidad. Unmashup(semnticoo2.0)porlogeneralnotienemuchainteraccinconelusuario.Sufuncin consisteenproporcionarunaccesorpidoalainformacin,provenientedevariasfuentes,sintoda lainteraccinqueimplicanavegarporpginasWeb.Porlogeneral,estainteraccinconstade2 partes[Feiler,2008]: 1. Unapginadeinicioquepermitealusuarioespecificarlainformacinamostrar 2. Unapginadondesemuestralainformacin Avecessepuedeomitirlapginadeinicioencasoqueelpropiomashupsemnticoseaquien decidaquinformacinrecuperar(porejemplo,informacindelasltimas24horas). Por lo tanto, la informacin se debe agrupar en pginas de tal manera que se logre un buen equilibrioentrecantidadynmerodeclicsnecesariosparallegaralamisma. Duranteeldiseodelapresentacin,sedefinelaaparienciadelmashupsemntico,as comoel diseodelaspginas(esdecir,laposicindeloselementosdentrodelaspginas).

5.6Implementacin
Elobjetivodeesteprocesoconsisteendesarrollarlaspginasdeiniciodelmashupsemntico,afin depermitirlealusuarioingresardatos,ylapginaenlacualsemuestralainformacin. Paralaimplementacinsecuentaconunaseriederecursos,comoelempleodeformularios,grillas, botones, listas, tablas, mens, secciones, imgenes, controles, etc. Para especificar el estilo, se puedenemplearHojasdeEstiloenCascada(CSS),lascualespermitenlaespecificaci ndeestilos paracualquierelementoenparticularytienenelsuficientepoderexpresivoparadescribirlosestilos mscomunesencontradosenlossistemasWeb.

5.7Pruebas
Laspruebasjueganunpapelmuyimportanteencualquierprocesodedesarrollo.Sinembargo,enla mayoradelos casos las pruebas ylas evaluaciones sonunaspectodescuidado del desarrollo. Muchosdesarrolladorespruebanelsistemaslodespusqueaparecenfallasenelmismoodespus deevidenciarlaslimitaciones,locualseconocecomopruebasretroactivas,mientrasqueloque sequieresonpruebasproactivasenlas distintas etapas delciclodevidadeldesarrollo.Las ventajas de las pruebas proactivas incluyen la garanta de buen funcionamiento y niveles de 104|163

Captulo5Metodologadediseoparaeldesarrollodemashupssemnticos rendimiento,seevitancorreccionesdecarcterretroactivoquepuedenresultarcaras,rendimiento ptimo,menorriesgo,etc[Murugesan,2008]. Laspruebasnosedeberanhacernicamentealfinaldelprocesodedesarrollo.Losdesarrolladores ylosgerentesdebentenerunavisinmsampliayseguirunenfoquemsholstico:desdeeldiseo ydurantetodoelcaminohastalaimplementacinyelmantenimiento. Laspruebasquesepuedenrealizarpuedenagruparseenlassiguientescategoras: Compatibilidaddelnavegador Visualizacindelapgina Usabilidad Disponilibidad Internacionalizacin Rendimiento

5.8Conclusiones
LasaplicacionessobrelaWebSemnticasonaplicacionesWeb.Porlotanto,lasmetodologasdela IngenieradeSoftwareylospatronesdediseoconocidosparaeldesarrollodeaplicacionesWeb siguensiendoaplicables.Sinembargo,sisetieneencuentaquelasaplicacionessobrelaWeb SemnticautilizanontologasymodelosRDF,sedebenhacercambiosaestasmetodologas. Enelcasodeunmashupsemntico,sumodelodeldominioesunaontologa,lacualpermite establecer las correspondencias (mapeos) entre los distintos conceptos y relaciones entre las ontologasdelasfuentesdeinformacinconlascualestrabaja. Unmashupsemnticoalrealizarlamediacindeestasontologas,deberresolverlasdiscrepancias que se presenten debido a heterogeneidades terminolgicas y conceptuales (semnticas), y en mucho menor medida las discrepancias sintcticas (en el caso que las distintas ontologas se expresenenunlenguajedistintoalOWL).PerocomoenlaWeb1.0y2.0lainformacinest organizadademaneraquesloresultacomprensiblealaspersonas(HTML,XML,etc),primero habr quetraducircadaunadelasrepresentacionesqueempleenlasfuentesensucorrespondiente representacinontolgica,paraluegopoderrealizarlamediacinentrelasmismas.Esdecir,antes deresolverlasdiscrepanciasterminolgicasyconceptuales,primerosetendrnqueresolverlas discrepanciassintcticasdebidoalempleodedistintoslenguajesparaorganizarlainformacin. Entodosestoscasos,laformaderesolvertodasestasdiscrepanciasesmediantelaontolog aque capturaelmodelodeldominiodelmashupsemntico,lacualactacomoontologadereferencia parapoderintegrarlasdistintasfuentesdeinformacin.

105|163

Captulo6Casodeestudio

CAPTULO6CASODEESTUDIO
Enestecaptulosepresentaeldiseodeunmashupsemnticotomandocomobaseelejemplo desarrolladoenunaseriede6artculosllamadosTheultimatemashupWebservicesandthe semanticWeb[Chase,2007A],[Chase&Peterson,2006],[Chase,2007B],[Mitri&Chase,2006], [Chase&Mitri,2007],[Chase,2007C],siguiendolametodologapropuestaenelCaptulo5.

6.1Definicindelosobjetivosdelmashupsemntico
SegnloexplicadoenlaSeccin5.1,enlatabla6.1.1sepuedeverladescripcindelaactividad Definirlosobjetivosdelmashupsemntico: Definirlosobjetivosdelmashupsemntico Objetivo Establecerlosobjetivosquedebecumplirelmashupsemntico Entrada Salida Para un determinado concepto, el usuario Una declaracin con los objetivos del podr buscarqu noticiashayrelacionadas mashup semntico (ver a continuacin de conelmismo(enlosserviciosdenoticiasde estatabla) Google y Yahoo), qu libros lo tratan (en Amazon), qu videos hay sobre el mismo (en YouTube) y qu imgenes o fotos hay sobreelmismo(enFlickryPicasa). Elusuariopodr intercambiarlasfuentesde informacin a voluntad (podr decidir cul(es) fuente(s) usar). De esta forma, el mashup semntico podr tratar uniformementeasusfuentesdeinformacin. Participantes Losdesarrolladoresdelmashupsemntico Cundo Alcomienzo,enelprocesoDefinicindelosobjetivosdelmashupsemntico Tabla6.1.1ActividadDefinirlosobjetivosdelmashupsemntico

106|163

Captulo6Casodeestudio Objetivosdelmashupsemntico Dadoundeterminadoconceptoabuscar,sedeberbuscardeterminadainformacinsobreel mismoenlosserviciosdenoticiasdeGoogleyYahoo,enAmazon,enYouTube,enFlickry enPicasa. Alinteractuarconelmashupsemntico,elusuariopodr especificarla(s)fuente(s)que necesite. Lainformacinquesenecesitarecuperardecadafuenteeslasiguiente: Sobre un libro se necesita el ttulo, ISBN, autor (nombre y/o usuario), editorial, precio,idioma,fotoypginaWeb. Sobreunvideosenecesitaelttulo,duracin,fechadepublicacin,descripcin,foto, autor(nombrey/ousuario)yURL(paramostrarlo). Sobre una imagen se necesita el ttulo, tamao, descripcin, URLs (una con la imagenentamaochicoylaotraentamaogrande)yelautor(nombrey/ousuario). Sobreunartculodenoticiassenecesitaelttulo,fechadepublicacin,resumen, fuente(nombre)yURLconinformacindetallada.

Lapresentacindelosresultadosdeunabsquedadepender deltipodeinformacinen particular.As,almostrarloslibrosquetratensobreundeterminadoconcepto, stosse mostrarnenunalistaconlaimgendecadauno,yalladoelttulo,autor,editorial,ISBN, idiomayprecio;almostrarlasimgenes,lasmismasestarnorganizadasenfilasdondese mostrar laimagen,suttuloyeltamao;almostrarlosvideos, stossemostrarnenuna listaconlaimgendecadauno,yalladoelttulo,autor,fechaenquefuesubidoyla duracin;yalmostrarlasnoticias, stasseorganizarnenunalistadondesemostrar el ttulo,lafuente,fechayladescripcin. Elformatodepresentacindelosresultadosdepender decadafuente,peroentodoslos casos,caractersticascomoeltipodeletra,color,tamao,etc,sernigualesparatodos. ElaccesoalainformacindelasfuentesserealizarmedianteserviciosWebdeltipoREST.

6.2Modeladodeldominio
Comosedijoantes,paraunmashupsemnticosumodelodeldominioesunaontologa,lacual permitir definirlosmapeosentrelasontologasdelasdistintasfuentesparapoderintegrarsu informacin.ParamodelarlaontologaseempleaProtg664.1,herramientadecdigoabiertoque permiteeditarontologas.

66 http://protege.stanford.edu/

107|163

Captulo6Casodeestudio

6.2.1Determinareldominioyalcancedelaontologa
SegnloexplicadoenlaSeccin5.2.1,enlatabla6.2.1.1sepuedeverladescripcindelaactividad Determinareldominioyalcancedelaontologa: Determinareldominioyalcancedelaontologa Objetivo Determinareldominioyalcancedelaontologa Entrada Salida Ladeclaracinconlosobjetivosdelmashup La ontologa debe permitir responder a semntico(vertabla6.1.1) preguntascomo: Qu libros, videos, artculos de noticias y/o imgenes hay con informacin relacionada con un determinadoconcepto? Culeslainformacindetalladade los libros, videos artculos de noticias y/o imgenes que tienen informacin sobre un determinado concepto? No es necesario poder responder a preguntascomo: Dado un autor, cules son sus libros que tratan sobre un determinadoconcepto?Delamisma formaparalosvideos,imgenes y artculosdenoticias. Hayquetenerencuentaquelosusuarios que empleen el mashup semntico no necesitan conocimientos tcnicos para buscarinformacinenlasdistintasfuentes. Participantes Losdesarrolladoresdelmashupsemntico Cundo Unavezdefinidoslosobjetivosdelmashupsemntico Tabla6.2.1.1ActividadDeterminareldominioyalcancedelaontologa

108|163

Captulo6Casodeestudio

6.2.2Reutilizarontologasexistentes
Paraesteejemplosedisealaontologadesdecero,sinbuscarotrasprevias.

6.2.3Enumerarlostrminosimportantesdelaontologa
Segn lo explicado en la Seccin 5.2.3, en la tabla 6.2.3.1 se puede ver la descripcin de la actividadEnumerarlostrminosimportantesdelaontologa: Enumerarlostrminosimportantesdelaontologa Objetivo Obtenerunalistaconlostrminosmsimportantesparalaontologa,concentrndoseen loimportanteydejandodeladolosdetallesinnecesarios Entrada Salida Salida de la actividad Determinar el Libro, ISBN, Ttulo, Idioma, Editorial, dominio y alcance de la ontologa (ver Precio, Nombre del autor, Usuario del tabla6.2.1.1) autor, Imagen, URL, Video, Fecha, Descripcin, Duracin, Tamao, Noticia, Resumen, Detalle, Fuente, Servicio, Parmetro Participantes Losdesarrolladoresdelmashupsemntico Cundo Unavezdefinidoseldominioyalcancedelaontologaquesebuscamodelar Tabla6.2.3.1ActividadEnumerarlostrminosimportantesdelaontologa

6.2.4Definirlasclasesysusrelaciones
Segn lo explicado en la Seccin 5.2.4, en la tabla 6.2.4.1 se puede ver la descripcin de la actividadDefinirlasclasesysusrelaciones:

109|163

Captulo6Casodeestudio

Definirlasclasesysusrelaciones Objetivo Obtenerunalistaconlasclasesdelaontologaysusrelaciones Entrada Salida Salida de la actividad Enumerar los Clases: trminosimportantesdelaontologa(ver Libro, Imagen, Video, Articulo, tabla6.2.3.1) Servicio, Parametro,Autor, Fuente, ServicioLibros, ServicioImagenes, ServicioVideos,ServicioNoticias. Relaciones: tiene, esEscritoPor, esInformadoPor, esPublicadaPor, esSubidoPor Participantes Desarrolladoresdelmashupsemntico Cundo Unavezdefinidoslostrminosmsimportantesdelaontologa Tabla6.2.4.1ActividadDefinirlasclasesysusrelaciones Las clases ServicioLibros, ServicioImagenes, ServicioNoticiassedefinencomosubclasesdeServicio. ServicioVideos y

EntrelasclasesServicioyParametrosedefinelarelacintiene(unServicio tiene Parametros). EntrelasclasesLibroyAutorsedefinelarelacinesEscritoPor(unLibroesescritopor un Autor). Para este ejemplo, no hay necesidad de definir la relacin inversa escribe (un Autor escribe Libros) ya que no existe el requerimiento de obtener los libros de un determinadoautor. Con los mismos criterios, entre las clases Articulo y Fuente se define la relacin esInformadoPor,entreImagenyAutorlarelacinesPublicadaPor,yentreVideoy AutorlarelacinesSubidoPor. Enlafigura6.2.4.1sepuedenverestasclasesylasrelacionesentrelasmismas.

110|163

Captulo6Casodeestudio

Figura6.2.4.1Clasesontolgicasylasrelacionesentrelasmismas

6.2.5.Definirlaspropiedadesdelasclases
Segn lo explicado en la Seccin 5.2.5, en la tabla 6.2.5.1 se puede ver la descripcin de la actividadDefinirlaspropiedadesdelasclases: Definirlaspropiedadesdelasclases Objetivo Obtenerunalistaconlaspropiedadesdelasclasesdelaontolog a,lascualespueden organizarseenunaestructurajerrquicadeltiposuperpropiedad/subpropiedad Entrada Salida Salida de la actividad Enumerar los En las tablas 6.2.5.2, 6.2.5.3, 6.2.5.4, trminosimportantesdelaontologa(ver 6.2.5.5, 6.2.5.6, 6.2.5.7, 6.2.5.8 y 6.2.5.9 tabla6.2.3.1) pueden verse las propiedades para las clases Libro, Imagen, Video, Articulo, Autor, Fuente, Servicio y Parametro respectivamente Participantes Desarrolladoresdelmashupsemntico Cundo Unavezdefinidoslostrminosmsimportantesdelaontologayobtenidosapartirde stoslasclasesquelosrepresentan Tabla6.2.5.1ActividadDefinirlaspropiedadesdelasclases 111|163

Captulo6Casodeestudio Libro Propiedad tituloLibro isbn idiomaLibro precioLibro editorialLibro urlLibro urlLibroInfo Dominio Libro Libro Libro Libro Libro Libro Libro Rango string string string double string anyURI anyURI

Tabla6.2.5.2PropiedadesparalaclaseontolgicaLibro LapropiedadurlLibroseempleapararepresentarlaimagendellibro,esdecir,elvalordeesta propiedadcontieneunaURLconlaimagen. Imagen Propiedad tituloImagen descripcionImagen tamanioImagen urlImagen urlImagenGrande Dominio Imagen Imagen Imagen Imagen Imagen Rango string string string anyURI anyURI

Tabla6.2.5.3PropiedadesparalaclaseontolgicaImagen Las propiedades urlImagen y urlImagenGrande tienenelmismosignificadoqueparael casodeloslibros. Video Propiedad tituloVideo urlVideo urlImagenVideo fechaVideo duracionVideo Dominio Video Video Video Video Video Rango string string anyURI anyURI date nonNegativeInteger

descripcionVideo Video

Tabla6.2.5.4PropiedadesparalaclaseontolgicaVideo 112|163

Captulo6Casodeestudio LaspropiedadesurlVideoyurlImagenVideotienenlasdireccionesURLparareproducirel videoylaimagendelmismorespectivamente. Articulo Propiedad tituloArticulo resumenArticulo urlArticulo fechaArticulo Dominio Rango Articulo string Articulo string Articulo anyURI Articulo date

Tabla6.2.5.5PropiedadesparalaclaseontolgicaArticulo Autor Propiedad nombreAutor usuario Dominio Autor Autor Rango string string

Tabla6.2.5.6PropiedadesparalaclaseontolgicaAutor Fuente Propiedad Dominio Rango nombreFuente Fuente string Tabla6.2.5.7PropiedadesparalaclaseontolgicaFuente

Servicio Propiedad nombreServicio urlServicio xslt Dominio Rango Servicio string Servicio anyURI Servicio string

Tabla6.2.5.8PropiedadesparalaclaseontolgicaServicio Cadaservicioest formadoporunadireccinURLbase,msunaseriedeparmetros,loscuales dependendecadaservicio.LapropiedadurlServiciorepresentaestadireccinbase.Tambin, cadaservicioesresponsabledeobtenersupropiainformacin,ycomocadafuentelaorganizade distintaforma,empleandosupropiaestructura,enlaimplementacincadaservicioserresponsable de convertir surepresentacin enunaforma ontolgica.Estaconversinsehace mediante una 113|163

Captulo6Casodeestudio transformacinXSL,lacualseguardaenlapropiedadxslt. Parametro Propiedad nombreParametro valorParametro Dominio Rango Parametro string Parametro string

Tabla6.2.5.9PropiedadesparalaclaseontolgicaParametro Debidoalosobjetivosyalcancedelmashupsemntico,nohaynecesidaddedefinirpropiedades inversas, funcionales, funcionales inversas, transitivas, simtricas, antisimtricas, reflexivas ni irreflexivas.

6.2.6Definirlasrestriccionessobrelaspropiedades
Porlasmismasrazonesanteriores,noesnecesariodefinirningntipoderestriccinadicional.

6.2.7Crearinstancias(individuos)delasdistintasclases
Comosedijoantes,estasinstanciasfuncionancomovaloresinicialesparaelmashupsem ntico, permitindoleaccederalasdistintasfuentesdeinformacin.Enlatabla6.2.7.1sepuedeverla descripcindelaactividadCrearinstancias(individuos)delasdistintasclases: Crearinstancias(individuos)delasdistintasclases Objetivo Crearlasinstancias(necesarias)paralasclases Entrada Salida SalidadelasactividadesDefinirlasclasesy Se crearon instancias para las clases susrelacionesyDefinirlaspropiedadesde ServicioImagenes, lasclases(vertablas6.2.4.1y6.2.5.1) ServicioNoticias, ServicioLibros, ServicioVideosyParametro Participantes Desarrolladoresdelmashupsemntico Cundo Unavezdefinidaslasclasesypropiedades Tabla6.2.7.1ActividadCrearinstancias(individuos)delasdistintasclases

114|163

Captulo6Casodeestudio Enlatabla6.2.7.2sepuedenverlosnombresdelosindividuosquesecreanparacadaunadelas subclasesdeServicio: Clase ServicioImagenes ServicioLibros ServicioNoticias ServicioVideos Individuo Flickr1 Picasa Amazon ServicioYahoo Google Fuentededatos Flickr Picasa Amazon Yahoo Google

ServicioYouTube YouTube

Tabla6.2.7.2IndividuosparalassubclasesdeServicio ParadeterminarlaURLbasedecadaunodelosservicios,juntoconsusrespectivospar metros,se puedeconsultarladocumentacindelaAPIcorrespondiente: Flickr67 Picasa68 Amazon69 Yahoo70 Google71 YouTube72

AcontinuacinseespecificanlasdireccionesURLbaseyparmetrosdecadaunodelosservicios: Flickr URLbase:http://api.flickr.com/services/rest/ Parmetro:method Valor:flickr.photos.search Descripcin: devuelve una lista con las que cumplan con algn criterio. Slo se devuelvenlasfotosvisiblesalusuarioquehaceelpedido.Paraquesedevuelvan fotos privadas o semiprivadas, quien hace el pedido debe estar autenticado con permisosdelectura,ademsdetenerpermisoparaverlasfotos.Lospedidossin autenticarslodevolvernfotospblicas.

67 http://www.flickr.com/services/api/ 68 http://code.google.com/apis/picasaweb/docs/2.0/developers_guide_protocol.html 69 http://docs.amazonwebservices.com/AWSEcommerceService/20051005/ http://apisigning.com/ 70 http://developer.yahoo.com/search/news/V1/newsSearch.html 71 http://code.google.com/apis/customsearch/v1/overview.html 72 http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html

115|163

Captulo6Casodeestudio Parmetro:api_key Valor:b355fbc2ca38c86ddee4d19ec3574ddb Descripcin:parausarlaAPIdeFlickrsenecesitatenerunaclave,lacualesusada porFlickrparahacerelseguimientodelusodelaAPI.Actualmente,elusocomercial delaAPIsloestpermitidoconunpermisoprevio. Parmetro:extras Valor:description,url_t,url_l,owner_name Descripcin:listadelimitadaporcomasdeinformacinextraparabuscarparacada registrodevuelto.Lalistadevaloresseleccionadostienenlossiguientessignificados: description(descripcindelafoto),url_t(URLdelaimagenamostrarenla pgina de resultados), url_l (URL de la imagen grande a mostrar cuando se seleccionalafoto),owner_name(autordelafoto) Parmetro:per_page Valor:10 Descripcin:nmerodefotosadevolverporpgina.Siseomiteesteargumento,el valorpordefectoes100.Elvalormximopermitidoesde500. Parmetro:sort Valor: date-taken-desc Descripcin:criterioparaordenarlosfotosdevueltas.Elvalorpordefectoesdateposted-desc(porfechadepublicacin,delamsrecientealamsantigua).Los valoresposiblesson: date-posted-asc (porfechadepublicacin,delams antiguaalamsreciente),date-posted-desc,date-taken-asc(porfecha enquefuetomadalafoto,delamsantiguaalamsreciente), date-takendesc (porfechaenquefuetomadalafoto,delamsrecientealamsantigua), interestingness-desc (por cun interesante resulta la foto, de la ms interesantealamenos),interestingness-asc(porcuninteresanteresultala foto,delamenosinteresantealams)yrelevance(relevancia). Parmetro:text Valor: este parmetro toma por valor el texto que se especifique para hacer la bsqueda. Descripcin: implica que se devuelvan aquellas fotos cuyo ttulo, descripcin o etiquetascontenganestetexto.Sepuedenexcluirlosresultadosquecoincidenconun determinadotrminoanteponiendouncaracter-. Ejemplo: http://api.flickr.com/services/rest/? method=flickr.photos.search&api_key=b355fbc2ca38c86ddee4d19ec3574ddb&extras =description,url_t,url_l,owner_name&text=Egipto 116|163

Captulo6Casodeestudio OtrosparmetrosquenosetuvieronencuentaparaFlickr: tags (listadeetiquetasdelimitadaporcomas.Sedevuelvenlasfotosque tenganunaomsdeestasetiquetas.Sepuedenexcluirlosresultadosque coincidenconuntrminoanteponiendouncaracter-). min_upload_date (fechamnimadesubida.Sedevuelvenlasfotoscon unafechadesubidamayoroigualaestevalor.Lafechapuedeexpresarse medianteuntimestampdeUnixountipodatetimedemysql). max_upload_date (fechamximadesubida.Sedevuelvenlasfotoscon unafechadesubidainferioroigualaestevalor.Sepuedeexpresarigualque min_upload_date). min_taken_date(fechamnimaenquesetom lafoto.Sedevuelvenlas fotostomadasconunafechaigualosuperioraestevalor.Sepuedeexpresar igualquemin_upload_date). max_taken_date (fechamximaenquesetomlafoto.Sedevuelvenlas fotostomadasconunafechainferioroigualaestevalor.Sepuedeexpresar igualquemin_upload_date).

Picasa URLbase:https://picasaweb.google.com/data/feed/api/all Parmetro:max-results Valor:10 Descripcin:nmerodefotosadevolver. Parmetro:q Valor: este parmetro toma por valor el texto que se especifique para hacer la bsqueda. Descripcin:especificaelcriterioconelcualhacerlabsqueda. Ejemplo: https://picasaweb.google.com/data/feed/api/all?q=Egipto&maxresults=10

Amazon URLbase:http://free.apisigning.com/onca/xml Parmetro:Service 117|163

Captulo6Casodeestudio Valor:AWSECommerceService Descripcin:enrealidadesteparmetrotambinformapartedeladireccinURL base. Parmetro:AWSAccessKeyId Valor:AKIAINTKOBSCZF7HFPQA Descripcin:esteparmetroserequiereentodoslospedidosquesehaganconesta API,porlocualhabrqueregistrarseparaobtenerunIDdeclavedeacceso. Parmetro:Operation Valor:ItemSearch Descripcin:permitebuscarproductosporundeterminadondiceounacombinacin de ndices.Estetipodeoperacinconsistede3pasos:(1)elegirdndehacerla bsqueda(enlibros,productosdeelectrnica,msica,pelculas,etc),(2)especificar los parmetros de bsqueda y (3) establecer la salida deseada. Esta operacin devuelvehasta10registrosporconsulta,yencasodenecesitarregistrosadicionales, sepuedeemplearelparmetroItemPage. Parmetro:SearchIndex Valor:Books Descripcin:especificael ndicesegnelcualrealizarlabsqueda(libroseneste caso). Hay algunos ndices que en s mismo son combinaciones, por ejemplo: juguetesyjuegos.Tambinsepuedeespecificarlapalabrablendedparahacer una bsqueda por todos los ndices (libros, msica, DVDs, juguetes, etc). Este parmetrocorrespondealpaso(1)delparmetroItemSearch. Parmetro:ResponseGroup Valor:Large Descripcin:especificaelgradodedetalledelainformacindevuelta.Sepueden especificardistintosvaloressegnelndicesobreelcualserealizalabsqueda.Este parmetrocorrespondealpaso(3)delparmetroItemSearch. Parmetro:Keywords Valor: este parmetro toma por valor el texto que se especifique para hacer la bsqueda. Descripcin:especificaelcriterioconelcualhacerlabsqueda.Enestecasose buscaencamposcomottulodelproducto,autor,artista,descripcin,fabricante,etc. Esteparmetrocorrespondealpaso(2)delparmetroItemSearch. Ejemplo: http://free.apisigning.com/onca/xml? Service=AWSECommerceService&AWSAccessKeyId=AKIAINTKOBSCZF7HFPQ A&SearchIndex=Books&Operation=ItemSearch&ResponseGroup=Large&Keywords 118|163

Captulo6Casodeestudio =Egipto Yahoo URLbase:

http://search.yahooapis.com/NewsSearchService/V1/newsSearch Parmetro:appid Valor:mashupid Descripcin:IDdelaaplicacin,elcualesunacadenaqueidentificaunvocamente unaaplicacin.Sisetienenmltiplesaplicaciones,sedebenusarIDsdiferentespara cadauna. Parmetro:type Valor:all Descripcin:tipodebsquedaarealizar.Losvaloresposiblesson: all (valorpor defecto. Devuelve los resultados con todos los trminos de la cadena que se especifique en la consulta), any (devuelve los resultados con uno o ms de los trminosdelacadenadeconsulta)ophrase(devuelvelosresultadosquecontienen lostrminosdelaconsultaenformadefrase) Parmetro:sort Valor:date Descripcin:ordenalosartculosporrelevanciarankodesdeelmsrecienteal msantiguodate.Elvalorpordefectoesrank. Parmetro:query Valor: este parmetro toma por valor el texto que se especifique para hacer la bsqueda. Descripcin:especificaelcriterioconelcualhacerlabsqueda. OtrosparmetrosquenosetuvieronencuentaparaYahoo: results(nmeroderesultadosadevolver.Elvalorpordefectoes10yel mximo50). start(elvalordesdedondecomenzarlosresultados.Elvalorpordefectoes 1).

Ejemplo: http://search.yahooapis.com/NewsSearchService/V1/newsSearch? appid=mashupid&type=all&sort=date&query=Egipto 119|163

Captulo6Casodeestudio Google URLbase:https://www.googleapis.com/customsearch/v1 Parmetro:key Valor:AIzaSyAGKE4RbAcN4q8_AGA3AURUYHdJyOhkn6w Descripcin:estaAPIrequiereunaclave,lacualproporciona100consultasporda. Encasodenecesitarmshayquehacerotrotipoderegistro. Parmetro:cx Valor:002866492335529227924:oeyohi7lk3s Descripcin:especificaelIDdelmotordebsquedaaemplear Parmetro:alt Valor:atom Descripcin:laAPIpuededevolverlosresultadosenunodedosformatosposibles: JSON(valorpredeterminado)oAtom. Parmetro:num Valor:10 Descripcin:especificaelnmeromximoderesultadosaincluirseenelconjuntode resultados. Parmetro:q Valor: este parmetro toma por valor el texto que se especifique para hacer la bsqueda. Descripcin:especificaelcriterioconelcualhacerlabsqueda. Ejemplo: https://www.googleapis.com/customsearch/v1?key=AIzaSyCsUD AwbMhG_omTsq09WdaXMkCiP2f198&cx=017576662512468239146:omuauf_lfve &alt=atom&num=10&q=Egypt YouTube URLbase:http://gdata.youtube.com/feeds/api/videos Parmetro:orderby Valor:published Descripcin:especificaelmtodoausarparaordenarlasentradasenlarespuestaal pedidodelaAPI.Losvaloresposiblesson: relevance (lasentradasseordenan porrelevancia),published(lasentradasseordenanporfecha,delamsrecientea lamsantigua.Eselvalorpordefecto),viewCount(lasentradassegnlacantidad 120|163

Captulo6Casodeestudio de visitas, de mayor a menor) o rating (las entradas se ordenan segn su valoracin,demayoramenor). Parmetro:v Valor:2 Descripcin:especificalaversindelaAPIquedebeusarYouTubepararesponder lospedidos.SinoseespecificaunaversindelaAPI,YouTubeemplearlaversin1 (laversinactualesla2).Establecerelvalordelparmetro v en2permiteala aplicacinaccederafuncionesquenoestndisponiblesenlasversionesanteriores. Porejemplo,lossubttulossloseadmitenenlaversin2,laAPIsoportaalgunos parmetrosdiferentesenlaversin2queenla1,etc. Parmetro:max-results Valor:10 Descripcin:especificaelnmeromximoderesultadosaincluirseenelconjuntode resultados.Esteparmetrotrabajaenconjuntoconelparmetrostart-indexpara determinarqu resultadosdevolver.Porejemplo,parasolicitarelsegundogrupode 10resultados,losresultadosdel11al20,seestableceelpar metromax-results en10yelparmetrode start-index en11.Elvalorpordefectoes25,yel mximo50,peroserecomiendaelvalor10paramostrarunalistadevideos.

Parmetro:q Valor: este parmetro toma por valor el texto que se especifique para hacer la bsqueda. Descripcin:especificaelcriterioconelcualhacerlabsqueda.YouTubebuscaen todos los metadatos de un video quecoincidan con este trmino. Los metadatos incluyenttulos,palabrasclave,descripciones,nombresdelosusuariosautoresylas categoras. OtrosparmetrosquenosetuvieronencuentaparaYouTube: alt (especifica el formato con el que se devuelven los resultados. Los valores posibles son: atom valor por defecto, rss, json, json-inscriptyjsonc). start-index(especificael ndicedelprimerresultadocoincidentequese debeincluirenelconjuntoderesultados.Elprimerresultadoes1,elsegundo 2yas sucesivamente.Esteparmetrotrabajaenconjuntoconelparmetro max-results).

Ejemplo: http://gdata.youtube.com/feeds/api/videos?orderby=published&v=2&max results=10&q=Egipto 121|163

Captulo6Casodeestudio ParacrearporejemploelindividuoparalafuentedeinformacinFlickr,correspondientealaclase ServicioImagenes,seleasignaunnombrecualquiera,enestecaso Flickr1,seestablecea ServicioImagenescomosutipo,yseestablecenlossiguientesvaloresparasuspropiedades: Propiedad urlServicio nombreServicio Valor http://api.flickr.com/services/rest/ Flickr.com

Tabla6.2.7.3CreacindelindividuoFlickr1 Paraasignarleaesteserviciolosparmetrosespecificadosanteriormente,secreanindividuosdela claseParametro.Delamismaformaqueelcasoanterior,aestosindividuosselesdaunnombre yseestablecenlosvaloresdesuspropiedades.Enelcasodeunindividuodeltipo Parametro, ste cuenta con 2 propiedades: nombreParametro y valorParametro. As, para el parmetromethoddeFlickr,secreaunindividuodeltipo Parametro,llamadoParamMethod, conlossiguientesvaloresparalaspropiedades: Propiedad nombreParametro valorParametro Valor method flickr.photos.search

Tabla6.2.7.4CreacindeunindividuotipoParametro Una vez creados los individuos Parametro, mediante la propiedad tiene se asocian los individuosParametroconelindividuoFlickr1.

6.3Mediacindeontologas
Comosedijoantes,lasfuentesconlasquetrabajaelmashupsemnticodevuelvensuinformacin en XML, empleando cada una su propia estructura. Por lo tanto, adems de las discrepancias terminolgicasysemnticas,tambinsepresentanlassintcticas. Paraexplicarelenfoqueadoptadoparalamediacin,setomacomoejemplolaconsultaaYouTube. EnlaSeccin6.1(Definicindelosobjetivosdelmashupsemntico),seespecificaquesobreun videosenecesitaelttulo,duracin,fechadepublicacin,descripcin,fotoyURL(paramostrarlo), con lo cual se define la clase ontolgica Video y las propiedades tituloVideo, duracionVideo, fechaVideo, descripcionVideo, urlImagenVideo y urlVideo respectivamente. Como tambinsenecesita conocerelautor(nombre y/ousuario) delvideo, sedefinela clase ontolgicaAutorylaspropiedadesnombreAutoryusuariorespectivamente.

122|163

Captulo6Casodeestudio EnlaSeccin4.4.2(Heterogeneidadsemntica)sepresentalainformacinqueseobtieneal hacer la consulta a YouTube (informacin en XML). En este ejemplo se puede ver que la informacindecadavideoseencuentradentrodeunelementoXMLllamado<entry>,elcualse encuentraasuvezdentrodelelementoraz <feed>. Enelelemento <entry> seencuentra detallada,enformadeatributosuotrossubelementos,lainformacinsobreelvideo. Enlatabla6.3.1sepuedeverporcadapropiedadontolgicadelvideosucorrespondienteubicacin enlaestructuraXML: Propiedadontolgica tituloVideo duracionVideo fechaVideo descripcionVideo urlImagenVideo urlVideo UbicacinenlaestructuraXML /feed/entry/group/title /feed/entry/group/duration/@seconds /feed/entry/published /feed/entry/group/description /feed/entry/group/thumbnail[1]/@url /feed/entry/content/@src

Tabla6.3.1CorrespondenciaentrepropiedadesontolgicaseinformacinenXML Comosepuedeverdeestatabla,sepresentandiscrepanciasdebidoa: Heterogeneidad terminolgica: debido al proceso de nombrar las entidades (empleo de diferentesidiomas,diferentespalabrasparanombraralamismaentidad,etc). Heterogeneidad semntica: debido a aspectos que tienen que ver con la cobertura (la informacinprovenientedeYouTubecubrepartesquesesuperponenconlasdelaontologa) ylagranularidad(lainformacinprovenientedeYouTubecontieneunadescripcinms detalladadelasmismasentidadesdelaontologa). Heterogeneidadsintctica:debidoalempleode2lenguajesdistintos(XMLparaelcasode YouTubeyOWLparaelcasodelaontologa).

Pararesolverlosproblemasdemediacinentrelainformacinprovenientedelasdistintasfuentesy laontologaquecapturaelmodelodeldominiodelmashupsemnticoseempleantransformaciones XSLcomoseexplicaenlaSeccin4.4(Resolucindelmapeodeontologas).

6.4Accesoalasfuentesdeinformacin
ComosedijoenlaSeccin6.1,elaccesoalainformacindelasfuentessehacemedianteservicios WebdeltipoREST,empleandoJava.Verelpunto6.6(Implementacin).

123|163

Captulo6Casodeestudio

6.5.Diseodelapresentacin
Elmashupsemnticoseorganizaen2pginas:unainicial,dondesemuestralalistadefuentesde informacinapartirdelascualessepuederealizarlabsquedadeunconcepto,yunapginafinal dondesemuestranlosresultados.Afindeestandarizarlostiposdeletras,colores,tama o,etc,se trabajaconunahojadeestilos,enlacualseespecificanestascaractersticas. Paraambaspginassetrabajasobreunfondoblanco.Enlapginainicial,semuetraamodode encabezadolaleyendaElijalosserviciossobreloscualeshacerlabsqueda,yacontinuacina mododelistaconvietas,cadaunodelosservicios(Libros,Imgenes,etc)ysuscorrespondientes fuentesdeinformacin.Finalmentehayuncampodetextodondeseingresaeltextoabuscaryun botnpararealizarlaconsulta. Paralapginaconlosresultados,semuestraelnombredecadaservicioyacontinuacinsus resultados,cuyoformatodepresentacindependedeltipodeservicio.Porejemplo,paralosvideos, losresultadossemuestrancomounatabladeNfilasy2columnas:enlaprimeracolumnavala imagendelvideosobrelacualsepuedeseleccionarloparareproducirlo,yenlasegundacolumnala informacinsobreelmismo,comoelttulo,autor,fecha,duracin,etc. Elformatodepresentacindelosresultadosdependedeltipodeservicio,peroentodosloscasos, caractersticascomoeltipodeletra,color,tamao,etc,dependendelahojadeestilos.

6.6Implementacin
En cuanto la Web comenz a utilizarse para prestar servicios, los proveedores reconocieron la necesidaddegenerarcontenidodinmico.LasAppletsfueronunodelosprimerosintentosparaeste fin, centrndose en el uso de la plataforma del cliente, mientras que por el lado del servidor surgieroninicialmentelosscriptsCGI(CommonGatewayInterface).Aunquesonmuyutilizados, losscriptsCGItienenunaseriededeficiencias,comoserladependenciadeplataformaylafaltade escalabilidad.LosServletsJavahacenfrenteaestaslimitaciones:bsicamentesonprogramasque seejecutanenunservidorWebyqueconstruyenpginasWeb. EnestecasoelmashupsemnticoseconstruyemedianteunServletJavayunaseriedeJSPs(Java ServerPages).UnaJSPesunatecnologaquepermitemezclarHTMLestticoconHTMLgenerado dinmicamente.Enbaseatodoesto,senecesitacontarconelsiguientesoftware: ApacheTomcat73uotromotordeServlets.Paraesteejemplosetrabajaconlaversin7.0.12. Java74:ApacheTomcat7.0.12requiereJavaSE6osuperior.Paraesteejemplosetrabajacon laversin1.6.0_18.

73 http://tomcat.apache.org/ 74 http://www.oracle.com/technetwork/java/javase/downloads/index.html

124|163

Captulo6Casodeestudio Jena75: Jena es un framework Java de cdigo abierto para construir aplicaciones Web semnticas.ProporcionaunentornodeprogramacinparaRDF,RDFSyOWL. Netbeans76: IDE que corre en Windows, Mac, Linux y Solaris y que permite crear aplicacionesWeb,deescritorioymvilesyserviciosusandoJava,PHP,JavaScriptyAjax, GroovyyGrailsyC/C++.Paraesteejemplosetrabajaconlaversin6.8.

TodaslasfuncionesdelaontologasonmanejadasporunaclasellamadaLectorOntologia:
public class LectorOntologia { public static String uriOnt = "http://www.semanticweb.org/ontologies/tesis"; public static String archOnt = "file:/root/Documentos/.../Tesis.owl"; public static String uriNothing = "http://www.w3.org/2002/07/owl#Nothing"; private OntModel modelo; /** * Constructor predeterminado */ public LectorOntologia() { modelo = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null); modelo.getDocumentManager().addAltEntry(uriOnt, archOnt); modelo.read(uriOnt); } }

Enestaclasesedefinen,enformadecadenasquepuedenserreferenciadasporlasotrasclases,la URIdela ontologa(uriOnt),elnombredel archivodondeseencuentraguardada lamisma (archOnt)ylaURIdelaclaseontolgicaNothing(uriNothing). Parapodertrabajarconlaontologaquesetienedefinida,sedebecrearunmodeloontolgico,el cualestrepresentadodentrodeestaclasemediantelavariable modelo.Paracrearestemodelo,en elconstructorseemplealaclaseModelFactory,ycomolaAPIJenatambinesunaAPIpara RDF,dalafacilidaddecreardistintostiposdemodelos.Enestecasoseespecificaunmodelo ontolgicoqueresideenmemoriayqueusaunrazonador,elcualpermiteinferirquesiAes subclasedeB,yBessubclasedeC,entoncesAessubclasedeC.Porestaraz n,almomentode instanciaramodeloseespecificaOntModelSpec.OWL_MEM_MICRO_RULE_INF. LaAPIJenapermitecrearontologasdesdecero,perocomoenestecasoyasetieneunaguardada en unarchivo,mediante el objeto DocumentManager secargalacopiadelamisma conel mtodo addAltEntry(),alcualseleespecificalaURIdelaontologayelarchivodondese encuentra guardada la misma. Finalmente, mediante el mtodo read() se lee el documento (mientrasnosellameaestemtodo,noseleenlasdefinicionesguardadasenelarchivo). Los distintos tems quese muestran como resultado para una determinada consulta sonlibros,
75 http://jena.sourceforge.net/ 76 http://netbeans.org/

125|163

Captulo6Casodeestudio imgenes,videosyartculosdenoticias.Porestaraznsedefinenlasclases Libro, Imagen, Video y Articulo. Por ejemplo, a continuacin se muestra un fragmento de la clase Articulo: public class Articulo { private String titulo; private String resumen; private String url; private String fecha; private Fuente esInformadoPor; ... } Afindetratargenricamentecadaunodeestos tems,sedefinelaclaseItemcomosuperclasede las clases Libro, Imagen, Video y Articulo. Segn esto, la definicin de la clase Articuloanteriorqueda: public class Articulo extends Item { ... } Para manejar cada uno de los servicios sobre los que se realizan las consultas, se define la superclaseServicio,delacualsemuestraunfragmentoacontinuacin:
public abstract class Servicio { private String nombreServicio; private String urlServicio; private ArrayList<Parametro> parametros = new ArrayList<Parametro>(); private String xslt; private String consulta; public static String uriServicio = LectorOntologia.uriOnt + "#Servicio"; ... }

Sepuedeverquelaclasetienelaspropiedadesparaelnombredelservicio,sudirecci nURLbase, suconjuntodeparmetros(definidosmediantelaclaseParametro),lavariabledondeseguarda lacadenadeconsultaylavariabledondeseguardalacadenadetransformacin.Ademstiene definidasuURI. LaclaseParametrosimplementetienelaspropiedadesparaelnombreyvalordelmismo: public class Parametro { private String nombreParametro; private String valorParametro; ... } Una vez definida la superclase Servicio, se definen las subclases ServicioImagenes, 126|163

Captulo6Casodeestudio ServicioLibros,ServicioVideosyServicioNoticias.Porejemplo: public class ServicioImagenes extends Servicio { ... } Unadelasfuncionalidadesconlasquedeber contarlaaplicacinser ladeobtenertodoslos individuosdeundeterminadotipo,porlocualsedefineelmtodo getIndividuals() enla claseLectorOntologia: public ArrayList<Individual> getIndividuos(String tipoIndividuo) {
ArrayList<Individual> individuos = new ArrayList<Individual>(); for(Iterator it = modelo.listIndividuals(); it.hasNext(); ) { Individual esteIndividuo = (Individual)it.next(); String tipo = esteIndividuo.getRDFType().getLocalName(); if(tipo.equals(tipoIndividuo)) individuos.add(esteIndividuo); } //for return individuos; }

Estemtodoloquehaceesobtenerapartirdelaontologatodoslosindividuosmedianteelmtodo listIndividuals()yluegovadescartandotodosaquellosquenocorrespondanconeltipoque seest buscando.As,mediantegetIndividuos()sepuedenobtenertodoslosindividuosdel tipoServicioLibrosporejemplo. Otra funcionalidad necesaria de la aplicacin es, dada una URI correspondiente a una clase ontolgicaServicio,obtenerelobjetoServiciocorrespondientealamisma: public Servicio getServicio(String uriServicio) {
Individual elIndividuo = modelo.getIndividual(uriServicio); Servicio servicio = this.esServicio(elIndividuo); if (servicio != null) { servicio = new Servicio(); for(StmtIterator it = elIndividuo.listProperties(); it.hasNext(); ) { Statement s = it.nextStatement(); Property p = s.getPredicate(); if (p.canAs(OntProperty.class)) { Resource r; Literal l; if (p.getURI().equals(uriOnt + "#nombreServicio")) { //cadena l = s.getLiteral(); servicio.setNombreServicio(l.getString()); } else if (p.getURI().equals(uriOnt + "#urlServicio")) { //cadena l = s.getLiteral(); servicio.setURLServicio(l.getString()); } else if (p.getURI().equals(uriOnt + "#tiene")) { //Parametro r = s.getResource(); Parametro parametro = this.getParametro(r.getURI()); if (parametro != null)

127|163

Captulo6Casodeestudio
servicio.agregarParametro(parametro); } else if (p.getURI().equals(uriOnt + "#xslt")) { //cadena l = s.getLiteral(); servicio.setXSLT(l.getString()); } } } //for } //if (esServicio(uriServicio)) return servicio; }

Estemtodo,loprimeroquehaceesobtenerelindividuocorrespondientealaURIespecificada,por mediodelmtodogetIndividual(): Individual elIndividuo = modelo.getIndividual(uriServicio); LuegosecompruebasielindividuoqueseobtuvoesonounServicio: Servicio servicio = this.esServicio(elIndividuo); ElmtodoesServicio()devuelveuntipodeServicio,sielindividuoesunServicio,o null ni no lo es. Para esto, al individuo primero se le obtiene la clase ontol gica a la cual pertenece,luegoseobtienelaURIdelamismaypor ltimosecompruebasicorrespondeaunade lasclasesontolgicasdefinidas: public Servicio esServicio(Individual unIndividuo) { Servicio servicio = null; OntClass claseIndividuo = unIndividuo.getOntClass(); //Se obtiene la clase ontolgica del individuo String uriClaseIndividuo = claseIndividuo.getURI(); //Se obtiene la URI de la clase del individuo if (uriClaseIndividuo.endsWith("ServicioImagenes")) servicio = new ServicioImagenes(); else if (uriClaseIndividuo.endsWith("ServicioLibros")) servicio = new ServicioLibros(); else if (uriClaseIndividuo.endsWith("ServicioNoticias")) servicio = new ServicioNoticias(); else if (uriClaseIndividuo.endsWith("ServicioVideos")) servicio = new ServicioVideos(); return servicio; } ContinuandoconelmtodogetServicio(),cuandosesabequeelindividuos correspondea un Servicio,seleobtienensuspropiedades.Comonosepuedeobtenerunaenparticular,se obtienentodas,ysegncadauna,sevaconstruyendoelobjetotipoServicio:

128|163

Captulo6Casodeestudio if (servicio != null) { for(StmtIterator it = elIndividuo.listProperties(); it.hasNext(); ) {


Statement s = it.nextStatement(); Property p = s.getPredicate(); if (p.canAs(OntProperty.class)) { Resource r; Literal l; if (p.getURI().equals(uriOnt + "#nombe ervicio") ){ //cadena l = s.getLiteral(); servicio.setNombreServicio(l.getString()); } else if (p.getURI().equals(uriOnt + "#urlServicio")) { //cadena l = s.getLiteral(); servicio.setURLServicio(l.getString()); } ... } } //for } return servicio;

Para la implementacin del servlet en s mismo se define la clase TesisServlet, cuyos 2 mtodosprincipalessondoGet()ydoPost().ElmtododoGet()serquienseencarguede mostrarlalistadeservicios(fuentesdeinformacin)apartirdelascualesserealizar labsqueda deundeterminadoconcepto:
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { LectorOntologia lectorOnt = new LectorOntologia(); out.print("<html>"); out.print("<head>"); out.print("<link rel='stylesheet' type='text/css' href='estilos.css'/>"); out.print("</head>"); out.print("<body>"); out.print("<form action=\"TesisServlet\" method=\"post\">"); out.print("<h1>Elija los servicios sobre los cuales hacer la bsqueda</h1>"); OntClass scs = lectorOnt.getModeloOntologia().getOntClass(Servicio.uriServicio); out.print("<table>"); int contCheckBox = -1; //para darle nombres nicos a los checkboxes for(ExtendedIterator it = scs.listSubClasses(); it.hasNext();) { OntClass sc = (OntClass)it.next(); if(!sc.getURI().equals(LectorOntologia.uriNothing)) { ArrayList<Individual> individuos = lectorOnt.getIndividuos(sc.getLocalName()); if (!individuos.isEmpty()) { out.print("<tr><td colspan='3'><li>" + sc.getLocalName() + "</li></td></tr>"); for(int i = 0; i < individuos.size(); i++) { Individual unIndividuo = individuos.get(i); for(StmtIterator ite = unIndividuo.listProperties(); ite.hasNext();) {

129|163

Captulo6Casodeestudio
Statement s = ite.nextStatement(); Property p = s.getPredicate(); if (p.canAs(OntProperty.class)) { if (p.getLocalName().equals("nombreServicio")) { String label = s.getLiteral().getString(); out.print("<tr>"); out.print("<td>"); out.print("</td>"); out.print("<td>"); out.print(label); out.print("</td>"); out.print("<td>"); String nombreCheckBox = "checkbox" + ++contCheckBox; out.print("<input type='checkbox' name='" + nombreCheckBox + "' value='" + unIndividuo.getURI() + "' align='" + "right" + "'>" + "</input>"); out.print("</td>"); out.print("</tr>"); break; } } //if (p.canAs(OntProperty.class)) } } //for(int i = 0; i < individuos.size(); i++) out.print("<tr>"); out.print("<td>&nbsp;</td>"); out.print("<td>&nbsp;</td>"); out.print("<td>&nbsp;</td>"); out.print("</tr>"); } //if (!individuos.isEmpty()) } } out.print("</table>"); out.print("<input type='hidden' value='" + contCheckBox + "' name='cantCheckBox'/>"); out.print("<p>Ingrese el texto a buscar</p>"); out.println("<input type='text' name='consulta'/>"); out.print("<br/>"); out.print("<input type='submit' />"); out.print("</form>"); out.print("</body>"); out.print("</html>"); } finally { out.close(); } }

Comoseve,primeroseinstanciaunobjetodeltipo LectorOntologia,conlocualseleey cargalaontologa,seespecificaunahojadeestilosyseledaunttuloalformularioHTML: LectorOntologia lectorOnt = new LectorOntologia(); out.print("<html>"); out.print("<head>");


out.print("<link rel='stylesheet' type='text/css' href='estilos.css'/>");

out.print("</head>"); out.print("<body>"); out.print("<form action=\"TesisServlet\" method=\"post\">");


out.print("<h1>Elija los servicios sobre los cuales hacer la bsqueda</h1>");

130|163

Captulo6Casodeestudio Parapoderobtenertodoslosindividuosdelosdistintostiposdeservicio,primerosecomienza obteniendolasuperclaseontolgicadetodoslosservicios,esdecir,laclaseServicio:


OntClass sps = lectorOnt.getModeloOntologia().getOntClass(Servicio.uriServicio);

ObservarqueelmtodogetOntClass()recibecomoparmetrolaURIdelaclaseServicio, esdecir,lacadena: "http://www.semanticweb.org/ontologies/tesis#Servicio" Unavezquesetienelasuperclasedetodoslosservicios,seobtienentodassussubclases: for(ExtendedIterator it = sps.listSubClasses(); it.hasNext();) Dentrodeestebloquefor()seobtienencadaunadelassubclasesdeServicio: OntClass sc = (OntClass)it.next(); ComounadelassubclasesdeServicioeslaclaseontolgicaNothing,seladescarta: if(!sc.getURI().equals(LectorOntologia.uriNothing)) { Luego,silasubclasedeServicionoeslaclaseNothing,seobtienentodoslosindividuosde esasubclase:
ArrayList<Individual> individuos = lectorOnt.getIndividuos(sc.getLocalName());

Loquesebuscahaceresqueporcadasubclase,quetengaindividuos,semuestreelnombredela mismayacontinuacincadaunodestosdelasiguientemanera: Videos Individuo1 Individuo2 Noticias Individuo3 Libros Individuo4 Imgenes Individuo5 Individuo6

ParaqueporcadasubclasedeServiciosemuestreVideos,Noticias,etc,encadauna delassubclasesontolgicassedefineuna anotacin sobrelapropiedad label.Porejemplo,la 131|163

Captulo6Casodeestudio subclase ServicioVideos tiene definida la anotacin Videos, la subclase ServicioNoticiasNoticiasyassucesivamente:


if (!individuos.isEmpty()) { out.print("<tr><td colspan='3'><li>" + sc.getLabel(null) + "</li></td></tr>");

Luego, por cada individuo de una determinada clase se muestra el valor de su propiedad nombreServicio (por ejemplo Flickr.com) y al lado un control tipo checkbox, cuyo nombre ser checkbox0 para el primer control, checkbox1 para el segundo, y as sucesivamente.Elvalorquetomecadaunodeloscontrolescheckboxencasodeestarseleccionado sereldelaURIdelindividuoquerepresenta:
for(int i = 0; i < individuos.size(); i++) { Individual unIndividuo = individuos.get(i); for(StmtIterator ite = unIndividuo.listProperties(); ite.hasNext(); ) { Statement s = ite.nextStatement(); Property p = s.getPredicate(); if (p.canAs(OntProperty.class)) { if (p.getLocalName().equals("nombreServicio")) { String label = s.getLiteral().getString(); String nombreCheckBox = "checkbox" + ++contCheckBox; out.print("<input type='checkbox' name='" + nombreCheckBox + "' value='" + unIndividuo.getURI() + "' align='" + "right" + "'>" + "</input>");

Como se puede ver en el fragmento de cdigo anterior, no se puede recuperar una propiedad especfica,porloquehayqueobtenerlasatodasmedianteelmtodo listProperties()eir filtrandolaquesenecesite. Como las propiedades se representan como sentencias de la forma sujetopredicadoobjeto, se obtienencadaunadelassentenciasyluegolospredicadosdelasmismas: Statement s = ite.nextStatement(); Property p = s.getPredicate(); Finalmente,sielnombredelapropiedadesnombreServicio,seobtieneelvalordelamisma, ynosetienenencuentaelrestodelaspropiedades: if (p.getLocalName().equals("nombreServicio")) { String label = s.getLiteral().getString(); ComolapropiedadnombreServicioesdeltipoDatatypeyestdefinidacomounacadena,el valordelamismasepuedeobtenermedianteelmtodogetLiteral().getString(). Luego,cuandosehanrecorridotodoslosindividuosdetodaslassubclasesde Servicio,secrea en lapgina uncampoocultocuyovalores la variable quellevaelcontrolde lacantidad de controlestipo checkbox (contCheckBox).Larazndeguardarestedatoesparaquecuandose presioneelbotnparahacerlaconsulta,sesepalacantidadtotaldecontrolestipocheckbox:

132|163

Captulo6Casodeestudio out.print("<input type='hidden' value='" + contCheckBox + "' name='cantCheckBox'/>"); Finalmente,secreaenlapginaunaetiquetaconeltextoIngrese el texto a buscar,el campodetextoparaescribireltrminoabuscaryelbotnpararealizarlaconsulta: out.print("<p>Ingrese el texto a buscar</p>"); out.println("<input type='text' name='consulta'/>"); out.print("<br/>"); out.print("<input type='submit' />"); Enestosmomentos,setieneunapginacomolaquesemuestraenlafigura6.6.1:

Figura6.6.1Pginainicialdelmashup ElmtododoPost()esquienseencargadebuscarencadaunadelasfuentesseleccionadaslos temsqueestnrelacionadosconeltextoingresadoygenerarunapginaconlosresultados:


@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); int cantCheckBoxes = Integer.parseInt(request.getParameter("cantCheckBox")); String consulta = request.getParameter("consulta"); String todosLosServicios = null; for(int i = 0; i <= cantCheckBoxes; i++) { String servicio = request.getParameter("checkbox" + i); if (servicio != null) {

133|163

Captulo6Casodeestudio
if (todosLosServicios == null) todosLosServicios = servicio; else todosLosServicios = todosLosServicios + ";" + servicio; } } String[] serviciosSeleccionados = todosLosServicios.split(";"); try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document docSalida = db.parse(new InputSource(new StringReader("<html/>"))); Node raiz = docSalida.getDocumentElement(); //<html> Element elemHead = docSalida.createElement("head"); Element elemLink = docSalida.createElement("link"); elemLink.setAttribute("rel", "stylesheet"); elemLink.setAttribute("type", "text/css"); elemLink.setAttribute("href", "estilos.css"); elemHead.appendChild(elemLink); raiz.appendChild(elemHead); Element elemBody = docSalida.createElement("body"); LectorOntologia lectorOnt = new LectorOntologia(); for(int i = 0; i < serviciosSeleccionados.length; i++) { String unServicioURI = serviciosSeleccionados[i]; Servicio servicio = lectorOnt.getServicio(unServicioURI); servicio.setConsulta(consulta); Document documento = servicio.obtenerDatos(); Node nodoTitulo = docSalida.createTextNode(servicio.getNombreServicio()); Element elementoTitulo = docSalida.createElement("h1"); elementoTitulo.appendChild(nodoTitulo); elemBody.appendChild(elementoTitulo); if (documento != null) { elemBody.appendChild(servicio.presentarDatos(lectorOnt, docSalida)); } else { Node nodoMensaje = docSalida.createTextNode("No se obtuvieron datos"); elemBody.appendChild(nodoMensaje); } } //for raiz.appendChild(elemBody); DOMSource origen = new DOMSource(docSalida); StreamResult destino = new StreamResult(out); TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.transform(origen, destino); } catch(Exception e) { System.out.println("error"); } }

Loprimeroquehaceelmtodoesobtenerlacantidadtotaldecontrolestipo checkbox,tantolos seleccionadoscomolonoseleccionados,yobtenereltextodelaconsultaingresadaenelcampode texto:

134|163

Captulo6Casodeestudio
int cantCheckBoxes = Integer.parseInt(request.getParameter("cantCheckBox"));

String consulta = request.getParameter("consulta"); Luego se arma un vector donde cada elemento es una cadena con la URI de cada servicio seleccionado, para lo cual se recorren todos los controles tipo checkbox. Si checkbox0, por ejemplo,estseleccionado,suvalorvaldrlaURIdeunindividuodeundeterminadoservicio. String todosLosServicios = null; for(int i = 0; i <= cantCheckBoxes; i++) { String servicio = request.getParameter("checkbox" + i); if (servicio != null) { if (todosLosServicios == null) todosLosServicios = servicio; else todosLosServicios = todosLosServicios + ";" + servicio; } } String[] serviciosSeleccionados = todosLosServicios.split(";"); Luego,semuestranenlapginalosresultadosqueseobtienendecadaunadelasfuentesdedatos, paralocualseempiezagenerandoundocumentoHTML:
try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document docSalida = db.parse(new InputSource(new StringReader("<html/>"))); Node raiz = docSalida.getDocumentElement(); //<html> Element elemHead = docSalida.createElement("head"); Element elemLink = docSalida.createElement("link"); elemLink.setAttribute("rel", "stylesheet"); elemLink.setAttribute("type", "text/css"); elemLink.setAttribute("href", "estilos.css"); elemHead.appendChild(elemLink); raiz.appendChild(elemHead); Element elemBody = docSalida.createElement("body");

Paracadafuentededatosseleccionada,seobtieneelobjetotipo Servicio quelarepresenta medianteelmtodogetServicio(),explicadoanteriormente: for(int i = 0; i < serviciosSeleccionados.length; i++) { String unServicioURI = serviciosSeleccionados[i]; Servicio servicio = lectorOnt.getServicio(unServicioURI); Unavezquesetieneelobjetotipo Servicio,almismoseleasignalacadenadebsquedayse obtienen los datos de la fuente de informacin que representa mediante el mtodo obtenerDatos(),elcualdevuelveunXMLconlahojadeestilosaplicada: servicio.setConsulta(consulta); Document documento = servicio.obtenerDatos();

135|163

Captulo6Casodeestudio AcontinuacinsemuestralaimplementacindelmtodoobtenerDatos():
public Document obtenerDatos() { try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); DocumentBuilder db = dbf.newDocumentBuilder(); Document docEntrada = db.parse(this.armarPedidoREST()); Document docSalida = null; try { Source origen = new DOMSource(docEntrada); Document docXSL = db.parse(new InputSource(new StringReader(this.getXSLT()))); DOMSource origenXSL = new DOMSource(docXSL); TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(origenXSL); DOMResult resultado = new DOMResult(); t.transform(origen, resultado); docSalida = (Document)resultado.getNode(); } catch(Exception e) { e.printStackTrace(); } this.documento = docSalida; return this.documento; } catch(Exception e) { System.out.println(e.getMessage()); return null; } }

Primero,paraqueelmtodoobtenerDatos()puedahacerelpedidoasufuentededatos,debe armartodalacadenaparahacerelpedidoRESTmedianteelmtodoarmarPedidoREST(),el cualarmaunacadenadelaforma: URL_base?parametro1=valor1&parametro2=valor2&...&parametroN=valorN Porejemplo,paraelservicioquerepresentalafuentededatosdeFlickr,lasalidadeestem todo sera:


https://picasaweb.google.com/data/feed/api/all?q=Egipto&max-results=10

public String armarPedidoREST() { String cadenaREST = this.urlServicio; for(int i = 0; i < this.parametros.size(); i++) { Parametro parametro = this.parametros.get(i); String nombreParametro = parametro.getNombreParametro(); String valorParametro = parametro.getValorParametro(); if (valorParametro == null) valorParametro = consulta; if (cadenaREST.equals(this.urlServicio)) 136|163

Captulo6Casodeestudio cadenaREST = cadenaREST + "?"; else cadenaREST = cadenaREST + "&"; cadenaREST += nombreParametro + "=" + valorParametro; } return cadenaREST; } ContinuandoconelmtodoobtenerDatos(),cuandosetienelacadenaparahacerelpedido,se armaunXMLconlosresultadosdelaconsultaalservicioREST: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); DocumentBuilder db = dbf.newDocumentBuilder(); Document docEntrada = db.parse(this.armarPedidoREST()); Finalmente,alXMLobtenidoseleaplicalahojadeestilos:
Document docSalida = null; try { Source origen = new DOMSource(docEntrada); Document docXSL = db.parse(new InputSource(new StringReader(this.getXSLT()))); DOMSource origenXSL = new DOMSource(docXSL); TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(origenXSL); DOMResult resultado = new DOMResult(); t.transform(origen, resultado); docSalida = (Document)resultado.getNode(); } catch(Exception e) { e.printStackTrace(); }

ContinuandoconelmtododoPost(),unavezquesetienenlosdatosenunXMLconlahojade estilosaplicada,enlapginasemuestraenformadeencabezadoelnombredelservicioylosdatos:
Node nodoTitulo = docSalida.createTextNode(servicio.getNombreServicio()); Element elementoTitulo = docSalida.createElement("h1"); elementoTitulo.appendChild(nodoTitulo); elemBody.appendChild(elementoTitulo); if (documento != null) { elemBody.appendChild(servicio.presentarDatos(lectorOnt, docSalida)); } else { Node nodoMensaje = docSalida.createTextNode("No se obtuvieron datos"); elemBody.appendChild(nodoMensaje); }

Comosepuedeverenelfragmentodecdigoanterior,losdatossemuestrandeunadeterminada 137|163

Captulo6Casodeestudio maneradentrodelapginadependiendodelservicio(verelmtodopresentarDatos()).Por ejemplo,paralosserviciosquerepresentanimgenes,lasmismassemuestranenformadetabla sobrelapginaaraznde10imgenesporfila,yporcadaimagensemuestralaimagenens misma,suttuloyelautor:


public Element presentarDatos(LectorOntologia lo, Document docSalida) { try { Ontdel mCopia = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null); Model modelo = lo.getModeloOntologia().getDocumentManager().getModel(LectorOntologia.uriOnt); mCopia.add(modelo); DOM2Model.createD2M(LectorOntologia.uriOnt,mCopia).load(this.getDocumento()); ArrayList<Item> nodos = this.obtenerItems(modeloCopia); int contadorImagenes = 0; Element elemTABLE = docSalida.createElement("table"); Element elemTR = null; Element elemTD = null; for(int i = 0; i < nodos.size(); i++) { Item item = nodos.get(i); contadorImagenes++; elemTD = docSalida.createElement("td"); elemTD.setAttribute("id", "tdimagen"); elemTD.appendChild(item.formatearSalida(docSalida)); if (contadorImagenes == 1) { elemTR = docSalida.createElement("tr"); elemTR.setAttribute("id", "trimagen"); elemTR.appendChild(elemTD); if (i == nodos.size() - 1) elemTABLE.appendChild(elemTR); } else if ((contadorImagenes > 1) && (contadorImagenes < IMAGENESPORFILA)) { elemTR.appendChild(elemTD); if (i == nodos.size() - 1) elemTABLE.appendChild(elemTR); } else if (contadorImagenes == IMAGENESPORFILA) { contadorImagenes = 0; elemTR.appendChild(elemTD); elemTABLE.appendChild(elemTR); } } //for return elemTABLE; } catch (Exception e) { return null; } }

LosmtodospresentarDatos(),redefinidosencadasubclasedeServicio,slotrabajansobre suspropiosdatos,esdecir,elmtodopresentarDatos()delaclase ServicioImagenes slomuestralosdatosquesonimgenes,eldelaclaseServicioLibrosslomuestraloslibros, yassucesivamente.Paraesto,setrabajasobreunacopiadelmodeloontolgico:


Ontdel mCopia = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null);

138|163

Captulo6Casodeestudio
Model modelo = lo.getModeloOntologia().getDocumentManager().getModel(LectorOntologia.uriOnt); mCopia.add(modelo);

SienestemomentosehacemCopia.write(System.out),semuestratodalaontologa,pero slosudefinicin,nolosdatos.LaclaseDOM2ModeltieneelmtodoestticocreateD2M()que permitereferenciarelmodeloparaelespaciodenombresespecificado.Apartirdeah ,sepuede cargareldocumentoDOMquerepresentalosdatosdevueltosporelservicioytransformarloensu formaontolgicagenrica:


DOM2Model.createD2M(LectorOntologia.uriOnt, mCopia).load(this.getDocumento());

Siahorasehace modelo.write(System.out),semuestratodalaontologa,definiciny datos. Luegoseobtienentodoslosobjetosdependiendodeltipodeservicio,queasuvezsonItem: ArrayList<Item> nodos = this.obtenerItems(mCopia); Luego,unavezquesetienentodoslosobjetosdeundeterminadotipo,semuestraenlap gina medianteelmtodoformatearSalida(),elcualdecidequcosassemuestran,ycmo:
int contadorImagenes = 0; Element elemTABLE = docSalida.createElement("table"); Element elemTR = null; Element elemTD = null; for(int i = 0; i < nodos.size(); i++) { Item item = nodos.get(i); contadorImagenes++; elemTD = docSalida.createElement("td"); elemTD.setAttribute("id", "tdimagen"); elemTD.appendChild(item.formatearSalida(docSalida)); if (contadorImagenes == 1) { elemTR = docSalida.createElement("tr"); elemTR.setAttribute("id", "trimagen"); elemTR.appendChild(elemTD); if (i == nodos.size() - 1) elemTABLE.appendChild(elemTR); } else if ((contadorImagenes > 1) && (contadorImagenes < IMAGENESPORFILA)) { elemTR.appendChild(elemTD); if (i == nodos.size() - 1) elemTABLE.appendChild(elemTR); } else if (contadorImagenes == IMAGENESPORFILA) { contadorImagenes = 0; elemTR.appendChild(elemTD); elemTABLE.appendChild(elemTR); } } //for return elemTABLE;

Finalmente,semuestranlosresultadosenlapgina: DOMSource origen = new DOMSource(docSalida); StreamResult destino = new StreamResult(out); 139|163

Captulo6Casodeestudio TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.transform(origen, destino); Enestosmomentos,setieneunapginacomolaquesemuestraenlasfiguras6.6.2,6.6.3y6.6.4.:

Figura6.6.2Pginaconlosresultadosdelmashup

Figura6.6.3Pginaconlosresultadosdelmashup(continuacin)

140|163

Captulo6Casodeestudio

Figura6.6.4Pginaconlosresultadosdelmashup(continuacin)

141|163

Captulo7Conclusiones

CAPTULO7CONCLUSIONES
Enestetrabajosepresentaunapropuestademetodologaparaeldiseodemashupssemnticos.Un mashupsemnticoesunaaplicacinWebqueextraeinformacindediversasfuentes,lacombina (integra)ypresentaenotrasformas,peroestainformacinpresentalacaractersticadepoderser interpretadaporunamquina.AltratarsedeuntipodeaplicacinWeb,sumetodologadediseo encuantoalaspectovisual,codificacinypruebasessimilaraestostiposdeaplicaciones,ydifiere enlosaspectospropiosdelasaplicacionessemnticas(elempleodeontologas). Para comprender el concepto de mashup semntico, se presenta una introduccin a la Web Semntica,mostrandolaevolucindelaWeb,desdesusorgeneshastalaactualidad.Luegose nombranlosaspectospropiosdeldesarrollodemashupssemnticosylosdesafosqueimponeel desarrollodeestasaplicaciones. Luegosepresentanyanalizanalgunosdelosmtodosmsconocidosparaeldiseodeaplicaciones Web,comoserOOWS,OOHDM,UWE,IDM,WebML,HERAyWSDM,dandoparacadauno unabrevedescripcindesuscaractersticasprincipales,yanalizandoculpodraadaptarsealcaso de los mashups semnticos. De este anlisis se concluye que es necesario contar con una metodologapropiaparaestasaplicaciones. Comounmashupsemnticotomainformacinprovenientededistintasontologas,seexplicaeste conceptoysemuestranalgunoslenguajesparasurepresentacin,comoserRDF,RDFSyOWL. Luegosepresentaelproblemadelamediacindeontologasdebidoalanecesidaddeintegrarla informacindelasmismas.Sepresentanlasrazonesporlascualesseproducendiscrepanciasentre lasontologasysemencionanlascaractersticasmsimportantesatenerencuentaparadisminuir esteproblema.Tambinsemuestraelenfoqueadoptadoeneldesarrollodelcasoprcticoparala mediacin. Lametodologaqueseproponeparadisearmashupssemnticosestcompuestade7procesos: 1. Definicin de los objetivos del mashup semntico: se formula la declaracin de los objetivos del mashup semntico, para poder tomar decisiones referidas al modelado del dominiooparaevaluarlaefectividaddelmismo.Estadeclaracinsirvetambincomobase paradecidirquinformacinincluir(ono),cmoestructurarlaycmopresentarla. 2. Modeladodeldominio:apartirdeladeclaracindelosobjetivosdelmashupsemntico,se convierten los mismos en descripciones formales quese puedan utilizar ms tarde para implementar el mashupsemntico. Esteprocesotrata con el modelado del dominio del mashupsemntico. En la WebSemntica, las aplicaciones utilizan ontologas y modelos RDF, es decir, en cualquieraplicacinparalaWebSemntica,laontologaeselmodelodeldominio,ypara 142|163

Captulo7Conclusiones unmashupsemntico,estaontologapermiteestablecerlascorrespondencias(mapeos)entre losdistintosconceptosyrelacionesentrelasontologasdelasfuentesdeinformacinconlas cualestrabaja. Lafinalidaddeesteprocesoesmodelareldominiodelmashupsemnticoenunaontologa, lacualseutilizar comoreferenciaparaluegopoderrealizarlamediacindelasdistintas ontologasdecadaunadelasfuentesdeinformacin. 3. Mediacin de ontologas: en la Web Semntica la informacin est organizada en ontologas,porloqueelmashupsemnticoalrealizarlamediacindelasmismasdebe resolver los tipos de heterogeneidad debidos a las discrepancias terminolgicas y conceptuales(semnticas). PeroenlaWeb1.0y2.0lainformacinest organizadademaneratalquesloresulta comprensible a las personas (HTML, XML, etc), por lo que adems de resolver las discrepanciasterminolgicasyconceptuales,tambindeberesolverlassintcticas. 4. Accesoalasfuentesdeinformacin:unavezquesetienendefinidoslosmapeosentrelas ontologas de las distintas fuentes, el mashup semntico debe extraer la informacin proporcionadaporcadaunaparacombinarlaypresentarlaenotrasformas,paramejorarla presentacinvisualdelamismaoambascosas. 5. Diseodelapresentacin:secomplementaeldiseoconceptualconlosdetallesnecesarios paralaimplementacin.Sedefinelaaparienciavisualdelmashupsemntico,as comoel diseodelaspginasqueloconforman. 6. Implementacin:setraduceelmodeloconceptualenunmodeloconelsuficientegradode detallecomoparaquepuedaserejecutadodirectamentesobrealgunaplataforma. 7. Pruebas: se realizan las pruebas correspondientes para determinar la conformidad del mashupsemnticoconlosobjetivosdelmismo. Finalmentesepresentauncasoprcticocompletodesarrolladosiguiendolametodologapropuesta, explicandoparalosprimeros6procesoslasdistintasactividadesqueserealizaronjuntoconlos problemasqueseencontraron.

7.1Trabajosfuturos
Las ontologas buscan capturar genrica y formalmente el conocimiento (consensuado) de un dominiodado,deformatalquelasaplicacionesylaspersonaspuedanreutilizarloycompartirlo. Sevioqueparaundeterminadodominio,noexisteuna nicaontologaquelomodele(sepueden encontrarvariasontologasquemodelenundeterminadoconocimientodediferentesmaneras).Por ejemplo,enelcampodelcomercioelectrnico,existenvariosestndareseiniciativasconjuntaspara 143|163

Captulo7Conclusiones laclasificacindeproductosyservicios(UNSPSC 77,ecl@ss78,RosettaNet79,NAICS80,etc).Lo mismosepresentaenotrosmbitos,comomedicina,derecho,arte,ciencias,etc. Adems,laexistenciadediferentesestndaresnoesla nicaraznporlaquelaresolucindeun problemarequieralamanipulacindediferentesontologasquemodelenunconocimientosimilar. Porejemplo,latraduccindelenguajedeunaontologaimplicatrabajarcon2ontologas(lade entrada y la de salida), la evolucin de una ontologa implica varias ontologas (las diferentes versiones de la ontologa original), etc. Incluso cuando a priori no hay ontologas dadas, la resolucindeunproblemapuederequerirlamanipulacindefuentesdeinformacinheterogneas. Cualquiera sea la razn por la que se empleen diferentes ontologas para un mismo dominio, generalmente las mismas se vinculan entre s a travs de mapeos, asociando los trminos y expresionesdefinidosenunaontologaorigenconsuscorrespondientesenunaontologadestino. Actualmente,estosmapeosseidentificanmanualmente,presentandolassiguientesdesventajas: Lageneracindemapeosentreontologasgrandes,oentreunagrancantidaddeontologas diferentes,consumeunagrancantidadderecursos. Sialgunasdelasontologascambian,lageneracintienequerealizarsemanualmentede nuevo.

SegnBernersLee,laWebSemnticaesunaextensindelaWebactual,dondealainformacinse ledaunsignificadobiendefinido,facilitandoalasaplicacionesyalagentetrabajarencooperacin. ParalograrlaWebSemntica,laspginas Webseanotanconontologas (diferentesysiempre cambiantes).Enconsecuencia,lageneracinautomticademapeosresultaesencialparaelfuturo delaWebSemntica. Comoextensinaestetrabajo,sepropone: El estudio de la problemtica que presenta la generacin automtica de mapeos de ontologas. Elanlisisdedistintasposibilidadesparalageneracinautomticademapeos. Labsquedadeenfoquesexistentesparalageneracinautomticademapeosyelestudiode posiblesmejorasaestosenfoques. Elanlisisdedistintasherramientasparalageneracinautomticademapeos.

77 78 79 80

http://www.unspsc.org/ http://www.eclass.de/ http://www.rosettanet.org/ http://www.census.gov/eos/www/naics/

144|163

ApndiceARDF

APNDICEARDF
Aunqueselosuelellamarlenguaje,RDFesesencialmenteunmodelodedatosmuysimple,con varias representaciones. RDF es una forma, no ambigua, de establecer informacin sobre algo llamadorecurso.Esdecir,RDFesunaformadeespecificarinformacinsobreunrecurso. Lainformacinsobreunrecursoseespecificamediantelas propiedades delmismo,lascuales describenlasrelacionesentrestos,porejemplo:escritopor,edad,ttulo,etc[Chase,2007B]. Enconclusin,paradescribirunrecursoenRDF,selohacemediantesuspropiedades. ParacomprenderRDF,seanalizaacontinuacinunejemplodedistribucindeinformacinporla Web[Allemang&Hendler,2008].Generalmente,lainformacinsuelerepresentarseenformade tablasrelacionadas,dondecadafilarepresentaunaentidadqueseestdescribiendo,cadacolumna representa una propiedad de una entidad, y las celdas son los valores particulares de estas propiedades. Esta representacin en forma relacional, puede verse en la tabla A.1, en la cual se muestra informacinsobredistintasobras,susautoresyfechaenquefueroncreadas. ID Ttulo 1 2 3 4 5 6 7 8 AsYouLikeIt Hamlet Othello Sonnet78 AstrophilandStella EdwardII HeroandLeander Greensleeves Autor Shakespeare Shakespeare Shakespeare Shakespeare SirPhillipSidney ChristopherMarlowe ChristopherMarlowe HenryVIIRex Medio Obradeteatro Obradeteatro Obradeteatro Poema Poema Obradeteatro Poema Cancin Ao 1599 1604 1603 1609 1590 1592 1593 1525

TablaA.1Representacinrelacionalsobreobras,autoresyfechaenquefueroncreadas AcontinuacinseanalizanalgunasalternativasparadistribuirlainformacindelatablaA.1porla Web: Alternativa 1: hacer particiones horizontales sobre la tabla A.1, de forma tal que cada mquinadondesevanadistribuirlosdatosguardeunaomsfilascompletasdelatabla. Con esta alternativa, cualquier consulta sobre una entidad puede ser respondida por la mquinaqueguardasufilacorrespondiente. Estasolucinofrecegranflexibilidad,yaquelasmquinaspuedencompartirlacargade 145|163

ApndiceARDF representarlainformacinsobrevariasentidades,perorequiereunpocodecoordinacin: cadamquinadebecompartirinformacinsobrelascolumnas.Porejemplo,lasegunda columnadeunafilaenunamquinacorrespondealamismainformacinquelasegunda columnadeunafilaenotramquina?Estasolucinrequieredeunidentificadorglobalpara lascolumnasdelasentidadesqueseestndescribiendo. Alternativa2:hacerparticionesverticalessobrelatablaA.1,deformatalquecadamquina donde se van a distribuir los datos guarde una o ms columnas completas de la tabla original. Esta solucin tambin resulta flexible, de manera diferente, con respecto a la primerasolucin:permiteacadamquinaserresponsabledeuntipodeinformacin.Sino seest interesado,porejemplo,enlasfechasdecreacin,nosenecesitar considerarla informacindeesamquina.Delamismamanera,sisequiereespecificaralgonuevoacerca delasentidades(porejemplo,elnmerodepginas),sepuedeagregarunanuevamquina conestainformacinsininterferirconlasotras. Estasolucintambinrequieredecoordinacinentrelasmquinas.Enestecaso,tieneque verconlasidentidadesdelasentidadesqueseestndescribiendo.Cmosesabequelafila 3enunamquinaserefierealamismaentidadquelafila3enotramquina?Estasolucin requieredeunidentificadorglobalparalasentidadesqueseestndescribiendo. Alternativa3:consisteenunacombinacindelas2alternativasanteriores,esdecir,sobrela tablaA.1originalsehacenparticioneshorizontalesyverticales,conlocuallainformaci n nosedistribuyefilaporfilanicolumnaporcolumna,sinoceldaporcelda(cadam quinaes responsabledeunciertonmerodeceldasdelatabla). Estasolucincombinalaflexibilidaddelas2solucionesanteriores:2mquinaspueden compartirladescripcindeuna nicaentidad(porejemplo,elaodeHamletseguardaen unamquinayelttuloenotra)ypuedencompartirelusodeunapropiedadenparticular (porejemplo,losvaloresdelapropiedadMediosparalasfilas6y7seguardanendiferentes mquinas). EstaflexibilidadesnecesariasisequiererespetarunacaractersticadelaWebSemnticaen laquecualquierapuededecirloqueseasobrecualquiercosa.Deestaforma,cualquier mquinadebepoderhacerunadeclaracinacercadecualquierentidad(comolasegunda solucin),ytambindebepoderespecificarcualquierpropiedaddeunaentidad(comola primerasolucin).Estasolucintieneambosbeneficios. Pero esta solucin tambin combina los costos de las otras 2: ahora se necesita un identificadorglobalparalascolumnasyotroparalasfilas.Dehecho,cadaceldasetieneque representarcon3valores:unidentificadorglobalparalafila,unidentificadorglobalparala columnayelvalordelapropiacelda.Estatercerasolucineslaestrategiaadoptadapor RDF. Comounaceldaserepresentacon3valores,elbloquedeconstruccinbsicodeRDFesunaterna: Elidentificadorglobalparalafilaesel sujetodelaterna(engramtica,elsujetoeslacosa 146|163

ApndiceARDF sobrelacualtratalaoracin). Elidentificadorglobalparalacolumnaesel predicado delaterna(yaquelascolumnas especificanlaspropiedadesdelasentidadesenlasfilas). Elvalordelaceldaeselobjetodelaterna.

LatablaA.2muestraalgunasdelasternas,correspondientesalatablaA.1,enformadesujeto, predicadoyobjeto. Sujeto Fila7 Fila2 Fila2 Fila4 Fila6 Predicado Medio Ttulo Ao Autor Medio Objeto Poema Hamlet 1604 Shakespeare Obradeteatro

TablaA.2TernascorrespondientesalatablaA.1 Tambin,msdeunaternapuedereferenciarlamismaentidad.EnlatablaA.3semuestraestecaso: Sujeto Shakespeare Shakespeare AnneHathaway Shakespeare Stratford Macbeth Inglaterra Escocia Predicado escribi escribi seCasCon viviEn estEn estAmbientadaEn esParteDe esParteDe Objeto ReyLear Macbeth Shakespeare Stratford Inglaterra Escocia ReinoUnido ReinoUnido

TablaA.3Msdeunaternareferenciandolamismaentidad Parafacilitarlacomprensin,alconjuntodeternasconvieneverlocomoungrafodirigido,comoel quesemuestraenlafiguraA.1.Enestegrafo,losarcos,dirigidosdesdeelnodoorigen(elsujeto) haciaelnododestino(elobjeto),representanlaspropiedades(predicados).Tantolonodoscomolos arcosseetiquetan.

147|163

ApndiceARDF

FiguraA.1GrafoRDF

A.1Espaciosdenombres,URIseidentidad
En el grafo anterior se han etiquetado los nodos y los arcos con nombres simples como Shakespeare,Escocia,escribi,etc.EnlaWebSemntica,estonoresultasuficientepara identificaralgo.Porejemplo,alhablarsobreShakespeare,todossabendeloqueseesthablando? EnlaWebSemnticasetienequesermsespecfico:enqusentidosehacereferenciaalapalabra Shakespeare? RDF soluciona este problema mediante una tecnologa de la Web actual: las URIs81. Un tipo especialdeURIeslaURL 82uotrotipodeidentificador nico.LasURIsnoslohansidodefinidas paralosrecursosenlaWebsinotambinparaobjetostandiversoscomonmerosdetelfono, nmerosdeISBNyubicacionesgeogrficas.Esdecir,unaURIeslaidentificacinglobaldeun recursoWeb.EjemplosdeURIs: http://www.example.org/file.xml#element(home) http://www.example.org/file.html#home http://www.example.org/file2.xml#xpath1(//q[@a=b])

Loimportantedetodoesto,esqueRDFutilizaURIsparaidentificarlosrecursos.Laformaque tomenlasURIsnoesimportante. LaescrituracompletadelasURIssueleresultarunpocotedioso.Unaalternativaesusarunaforma simplificadallamada qname [Allemang&Hendler,2008].Bsicamente,unaURIexpresadaen qname tiene2partes:unespaciodenombresyunidentificador,separadospor2puntos(:).Por ejemplo,larepresentacin qname paraelidentificador Inglaterra enelespaciodenombres
81 UniformResourceIdentifier 82 UniformResourceLocator

148|163

ApndiceARDF geo es geo:Inglaterra. En conclusin, cualquier representacin de un qname debe estar acompaadadeunadeclaracindelespaciodenombrescorrespondiente. Nota:losqnamesnosonidentificadoresglobales,nicamentelasURIssonnombresglobalesenla Web. Usandoqnames,algunasdelasternasanterioresquedaran: Sujeto lit:Shakespeare lit:Shakespeare lit:Shakespeare lit:Shakespeare geo:Stratford lit:Shakespeare geo:Inglaterra Predicado lit:escribi lit:escribi bio:viviEn lit:escribi geo:estEn lit:escribi bio:esParteDe Objeto lit:AsYouLikeIt lit:Shakespeare lit:Love'sLaboursLost geo:Stratford lit:Hamlet geo:Inglaterra lit:Othello geo:ReinoUnido

bio:AnneHathaway bio:seCasCon

TablaA.1.1TernasdelatablaA.3empleandoqnames LaW3C83 (WordWideWebConsortium)hadefinidounaseriedeespaciosdenombresest ndar, incluyendoxsd:paraladefinicindeesquemasXML, xmlns:paralosespaciosdenombresXML, etc: rdf: espacio de nombres para identificadores utilizados en RDF. El conjunto de identificadoresdefinidosenelestndaresmuypequeoyseutilizaparadefinirtiposy propiedades en RDF. La URI global para el espacio de nombres rdf es http://www.w3.org/1999/02/22rdfsintaxisns#. rdfs:espaciodenombresparaidentificadoresutilizadosenRDFEsquemaoRDFS.LaURI globalparaelespaciodenombresrdfseshttp://www.w3.org/2000/01/rdfschema#. owl:espaciodenombresparaidentificadoresutilizadosenOWL.LaURIglobalparael espaciodenombresowleshttp://www.w3.org/2002/07/owl#.

A.2Identificadoresenelespaciodenombresrdf
Dentrodelespaciodenombresrdf,RDFdefinelossiguientesidentificadores:

83 http://www.w3.org/

149|163

ApndiceARDF rdf:type proporcionaunsistemadetiposelemental.Porejemplo,sepuedeexpresarla relacinentrevariosescritoresempleandoinformacindetipo.Elsujetode rdf:typeen estasternaspuedesercualquieridentificador,yelobjetoseentiendequeesuntipo. Sujeto lit:Shakespeare lit:Miller Predicado rdf:type rdf:type Objeto lit:Escritor lit:Escritor

TablaA.2.1Ejemplodeusodelidentificadorrdf:type rdf:Property es un identificador que se usa en RDF para indicar cundo otro identificadorsevaausarcomopredicadoenlugardesujetouobjeto: Sujeto lit:escribi geo:parteDe bio:seCas Predicado Objeto rdf:type rdf:type rdf:type rdf:Property rdf:Property rdf:Property

TablaA.2.2Ejemplodeusodelidentificadorrdf:Property

A.3NotacionesparaRDF
ParapublicardatosRDFenlaWeb,resultaadecuadolarepresentacinenformadetextomsquela representacinenformadegrafo.ExistendistintasmanerasdeexpresarRDFenformatextual. AlgunasdelasrepresentacionestextualesmscomunesparaRDFson: TernasN EstanotacinreferencialosrecursosmediantesusURIscompletas.CadaURIseescribe entrelossmbolosdemayorymenor(<y>).Losrecursosseexpresandelaformasujeto predicadoobjeto,seguidosporunpunto(.).Porejemplo: <http://www.WorkOnt.org/Examples/C3Manufacture.rdf#Producto1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.WorkOnt.org/Examples/C3Manufacture.rdf#Producto> . Enesteejemplo,porfaltadeespacioaparecelaternaen3renglones;s loelpuntoalfinal indicaelfinaldeunaterna.

150|163

ApndiceARDF 3RDF(N3) Lanotacin3RDF(oN3)fuedesarrolladaporTimBernersLee.N3combinalanotacin anteriorconelusodeqnames.N3esbastanteextenso,yslosemostrarunaparte. ComoN3utilizaqnames,debehaberunaasociacinentrelosqnames(locales)ylasURIs (globales). Por lo tanto, N3 comienza con un prembulo en el que se definen estas asociaciones.Porejemplo: @prefix mfg: <http://www.WorkOnt.com/Examples/C3/Manufacturing.rdf#> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> Unavezquesehandefinidolos qnameslocales,N3proporcionaunaformamuysimplede expresarunaternautilizandolasabreviaturasqnames,enelordensujetopredicadoobjecto, seguidodeunpunto(.): mfg:Product1 rdf:type mfg:Product . RDFXML Es la forma ms popular y conveniente para la Web Semntica [Chase, 2007B]. Un documentoRDFserepresentamedianteunelemento,llamado rdf:RDF, dentrodelcual hay varios elementos llamados rdf:Description, los cuales representan las descripcionesdelosrecursos. Toda descripcin hace una declaracin sobre un recurso, el cual se puede identificar mediante un atributo llamado about, para hacer referencia a un recurso existente, un atributollamadoID,paracrearunrecursonuevo,obienelrecursopuedenollevarnombre, paracrearunrecursoannimo:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.com#" xmlns:dc="http://purl.org/dc/elements/1.1/#"> <rdf:Description rdf:about="http://www.chaosmagnet.com"> <ex:nombre>Chaos Magnet</ex:name> <dc:creador rdf:resource="http://www.nicholaschase.com" /> </rdf:Description> </rdf:RDF>

RDFdescribecmoespecificarinformacinsobreunrecurso,perolainformacinens mismano significa nada. Para definir los tipos de objetos y sus relaciones, como clases y subclases, es necesariohaceralgunosagregadosalvocabulario.EstosagregadosseencapsulanenRDFSchema, tambinconocidocomoRDFS,elcualtienesupropioespaciodenombresyunaseriedeelementos yatributospredefinidos.

151|163

ApndiceBRFDS

APNDICEBRDFS
ElnombreoficialesRDFVocabularyDescriptionLanguage,peroporrazoneshistricasseemplea eltrminoSchema. RDFcreasimplementeunaestructuraenformadegrafopararepresentarlosdatos,mientrasque RDFSproporcionaelvocabularioqueseutilizarenestegrafo[Allemang&Hendler,2008].Qu individuosserelacionanentres,ycmo?Cmoestnrelacionadaslaspropiedadesqueseusan paradefiniralosindividuosconotrosconjuntosdeindividuosyentres?RDFSproporcionauna formadeexpresarlasrespuestasaestetipodepreguntas. Siguiendoconelejemploanterior,sedicequehayescritoresqueescribendeterminadoslibros.Si slosequierehablarsobreelescritorEoellibroL,sepuedeutilizarRDF.PeroRDFnotienela capacidadsuficienteparahablarsobreloslibros,loslibrosdeficcin,losescritores,etc.,esdecir, sobrelosconjuntos(clases)quedefinenlostiposderecursos.TampocotieneRDFlacapacidadde hablarsobrelasrelacionesentreestosconjuntos,esdecir,lasrelacionesentrelosescritoresylos libros. Para definir un vocabulario mediante el cual se puedan definir los distintos conceptos (clases)ysusrelaciones,esnecesariohaceralgunosagregados,loscualesseencapsulanenRDFS. LaconstruccinbsicaparaespecificarunconjuntoenRDFSesunaclase,lacualsedefineenel espaciodenombresrfds(rdfs:Class).ComoRDFSseexpresaenRDF,laformadeexpresar quealgoesunaclaseestambinmedianteunaterna,enlacualelpredicadoes rdf:type yel objetordfs:Class: Sujeto lit:Escritor Predicado rdf:type Objeto rdfs:Class

TablaB.1Ejemplodeusodelidentificadorrdfs:Class Alveresteejemplo,lanicamaneradesaberqueseesthablandosobreelconjuntoeselempleode rdfs:Class.EnRDF,elconceptordf:type seutilizaparaespecificarquealgoesmiembro deunconjunto.EnRDFSseespecificaquealgoesunconjunto. En RDFS,aligualqueenlamayora delos lenguajes deprogramacin,unode los usos ms importantesdelasclasesesimponerrestriccionessobrequsepuedeafirmarsobreundeterminado concepto.Porejemplo,enelejemplodelosescritores,sequiereevitardeclaracionescomolas siguientes: LibroXesescritoporLibroY ElaulaAesescritaporelEscritorB

Elprimercasonotienesentidoporquesequierequeloslibrosseanescritoss loporescritores,lo cualimponeunarestriccinalosvaloresdelapropiedadesescritopor(serestringeelrangodela 152|163

ApndiceBRFDS propiedad). El segundo caso no tiene sentido porque slo se pueden escribir libros, lo cual impone una restriccinalosobjetossobreloscualessepuedeaplicarlapropiedad(serestringeeldominiodela propiedad).

B.1Subclases
Unavezdefinidaslasclases,sedebernestablecerlasrelacionesentrelasmismasmedianteuna jerarquadeclaseysubclase. Suponerquesedefineunvocabularioquediceque todoFutbolistaesunDeportista,yqueXesun Futbolista.UnapersonapuedeinferirqueXesunDeportista. Unodelosdesafosenelmodeladodelvocabularioengeneral(yenparticularRDFS)esdiferenciar losdosusosdeesunenelejemplo.Cuandosediceque FutbolistaesunDeportista,seestn relacionando2tiposentres,perocuandosedice XesunFutbolista,seest dandoinformacin sobreeltipodeunindividuoenparticular,esdecir,serelacionaunindividuoauntipo.EnRDFse puedeproporcionarinformacinsobreeltipodeunindividuo: Sujeto bio:X Predicado rdf:type Objeto dep:Futbolista

TablaB.1.1Ejemplodeusodelidentificadorrdf:type RDFSproporcionaunnuevorecurso,rdfs:subClassOf,paraexpresarlarelacinesunentre tipos: Sujeto dep:Futbolista Predicado rdfs:subClassOf Objeto dep:Deportista

TablaB.1.2Ejemplodeusodelidentificadorrdfs:subClassOf EnRDFSnoserequierequelasclasesformenunajerarquaestricta,conlocualunaclasepuede tenervariassuperclases.

B.2Subpropiedades
RDFSproporcionaunmedioporelcuallasclasessepuedenrelacionarentres pormediodela relacindesubclaseylasinferenciasquedefinenelsignificadodeestaconstruccin.Estopermitea quien modela en RDFS describir (utilizando la nocin de conjuntos) las relaciones entre los 153|163

ApndiceBRFDS elementosquesedescribenenunacoleccindeternasRDF.Perosisequieredarunsignificadoa los datos, se necesita algo ms que hablar sobre los elementos: se tiene que hablar sobre las propiedadesquelosvinculan,esdecir,lospredicadosdelasternas. RDFS proporciona un mecanismo sencillo para esto, basado en el recurso rdfs:subPropertyOf.Losconceptosdeclases,subclasesypropiedadestienensussimilitudes ydiferenciasconlosmismosconceptosdelaprogramacinorientadaaobjetos:enestaltima,una clasedefinesuspropiedades,yelagregadodenuevaspropiedadesimplicalamodificaci ndela clase. En el caso de RDFS, las propiedades se definen globalmente (no se encapsulan como atributosenlasdefinicionesdelasclases).Esposibledefinirnuevaspropiedadesqueseapliquena clasesexistentessinmodificarlasmismas. La intuicin dice que esta construccin es anloga a rdfs:subClassOf, pero para las propiedades.Porejemplolarelacinhermanoesmsespecficaquelarelacinpariente:si alguienesmihermano,entoncestambinesmipariente.

B.3Tipoyrangodelaspropiedades
Sepuededecirquecuandoseutilizaunapropiedad,elsujetodelaternavienedeunaciertaclasey el objeto proviene de otra. Esto se expresa en RDFS con los recursos rdfs:domain y rdfs:range,respectivamente. EldominioserefierealsujetodecualquierternaqueutilizaPcomosupredicado,yelrangoal objetodecualquierternaqueutilizaaPcomopredicado.CuandoseafirmaquelapropiedadPtiene dominioD(orangoR),seestdiciendoquecadavezqueseuselapropiedadP,sepuedeinferirque elsujeto(oelobjeto)deesaternaesunmiembrodelaclaseD(oR).

154|163

ApndiceCTcnicasparaelmapeodeontologas

APNDICECTCNICASPARAELMAPEODEONTOLOGAS
Unaposibledivisindelastcnicasparamapearontologaspuedeser[Euzenat&Shvaiko,2007]: Las quetrabajananivel elemento:consideran las entidades delas ontologas enforma aisladadesusrelacionesconotrasentidades. Las que trabajan a nivel estructura: consideran a las entidades de las ontologas para compararsusrelacionesconotrasentidades,enlugarde,oademsdecompararsusnombres oidentificadores. Lasquetrabajananivelinstancia:consideranlasinstanciasparaencontrarsimilitudes. Lasquesebasanenlasemntica:lacaractersticaprincipaldeestastcnicasesqueusanla semnticadelateorademodelosparajustificarsusresultados.

C.1Tcnicasquetrabajananivelelemento
Tcnicasbasadasencadenasdecaracteres Seutilizangeneralmenteparabuscarcoincidenciasentrelosnombresylasdescripcionesde lasentidadesdelasontologas.Estastcnicasconsideranunacadenacomounasecuenciade letras. Normalmente se basan en la siguiente intuicin: cuanto ms similares sean las cadenas,msprobableesqueindiquenlosmismosconceptos. Haymuchasmanerasdecompararcadenassegnlaformaenqueselasconsidere:comouna secuenciaexactadeletras,como unasecuenciaerrneadeletras,como unconjuntode letras,comounconjuntodepalabras. Antes de comparar cadenas de caracteres, existen procedimientos de normalizacin que puedenayudaramejorarlosresultadosdelascomparacionesposteriores.Porejemplo,se puede hacer una normalizacin de las cadenas (se convierten todos los caracteres a maysculasporejemplo),una supresindediacrticos (sereemplazanloscaracterescon signos diacrticos, por ejemplo Montral por Montreal), normalizacin de blancos (se reemplazantodosloscaracteresblancos,comoelespacioenblanco,tabulacin,etc,enun nicocaracterblanco),supresindedgitos,eliminacindepuntuacin(sesuprimenlos signosdepuntuacin.PorejemploC.D.setransformaenCD),etc. Estasoperacionesdenormalizacinsedebenhacerconcuidado,yaqueentreotrascosas, son muy dependientes del lenguaje y del orden, pueden causar prdida de informacin, puedenreducirvariacionesperoincrementarsinnimos(porejemplosoloyslo),etc. 155|163

ApndiceCTcnicasparaelmapeodeontologas Una vez aplicada alguna operacin de normalizacin, se puede emplear la funcin de igualdaddecadenas,lacualdevuelve1siambascadenassonidnticas,y0sinoloson.Esta medidanoexplicacmodifieren2cadenas,conlocualsepuedeemplearladistanciade Hamming,lacualesunafuncinquecuentaelnmerodeposicionesenlascualesdifieren lascadenas. Tambin, segn el resultado obtenido de la funcin de igualdad de cadenas, se pueden obtenerdiferentesvariaciones,comoconsiderarquelascadenassonmuysimilarescuando unaessubcadenadelaotra.Deestaforma,siunacadenaessubcadenadeotra,sepuede analizarlapartecomndeambas. Tambinsepuedeemplearlasimilituddeltipongramoparacompararcadenas.Esta similitudcalculaelnmerodengramoscomunes,esdecir,secuenciasdencaracteres.Por ejemplo,lostrigramosparalacadenaartculoseran:art,rt,tc,cu,culy ulo.Estafuncinresultaeficientecuandohaydiferenciaenunoscuantoscaracteres. Tcnicasbasadasenellenguaje Lastcnicasbasadasencadenasdecaracteresconsideranlascadenascomosecuenciasde caracteres.Conlastcnicasbasadasenellenguaje,lascadenassonvistascomotextos(por ejemplo,artculoderevistatericorevisadoporpares).Lostextossepuedensegmentaren palabras: secuencias de letras fcilmente identificables (terico, pares, revisado, revista, artculo). Estas palabras no estn sueltas sino en una secuencia con una estructura gramatical. Frecuentemente palabras como pares tienen un significado y se correspondenconalgunosconceptos,perolosconceptosmstilesparasermanipuladosen untextosonlostrminos,talescomorevisadoporpares. Lostrminossonfrasesqueidentificanconceptos.As,frecuentementesonutilizadospara etiquetarlosconceptosenlasontologas.Comoconsecuencia,reconocereidentificarlos trminosenlascadenaspuedeayudarmuchoenelmapeodeontologas. Lastcnicasbasadasenellenguajesebasanenlastcnicasdelprocesamientodellenguaje natural para ayudar a extraer los trminos significativos de un texto. Comparar estos trminosysusrelacionesayudaaevaluarlasimilituddelasentidadesdelasontologas. Aunqueestastcnicassebasanenalgunosconocimientoslingsticos,haytcnicasquese basansloenalgoritmosytcnicasquehacenusoderecursosexternos,comodiccionarios. Tcnicasbasadasenrestricciones Sonalgoritmosqueseocupandelasrestriccionesinternasqueseaplicanalasdefiniciones delasentidades,comotipodedato,cardinalidad,clave,etc. Recursoslingsticos Losrecursoslingsticos,comodiccionariosotesaurosdedominioespecfico,seutilizan 156|163

ApndiceCTcnicasparaelmapeodeontologas conelfindebuscarcoincidenciasentrelaspalabrassegnlasrelacioneslingsticasentre las mismas, por ejemplo, sinnimos, hipnimos (un hipnimo es una palabra cuyo significadoesmsespecficoqueeldeotraenlaqueestenglobada). Reutilizacindealineaciones Representanunaformaalternativadeexplotarrecursosexternos,loscualestienenelregistro delasalineacionesdeontologasalascualesyaselesbuscaroncoincidencias(porejemplo, cuandosetienenquemapearlasontologasO2yO3,teniendoencuentalasalineaciones entreO1yO2,yentreO1yO3,disponiblesenelrecursoexterno).Lareutilizaci nde alineacionesest motivadaporlaintuicindequemuchasdelasontologasamapearson similaresalasyamapeadas,sobretodosidescribenelmismodominiodeaplicaci n.Estas tcnicas son especialmente prometedoras cuando se trata con ontologas grandes consistentesencientosymilesdeentidades. Ontologasdenivelsuperiorydedominioespecfico Las ontologas de nivel superior tambin se pueden utilizar como fuentes externas de conocimiento.EjemplossonlaontologaCyc[Lenat&Guha,1990],SUMO(Suggested Upper Merged Ontology) [Niles & Pease, 2001] y DOLCE (Descriptive Ontology for LinguisticandCognitiveEngineering)[Gangemietal.,2003].Lacaractersticafundamental deestasontologasesquesonsistemasbasadosenlalgica,yporlotanto,lastcnicasde comparacinquelasexplotanestnbasadasenlasemntica.

C.2Tcnicasquetrabajananivelestructura
Lastcnicasquetrabajananivelestructurasepuedensubdividiren: Tcnicasdeestructurainterna:comparanlaestructurainternadeunaentidad,es decir, ademsdesunombre,suspropiedades(laestructurainternaesladefinicindeentidadessin referenciaaotrasentidades).Estastcnicasusancriterioscomoelconjuntodepropiedades deunaentidad,rango(atributosyrelaciones),cardinalidad,ytransitividadosimetr ade estaspropiedadesparacalcularlasimilitudentrelasentidades. Lasentidadesconestructurasinternascomparablesopropiedadescondominiosyrangos similares en 2ontologas puedensermuchas.Porestarazn, estos tipos detcnicas se utilizanparacreargruposdecorrespondenciaenlugardedescubrirlascorrespondencias exactasentreentidades. Porlogeneralsecombinancontcnicasanivelelementoysonresponsablesdereducirel nmerodecorrespondenciascandidatas.Sepuedenutilizarconotrosenfoquesamodode paso previo para eliminar la mayor parte de las propiedades que son claramente incompatibles.

157|163

ApndiceCTcnicasparaelmapeodeontologas Tcnicasdeestructurarelacional:comparanlaentidadconotrasentidadesconlasquese relaciona.Laestructurarelacionaleselconjuntoderelacionesquetieneunaentidadcon otrasentidades. Estastcnicasconsideranunaontologacomoungrafocuyasaristasestnetiquetadaspor losnombresdelasrelaciones.Porlogeneral,lacomparacindesimilitudentreunparde nodosde2ontologassebasaenelanlisisdesusposicionesdentrodelosgrafos.La intuicindetrsdeestoesque,si2nodosde2ontologassonsimilares,susvecinostambin debensersimilaresdealgunaforma.

C.3Tcnicasquetrabajananivelinstancia
Cuando 2 ontologas comparten el mismo conjunto de individuos (instancias), hay muchas probabilidadesqueexistaunacorrespondenciaentreambas. Estastcnicasaprovechanunamuestrarepresentativadeunapoblacinconelfindeencontrar regularidadesydiscrepancias.Estoayudaaagruparelementosocalculardistanciasentreellos. Entreestastcnicasestnlasbasadasenladistancia,elanlisisdeconceptosformales,elanlisisde correspondencias,eldedistribucindefrecuencias,etc.

C.4Tcnicasbasadasenlasemntica
Estastcnicasempleanlainterpretacinsemntica:si2entidadessonlasmismas,compartenlas mismasinterpretaciones.Enconsecuencia,setratademtodosdeductivos. Losmtodospuramentedeductivosnofuncionanmuybienporsisolosencuantoalaconcordancia deontologas,yporlotantonecesitandeunafasedepreprocesamientoquebrindelasanclas,es decir,entidadesquesedeclaren,porejemplo,comoequivalentes(segnlaidentidaddesusnombres porejemplo).

158|163

Bibliografa

BIBLIOGRAFA
[Allemang,2007]AllemangD.(2007) MashupsandSemanticMashups.JavaDeveloper'sJournal. Disponibleenhttp://java.syscon.com/node/361294(accedidoel9deAgostode2011) [Allemang&Hendler,2008]AllemangD.&HendlerJ.(2008) SemanticWebfortheWorking Ontologist.EffectiveModelinginRDFSandOWL.MorganKaufmann. [Antoniou&vanHarmelen,2008]AntoniouG.&vanHarmelenF.(2008) ASemanticWebPrimer (SecondEdition).TheMITPress. [BernersLee et al., 2001] BernersLee T., Hendler J. & Lassila O. (2001) The Semantic Web. ScientificAmerican. [Bolchini & Garzotto, 2008] Bolchini D. & Garzotto F. (2008) Designing Multichannel Web ApplicationsasDialogueSystems:TheIDMModel .En:RossiG.,PastorO.,SchwabeD.& OlsinaL.(2008)WebEngineering:ModelingandImplementingWebApplications.Springer. [Bouquet etal.,2004]BouquetP.,EhrigM.,EuzenatJ.,FranconiE.,HitzlerP.,Kr tzschM., SerafiniL.,StamouG.,SureY.,andTessarisS.(2004) Specificationofacommonframeworkfor characterizingalignment.DeliverableD2.2.1,KnowledgewebNoE,2004. [Brambillaetal.,2008]BrambillaM.,ComaiS.,FraternaliP.&MateraM.(2008) DesigningWeb ApplicationswithWebMLandWebRatio.En:RossiG.,PastorO.,SchwabeD.&OlsinaL.(2008) WebEngineering:ModelingandImplementingWebApplications.Springer. [Browne&Jermey,2004]BrowneG.&JermeyJ.(2004) WebsiteIndexing(2ndEdition).Auslib Press. [Cardoso, 2007] Cardosi J. (2007) Semantic Web Services: Theory, Tools and Applications . InformationScienceReference [Chase,2007A]ChaseN.(2007A)TheultimatemashupWebservicesandthesemanticWeb,Part 1:UseandcombineWebservices.IBMDeveloperWorks. [Chase,2007B]ChaseN.(2007B)TheultimatemashupWebservicesandthesemanticWeb,Part 3:UnderstandRDFandRDFs.IBMDeveloperWorks. [Chase,2007C]ChaseN.(2007C)TheultimatemashupWebservicesandthesemanticWeb,Part 6:Givetheusercontrol.IBMDeveloperWorks. [Chase&Mitri,2007]ChaseN.&MitriM.(2007)TheultimatemashupWebservicesandthe semanticWeb,Part5:ChangeoutWebservices.IBMDeveloperWorks.

159|163

Bibliografa [Chase&Peterson,2006]ChaseN.&PetersonT.(2006) TheultimatemashupWebservicesand thesemanticWeb,Part2:Manageamashupdatacache.IBMDeveloperWorks. [Chatti et al., 2009] Chatti M.A., Jarke M., Wang Z. & Specht M. (2009) SMashup Personal LearningEnvironments. [Dacontaetal.,2003]DacontaM.C.,ObrstL.J.&SmithK.T.(2003)TheSemanticWeb.AGuide totheFutureofXML,WebServicesandKnowledgeManagement.Wiley. [Daviesetal.,2006]DaviesJ.,StuderR.&WarrenP.(2006) SemanticWebTechnologies.Trends andresearchinontologybasedsystems.Wiley. [De Troyer& Leune, 1998]De TroyerO.& Leune C.(1998) WSDM: A usercentered design methodforWebsites.ComputerNetworksandISDNSystems,Proceedings7thInternationalWorld WideWebConference,Elsevier,Brisbane,Australia,pp.8594. [DeTroyeretal.,2008]DeTroyerO.,CasteleynS.&PlessersP.(2008) WSDM:WebSemantics Design Method. En: Rossi G., Pastor O., Schwabe D. & Olsina L. (2008) Web Engineering: ModelingandImplementingWebApplications.Springer. [Doran, 2006] Doran P. (2006) Ontology reuse via ontology modularisation. Department of ComputerScience,UniversityofLiverpool. [Euzenat,2001]EuzenatJ.(2001)Towardsaprincipledapproachtosemanticinteroperability.In Proc.IJCAIWorkshoponOntologiesandInformationSharing,pages1925,Seattle(WAUS). [Euzenat&Shvaiko,2007]EuzenatJ.&ShvaikoP.(2007)OntologyMatching.Springer. [Euzenat & Stuckenschmidt, 2003] Euzenat J. and Stuckenschmidt H. (2003) The family of languagesapproachtosemanticinteroperability.InBorysOmelayenkoandMichelKlein,editors, Knowledgetransformationforthesemanticweb,pages4963.IOSpress,Amsterdam(NL) [Feiler,2008]FeilerJ.(2008)HowToDoEverythingwithWeb2.0Mashups.McGrawHill. [Fensel et al., 2006] Fensel D., Lausen H., Polleres A., Bruijn J., Stollberg M., Roman D. & Domingue J. (2006) Enabling Semantic Web Services. The Web Service Modelling Ontology . Springer. [Fischer et al., 2009] Fischer T., Bakalov F. & Nauerz A. (2009) An Overview of Current ApproachestoMashupGeneration.UniversityofJena&IBMResearchandDevelopment [Fons etal.,2008]FonsJ.,PelechanoV.,PastorO.,ValderasP.&TorresV.(2008) Applyingthe OOWSModelDrivenApproachforDevelopingWebApplications.TheInternetMovieDatabase CaseStudy.En:RossiG.,PastorO.,SchwabeD.&OlsinaL.(2008) WebEngineering:Modeling andImplementingWebApplications.Springer.

160|163

Bibliografa [Gangemi etal.,2003]GangemiA.,GuarinoN.,MasoloC.&OltramariA.(2003) Sweetening WordNetwithDOLCE.AIMagazine. [GarcaCastro et al., 2009] GarcaCastro R., GmezPrez A. & Sini M. (2009) NeOn methodologyforthedevelopmentoflargescalesemanticapplications.NeOnProject. [Gruber, 1993] Gruber T. (1993) A Translation Approach to Portable Ontology Specifications. KnowledgeAcquisition5,199220 [Hartetal.,2004]HartL.,EmeryP.,ColombB.,RaymondK.,TaraporewallaS.,ChangD.,YeY., Kendall E. & Dutra M. (2004) OWL full and UML 2.0 compared. Disponible en http://www.itee.uq.edu.au/~colomb/Papers/UMLOWLont04.03.01.pdf. [Herman,2009]HermanI.(2009)IntroductiontotheSemanticWeb(tutorial).W3C. [Horridge, 2009] Horridge M. (2009) A Practical Guide to Building OWL Ontologies Using Protg4andCOODETools(Edition1.2).TheUniversityofManchester. [Houbenetal.,2008]HoubenG.,vanderSluijsK.,BarnaP.,BroekstraJ.,CasteleynS.,FialaZ.& Frasincar F. (2008) Hera. En: Rossi G., Pastor O., Schwabe D. & Olsina L. (2008) Web Engineering:ModelingandImplementingWebApplications.Springer. [IEEE,1997]IEEE(1997) IEEEStandardforDevelopingSoftwareLifeCycleProcesses .IEEE Standard10741997,IEEEComputerSociety. [Kanehisaetal.,2004]KanehisaM.,GotoS.,KawashimaS.,OkunoY.&HattoriM.(2004) The KEGGresourcesfordecipheringthegenome.NucleicAcidsRes.2004;32:D277D280. [Klein,2001]KleinM.(2001) Combiningandrelatingontologies:ananalysisofproblemsand solutions.VrijeUniversiteitAmsterdam. [Koch etal.,2008]KochN.,Knapp,A.,Zhang,G.&BaumeisterH.(2008) UMLBasedWeb Engineering.AnApproachBasedonStandards.En:RossiG.,PastorO.,SchwabeD.&OlsinaL. (2008)WebEngineering:ModelingandImplementingWebApplications.Springer. [Kruchten, 2000] Kruchten P. (2000) The Rational Unified Process: An Introduction (Second Edition).AddisonWesley. [Lenat & Guha, 1990] Lenat D. & Guha R. (1990) Building large knowledgebased systems. AddisonWesley,Reading(MAUS). [Maglottetal.,2005]MaglottD.,OstellJ.,PruittK.D.,&TatusovaT.(2005) EntrezGene:gene centeredinformationatNCBI.NucleicAcidsRes.2005January1;33((DatabaseIssue)):D54D58. [Makki, 2008] Makki S. K. & Sangtani J. (2008) Data Mashups & Their Applications in Enterprises. Internet and Web Applications and Services, 2008. ICIW '08. Third International 161|163

Bibliografa ConferenceAthens:IEEE,2008,pp.445450. [McGuinnessetal.,2000]McGuinnessD.L.,FikesR.,RiceJ.&WilderS.(2000) AnEnvironment forMergingandTestingLargeOntologies .PrinciplesofKnowledgeRepresentationandReasoning, ProceedingsoftheSeventhInternationalConference(KR2000).A.G.Cohn,F.Giunchiglia&B. Selman,editors.SanFrancisco,CA,MorganKaufmannPublishers. [McIlraith etal.,2001]McIlraithS.,SonT.C.&ZengH.(2001) Semanticwebservices.IEEE IntelligentSystems,SpecialIssueontheSemanticWeb.IEEE [Mitri&Chase,2006]MitriM.&ChaseN.(2006)TheultimatemashupWebservicesandthe semanticWeb,Part4:Createanontology.IBMDeveloperWorks. [Murugesan,2008]MurugesanS.(2008)WebApplicationDevelopment:ChallengesandtheRole ofWebEngineering.En:RossiG.,PastorO.,SchwabeD.&OlsinaL.(2008) WebEngineering: ModelingandImplementingWebApplications.Springer. [Musen,1992]MusenM.A.(1992) Dimensionsofknowledgesharingandreuse.Computersand BiomedicalResearch25:435467. [Muthaiyah,2008]MuthaiyahS.(2008) Aframeworkandmethodologyforontologymediation throughsemanticandsyntacticmapping.TrabajopresentadoparacumplirconelGradodeDoctor en Filosofa en Tecnologa de la Informacin en la Universidad George Mason. Disponible en http://digilib.gmu.edu:8080/handle/1920/3070. [Niles&Pease,2001]NilesI.&PeaseA.(2001) Towardsastandardupperontology.InProc.2nd InternationalConferenceonFormalOntologyinInformationSystems(FOIS),Ogunquit(MEUS). [Noy&McGuinness,2001]NoyN.F&McGuinnessD.L.(2001)OntologyDevelopment101:A GuidetoCreatingYourFirstOntology.StanfordKnowledgeSystemsLaboratoryTechnicalReport KSL0105andStanfordMedicalInformaticsTechnicalReportSMI20010880 [Paoluccietal.,2002]PaolucciM.,KawamuraT.,PayneT.R.&SycaraK.(2002) Importingthe Semantic Web in UDDI. Proceedings of the Web Services, EBusiness and Semantic Web Workshop [Preist,2004]PreistC.(2004)Aconceptualarchitectureforsemanticwebservices.En:McIlraithS. A.,PlexousakisD.&vanHarmelenF.(2004)TheSemanticWebISWC2004:ThirdInternational SemanticWebConference.Springer. [Raza etal.,2008]RazaM.,HussainF.k.&ChangE.(2008) Amethodologyforqualitybased mashup of data sources. Proceedings of the 10th International Conference on Information IntegrationandWebbasedApplications&Services. [RebolloPedruelo,2008]RebolloPedrueloM.(2008) ServiciosWebSemnticos.Departamento Sistemas Informticos y Computacin Universidad Politcnica de Valencia. Disponible en: 162|163

Bibliografa http://www.slideshare.net/mrebollo/serviciosweb [Rossi et al., 2008] Rossi G., Pastor O., Schwabe D. & Olsina L. (2008) Web Engineering: ModelingandImplementingWebApplications.Springer. [Rossi & Schwabe, 2008] Rossi G. & Schwabe D. (2008) Modeling and Implementing Web Applications with OOHDM. En: Rossi G., Pastor O., Schwabe D. & Olsina L. (2008) Web Engineering:ModelingandImplementingWebApplications.Springer. [Sahooetal.,2008]SahooS.S,BodenreiderO.,RutterJ.L.,SkinnerK.J.&ShethA.P.(2008) An ontologydrivensemanticmashupofgeneandbiologicalpathwayinformation:Applicationtothe domainofnicotinedependence.JournalofBiomedicalInformatics,Volume41,Issue5,Pages752 765 [Sommerville,2007]SommervilleI.(2007)SoftwareEngineering(Eighthedition).Wesley. [Staab etal.,2004]StaabS.,GomezPerezA.,DaelemanaW.,ReinbergerM.L.,&NoyN.F. (2004)Whyevaluateontologytechnologies?becauseitworks!.IEEEIntelligentSystems,19,7481. [Tayloretal.,2008]TaylorJ.,EvansC.&SegaranT.(2008)CreatingSemanticMashups:Bridging Web2.0andtheSemanticWeb.freebase. [Thiran et al., 2005] Thiran P., Hainaut J.L. & Houben G.J. (2005) Database wrappers development:Towardsautomaticgeneration.NinthEuropeanConferenceonSoftwareMaintenance andReengineering,CSMR05,Manchester,UK,IEEECSPress,pp.207216. [Udreaetal.,2007]UdreaO.,GetoorL.&MillerR.J.(2007)LeveragingDataandStructurein OntologyIntegration.SIGMOD'07,Beijing,China [Yu,2011]YuL.(2011)Adeveloper'sguidetotheSemanticWeb.Springer [Walton,2007]WaltonC.D.(2007)AgencyandtheSemanticWeb.OxfordUniversityPress.

163|163