Table Of ContentMcCarthyetal.BMCBioinformatics2012,13(Suppl1):S2
http://www.biomedcentral.com/1471-2105/13/S1/S2
RESEARCH Open Access
SPARQL Assist language-neutral query composer
Luke McCarthy, Ben Vandervalk, Mark Wilkinson*
From Semantic Web Applications and Tools for Life Sciences (SWAT4LS) 2010
Berlin, Germany. 10 December 2010
Abstract
Background: SPARQL query composition is difficult for the lay-person, and even the experienced bioinformatician
in cases where the data model is unfamiliar. Moreover, established best-practices and internationalization concerns
dictate that the identifiers for ontological terms should be opaque rather than human-readable, which further
complicates the task of synthesizing queries manually.
Results: We present SPARQL Assist: a Web application that addresses these issues by providing context-sensitive
type-ahead completion during SPARQL query construction. Ontological terms are suggested using their multi-
lingual labels and descriptions, leveraging existing support for internationalization and language-neutrality.
Moreover, the system utilizes the semantics embedded in ontologies, and within the query itself, to help prioritize
the most likely suggestions.
Conclusions: To ensure success, the Semantic Web must be easily available to all users, regardless of locale,
training, or preferred language. By enhancing support for internationalization, and moreover by simplifying the
manual construction of SPARQL queries through the use of controlled-natural-language interfaces, we believe we
have made some early steps towards simplifying access to Semantic Web resources.
Background SIO_010302 is considerably harder to glean without
The health care and life science sectors have been some looking up its ontological definition. This becomes par-
of the most enthusiastic adopters of Semantic Web ticularly acute in the context of SPARQL queries. While
technologies. The benefits of the RDF/OWL data model often the subject and object portions of a SPARQL
are well-understood by bioinformaticians who have too WHERE clause contain variables, and therefore are
long had to deal with the problem of integrating data inherently human-readable, the predicates are usually
from multiple sources with wildly different underlying explicitly specified in the query. Thus while:
schema. These benefits are less obvious, however, to
clinicians and researchers who merely see one myster- ?gene SIO:is_homologous_to ?gene
ious query language (SQL) exchanged for another
(SPARQL). Even a Semantic Web-savvy informatician is quite clear to both the query composer and the
can be daunted when faced with the challenge of query- human reader, the opaque equivalent
ing an unfamiliar data source whose particular RDF
vocabulary is initially unknown. ?gene SIO:010302 ?gene
The issue is compounded by the growing use of opa-
que, semantic-free URIs for ontological classes and is effectively meaningless to the reader, and absurdly
properties (OBO [1], SIO [2], CWA [3]). While the difficult for the query composer to remember. Neverthe-
meaning of rdf:type or dc:title is relatively clear to the less, there are many valid reasons for designing ontolo-
human reader, the meaning of, for example, sio: gies using opaque identifiers, not the least of which is
language neutrality.
RDF/XML provides built-in language neutrality by way
*Correspondence:mark@illuminae.com
ProvidenceHeart+LungInstituteatSt.Paul’sHospital,UniversityofBritish of the xml:lang attribute; an ontology can therefore
Columbia,Room166-1081BurrardSt.,Vancouver,BC,CanadaV6Z1Y6
©2011McCarthyetal.ThisisanopenaccessarticledistributedunderthetermsoftheCreativeCommonsAttributionLicense(http://
creativecommons.org/licenses/by/2.0),whichpermitsunrestricteduse,distribution,andreproductioninanymedium,providedthe
originalworkisproperlycited.
McCarthyetal.BMCBioinformatics2012,13(Suppl1):S2 Page2of9
http://www.biomedcentral.com/1471-2105/13/S1/S2
easily be internationalized by providing multiple rdfs: properties, individuals and namespaces that have been
label or rdfs:comment properties with appropriate xml: indexed in JSON format. It can also be deployed with a
lang attributes. However, even those projects who have, server-side Java component that will index OWL ontolo-
in principle, adopted language neutrality for their classes gies directly. These ontologies may be parsed a priori as
(e.g. OBO), most have not done so for their properties part of the SPARQL Assist installation/configuration, or
(OBO Relationship Ontology [4]). This is no-doubt due, may be referred to in the FROM clause of a SPARQL
at least in part, to the already discussed difficulty of query, in which case they are parsed dynamically at
composing SPARQL queries in which predicates have query time. In the future, as much computation as pos-
opaque identifiers. Nevertheless, it is crucial that we do sible will be transferred to the client side to improve
not allow convenience to direct the development of a both performance and flexibility of deployment, but at
core global resource (the Semantic Web) and thus the present the limited support for OWL in JavaScript
problem should be solved at the level of the tools pro- requires a server-side component for ontology parsing.
vided, rather than the resources themselves. Our initial implementation of SPARQL Assist was
SPARQL Assist is a web application that facilitates the undertaken in the context of creating queries that will
construction of SPARQL queries by providing context- be resolved by the Semantic Health and Research Envir-
sensitive type-ahead completion. In addition to assis- onment (SHARE [5]), and we present here both the
tance with basic syntax, ontological terms are indexed core SPARQL Assist software, as well as the extension
by their labels, using the xml:lang attribute to record specific to SHARE. SHARE is an advanced SPARQL
the language of each label for each term. Ontological query client built on top of the SADI Framework [6] for
terms and their labels, are read on-the-fly from any Semantic Web Services. SADI services attach properties
ontology specified in a SPARQL FROM clause, but to input OWL instances and these services are indexed
SPARQL Assist can also be configured to pre-load in a central registry based on the properties they attach.
terms from particular ontologies or SPARQL endpoints, SHARE maps the triple patterns presented in the
reducing the burden on the user to know the existence WHERE clauses of a SPARQL query onto these indexed
and location of all relevant vocabularies. properties, in order to discover SADI Web Services cap-
The entire query, as it is being constructed, is used to able of generating the required triples. The RDF data
provide context for the type-ahead suggestions. Pre- required to answer a given query is thus dynamically
viously declared variables or known individuals (i.e. generated through the invocation of SADI services in
values) are suggested during type-ahead for the subject response to the query being posed.
or object position of the WHERE clause. In the predi- In the context of SPARQL Assist, the fact that proper-
cate position, indexed ontological predicates are sug- ties do not exist at query composition time might be
gested, with preference given to properties that an considered a barrier, since there is no pre-existing RDF
individual is known to have if this information is avail- Store to inspect for candidate properties and individuals.
able from ontological indexing and/or other query To compensate for this, the SADI extension to SPARQL
clauses. Similarly, if a clause contains a variable that can Assist uses the SADI registry, in addition to any loaded
ultimately be connected to a known individual in ontologies, to suggest properties to be used in a query.
another part of the query, that connection is used to As in the generic case, if a clause contains a named
find the most likely properties in the current clause. individual or a variable previously connected to an indi-
Together, these functionalities should simplify the vidual, this information is used to further refine the sug-
manual construction of SPARQL queries by (a) making gestions; in this case by filtering out properties
the query more similar to natural language, and (b) sup- generated by services that cannot accept a particular
porting any language in which the required terms have individual as input and highlighting properties generated
been labeled. Moreover, in so doing, SPARQL Assist by services that can. Thus, not only is the lack of a static
also provides ontology designers more freedom to follow triple store not a barrier to query composition, but the
best-practices in ontology design and internationaliza- ability to construct a likely-successful query is, in fact,
tion by reducing the barrier to query construction using enhanced by utilization of the underlying SADI
opaque terms. SPARQL Assist thus represents one alter- infrastructure.
native, alongside visual query builders and faceted brow- Although it was designed with SHARE in mind,
sers, for helping unfamiliar users explore semantic data. SPARQL Assist can be used with any SPARQL endpoint
that can be queried from client-side JavaScript. Due to
Implementation the limitations of cross-domain JavaScript requests, the
SPARQL Assist is implemented in JavaScript (jQuery) endpoint must reside at the same domain name as the
and is intended to be accessed through a browser. In its SPARQL Assist query form, or the endpoint must be
simplest configuration, SPARQL Assist preloads able to deliver query results in JSONP format, or a
McCarthyetal.BMCBioinformatics2012,13(Suppl1):S2 Page3of9
http://www.biomedcentral.com/1471-2105/13/S1/S2
suitable proxy must be configured. Sample configura- SIO_000062 from the Semantic Science Integrated
tions for common situations are available on the web Ontology) is added to the SPARQL query as a result of
[7]. this selection (see Figure 5).
With an interest in genes involved in caffeine metabo-
Results lism, and not knowing which KEGG pathway this corre-
The results of this software engineering project are best sponds to, we then begin typing “caff...” in the object-
described by a demonstrative walk-through using our position of the WHERE clause. SPARQL assist has pre-
public SPARQL Assist interface available at [8]. In this indexed the names and definitions of KEGG pathway
demonstration we will be answering the question: URIs, and thus prompts us with “human caffeine meta-
bolism pathway” as a type-ahead option (see Figure 5).
select the genes that participate in the human caf- Selecting this option inserts the URI KEGG:hsa00232 in
feine metabolism pathway and the proteins that they the object position, corresponding to the identifier for
encode. this pathway, and the first WHERE clause is complete
(see Figure 6).
SPARQL Assist helps query construction at all points, In constructing the second WHERE clause, we will
both with respect to correct SPARQL syntax, as well as reveal some limitations of the approach. After being
the content of the query itself. This includes the specifi- prompted for “?protein” in response to “?pro...” (see Fig-
cation of prefixes. Begin typing “PREFIX” and a type- ure 6) we then want to determine which genes code for
ahead prompt appears indicating that PREFIX is the these proteins. Typing “code” reveals two, seemingly
only valid option at this point (see Figure 1). Knowing identical, options, neither of which has a definition - “is
that we are going to be using KEGG pathways, but not encoded by” and “isEncodedBy” (see Figure 7). This is
knowing what the correct URI prefix is, we then begin because these two predicates appeared in the ontologies
typing “path...” and are prompted with several options, pre-indexed by SPARQL Assist and had no further
one of which is the URI prefix for identifiers from the description. Since it is not possible to determine with
Kyoto Encyclopedia of Genes and Genomes (see Figure any certainty if they are truly redundant, or which
2). online resources will use which predicate, both are pre-
Several steps later, after specification of the SELECT sented, and the user must make a choice. In Figure 8
variables (not shown), SPARQL Assist has a number of we have selected “is encoded by”, and the corresponding
features aimed at simplifying the construction of the URI http://semanticscience.org/resource/SIO_010079
WHERE clause. First, previously-typed variables are has been added to the query. We complete the query by
prompted. For example, typing “?g” prompts the user adding the final ?gene variable, and the query results are
with their previously entered “?gene” variable (see Figure shown in the same figure.
3). Knowing (a priori) the vernacular that genes “partici- Three additional features of the SPARQL Assist soft-
pate in” metabolic pathways, typing “parti...” results in ware, and its SADI extension – internationalization,
two choices of predicate “has participant”, and “is parti- dynamic ontology indexing, and dynamic predicate-vali-
cipant in”, along with their human-readable descriptions dation – will be demonstrated by a second walk-
to help determine which predicate would be the correct through. In this example, we attempt to resolve the
one (see Figure 4). In this case, “is participant in” is same query as above, but will construct the query
selected, since genes are participants in pathways. The clauses slightly differently to allow these additional fea-
opaque URI of the corresponding predicate (SIO: tures to be revealed (in SPARQL, equivalent queries can
Figure1Type-aheadsuggestionforstructuralcomponentsofaSPARQLquery.Theuserhastyped“pr...”andisbeingpromptedthatthe
appropriatesyntacticelementforthispositioninaSPARQLqueryis“PREFIX”.
McCarthyetal.BMCBioinformatics2012,13(Suppl1):S2 Page4of9
http://www.biomedcentral.com/1471-2105/13/S1/S2
Figure2Type-aheadsuggestionfortheURIofanamespacePREFIX.Theuserhastyped“path...”withtheintentionoffindingtheKEGG
PathwayURIprefix.Thisissuggestedforthemasthethirdsuggestioninthelist.ThisrelievestheuseroftheburdenbothrecallingtheseURIs,
andofcorrectlytypingthem.
be constructed in a wide variety of ways, particularly participate in this KEGG pathway, we begin typing
when the desired predicates have an owl:inverse “parti...” in the predicate position of this WHERE clause.
predicate). As before, SPARQL Assist prompts us with a variety of
Figure 9 shows the initial phases of query construction suggestions, however one of these suggestions has been
already completed as above, this time with the addition highlighted in green (see Figure 9 upper panel). This
of a FROM clause. When confronted with a FROM highlighting indicates that SPARQL Assist has discov-
URI, SPARQL Assist will immediately retrieve and index ered SADI Web Services capable of fulfilling that clause
the resulting ontology, extracting predicates and named of the query, given that individual’s semantic type, thus
individuals from that ontology. In this example, the giving the user more security that their query will be
props.de.owl ontology contains a variety of German-lan- answerable. Because the German-language ontology has
guage extensions for predicates defined by the SIO, and been loaded, we could equally have begun typing
individuals from KEGG. When constructing the first “Bet...”, and been prompted by the German equivalent
WHERE clause in this case, we have decided to begin predicate “hat Beteiligten”, also highlighted in green (see
with the KEGG caffeine metabolism pathway. This was Figure 9 lower panel).
selected exactly as in Figure 5 above, but using the Ger- We complete the first clause and continue to the next,
man equivalent “Stoffwechselweg Koffein menschlichen” where we wish to find the proteins that are encoded by
as the individual name (not shown). With an explicit a given gene. We begin the second WHERE clause with
individual as the starting-point, the SADI extension to “?gene”, and then (in the German language) attempt to
SPARQL Assist is able to utilize the semantics of the find the proteins that the genes “codiert für” (see Figure
SADI Web Services registry to enhance subsequent 10). Importantly, SPARQL Assist is able to suggest pre-
type-ahead suggestions. To find the genes that dicates based on the semantic type of the data that will
Figure3Type-aheadselectionofknownqueryvariables.Theuserhasalreadycreatedtwovariables,“gene”and“protein”intheirSELECT
clause,andnowisbeingpromptedtoreusethe“gene”variableintheWHEREclauseunderconstruction.
McCarthyetal.BMCBioinformatics2012,13(Suppl1):S2 Page5of9
http://www.biomedcentral.com/1471-2105/13/S1/S2
Figure4Type-aheadselectionofontologicalpredicatesbasedontheirhuman-readablelabel.Theuserhasstartedtyping“parti...”,with
theintentionoffindingsomepredicaterelatingto“participation”.Twopossiblepredicates,“hasparticipant”and“isparticipantin”,are
suggested,alongwiththeirhuman-readabledescriptions.
fill the ?gene variable. It is able to do this because, dur- Finally, the “codiert für” predicate is selected and
ing the previous SADI registry query for the “has parti- replaced by the appropriate URI, and query construction
cipant” predicate, it determined the output data-type of continues through to resolution (see Figure 11).
that SADI service and assigned that data-type to ?gene.
As such, SPARQL Assist is now able to indicate Discussion
(through green highlighting) that there is a SADI service The two walk-through scenarios above reveal the beha-
that attaches the “codiert für” predicate to the indivi- viours of the SPARQL Assist software and demonstrate
duals that will, at execution-time, fill the ?gene variable. what we believe is an environment that assists query
Figure5Type-aheadselectionofindividualsbytheirhuman-readablename.Theuserbeginstypingtheword“caffeine”andisprompted
by“humancaffeinemetabolismpathway”,aspecificpathwayintheKEGGdatabase.Selectionofthispathwayresultsintheinsertionofthe
correspondingURIintotheSPARQLquery.
Figure6ReplacementofnamedindividualsbytheirURI.Inthisfigure,“humancaffeinemetabolismpathway”hasbeenreplacedbyitsURI
http://lsrn.org/KEGG_PATHWAY:hsa00232.Theuserisnowbeingpromptedtousethepreviously-defined“protein”variablefortheirnextclause.
McCarthyetal.BMCBioinformatics2012,13(Suppl1):S2 Page6of9
http://www.biomedcentral.com/1471-2105/13/S1/S2
Figure7Namingcollisionsareobserved.Inthisfigure,theuserislookingforapredicaterelatedtogenecoding.Theyarepresentedwith
twoseeminglyidenticalpredicates,neitherofwhichhasadescription.Incaseswhereindependentontologiesusethesametermanddonot
definethatterm,itisnotpossibleforthesoftwaretoautomaticallyinferequivalence.Assuch,bothtermsarepresentedtotheuserandthey
mustmakeachoicebasedonminimalinformation.
construction not only by “naïve” end-users, but also by predicates, and individuals, and explicit support for
experienced informaticians already comfortable with internationalization.
the SPARQL language. While these behaviours (e.g. We are aware that it may seem unsustainable and/or
type-ahead) are not themselves novel, the utility comes excessive to index individuals, such that “real things”
in the way they have been applied, particularly with (molecules, structures, genes, etc) can be referred-to
respect to dynamic indexing of ontological terms, during construction of the query and resolved by
Figure8Querycompletionandexecution.Thepredicate“isencodedby”hasbeenreplacedbyitsURIhttp://semanticscience.org/resource/
SIO_010079thefinalvariablewasaddedtothesecondclause,andthequerywasexecutedwiththeresultsshown.
McCarthyetal.BMCBioinformatics2012,13(Suppl1):S2 Page7of9
http://www.biomedcentral.com/1471-2105/13/S1/S2
Figure 9 SADI registry lookups and internationalization. This figure shows support for internationalization as well as the additional
functionalityofSPARQLAssistprovidedbytheSADIextension.Whenanamedindividualispresentinaquery,theSADIextensiontoSPARQL
AssistutilizesthesemantictypeofthisindividualtoinitiateasearchoftheSADIregistryforServicesthatcouldconsumethisindividualasinput.
Thepredicatescreatedbythoseservicesarehighlightedingreeninthetype-aheadprompt,providingvisualassurancethatselectionofthose
predicatesis“semanticallymeaningful”andislikelytoresolvesuccessfullyduringqueryexecution.Inthetoppanel,theuserhasstartedtyping
(inEnglish)“parti...”,andthepredicate“hasparticipant”fromthetype-aheadchoicesishighlightedingreen,indicatingthataSADIServiceis
availablethatwillgeneratethatpredicatebasedonthatinputindividual.Inthelowerpanel,atthesamepointinthequery,theuserhasstarted
typing(inGerman)“Bet...”,andisprovidedwiththepredicate“hatBeteiligten”.Since“hatBeteiligten”and“hasparticipant”arealternativelabels
forthesamepredicateURI(http://semanticscience.org/resource/SIO_000132),thispredicateisalsohighlightedingreenindicatingthatthereisa
SADIservicecapableofresolvingit.
Figure10AdditionalutilizationofSADIregistrysemantics.TheGerman-language“codiertfür”(English“codesfor”)isbeingsuggested,and
ishighlightedingreen.ThegreenhighlightingindicatesthattheSPARQLAssistsoftware,afterthepreviousSADIRegistrylookup(seeFigure9)
knowswhatsemanticdatatypewillbecontainedinthevariable?geneafterinvocationofthatSADIservice,andisthereforeabletodetermine
thatanotherSADIserviceisavailablethatwillbeabletoconsumeindividualsfrom?geneandattachthe“codiertfür”predicatetothem.
McCarthyetal.BMCBioinformatics2012,13(Suppl1):S2 Page8of9
http://www.biomedcentral.com/1471-2105/13/S1/S2
Figure11Querycompletionandsolution.Inthisfigure,“codiertfur”hasbeenproperlyconvertedtoitsSIOURI.Notealsothatthequery
resultsareidenticaltothoseinFigure8,demonstratingthatthesequeries,regardlessoflanguagechosen,areequivalent.
SPARQL Assist to their native identifiers, but we don’t internationalization by reducing the resulting burden
think this is necessarily the case. First, we believe it is of complexity placed on their end-users.
crucial to do so since (as with browser bookmarks for There are some areas where the SPARQL Assist inter-
URLs) we cannot and should not expect users to know face can be further improved. In particular, while the
or remember the URI of their data-of-interest. Second, query construction process itself is guided by “natural
the amount of storage required to achieve this (a URI language”, the interface immediately converts this into
and it’s various labels) is minimal and lookups over this SPARQL clauses with opaque identifiers; thus, the final
data can be quite rapid. Third, we anticipate that query in SPARQL Assist is just as unreadable as any tra-
SPARQL Assist will be deployed by specific commu- ditional SPARQL query. This implementation barrier
nities or on specific portals, where the individuals of results from limitations in the JavaScript language: the
greatest interest to that community can be anticipated content of a Web text-box cannot be marked-up and
and selectively indexed to minimize lookup time and thus SPARQL query clauses cannot be individually
index size. referenced and linked to an external, non-SPARQL
SPARQL Assist does not aim to be a query interface representation. We would welcome participation of any
that understands natural language. It relies on ontol- community members who might have a solution to this
ogy authors creating “obvious” labels for their predi- problem!
cates and, even in that case, a user will often need to
try several “words” before discovering the phrase that Conclusions
the ontology author used. However, we believe that SPARQL Assist provides prototype solutions for two
this is nevertheless better than the status quo and, important problems. First, to hasten the uptake of
moreover, makes it easier for ontology authors to jus- Semantic Web technologies, it is important to improve
tify following best-practices of ontology design and access to, and usability of, Semantic Web resources for
McCarthyetal.BMCBioinformatics2012,13(Suppl1):S2 Page9of9
http://www.biomedcentral.com/1471-2105/13/S1/S2
the lay-end-user while still maintaining best-practices in 2. SemanticScience-ScientificKnowledgeDiscovery.[http://
the way these resources are modeled. Opaque identifiers semanticscience.org/].
3. NBICDeclarationConceptWebAlliance.[http://www.nbic.nl/about-nbic/
for both classes and properties are important, as they
affiliated-organisations/cwa/declaration/].
allow us to avoid “churn” as an ontology evolves over 4. OBORelationshipOntology.[http://www.berkeleybop.org/ontologies/obo-
time. We must therefore support the end-user in con- all/relationship/relationship.owl].
5. VandervalkBP,McCarthyEL,WilkinsonMD:SHARE:ASemanticWebQuery
structing queries over resources formatted in this way.
EngineforBioinformatics.InFourthAsianConference,ASWC6-9December
Second, the Semantic Web is intended to be a global 2009;Singapore.VolumeLNCS5926.Heidelberg:Springer;AsunciónGómez-
resource, of use to all. As such, a respect for internatio- Pérez,YongYu,YingDing2009:367-369.
6. WilkinsonMD,VandervalkBP,McCarthyL:SADISemanticWebServices-
nalization is also critical, even at these early stages in ‘causeyoucan’talwaysGETwhatyouwant!Proceedingsofthe2009IEEE
Semantic Web evolution. We believe that SPARQL Asia-PacificServicesComputingConference2010,13-18.
Assist provides motivation to more widely adopt what 7. SPARQLAssistlanguage-neutralquerycomposer.[http://sadiframework.
org/sparql-assist].
are clearly best-practices in Semantic Web data
8. cardioSHARE.[http://biordf.net/cardioSHARE].
provision.
doi:10.1186/1471-2105-13-S1-S2
Citethisarticleas:McCarthyetal.:SPARQLAssistlanguage-neutral
Availability and requirements querycomposer.BMCBioinformatics201213(Suppl1):S2.
Project name: SPARQL Assist
Project home page: http://code.google.com/p/sadi/
Operating system(s): Platform independent
Programming language: Java
License: New BSD
Listofabbreviations
CWA:ConceptWebAlliance;JSON:JavaScriptObjectNotation;JSONP:
JavaScriptwithPadding;KEGG:KyotoEncyclopaediaofGenesandGenomes;
OBO:OpenBiomedicalOntologies;OWL:WebOntologyLanguage;RDF:
ResourceDescriptionFramework;SADI:SemanticAutomatedDiscoveryand
Integration;SHARE:SemanticHealthAndResearchEnvironment;SIO:
SemanticScienceIntegratedOntology;SPARQL:SPARQLProtocolandRDF
QueryLanguage;SQL:StructuredQueryLanguage;URI:UniformResource
Identifier;URL:UniformResourceLocator;XML:ExtensibleMarkupLanguage.
Acknowledgements
ThisworkhasbeensupportedbytheHeart+StrokeFoundationofBCand
Yukon,MicrosoftResearch,TheCanadianInstitutesforHealthResearch,The
NaturalSciencesandEngineeringResearchCouncilofCanada,andCANARIE.
ThankyoutoAnna-LenaLamprechtforassistinguswiththeGerman
translationsoftheSIOandKEGGterms.
ThisarticlehasbeenpublishedaspartofBMCBioinformaticsVolume13
Supplement1,2012:SemanticWebApplicationsandToolsforLifeSciences
(SWAT4LS)2010.Thefullcontentsofthesupplementareavailableonlineat
http://www.biomedcentral.com/bmcbioinformatics/supplements/13/S1.
Authors’contributions
LMwrotetheSPARQLAssistsoftwareandwrotesignificantportionsofthis
manuscript.BVinventedandimplementedtheoptimizeralgorithmof
SHAREallowingSPARQLqueriestobeefficientlyconvertedtoWebService
workflowsforthissoftwaredemonstrationandassistedwithportionsofthis
manuscript.MWconceivedoftheSADIproject,togetherwithLMconceived
oftheSPARQLAssistconcept,andwrotethemajorityofthismanuscript.
Competinginterests Submit your next manuscript to BioMed Central
Theauthorsdeclarethattheyhavenocompetinginterests. and take full advantage of:
Published:25January2012
• Convenient online submission
References • Thorough peer review
1. SmithB,AshburnerM,RosseC,BardJ,BugW,CeustersW,GoldbergLJ, • No space constraints or color figure charges
EilbeckK,IrelandA,MungallCJ,TheOBIConsortium,LeontisN,Rocca-
• Immediate publication on acceptance
SerraP,RuttenbergA,SansoneS-A,ScheuermannRH,ShahN,WhetzePL,
LewisS:TheOBOFoundry:coordinatedevolutionofontologiesto • Inclusion in PubMed, CAS, Scopus and Google Scholar
supportbiomedicaldataintegration.NatureBiotechnology2007,
• Research which is freely available for redistribution
25:1251-1255.
Submit your manuscript at
www.biomedcentral.com/submit