Dr. Knowledge Or: How I Learned To Stop Worrying And Love The Semantic Web
NO TECH WARS!
A MOVING TRAIN!
Hellenic FBD Hellenic PD
Crime Reports UK Ox Points
NHS (EnAKTing)
Ren. Energy Generators
EEA
Open Election Data Project
EU Institutions
Mortality (EnAKTing)
Ordnance Survey
legislation data.gov.uk UK Postcodes
ESD standards
ISTAT Immigration
Lichfield Spending
Scotland Pupils & Exams
Traffic Scotland
Data Gov.ie
reference data.gov. uk
London Gazette
TWC LOGD
Eurostat
Eurostat (FUB)
CORDIS (FUB)
(RKB Explorer)
Linked EDGAR (Ontology Central)
EURES
(Ontology Central)
GovTrack
FTS
New York Times
Geo Names
World Factbook
Geo Species
UMBEL
Italian public schools
Greek DBpedia
DDC
BibBase
Freebase
DBLP (FU Berlin)
dataopenac-uk
TCM Gene DIT
Daily Med
SIDER
Twarql
EUNIS
PDB
SMC Journals
Ocean Drilling Codices
Turismo de Zaragoza
Janus AMP
Climbing
Linked GeoData
Alpine Ski Austria
AEMET
Metoffice Weather Forecasts
Yahoo! Geo Planet
National Radioactivity JP
ChEMBL Open Data Thesaurus
Sears
DBLP (RKB Explorer)
STW
GESIS
Budapest
Pisa
RESEX
Scholarometer
IRIT
ACM
NVD
IBM DEPLOY
Newcastle
RAE2001
LOCAH Roma
CiteSeer
Courseware
dotAC
ePrints
IEEE RISKS
PROSITE
Affymetrix
SISVU
GEMET
Airports
lobid Organisations
ECS (RKB Explorer)
HGNC
PubMed
ProDom
VIVO Cornell
STITCH
Linked Open Colors
SGD
Gene Ontology
AGROV OC
Product DB
Weather Stations
Swedish Open Cultural Heritage
LAAS
NSF
KISTI JISC
WordNet (RKB Explorer)
EARTh
ECS Southampton EPrints
VIVO Indiana
(Bio2RDF)
LODE WordNet (W3C)
Wiki
ECS Southampton
Pfam
UniProt
Taxono my
Cornetto
NSZL Catalog
P20
Eurécom
LinkedCT UniProt
WordNet (VUA)
lobid Resources
UN/ LOCODE
Drug Bank
Enipedia
Lexvo
DBLP (L3S)
ERA Diseasome
lingvoj
Europeana Deutsche Biographie
OAI
data dcs
Uberblic dbpedia lite
Norwegian MeSH
VIAF
Ulm
data bnf.fr
BNB
Project Gutenberg
Rådata nå!
GND
ndlna UB Mannheim
Calames
OS
YAGO
Open Cyc
riese
GeoWord Net
El Viajero Tourism
IdRef Sudoc
totl.net
US Census (rdfabout)
Piedmont Accomodations
URI Burner
LIBRIS
LCSH
MARC Codes List
PSH
RDF Book Mashup
Open Calais
ntnusc
Thesaurus W
SW Dog Food
Portuguese DBpedia
LEM
RAMEAU SH
LinkedL CCN
Sudoc
iServe
US SEC
Scotland Geography
Finnish Municipalities
Event Media
DBpedia
(rdfabout)
Semantic XBRL
Linked MDB
t4gm info
Open Library (Talis)
theses. fr
my Experiment
flickr wrappr
NDL subjects
Plymouth Reading Lists
Revyu
Fishes of Texas
Linked Sensor Data (Kno.e.sis)
Eurostat
Chronicling America
Telegraphis
Geo Linked Data
CORDIS
Pokedex
NTU Resource Lists
Open Library
SSW Thesaur us
semantic web.org
BBC Music
BBC Wildlife Finder
NASA (Data Incubator)
transport data.gov. uk
Source Code Ecosystem Linked Data
Didactal ia Goodwin Family
St. Andrews Resource Lists
Manchester Reading Lists
gnoss Poképédia
Classical (DB Tune)
Taxon Concept
LOIUS
Jamendo (DBtune)
Last.FM (rdfize)
BBC Program mes
Rechtspraak. nl
Openly Local
data.gov.uk intervals
Music Brainz (DBTune)
Ontos News Portal
Sussex Reading Lists
Bricklink
yovisto
Semantic Tweet
Linked Crunchbase
RDF ohloh
(Data Incubator)
(DBTune)
OpenEI
statistics data.gov. uk
GovWILD
Brazilian Politicians
educatio n.data.g ov.uk
Music Brainz (zitgist)
Discogs
FanHubz
patents data.go v.uk
research data.gov. uk
CO2 Emission (EnAKTing)
Energy (EnAKTing)
Surge Radio
Klappstuhlclub
Lotico
(Data Incubator)
Last.FM artists
Population (EnAKTing)
reegle
(DBTune)
tags2con delicious
Slideshare 2RDF
(DBTune)
Music Brainz
John Peel
EUTC Productions
business data.gov. uk
Crime (EnAKTing)
GTAA
Magnatune
DB Tropes
Moseley Folk
Linked User Feedback
LOV
Audio Scrobbler
OMIM
MGI
InterPro Smart Link
Product Types Ontology
Open Corporates
Italian Museums
Amsterdam Museum
UniParc
UniRef
UniSTS
GeneID
Linked Open Numbers
Reactome
OGOLOD
KEGG Pathway
Medi Care
Google Art wrapper
meducator
KEGG Drug
Pub Chem
UniPath way
Chem2 Bio2RDF
Homolo Gene
VIVO UF
ECCOTCP bible ontology
KEGG Enzyme
PBAC
KEGG Reaction
KEGG Compound
KEGG Glycan
Media Geographic Publications
User-generated content Government Cross-domain Life sciences As of September 2011
What is the Semantic Web? Semantic Web is the Web of Knowledge
It is about standards for publishing, sharing and querying knowledge drawn from distributed and heterogeneous resources
It enables the answering of sophisticated questions
OK‌ BUT WHAT DO WE NEED TO DO?
Free Text
The Eiffel Tower (French: La Tour Eiffel, [tuʁ ɛfɛl], nickname La dame de fer, the iron lady) is an 1889 iron lattice tower located on the Champ de Mars in Paris that has become both a global icon of France and one of the most recognizable structures in the world. The tallest building in Paris,[10] it is the most-visited paid monument i the world; millions of people ascend it every year. Named for its designer, engineer Gustave Eiffel, the tower was built as the entrance arch t the 1889 World's Fair. The tower stands 324 metres (1,063 ft) tall, abo the same height as an 81-storey building. It was the tallest man-made structure in the world from its completion until the Chrysler Building in New York City was built in 1930. Not including broadcast antennas, it is the second-tallest structure in France after the 2004 Millau Viaduc The tower has three levels for visitors. Tickets can be purchased to ascend, by stairs or lift, to the first and second levels. The walk to the first level is over 300 steps, as is the walk from the first to the second level. The third and highest level is accessible only by elevator. Both the firs and second levels feature restaurants.
Structured Text
Name: Eiffel Tower, La Tour Eiffel Location: Paris, France, Architect: Stephen Sauvestre Height: 324m ...
Relational Model
NAME
LOCATION
HEIGHT
Eiffel Tower
Paris, France
324m
...
...
...
Semantic Web
324 m
La Tour Eiffel
sameAs
hasHeight
Eiffel Tower isLocatedAt hasArchitect Stephen Sauvestre
Paris, France
EXPRESSING MEANING Triples Everything (really everything!) can be described as a statement based on a triple (or combination of statements)
Examples Beira-Mar is a sport club Ridley Scott directed Alien Protein P05067 is located in Membrane
Subject Predicate Object Building and connecting statements creates knowledge
ENABLING KNOWLEDGE
Amyloid precursor protein
Alzheimer label
uniprot:P05067 is a
Protein
label
involved
omim:104300 is a
Disease
Hellenic FBD Hellenic PD
Crime Reports UK Ox Points
NHS (EnAKTing)
Ren. Energy Generators
EEA
Open Election Data Project
EU Institutions
Mortality (EnAKTing)
Ordnance Survey
legislation data.gov.uk UK Postcodes
ESD standards
ISTAT Immigration
Lichfield Spending
Scotland Pupils & Exams
Traffic Scotland
Data Gov.ie
reference data.gov. uk
London Gazette
TWC LOGD
Eurostat
Eurostat (FUB)
CORDIS (FUB)
(RKB Explorer)
Linked EDGAR (Ontology Central)
EURES
(Ontology Central)
GovTrack
FTS
New York Times
Geo Names
World Factbook
Geo Species
UMBEL
Italian public schools
Greek DBpedia
DDC
BibBase
Freebase
DBLP (FU Berlin)
dataopenac-uk
TCM Gene DIT
Daily Med
SIDER
Twarql
EUNIS
PDB
SMC Journals
Ocean Drilling Codices
Turismo de Zaragoza
Janus AMP
Climbing
Linked GeoData
Alpine Ski Austria
AEMET
Metoffice Weather Forecasts
Yahoo! Geo Planet
National Radioactivity JP
ChEMBL Open Data Thesaurus
Sears
DBLP (RKB Explorer)
STW
GESIS
Budapest
Pisa
RESEX
Scholarometer
IRIT
ACM
NVD
IBM DEPLOY
Newcastle
RAE2001
LOCAH Roma
CiteSeer
Courseware
dotAC
ePrints
IEEE RISKS
PROSITE
Affymetrix
SISVU
GEMET
Airports
lobid Organisations
ECS (RKB Explorer)
HGNC
PubMed
ProDom
VIVO Cornell
STITCH
Linked Open Colors
SGD
Gene Ontology
AGROV OC
Product DB
Weather Stations
Swedish Open Cultural Heritage
LAAS
NSF
KISTI JISC
WordNet (RKB Explorer)
EARTh
ECS Southampton EPrints
VIVO Indiana
(Bio2RDF)
LODE WordNet (W3C)
Wiki
ECS Southampton
Pfam
UniProt
Taxono my
Cornetto
NSZL Catalog
P20
Eurécom
LinkedCT UniProt
WordNet (VUA)
lobid Resources
UN/ LOCODE
Drug Bank
Enipedia
Lexvo
DBLP (L3S)
ERA Diseasome
lingvoj
Europeana Deutsche Biographie
OAI
data dcs
Uberblic dbpedia lite
Norwegian MeSH
VIAF
Ulm
data bnf.fr
BNB
Project Gutenberg
Rådata nå!
GND
ndlna UB Mannheim
Calames
OS
YAGO
Open Cyc
riese
GeoWord Net
El Viajero Tourism
IdRef Sudoc
totl.net
US Census (rdfabout)
Piedmont Accomodations
URI Burner
LIBRIS
LCSH
MARC Codes List
PSH
RDF Book Mashup
Open Calais
ntnusc
Thesaurus W
SW Dog Food
Portuguese DBpedia
LEM
RAMEAU SH
LinkedL CCN
Sudoc
iServe
US SEC
Scotland Geography
Finnish Municipalities
Event Media
DBpedia
(rdfabout)
Semantic XBRL
Linked MDB
t4gm info
Open Library (Talis)
theses. fr
my Experiment
flickr wrappr
NDL subjects
Plymouth Reading Lists
Revyu
Fishes of Texas
Linked Sensor Data (Kno.e.sis)
Eurostat
Chronicling America
Telegraphis
Geo Linked Data
CORDIS
Pokedex
NTU Resource Lists
Open Library
SSW Thesaur us
semantic web.org
BBC Music
BBC Wildlife Finder
NASA (Data Incubator)
transport data.gov. uk
Source Code Ecosystem Linked Data
Didactal ia Goodwin Family
St. Andrews Resource Lists
Manchester Reading Lists
gnoss Poképédia
Classical (DB Tune)
Taxon Concept
LOIUS
Jamendo (DBtune)
Last.FM (rdfize)
BBC Program mes
Rechtspraak. nl
Openly Local
data.gov.uk intervals
Music Brainz (DBTune)
Ontos News Portal
Sussex Reading Lists
Bricklink
yovisto
Semantic Tweet
Linked Crunchbase
RDF ohloh
(Data Incubator)
(DBTune)
OpenEI
statistics data.gov. uk
GovWILD
Brazilian Politicians
educatio n.data.g ov.uk
Music Brainz (zitgist)
Discogs
FanHubz
patents data.go v.uk
research data.gov. uk
CO2 Emission (EnAKTing)
Energy (EnAKTing)
Surge Radio
Klappstuhlclub
Lotico
(Data Incubator)
Last.FM artists
Population (EnAKTing)
reegle
(DBTune)
tags2con delicious
Slideshare 2RDF
(DBTune)
Music Brainz
John Peel
EUTC Productions
business data.gov. uk
Crime (EnAKTing)
GTAA
Magnatune
DB Tropes
Moseley Folk
Linked User Feedback
LOV
Audio Scrobbler
OMIM
MGI
InterPro Smart Link
Product Types Ontology
Open Corporates
Italian Museums
Amsterdam Museum
UniParc
UniRef
UniSTS
GeneID
Linked Open Numbers
Reactome
OGOLOD
KEGG Pathway
Medi Care
Google Art wrapper
meducator
KEGG Drug
Pub Chem
UniPath way
Chem2 Bio2RDF
Homolo Gene
VIVO UF
ECCOTCP bible ontology
KEGG Enzyme
PBAC
KEGG Reaction
KEGG Compound
KEGG Glycan
Media Geographic Publications
User-generated content Government Cross-domain Life sciences As of September 2011
OWL “Define” Relations Web Ontology Language
Define complex concept environments Individual + Property assertion = Axiom “Object-Oriented” Classes Properties Instances
FOAF Friend-Of-A-Friend
RDF Description and Storage Resource Description Framework Store data as triples File formats Relational database
Quite heavy and not easy to deal with Text files must be read (and parsed) (and cached)
SPARQL Ask Questions SPARQL Protocol and RDF Query Language Query data stored in RDF SQL’s “younger brother” Ambiguous Multiple variables
¢
What?
¢
Why?
¢
How?
¢
Setting it up...
¢
Where?
¢
Closing
BREAK FOR 9GAG!
What? ¢ ¢
¢
¢
¢
¢
Next Generation Semantic Web Application Framework Take advantage of Semantic Web technologies/standards Integrate heterogeneous/distributed resources Provide data-access APIs Open federation layer connecting miscellaneous instances Easy to configure/setup Streamline Semantic Web application development
“Semantic Web in a box� for bioinformatics NO STANDALONE APPS, ENTIRE ECOSYSTEMS
¢
Why? ¢
¢
¢
http://bioinformatics.ua.pt/
¢
¢
(Among others…)
IMPROVE BIOMEDICAL APPLICATIONS DOMAIN
SEMANTIC WEB + LIFE SCIENCES perfect benchmark awareness from bioinformatics developers common intertwined graph relationship structure
BUT... Semantic Web is underused in the life sciences domain transition/migration is very difficult complex application deployment learn a whole new batch of technologies (again!) no killer apps/frameworks
and
are notable exceptions
¢
¢
How? ¢
¢
http://bioinformatics.ua.pt/
¢
¢
There?
Here
Do you like gardening?
My experience so far‌
KNOWLEDGE
SEED is a single app, an instance Connectors CSV
SQL
SPARQL
MySQL
Jena
REST
XML
Java
API
Joseki
Pubby
SPARQL
LinkedData
KNOWLEDGE
SEED
CSV
XML
SQL
SPARQL
is a single app, an instance SEED ENGINE
API REST
Biomedical Application
SPARQL
12:00 Carrier PM Pagehttp:// Title www.domain. com
KNOWLEDGE
SEED is a single app, an instance
KNOWLEDGE
GARDEN links multiple seeds SEED SEED SPARQL
SPARQL
SEED SEED
SPARQL
SPARQL
FEDERATION
Knowledge Here!
SEED SPARQL
INTEGRATION Data in = Connectors
CONNECTORS = CSV + XML + SQL + SPARQL load everything flexible format support map external data into a seed’s model
any predicate matches data from... csv columns xml XPath results SQL table columns SPARQL query variables
FEDERATION Data out = APIs
API = SPARQL + REST + Java + LinkedData code your own apps in any programming language available for desktop, web or mobile
one seed, multiple apps or multiple seeds, one app federate to existing apps access with REST or SPARQL distributed knowledge network
¢
¢
¢
Setting it up... ¢ ¢
http://bioinformatics.ua.pt/
¢
STRATEGY 1, 2, 3 go!
1 CONFIGURE 2 BUILD 3 EXPLORE
CONFIGURATION Where’s everybody?
CONFIGURATION = JS FILE + (ONTOLOGY * SETUP) local app configuration JSON object in JavaScript file defines application properties (name, version, environment‌)
define seed ontology then setup resources seed ontology
resource setup
based on COEUS ontology
resource connectors configuration
your app data model
ontology mappings
Framework Model
Seed Entity
Bridge
Concept
Item
Resource
SPARQL
SQL
CSV
XML
ST2011 Semantics Tweets 2011: our new app
ID
Name
st:hasId
st:Tweet
st:hasAuthor
foaf:name
st:Author Title
st:hasURI
dc:title
st:hasLink
Link
st:hasPublicationDate
Date
URI
... <owl:NamedIndividual rdf:about="http://bioinformatics.ua.pt/coeus/resource_Twitter"> <rdf:type rdf:resource="http://bioinformatics.ua.pt/coeus/Resource"/> <rdfs:label rdf:datatype="&xsd;string">resource_twitter</rdfs:label> <query rdf:datatype="&xsd;string">//entry</query> <order rdf:datatype="&xsd;integer">10</order> <dc:title rdf:datatype="&xsd;string">Twitter</dc:title> <dc:creator rdf:datatype="&xsd;string">Pedro Lopes pedrolopes@ua.pt</dc:creator> <dc:description rdf:datatype="&xsd;string">Resource connecting Twitter information.</dc:description> <method rdf:datatype="&xsd;string">cache</method> <endpoint rdf:datatype="&xsd;string">http://search.twitter.com/search.atom?q=iknow2011</endpoint> <dc:publisher rdf:datatype="&xsd;string">xml</dc:publisher> <isResourceOf rdf:resource="http://bioinformatics.ua.pt/coeus/concept_Twitter"/> <loadsFrom rdf:resource="http://bioinformatics.ua.pt/coeus/xml_Twitter_title"/> <loadsFrom rdf:resource="http://bioinformatics.ua.pt/coeus/xml_Twitter_link"/> ... <loadsFrom rdf:resource="http://bioinformatics.ua.pt/coeus/xml_Twitter_id"/> </owl:NamedIndividual> ... <owl:NamedIndividual rdf:about="http://bioinformatics.ua.pt/coeus/xml_Twitter_title"> <rdf:type rdf:resource="http://bioinformatics.ua.pt/coeus/XML"/> <rdfs:label rdf:datatype="&xsd;string">xml_twitter_title</rdfs:label> <query rdf:datatype="&xsd;string">//title</query> <dc:creator rdf:datatype="&xsd;string">Pedro Lopes pedrolopes@ua.pt</dc:creator> <property rdf:datatype="&xsd;string">dc:title</property> </owl:NamedIndividual> <owl:NamedIndividual rdf:about="http://bioinformatics.ua.pt/coeus/xml_Twitter_link"> <rdf:type rdf:resource="http://bioinformatics.ua.pt/coeus/XML"/> <rdfs:label rdf:datatype="&xsd;string">xml_twitter_link</rdfs:label> <query rdf:datatype="&xsd;string">//link</query> <dc:creator rdf:datatype="&xsd;string">Pedro Lopes pedrolopes@ua.pt</dc:creator> <property rdf:datatype="&xsd;string">st:hasLink</property> </owl:NamedIndividual> <owl:NamedIndividual rdf:about="http://bioinformatics.ua.pt/coeus/xml_Twitter_id"> <rdf:type rdf:resource="http://bioinformatics.ua.pt/coeus/XML"/> <rdfs:label rdf:datatype="&xsd;string">xml_twitter_id</rdfs:label> <query rdf:datatype="&xsd;string">//id</query> <dc:creator rdf:datatype="&xsd;string">Pedro Lopes pedrolopes@ua.pt</dc:creator> <property rdf:datatype="&xsd;string">dc:identifier</property> </owl:NamedIndividual> ...
BUILDING Getting data together...
SEMANTIC WEB TRANSLATION triplify data app setup + data = triples
subject - predicate - object subject created at runtime
predicate configured in app setup
object loaded from resource data
... <owl:NamedIndividual rdf:about="http://bioinformatics.ua.pt/coeus/xml_Twitter_title"> <rdf:type rdf:resource="http://bioinformatics.ua.pt/coeus/XML"/> <rdfs:label rdf:datatype="&xsd;string">xml_twitter_title</rdfs:label> <query rdf:datatype="&xsd;string">//title</query> <dc:creator rdf:datatype="&xsd;string">Pedro Lopes pedrolopes@ua.pt</dc:creator> <property rdf:datatype="&xsd;string">dc:title</property> </owl:NamedIndividual> <owl:NamedIndividual rdf:about="http://bioinformatics.ua.pt/coeus/xml_Twitter_link"> <rdf:type rdf:resource="http://bioinformatics.ua.pt/coeus/XML"/> <rdfs:label rdf:datatype="&xsd;string">xml_twitter_link</rdfs:label> <query rdf:datatype="&xsd;string">//link</query> <dc:creator rdf:datatype="&xsd;string">Pedro Lopes pedrolopes@ua.pt</dc:creator> <property rdf:datatype="&xsd;string">st:hasLink</property> </owl:NamedIndividual> <owl:NamedIndividual rdf:about="http://bioinformatics.ua.pt/coeus/xml_Twitter_id"> <rdf:type rdf:resource="http://bioinformatics.ua.pt/coeus/XML"/> <rdfs:label rdf:datatype="&xsd;string">xml_twitter_id</rdfs:label> <query rdf:datatype="&xsd;string">//id</query> <dc:creator rdf:datatype="&xsd;string">Pedro Lopes pedrolopes@ua.pt</dc:creator> <property rdf:datatype="&xsd;string">dc:identifier</property> </owl:NamedIndividual> ...
... <entry> <id>tag:search.twitter.com,2005:111391828925890561</id> <published>2011-09-07T10:54:16Z</published> <link type="text/html" href="..." rel="alternate"/> <title>die twitterwall auf der #iknow2011 http://t.co/LsxFLDk #visibletweets</title> <content type="html">die twitterwall auf â&#x20AC;Ś</content> <updated>2011-09-07T10:54:16Z</updated> <link type="image/png" href="..." rel="image"/> <twitter:source>&lt;a href="http://www.tweetdeck.com" â&#x20AC;Ś /a&gt;</twitter:source> <twitter:lang>en</twitter:lang> <author> <name>issi (Isabel Anger)</name> <uri>http://twitter.com/issi</uri> </author> </entry> ...
EXPLORING Also getting data together...
INTEROPERABILITY …/sparql
SPARQL
perform SPARQL queries get data in multiple formats
GET request for all data
REST
…/api/<key>:<value> for relationships …/api/sub/pred/obj/<format> for specific content
Java LinkedData
abstracted from Jena’s methods
…/resource/<concept>_<id>
¢
¢
¢
¢
http://bioinformatics.ua.pt/
Where? ¢ ¢
Drug
Protein
Locus HGNC
CSV
Disease OMIM
DrugBank
UniProt
XML
Protein
CSV
PDB Locus Entrez
Literature SQL
PubMed
SPARQL
XML
XML
SPARQL
Proteins
Drugs
Symptoms
App
App
App
Here!
Here!
Here!
SPARQL
SPARQL
SPARQL
SPARQL
FEDERATION
Knowledge Here!
Knowledge Here!
Knowledge Here!
Knowledge Here! Knowledge Here! Knowledge Here!
Knowledge Here!
Knowledge Here!
Distributed Hospital Information EHR System Repository SPARQL
SPARQL
Distributed
Distributed
Repository
Repository
Clinical Radiology Reports
SPARQL
SPARQL
SPARQL
Genetics EHR
FEDERATION
Knowledge Here!
Knowledge Here!
Knowledge Here!
Knowledge Here! Knowledge Here! Knowledge Here!
Knowledge Here!
Knowledge Here!
¢
¢
¢
¢
http://bioinformatics.ua.pt/
¢
Closing ¢
http://bioinformatics.ua.pt/coeus
‣ Architecture
Wrapping it all up... ‣ Specification
INTEGRATION + EXPLORATION
CONNECTORS
API
csv, sql, xml, sparql
java, rest, sparql, linkeddata
=FEDERATION
KNOWLEDGE NETWORK
http://bioinformatics.ua.pt/coeus
I’M REALLY REALLY LOOKING FOR TESTERS!!
“Semantic Web in a box”
FUTURE
work in progress ~ 2 months
get some more prototypes running test federation
Writing a couple more papers thesis!!
THANK YOU! Questions and Feedback are (very) welcome!
http://bioinformatics.ua.pt/