App-wdq
view release on metacpan or search on metacpan
my $MODE = !@ARGV ? 'query' : do {
my $arg = $ARGV[0];
$arg =~ s/^\s*|\s*$//g;
if ( $arg =~ /^(query|lookup|p?search)$/ ) {
lc( shift @ARGV );
}
elsif ( $arg =~ $ENTITY_PATTERN or $arg =~ $SITELINK_PATTERN ) {
'lookup';
}
else {
my $guess = () = $arg =~ /[a-z]+:[^\s]/gi;
$guess += () = $arg =~ /<[^>]+>/g;
$guess += () = $arg =~ /[?\$][^\s]/g;
if ( $guess > 2 ) {
warning("ignoring additional command line argument")
if $OPT{query} or @ARGV > 1;
'query';
}
else {
'search';
}
}
};
wget https://github.com/nichtich/wdq/raw/master/script/wdq
chmod +x wdq
The latter method will not install this documentation.
=head1 MODES
Request mode C<query> (default), C<lookup>, C<serch>, or C<psearch> can
explicitly be set via first argument or it's guessed from arguments.
=head2 query
Read SPARQL query from STDIN, option C<--query|-q>, or argument. Namespace
definitions and C<SELECT> clause are added if missing.
wdq '?c wdt:P361 wd:Q544'
wdq '{ ?c wdt:P361 wd:Q544 }' # equivalent
wdq 'SELECT * WHERE { ?c wdt:P361 wd:Q544 }' # equivalent
wdq < queryfile
( run in 0.501 second using v1.01-cache-2.11-cpan-748bfb374f4 )