BACKGROUND
because of advances in biotechnologies, various types of biological data have drastically increased in the past decade.
because of the volume, heterogeneity, and continual growth of biological data, it has become increasingly difficult for individual researchers to manage an entire dataset in a single repository.
in this context, semantic web technology  <cit>  has attracted attention as a promising approach of knowledge management  <cit> .
in the semantic web, all information is described in the resource description framework   <cit> , in which every piece of information is in the form of a triple containing a subject, predicate, and object and each resource is represented by a uniform resource identifier .
the rdf works as a general framework of knowledge representation and the uri assures valid integration of data collected from different sources.
furthermore, knowledge extraction from the rdf can be implemented using a powerful query language called the sparql protocol and rdf query language   <cit> .
sparql specifications include federated query functionality  <cit> , by which distributed databases can be queried in an integrative manner.
thus, semantic web technology provides a basis for flexible integration of the increasing amount of heterogeneous data.
in fact, many biological databases have already adopted the semantic web .
despite the well-designed basis of semantic web technologies, several obstacles that prevent users including bioinformaticians from utilizing rdf databases still remain.
the main hurdle for most users is writing sparql, which often includes cumbersome coding tasks.
for example, sparql permits inclusion of subqueries for distinct endpoints in a federated query; however, writing such a nested query is a complicated task and can be a technical obstacle for most users.
several approaches for supporting sparql coding currently exist.
examples include sparql editors with useful functionalities such as uri autocompletion  <cit> , and graphical support for step-by-step construction of sparql queries  <cit> .
despite these approaches, constructing executable sparql code, even for a simple query, still remains a time-consuming task; thus, a mechanism that saves time of preparing sparql code is necessary to maximize the use of available rdf datasets.
as an alternative approach to this issue, a wiki-based portal for sharing sparql queries was constructed  <cit> , which can bypass the burdensome coding task.
although the queries registered on this service can be executed on the portal site, a mechanism for reusing these queries in other environments would maximize the usefulness of the accumulated queries.
here, we developed spang, a client that supports querying by generation and reuse of sparql codes through a simple interface.
taking advantage of the common “triple” form of rdf data, spang generates typical queries without the need for sparql coding.
even in complicated queries, spang can construct runtime queries using predefined templates.
regarding the federated query, spang realizes a similar functionality by combining multiple queries through a unix pipe.
spang, with its unique features, minimizes the burden of coding sparql, thereby enhancing integrative exploitation of distributed databases.
implementation
the spang package includes the main spang command, which can be used in the unix command-line environment.
in general, the spang command helps users to query rdf databases by dynamically generating sparql queries according to the supplied command-line options or arguments.
more specifically, spang has two execution modes:shortcut mode, in which users need only specify command-line options to generate a simple query.
specific command-line options, including -s
subject, -p
predicate, -o
object, -l
limit, and other modifiers, are interpreted as shortcuts for generating typical sparql queries .
template mode, in which users can generate a query using a sparql template and parameters.
the template can be either a local file or a remote file published on the web.
the specified parameters replace the placeholders included in the template to generate a runtime query.
although each spang process submits a query to a specified database, the spang process can be combined with other unix processes through a unix pipe.
notably, multiple spang commands, each with distinct target database, can be combined through a unix pipe by transferring variable bindings between queries, thereby realizing federated use of multiple databases.
the spang package is implemented in perl.
specifically, the spang command accesses remote sparql endpoints using the perl lwp module.
to lower the initial hurdle of querying with sparql, the spang package provides predefined configurations, including i) nicknames for sparql endpoints, ii) frequently used prefix declarations for uris, and iii) sparql template libraries.
furthermore, users can extend the configurations by preparing user-defined configuration files.
RESULTS
simple queries using sparql shortcuts
spang can generate and execute simple queries by specifying a set of sparql shortcuts and additional options.
an example of such queries is,
spang uniprot -s uniprot:p <dig> -a
where the first argument is the target sparql endpoint and the ensuing arguments are sparql shortcuts and an option.
the uniprot in the first argument is a predefined nickname for the uniprot sparql endpoint  <cit> .
the sparql endpoint can be specified in a url or in a nickname for simplicity.
the uniprot: in the third argument is a prefix for uris of uniprot entries.
this example command line searches the uniprot database for statements that have the specified entry id as a subject .
using the -a option transforms the uris in the search result into abbreviated forms using predefined prefix declarations.
for example, a uri <
http://www.w <dig> org/2000/01/rdf-schema#label
> is transformed into rdfs:label.
the result is output to the standard output in the form of tab-separated values by default, as it is suitable for processing by line-oriented unix programs.
in addition, a combination of subject, predicate, and object is possible according to the following:
spang uniprot -s uniprot:p <dig> -p up:organism
fig.
<dig> example usage of spang with sparql shortcuts.
the command line accesses the uniprot sparql endpoint and searches for triples that have uniprot:p <dig> as a subject
where the predicate up:organism is specified to confine the results to organism information.
instead of specifying a predicate, a property path can be used as follows:
spang uniprot -s uniprot:p <dig> -p up:organism/up:scientificname
which retrieves the scientific name of the organism.
thus, the shortcut mode can be typically used to retrieve resources that are associated with a specific subject via arbitrary predicates.
more generally, the shortcut mode can generate a sparql code containing a certain triple pattern .
adding -q option to the command line outputs the generated sparql query without executing it, thereby allowing inspection of the internal operation.
for the full list of available command-line options, simply type the command spang.
using sparql templates with parameters
although the sparql shortcuts are useful for generating simple queries, they do not cover a complicated query that contains combinations of triple patterns.
thus, spang provides a mechanism to generate arbitrary query patterns using sparql templates.
an example of such is,
spang uniprot uniprot_annot p02649
where the first argument is the target sparql endpoint, the second argument is the name of the sparql template, and the ensuing argument is the parameter of the template.
the specified parameter replaces the placeholder  included in the template before execution .
uniprot_annot is the name of a sparql template included in the predefined sparql library and p <dig> is a parameter.
this example query retrieves annotation for a protein p <dig> from the uniprot database.fig.
<dig> example usage of spang with sparql template and parameter.
the specified parameter replaces the placeholder included in the template before execution.
this query retrieves annotation for the protein p <dig> from the uniprot database
whereas the templates usually assume specific target databases, some templates are generally applicable to any sparql endpoint; for example,
spang uniprot regex_class’^apolipoprotein’
where regex_class is a sparql template to search for specific classes matching a given pattern of regular expression .
although this query is submitted to the uniprot database in the example command line, the template can also be used to search other databases .
available sparql templates are not limited to the local library.
when sparql libraries are published on the web, users can call the templates by means of uris across the web.
we have prepared a sparql template library for the microbial genome database   <cit> , which is available at http://mbgd.genome.ad.jp/sparql/library/.
this library can be utilized in a command line such as
spang mbgd mbgdl:get_ortholog k9z723
where mbgd is the mbgd sparql endpoint  <cit>  and mbgdl: is a prefix for abbreviating the uri of the template get_ortholog in the mbgd sparql library .
the template can be specified in the full uri or in abbreviated form using the predefined prefix declarations.
this example query searches the mbgd database for the orthologs of the specified protein k9z <dig> .
combinatorial execution of multiple queries
in federated use of multiple databases, spang can connect queries for distinct target databases through a unix pipe.
combining a spang command in shortcut mode and another one in template mode is also possible.
an example of such a combination is,
spang mbgd mbgdl:get_ortholog k9z <dig> | spang uniprot -s  <dig> -p rdfs:label
where the first spang command is the same as the one presented in the previous subsection to search the mbgd database for orthologs of the protein k9z723; the obtained list of proteins are used in the second command to search the uniprot database for annotations of the given list of proteins .
the option -s  <dig> is used to specify the values in the first column of the standard input as subject.
this combinatorial query enables integrative use of two databases distributed across the web.
note that the output of the first command can also be used in a different query by altering the second command; for example,
spang mbgd mbgdl:get_ortholog k9z <dig> | spang uniprot uniprot_xref pdb
fig.
<dig> example command line for executing combinatorial query using spang.
the command line accesses two databases: mbgd and uniprot.
combinatorial querying against multiple databases is achieved by connecting queries through a unix pipe.
the specified commands first search mbgd for orthologs of k9z <dig> and then search uniprot for their protein annotations.
mbgdl:get_ortholog is a sparql template to obtain ortholog members of a given uniprot id .
the placeholder $ <dig> in the sparql template is dynamically replaced by the specified parameter.
the command-line option -s  <dig> is used to set the values from the first column of the standard input as subject
where uniprot_xref is a sparql template , which retrieves cross-references from the uniprot ids given in the standard input to the database specified as the parameter .
this example command line searches for entries in the protein data bank   <cit>  among orthologs of k9z <dig>
practical use case of spang
a series of queries that represents a practical use case of spang is described below.
suppose that we are examining alzheimer’s disease by exploring genes associated with it.
an important task would be to search for differentially expressed genes in alzheimer’s disease patients.
differential gene expression data are available from the gene expression atlas  <cit>  constructed on the basis of a variety of samples that are curated and annotated with the experimental factor ontology   <cit> .
given that we do not know specific resource ids in advance, we would begin the search with a specific keyword.
the following query is available to search for relevant resources using a regular expression:
spang atlas regex_class’^alzheimer’
where atlas represents the sparql endpoint for gene expression atlas  <cit> .
this example query gives us a term, efo_ <dig>  that is defined in the efo.
the following command line can be used to obtain detailed information about the term:
spang atlas -s efo:efo_ <dig> -a
which retrieves statements that have efo:efo_ <dig> as a subject.
figure  <dig> illustrates the following stepwise execution of spang.
the command line shown below retrieves differentially expressed genes in samples of alzheimer’s disease and saves the result as a file:
spang atlas diff_expr efo_ <dig> > result
fig.
<dig> stepwise execution of spang commands for integrative use of rdf databases.
the first spang command retrieves differentially expressed genes in samples of “alzheimer’s disease” .
the second command filters resulting proteins by go annotation of “synapse”
where diff_expr is a sparql template to search for differentially expressed genes specifying a condition of samples .
the result includes microarray probes showing signals of differential gene expression, cross-references from these probes to uniprot ids, and the pubmed entries describing these experiments.
in this particular example, the result is derived from a specific microarray experiment  <cit> .
the obtained result can be further processed by other commands; the next command line extracts the first column  and filters them by gene ontology annotation  <cit>  to select those related to “synapse” :
cut –f <dig> result | spang uniprot filter_by_go go_ <dig> -a
the result includes the protein q9y2j <dig> .
recently, it was experimentally shown that reduction of rabphilin-3a in alzheimer’s disease correlates with dementia severity and amyloid beta accumulation  <cit> .
thus, stepwise execution of spang commands is a useful approach for rdf data integration and knowledge discovery.
all examples of spang commands used in this paper are summarized in a table, where they are compared with the corresponding plain sparql queries .
it shows that the burden of querying with sparql can be reduced by using spang commands.
discussion
in this paper, we presented spang, a sparql querying client that has several unique features.
first, spang provides a shortcut mode that can generate a simple query containing a certain triple pattern.
this mode aids querying with sparql and is helpful for beginners to start exploring rdf datasets.
it is also useful for experienced users of sparql, as useful information can often be obtained by retrieving adjacent nodes in rdf graphs using the shortcut mode and efficiently submitting such simple queries is crucial in data mining.
second, for more complicated queries, spang provides a template mode, by which existing sparql codes can be reused among users.
this mode enhances the usage of sparql through development of sparql template libraries that represent reusable query patterns.
the template libraries constructed by experienced users can help other users to efficiently utilize rdf databases.
third, the queries in either shortcut or template mode can be combined in the unix command line to realize a more complex query.
this modular structure of queries has several merits: it reduces complexity of each sparql query, leading to easier implementation and debugging of the query; and it extends potential application of each query through combination with other queries or unix commands.
the predefined sparql templates included in the spang package are available to help users query some biological rdf databases.
however, the range of queries included in the package is limited to rather common ones.
the potential use of spang can be further extended by database users or database providers through development of sparql template libraries.
although a service for sharing sparql queries exists  <cit> , it is difficult to execute them directly for instant reuse by users.
in spang, users can directly call sparql templates across the web.
thus, if an rdf database provider, who knows best the manner in which the database should be used, publishes sparql template libraries, database usage can be considerably enhanced.
this study suggests the possibility of an open framework of sharing query in a reusable form.
future work may include the standardized use of the query templates, which will further facilitate the sharing of useful queries.
sharing not only data but also queries  on the semantic web platform will help the biological research community collaborate in knowledge integration and discovery.
CONCLUSIONS
spang enables easy generation of typical queries, thereby reducing the burden of writing sparql.
spang also provides a framework for reusing and sharing arbitrary queries across the web.
moreover, it enables users to execute complex queries by combining existing query templates.
spang, with these unique features, facilitates integrative exploitation of published rdf datasets and supports knowledge discovery.
additional files
additional file 1: list of sparql shortcuts with example usages.
additional file 2: codes of the sparql templates used as examples.
additional file 3: example spang commands compared with the corresponding plain sparql queries.
abbreviations
efoexperimental factor ontology
mbgdmicrobial genome database for comparative analysis
pdbprotein data bank
rdfresource description framework
sparqlsparql protocol and rdf query language
uriuniform resource identifier

 because of advances in biotechnologies, various types of biological data have drastically increased in the past decade. because of the volume, heterogeneity, and continual growth of biological data, it has become increasingly difficult for individual researchers to manage an entire dataset in a single repository. in this context, semantic web technology has attracted attention as a promising approach of knowledge management. in the semantic web, all information is described in the resource description framework, in which every piece of information is in the form of a triple containing a subject, predicate, and object and each resource is represented by a uniform resource identifier. the rdf works as a general framework of knowledge representation and the uri assures valid integration of data collected from different sources. furthermore, knowledge extraction from the rdf can be implemented using a powerful query language called the sparql protocol and rdf query language. sparql specifications include federated query functionality, by which distributed databases can be queried in an integrative manner. thus, semantic web technology provides a basis for flexible integration of the increasing amount of heterogeneous data. in fact, many biological databases have already adopted the semantic web. despite the well-designed basis of semantic web technologies, several obstacles that prevent users including bioinformaticians from utilizing rdf databases still remain. the main hurdle for most users is writing sparql, which often includes cumbersome coding tasks. for example, sparql permits inclusion of subqueries for distinct endpoints in a federated query; however, writing such a nested query is a complicated task and can be a technical obstacle for most users. several approaches for supporting sparql coding currently exist. examples include sparql editors with useful functionalities such as uri autocompletion, and graphical support for step-by-step construction of sparql queries. despite these approaches, constructing executable sparql code, even for a simple query, still remains a time-consuming task; thus, a mechanism that saves time of preparing sparql code is necessary to maximize the use of available rdf datasets. as an alternative approach to this issue, a wiki-based portal for sharing sparql queries was constructed, which can bypass the burdensome coding task. although the queries registered on this service can be executed on the portal site, a mechanism for reusing these queries in other environments would maximize the usefulness of the accumulated queries. here, we developed spang, a client that supports querying by generation and reuse of sparql codes through a simple interface. taking advantage of the common “triple” form of rdf data, spang generates typical queries without the need for sparql coding. even in complicated queries, spang can construct runtime queries using predefined templates. regarding the federated query, spang realizes a similar functionality by combining multiple queries through a unix pipe. spang, with its unique features, minimizes the burden of coding sparql, thereby enhancing integrative exploitation of distributed databases. implementation the spang package includes the main spang command, which can be used in the unix command-line environment. in general, the spang command helps users to query rdf databases by dynamically generating sparql queries according to the supplied command-line options or arguments. more specifically, spang has two execution modes:shortcut mode, in which users need only specify command-line options to generate a simple query. specific command-line options, including -s subject, -p predicate, -o object, -l limit, and other modifiers, are interpreted as shortcuts for generating typical sparql queries. template mode, in which users can generate a query using a sparql template and parameters. the template can be either a local file or a remote file published on the web. the specified parameters replace the placeholders included in the template to generate a runtime query. although each spang process submits a query to a specified database, the spang process can be combined with other unix processes through a unix pipe. notably, multiple spang commands, each with distinct target database, can be combined through a unix pipe by transferring variable bindings between queries, thereby realizing federated use of multiple databases. the spang package is implemented in perl. specifically, the spang command accesses remote sparql endpoints using the perl lwp module. to lower the initial hurdle of querying with sparql, the spang package provides predefined configurations, including i) nicknames for sparql endpoints, ii) frequently used prefix declarations for uris, and iii) sparql template libraries. furthermore, users can extend the configurations by preparing user-defined configuration files.  simple queries using sparql shortcuts spang can generate and execute simple queries by specifying a set of sparql shortcuts and additional options. an example of such queries is, spang uniprot -s uniprot:p -a where the first argument is the target sparql endpoint and the ensuing arguments are sparql shortcuts and an option. the uniprot in the first argument is a predefined nickname for the uniprot sparql endpoint. the sparql endpoint can be specified in a url or in a nickname for simplicity. the uniprot: in the third argument is a prefix for uris of uniprot entries. this example command line searches the uniprot database for statements that have the specified entry id as a subject. using the -a option transforms the uris in the search result into abbreviated forms using predefined prefix declarations. for example, a uri < http://www.w org/2000/01/rdf-schema#label > is transformed into rdfs:label. the result is output to the standard output in the form of tab-separated values by default, as it is suitable for processing by line-oriented unix programs. in addition, a combination of subject, predicate, and object is possible according to the following: spang uniprot -s uniprot:p -p up:organism fig. example usage of spang with sparql shortcuts. the command line accesses the uniprot sparql endpoint and searches for triples that have uniprot:p as a subject where the predicate up:organism is specified to confine the results to organism information. instead of specifying a predicate, a property path can be used as follows: spang uniprot -s uniprot:p -p up:organism/up:scientificname which retrieves the scientific name of the organism. thus, the shortcut mode can be typically used to retrieve resources that are associated with a specific subject via arbitrary predicates. more generally, the shortcut mode can generate a sparql code containing a certain triple pattern. adding -q option to the command line outputs the generated sparql query without executing it, thereby allowing inspection of the internal operation. for the full list of available command-line options, simply type the command spang. using sparql templates with parameters although the sparql shortcuts are useful for generating simple queries, they do not cover a complicated query that contains combinations of triple patterns. thus, spang provides a mechanism to generate arbitrary query patterns using sparql templates. an example of such is, spang uniprot uniprot_annot p02649 where the first argument is the target sparql endpoint, the second argument is the name of the sparql template, and the ensuing argument is the parameter of the template. the specified parameter replaces the placeholder included in the template before execution. uniprot_annot is the name of a sparql template included in the predefined sparql library and p is a parameter. this example query retrieves annotation for a protein p from the uniprot database.fig. example usage of spang with sparql template and parameter. the specified parameter replaces the placeholder included in the template before execution. this query retrieves annotation for the protein p from the uniprot database whereas the templates usually assume specific target databases, some templates are generally applicable to any sparql endpoint; for example, spang uniprot regex_class’^apolipoprotein’ where regex_class is a sparql template to search for specific classes matching a given pattern of regular expression. although this query is submitted to the uniprot database in the example command line, the template can also be used to search other databases. available sparql templates are not limited to the local library. when sparql libraries are published on the web, users can call the templates by means of uris across the web. we have prepared a sparql template library for the microbial genome database, which is available at http://mbgd.genome.ad.jp/sparql/library/. this library can be utilized in a command line such as spang mbgd mbgdl:get_ortholog k9z723 where mbgd is the mbgd sparql endpoint and mbgdl: is a prefix for abbreviating the uri of the template get_ortholog in the mbgd sparql library. the template can be specified in the full uri or in abbreviated form using the predefined prefix declarations. this example query searches the mbgd database for the orthologs of the specified protein k9z. combinatorial execution of multiple queries in federated use of multiple databases, spang can connect queries for distinct target databases through a unix pipe. combining a spang command in shortcut mode and another one in template mode is also possible. an example of such a combination is, spang mbgd mbgdl:get_ortholog k9z | spang uniprot -s -p rdfs:label where the first spang command is the same as the one presented in the previous subsection to search the mbgd database for orthologs of the protein k9z723; the obtained list of proteins are used in the second command to search the uniprot database for annotations of the given list of proteins. the option -s is used to specify the values in the first column of the standard input as subject. this combinatorial query enables integrative use of two databases distributed across the web. note that the output of the first command can also be used in a different query by altering the second command; for example, spang mbgd mbgdl:get_ortholog k9z | spang uniprot uniprot_xref pdb fig. example command line for executing combinatorial query using spang. the command line accesses two databases: mbgd and uniprot. combinatorial querying against multiple databases is achieved by connecting queries through a unix pipe. the specified commands first search mbgd for orthologs of k9z and then search uniprot for their protein annotations. mbgdl:get_ortholog is a sparql template to obtain ortholog members of a given uniprot id. the placeholder $ in the sparql template is dynamically replaced by the specified parameter. the command-line option -s is used to set the values from the first column of the standard input as subject where uniprot_xref is a sparql template, which retrieves cross-references from the uniprot ids given in the standard input to the database specified as the parameter. this example command line searches for entries in the protein data bank among orthologs of k9z practical use case of spang a series of queries that represents a practical use case of spang is described below. suppose that we are examining alzheimer’s disease by exploring genes associated with it. an important task would be to search for differentially expressed genes in alzheimer’s disease patients. differential gene expression data are available from the gene expression atlas constructed on the basis of a variety of samples that are curated and annotated with the experimental factor ontology. given that we do not know specific resource ids in advance, we would begin the search with a specific keyword. the following query is available to search for relevant resources using a regular expression: spang atlas regex_class’^alzheimer’ where atlas represents the sparql endpoint for gene expression atlas. this example query gives us a term, efo_ that is defined in the efo. the following command line can be used to obtain detailed information about the term: spang atlas -s efo:efo_ -a which retrieves statements that have efo:efo_ as a subject. figure  illustrates the following stepwise execution of spang. the command line shown below retrieves differentially expressed genes in samples of alzheimer’s disease and saves the result as a file: spang atlas diff_expr efo_ > result fig. stepwise execution of spang commands for integrative use of rdf databases. the first spang command retrieves differentially expressed genes in samples of “alzheimer’s disease”. the second command filters resulting proteins by go annotation of “synapse” where diff_expr is a sparql template to search for differentially expressed genes specifying a condition of samples. the result includes microarray probes showing signals of differential gene expression, cross-references from these probes to uniprot ids, and the pubmed entries describing these experiments. in this particular example, the result is derived from a specific microarray experiment. the obtained result can be further processed by other commands; the next command line extracts the first column and filters them by gene ontology annotation to select those related to “synapse”: cut –f result | spang uniprot filter_by_go go_ -a the result includes the protein q9y2j. recently, it was experimentally shown that reduction of rabphilin-3a in alzheimer’s disease correlates with dementia severity and amyloid beta accumulation. thus, stepwise execution of spang commands is a useful approach for rdf data integration and knowledge discovery. all examples of spang commands used in this paper are summarized in a table, where they are compared with the corresponding plain sparql queries. it shows that the burden of querying with sparql can be reduced by using spang commands. discussion in this paper, we presented spang, a sparql querying client that has several unique features. first, spang provides a shortcut mode that can generate a simple query containing a certain triple pattern. this mode aids querying with sparql and is helpful for beginners to start exploring rdf datasets. it is also useful for experienced users of sparql, as useful information can often be obtained by retrieving adjacent nodes in rdf graphs using the shortcut mode and efficiently submitting such simple queries is crucial in data mining. second, for more complicated queries, spang provides a template mode, by which existing sparql codes can be reused among users. this mode enhances the usage of sparql through development of sparql template libraries that represent reusable query patterns. the template libraries constructed by experienced users can help other users to efficiently utilize rdf databases. third, the queries in either shortcut or template mode can be combined in the unix command line to realize a more complex query. this modular structure of queries has several merits: it reduces complexity of each sparql query, leading to easier implementation and debugging of the query; and it extends potential application of each query through combination with other queries or unix commands. the predefined sparql templates included in the spang package are available to help users query some biological rdf databases. however, the range of queries included in the package is limited to rather common ones. the potential use of spang can be further extended by database users or database providers through development of sparql template libraries. although a service for sharing sparql queries exists, it is difficult to execute them directly for instant reuse by users. in spang, users can directly call sparql templates across the web. thus, if an rdf database provider, who knows best the manner in which the database should be used, publishes sparql template libraries, database usage can be considerably enhanced. this study suggests the possibility of an open framework of sharing query in a reusable form. future work may include the standardized use of the query templates, which will further facilitate the sharing of useful queries. sharing not only data but also queries on the semantic web platform will help the biological research community collaborate in knowledge integration and discovery.  spang enables easy generation of typical queries, thereby reducing the burden of writing sparql. spang also provides a framework for reusing and sharing arbitrary queries across the web. moreover, it enables users to execute complex queries by combining existing query templates. spang, with these unique features, facilitates integrative exploitation of published rdf datasets and supports knowledge discovery. additional files additional file 1: list of sparql shortcuts with example usages. additional file 2: codes of the sparql templates used as examples. additional file 3: example spang commands compared with the corresponding plain sparql queries. abbreviations efoexperimental factor ontology mbgdmicrobial genome database for comparative analysis pdbprotein data bank rdfresource description framework sparqlsparql protocol and rdf query language uriuniform resource identifier 
we developed spang, a sparql client that has unique features for querying rdf datasets. further, it enables combinatorial execution of multiple queries, each with a distinct target database. although the powerful sparql protocol and rdf query language provides a basis for exploiting rdf databases, writing sparql code is burdensome for users including bioinformaticians. spang dynamically generates typical sparql queries according to specified arguments. spang helps users to exploit rdf datasets by generation and reuse of sparql queries through a simple interface. these features facilitate easy and effective access to rdf datasets and integrative analysis of distributed data. this client will enhance integrative exploitation of biological rdf datasets distributed across the web. toward improved interoperability of distributed biological databases, an increasing number of datasets have been published in the standardized resource description framework. it can also call sparql template libraries constructed in a local system or published on the web.
 toward improved interoperability of distributed biological databases, an increasing number of datasets have been published in the standardized resource description framework. although the powerful sparql protocol and rdf query language provides a basis for exploiting rdf databases, writing sparql code is burdensome for users including bioinformaticians. thus, an easy-to-use interface is necessary.  we developed spang, a sparql client that has unique features for querying rdf datasets. spang dynamically generates typical sparql queries according to specified arguments. it can also call sparql template libraries constructed in a local system or published on the web. further, it enables combinatorial execution of multiple queries, each with a distinct target database. these features facilitate easy and effective access to rdf datasets and integrative analysis of distributed data.  spang helps users to exploit rdf datasets by generation and reuse of sparql queries through a simple interface. this client will enhance integrative exploitation of biological rdf datasets distributed across the web. this software package is freely available at http://purl.org/net/spang. electronic supplementary material the online version of this article contains supplementary material, which is available to authorized users. keywords semantic websparqlrdfdatabase integrationunix commandthe database integration coordination program of the national bioscience database center, japan science technology agencyhttp://biosciencedbc.jp/en/db-link/d04-dblinkuchiyama ikuo the tool prototype for integrated database analysis, the database integration coordination program of the national bioscience database center, japan sciene technology agencyhttp://biosciencedbc.jp/en/tec-dev-prog/rdprog-over/rdprog-over-trial#h26chiba hirokazu issue-copyright-statement© the author 2017 