<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
  <head><title>SPARQLer</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="stylesheet" type="text/css" href="fuseki.css" />
  </head>

  <body>
    <h1>SPARQLer - General purpose processor</h1>

    <div class="moreindent">

      <form action="sparql" method="get">
        <p>General SPARQL query : input query, set any options and press "Get Results"</p>
        <p>
          <textarea name="query" cols="70" rows="20"></textarea>
          <br/>
          Target graph URI (or use <code>FROM</code> in the query)
          <input name="default-graph-uri" size="25" value="" />
          <br/>

          Output: <select name="output">
            <option value="json">JSON</option>
            <option value="xml">XML</option>
            <option value="text">Text</option>
            <option value="csv">CSV</option>
            <option value="tsv">TSV</option>
          </select>
          <br/>
          If XML output, XSLT style sheet (blank for none): 
          <select name="stylesheet">
            <option value=""></option>
            <option value="/xml-to-html.xsl">xml-to-html</option>
            <option value="/xml-to-html-links.xsl">xml-to-html-links</option>
            <option value="/xml-to-html-plain.xsl">xml-to-html-plain</option>
          </select>
          <br/>
          <input type="checkbox" name="force-accept" value="text/plain"/>
          Force the accept header to <tt>text/plain</tt> regardless 
          <br/>
          <input type="submit" value="Get Results" />
        </p>
      </form>
    </div>

    <hr/>

  </body>
</html>
