[jira] [Closed] (JENA-1300) Using alternative path in Fuseki runs forever

2017-11-24 Thread Andy Seaborne (JIRA)

 [ 
https://issues.apache.org/jira/browse/JENA-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Seaborne closed JENA-1300.
---
Resolution: Cannot Reproduce
  Assignee: Andy Seaborne

> Using alternative path in Fuseki runs forever
> -
>
> Key: JENA-1300
> URL: https://issues.apache.org/jira/browse/JENA-1300
> Project: Apache Jena
>  Issue Type: Bug
>  Components: Fuseki, TDB
>Reporter: Natan Cox
>Assignee: Andy Seaborne
>
> When doing a query with alternative paths like in this example 'isOwnedBy' 
> and 'exploitatie' then Fuseki seems to run forever.
> If I remove on of the 2 the response is immediate.
> {code:none}
> PREFIX rdfs: 
> PREFIX protontop: 
> PREFIX milieu: 
> SELECT (count(*) as ?total)
> WHERE {
>   GRAPH  {
> ?x protontop:isOwnedBy|milieu:exploitatie ?site. 
> ?site rdfs:label ?label.
>   }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] jena issue #315: Add --stop-warnings to riot (JENA-1434)

2017-11-24 Thread rvesse
Github user rvesse commented on the issue:

https://github.com/apache/jena/pull/315
  
Reworked based on @afs's feedback in the JIRA


---


[jira] [Commented] (JENA-1434) Allow warnings to be treated as errors by RIOT

2017-11-24 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/JENA-1434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16265160#comment-16265160
 ] 

ASF GitHub Bot commented on JENA-1434:
--

Github user rvesse commented on the issue:

https://github.com/apache/jena/pull/315
  
Reworked based on @afs's feedback in the JIRA


> Allow warnings to be treated as errors by RIOT
> --
>
> Key: JENA-1434
> URL: https://issues.apache.org/jira/browse/JENA-1434
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: RIOT
>Affects Versions: Jena 3.5.0
>Reporter: Ian Dickinson
>Assignee: Rob Vesse
>
> I would like to use `riot --validate` as part of an integration test for a 
> system that generates Turtle. Ideally, the exit status for the riot command 
> would be non-zero, indicating a problem, if the input was not valid. However, 
> I see an exit status of zero always:
> {noformat}
> $ riot --validate alert.ttl && echo 'exit status is: ' $?
> 13:50:37 WARN  riot :: [line: 39, col: 25] Lexical form 
> '2017-03-19T00:00:00+00:00' not valid for datatype XSD date
> 13:50:37 WARN  riot :: [line: 42, col: 20] Lexical form '' 
> not valid for datatype XSD date
> 13:50:37 WARN  riot :: [line: 58, col: 20] Lexical form '' 
> not valid for datatype XSD date
> exit status is:  0
> {noformat}
> Version info:
> {noformat}
> $ riot --version
> Jena:   VERSION: 3.5.0
> Jena:   BUILD_DATE: 2017-10-30T09:20:28+
> RIOT:   VERSION: 3.5.0
> RIOT:   BUILD_DATE: 2017-10-30T09:20:28+
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (JENA-1435) Provide extensibility of Fuseki with new services.

2017-11-24 Thread Andy Seaborne (JIRA)
Andy Seaborne created JENA-1435:
---

 Summary: Provide extensibility of Fuseki with new services.
 Key: JENA-1435
 URL: https://issues.apache.org/jira/browse/JENA-1435
 Project: Apache Jena
  Issue Type: Improvement
  Components: Fuseki
Affects Versions: Jena 3.5.0
Reporter: Andy Seaborne
Assignee: Andy Seaborne


This ticket is to provide a mechanism so that application code can add custom 
operations.

The built-in set includes the operations usually in {{/dataset/sparql}}, 
{{/dataset/update}} etc. as configured by {{fuseki:service*}}. These are also 
available as requests on the dataset directly as {{/dataset}}. For query, 
either parameter {{?query=}} or a content type {{application/sparql-query}}.

Example extensions: 
* An RDF Patch processor
* Upload and convert non-RDF formats
* Extract custom output formats
* Filtering requests before passing onto the general operation

This extension point would support:

* dispatch by operation name
* dispatch by Content-Type

Dispatch by HTTP parameters will be designed for but not enabled.

See also JENA-1400  (extensible operation names).




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (JENA-1435) Provide extensibility of Fuseki with new services.

2017-11-24 Thread Andy Seaborne (JIRA)

[ 
https://issues.apache.org/jira/browse/JENA-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16265266#comment-16265266
 ] 

Andy Seaborne commented on JENA-1435:
-

At least initially, this extensibility is only supported for the programmatic 
Fuseki server and have a programmatic configuration API. (No classpath 
problems.)




> Provide extensibility of Fuseki with new services.
> --
>
> Key: JENA-1435
> URL: https://issues.apache.org/jira/browse/JENA-1435
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: Fuseki
>Affects Versions: Jena 3.5.0
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>
> This ticket is to provide a mechanism so that application code can add custom 
> operations.
> The built-in set includes the operations usually in {{/dataset/sparql}}, 
> {{/dataset/update}} etc. as configured by {{fuseki:service*}}. These are also 
> available as requests on the dataset directly as {{/dataset}}. For query, 
> either parameter {{?query=}} or a content type {{application/sparql-query}}.
> Example extensions: 
> * An RDF Patch processor
> * Upload and convert non-RDF formats
> * Extract custom output formats
> * Filtering requests before passing onto the general operation
> This extension point would support:
> * dispatch by operation name
> * dispatch by Content-Type
> Dispatch by HTTP parameters will be designed for but not enabled.
> See also JENA-1400  (extensible operation names).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (JENA-1436) RDFConnection does not implement Closable interface

2017-11-24 Thread Claude Warren (JIRA)
Claude Warren created JENA-1436:
---

 Summary: RDFConnection does not implement Closable interface
 Key: JENA-1436
 URL: https://issues.apache.org/jira/browse/JENA-1436
 Project: Apache Jena
  Issue Type: Improvement
  Components: Jena
Affects Versions: Jena 3.5.0
Reporter: Claude Warren
Priority: Minor


RDFConnection implements the java.lang.AutoClosable interface but not the 
java.io.Closable interface.  As such the apache IOUtils.closeQuietly() does not 
work with an RDFConnection object.  I think that RDFConnection meets the 
requirements for Closable namely

A  Closable is a source or destination of data that can be closed.
The close method is invoked to release resources that the object is
 holding (such as open files).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (JENA-1437) text:multilingualSupport true vs false inconsistent results

2017-11-24 Thread Code Ferret (JIRA)
Code Ferret created JENA-1437:
-

 Summary: text:multilingualSupport true vs false inconsistent 
results
 Key: JENA-1437
 URL: https://issues.apache.org/jira/browse/JENA-1437
 Project: Apache Jena
  Issue Type: Bug
  Components: Jena
Affects Versions: Jena 3.5.0
 Environment: N/A
Reporter: Code Ferret
Priority: Minor


If {{text:multilingualSupport false}} then

{{?s text:query ("some string" "lang:lang-code")}}

may be expected to return matches for the {{text:defaultField}} restricted to 
the given {{lang-code}}.

However, if {{text:multilingualSupport true}} then the same query always 
returns zero results owing to an improper rewriting of the query string with a 
field spec of:

{{"null_lang-code:some string"}}.

OTOH, explicit mention of the {{text:predicate}} corresponding to the 
{{text:defaultField}}, e.g., {{rdfs:label}}, yields the expected results:

{{?s text:query (rdfs:label "some string" "lang:lang-code")}}

Should be fixed with a proper rewriting of the _query-string_ to:

{{"text:defaultField_lang-code:some string"}}




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (JENA-1438) rdf:langString argument to text:query silently ignored

2017-11-24 Thread Code Ferret (JIRA)
Code Ferret created JENA-1438:
-

 Summary: rdf:langString argument to text:query silently ignored
 Key: JENA-1438
 URL: https://issues.apache.org/jira/browse/JENA-1438
 Project: Apache Jena
  Issue Type: Bug
  Components: Jena
Affects Versions: Jena 3.5.0
 Environment: N/A
Reporter: Code Ferret
Priority: Minor


Queries of the form:

{{?s text:query "some string"@lang-code}}

return no results even when there are matches found by the _equivalent_:

{{?s text:query ("some string" "lang:lang-code")}}
{quote}
Note the above _equivalent_ form is currently valid only if 

{{text:multilingualSupport false}}.
{quote} See [JENA-1437|https://issues.apache.org/jira/browse/JENA-1437]

A reasonable fix is to recognize the {{rdf:langString}} case and treat it as 
the _equivalent_ form referring to the {{text:defautlField}}; otherwise, at 
least an error should be indicated.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (JENA-1436) RDFConnection does not implement Closable interface

2017-11-24 Thread Andy Seaborne (JIRA)

[ 
https://issues.apache.org/jira/browse/JENA-1436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16265435#comment-16265435
 ] 

Andy Seaborne commented on JENA-1436:
-

{{IOUtil.closeQuietly}} says:
{noformat}
 * @deprecated As of 2.6 removed without replacement. Please use the 
try-with-resources statement or handle
 * suppressed exceptions manually.
 * @see Throwable#addSuppressed(java.lang.Throwable)
 */
@Deprecated
public static void closeQuietly(final Closeable closeable) {
{noformat}
which shows the migration to try-with-resources which RDFConnection supports.  

{{java.io.Closeable}} is specific to IO streams. The {{close}} operation for 
{{java.io.Closeable}} says: "Closes this stream" and RDFConnection is not a 
stream. The interface declares {{throws IOException}}, which is not appropriate.

So I don't think {{RDFConnection}} should have {{java.io.Closeable}}.


> RDFConnection does not implement Closable interface
> ---
>
> Key: JENA-1436
> URL: https://issues.apache.org/jira/browse/JENA-1436
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: Jena
>Affects Versions: Jena 3.5.0
>Reporter: Claude Warren
>Priority: Minor
>
> RDFConnection implements the java.lang.AutoClosable interface but not the 
> java.io.Closable interface.  As such the apache IOUtils.closeQuietly() does 
> not work with an RDFConnection object.  I think that RDFConnection meets the 
> requirements for Closable namely
> A  Closable is a source or destination of data that can be closed.
> The close method is invoked to release resources that the object is
>  holding (such as open files).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (JENA-1435) Provide extensibility of Fuseki with new services.

2017-11-24 Thread A. Soroka (JIRA)

[ 
https://issues.apache.org/jira/browse/JENA-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16265447#comment-16265447
 ] 

A. Soroka commented on JENA-1435:
-

Andy, how are you thinking of this working? {{ServiceLoader}}? Some kind of 
{{static}} registry?

> Provide extensibility of Fuseki with new services.
> --
>
> Key: JENA-1435
> URL: https://issues.apache.org/jira/browse/JENA-1435
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: Fuseki
>Affects Versions: Jena 3.5.0
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>
> This ticket is to provide a mechanism so that application code can add custom 
> operations.
> The built-in set includes the operations usually in {{/dataset/sparql}}, 
> {{/dataset/update}} etc. as configured by {{fuseki:service*}}. These are also 
> available as requests on the dataset directly as {{/dataset}}. For query, 
> either parameter {{?query=}} or a content type {{application/sparql-query}}.
> Example extensions: 
> * An RDF Patch processor
> * Upload and convert non-RDF formats
> * Extract custom output formats
> * Filtering requests before passing onto the general operation
> This extension point would support:
> * dispatch by operation name
> * dispatch by Content-Type
> Dispatch by HTTP parameters will be designed for but not enabled.
> See also JENA-1400  (extensible operation names).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (JENA-1435) Provide extensibility of Fuseki with new services.

2017-11-24 Thread Andy Seaborne (JIRA)

[ 
https://issues.apache.org/jira/browse/JENA-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16265454#comment-16265454
 ] 

Andy Seaborne commented on JENA-1435:
-

It will be a per-server registry (to cover the case of >1 embedded fuseki in 
one process). The API for this is the area I need to finish up; currently, the 
prototype dives into Fuseki internals.

May be {{ServiceLoader}} eventually but for now it is complicated enough. For 
embedded Fuseki, the dependency relationship is inverted - the application 
depends on Fuseki so no need for {{ServiceLoader}} to provide runtime binding. 
APi calls to register new servlets will work.

{{ServiceLoader}} does not solve the classpath problems for a combined jar 
({{java -jar}}) or a WAR file. It just means no need for "loadClass" in 
assemblers. What we get asked about is related to the repacking of jars.


> Provide extensibility of Fuseki with new services.
> --
>
> Key: JENA-1435
> URL: https://issues.apache.org/jira/browse/JENA-1435
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: Fuseki
>Affects Versions: Jena 3.5.0
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>
> This ticket is to provide a mechanism so that application code can add custom 
> operations.
> The built-in set includes the operations usually in {{/dataset/sparql}}, 
> {{/dataset/update}} etc. as configured by {{fuseki:service*}}. These are also 
> available as requests on the dataset directly as {{/dataset}}. For query, 
> either parameter {{?query=}} or a content type {{application/sparql-query}}.
> Example extensions: 
> * An RDF Patch processor
> * Upload and convert non-RDF formats
> * Extract custom output formats
> * Filtering requests before passing onto the general operation
> This extension point would support:
> * dispatch by operation name
> * dispatch by Content-Type
> Dispatch by HTTP parameters will be designed for but not enabled.
> See also JENA-1400  (extensible operation names).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (JENA-1435) Provide extensibility of Fuseki with new services.

2017-11-24 Thread A. Soroka (JIRA)

[ 
https://issues.apache.org/jira/browse/JENA-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16265457#comment-16265457
 ] 

A. Soroka commented on JENA-1435:
-

So how does the servlet for extension X actually get registered? Somehow the 
extension code makes a call into Fuseki?

> Provide extensibility of Fuseki with new services.
> --
>
> Key: JENA-1435
> URL: https://issues.apache.org/jira/browse/JENA-1435
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: Fuseki
>Affects Versions: Jena 3.5.0
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>
> This ticket is to provide a mechanism so that application code can add custom 
> operations.
> The built-in set includes the operations usually in {{/dataset/sparql}}, 
> {{/dataset/update}} etc. as configured by {{fuseki:service*}}. These are also 
> available as requests on the dataset directly as {{/dataset}}. For query, 
> either parameter {{?query=}} or a content type {{application/sparql-query}}.
> Example extensions: 
> * An RDF Patch processor
> * Upload and convert non-RDF formats
> * Extract custom output formats
> * Filtering requests before passing onto the general operation
> This extension point would support:
> * dispatch by operation name
> * dispatch by Content-Type
> Dispatch by HTTP parameters will be designed for but not enabled.
> See also JENA-1400  (extensible operation names).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (JENA-1435) Provide extensibility of Fuseki with new services.

2017-11-24 Thread Andy Seaborne (JIRA)

[ 
https://issues.apache.org/jira/browse/JENA-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16265468#comment-16265468
 ] 

Andy Seaborne commented on JENA-1435:
-

The servlet doesn't.  It is (or will be) calls to the {{FusekiServer}} object.

Hopefully, the PR will be soon.

> Provide extensibility of Fuseki with new services.
> --
>
> Key: JENA-1435
> URL: https://issues.apache.org/jira/browse/JENA-1435
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: Fuseki
>Affects Versions: Jena 3.5.0
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>
> This ticket is to provide a mechanism so that application code can add custom 
> operations.
> The built-in set includes the operations usually in {{/dataset/sparql}}, 
> {{/dataset/update}} etc. as configured by {{fuseki:service*}}. These are also 
> available as requests on the dataset directly as {{/dataset}}. For query, 
> either parameter {{?query=}} or a content type {{application/sparql-query}}.
> Example extensions: 
> * An RDF Patch processor
> * Upload and convert non-RDF formats
> * Extract custom output formats
> * Filtering requests before passing onto the general operation
> This extension point would support:
> * dispatch by operation name
> * dispatch by Content-Type
> Dispatch by HTTP parameters will be designed for but not enabled.
> See also JENA-1400  (extensible operation names).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (JENA-1435) Provide extensibility of Fuseki with new services.

2017-11-24 Thread A. Soroka (JIRA)

[ 
https://issues.apache.org/jira/browse/JENA-1435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16265470#comment-16265470
 ] 

A. Soroka commented on JENA-1435:
-

Yeah, I'm trying to understand who/what makes those calls-- but I'll just wait 
for the PR.

> Provide extensibility of Fuseki with new services.
> --
>
> Key: JENA-1435
> URL: https://issues.apache.org/jira/browse/JENA-1435
> Project: Apache Jena
>  Issue Type: Improvement
>  Components: Fuseki
>Affects Versions: Jena 3.5.0
>Reporter: Andy Seaborne
>Assignee: Andy Seaborne
>
> This ticket is to provide a mechanism so that application code can add custom 
> operations.
> The built-in set includes the operations usually in {{/dataset/sparql}}, 
> {{/dataset/update}} etc. as configured by {{fuseki:service*}}. These are also 
> available as requests on the dataset directly as {{/dataset}}. For query, 
> either parameter {{?query=}} or a content type {{application/sparql-query}}.
> Example extensions: 
> * An RDF Patch processor
> * Upload and convert non-RDF formats
> * Extract custom output formats
> * Filtering requests before passing onto the general operation
> This extension point would support:
> * dispatch by operation name
> * dispatch by Content-Type
> Dispatch by HTTP parameters will be designed for but not enabled.
> See also JENA-1400  (extensible operation names).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


CMS diff: Jena Full Text Search

2017-11-24 Thread Chris Tomlinson
Clone URL (Committers only):
https://cms.apache.org/redirect?new=anonymous;action=diff;uri=http://jena.apache.org/documentation%2Fquery%2Ftext-query.mdtext

Chris Tomlinson

Index: trunk/content/documentation/query/text-query.mdtext
===
--- trunk/content/documentation/query/text-query.mdtext (revision 1816205)
+++ trunk/content/documentation/query/text-query.mdtext (working copy)
@@ -1,5 +1,7 @@
 Title: Jena Full Text Search
 
+Title: Jena Full Text Search
+
 This extension to ARQ combines SPARQL and full text search via
 [Lucene](https://lucene.apache.org) 6.4.1 or
 [ElasticSearch](https://www.elastic.co) 5.2.1 (which is built on
@@ -64,7 +66,20 @@
 ## Table of Contents
 
 -   [Architecture](#architecture)
+-   [External content](#external-content)
+-   [External applications](#external-applications)
+-   [Document structure](#document-structure)
 -   [Query with SPARQL](#query-with-sparql)
+-   [Syntax](#syntax)
+-   [Input arguments](#input-arguments)
+-   [Output arguments](#output-arguments)
+-   [Query strings](#query-strings)
+-   [Simple queries](#simple-queries)
+-   [Queries with language tags](#queries-with-language-tags)
+-   [Queries that retrieve literals](#queries-that-retrieve-literals)
+-   [Queries across multiple `Field`s](#queries-across-multiple-fields)
+-   [Queries with _Boolean Operators_ and _Term 
Modifiers_](#queries-with-boolean-operators-and-term-modifiers)
+-   [Good practice](#good-practice)
 -   [Configuration](#configuration)
 -   [Text Dataset Assembler](#text-dataset-assembler)
 -   [Configuring an analyzer](#configuring-an-analyzer)
@@ -108,6 +123,7 @@
 
 The text index uses the native query language of the index:
 [Lucene query 
language](http://lucene.apache.org/core/6_4_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description)
+(with [restrictions](#input-arguments))
 or
 [Elasticsearch query 
language](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/query-dsl.html).
 
@@ -134,6 +150,64 @@
 By using Elasticsearch, other applications can share the text index with
 SPARQL search.
 
+### Document structure
+
+As mentioned above, text indexing of a triple involves associating a Lucene
+document with the triple. How is this done?
+
+Lucene documents are composed of `Field`s. Indexing and searching are 
performed 
+over the contents of these `Field`s. For an RDF triple to be indexed in Lucene 
the 
+_property_ of the triple must be 
+[configured in the entity map of a TextIndex](#entity-map-definition).
+This associates a Lucene analyzer with the _`property`_ which will be used
+for indexing and search. The _`property`_ becomes the _searchable_ Lucene 
+`Field` in the resulting document.
+
+A Lucene index includes a _default_ `Field`, which is specified in the 
configuration, 
+that is the field to search if not otherwise named in the query. In jena-text 
+this field is configured via the `text:defaultField` property which is then 
mapped 
+to a specific RDF property via `text:predicate` (see [entity 
map](#entity-map-definition) 
+below).
+
+There are several additional `Field`s that will be included in the
+document that is passed to the Lucene `IndexWriter` depending on the
+configuration options that are used. These additional fields are used to
+manage the interface between Jena and Lucene and are not generally 
+searchable per se.
+
+The most important of these additional `Field`s is the `text:entityField`.
+This configuration property defines the name of the `Field` that will contain
+the _URI_ or _blank node id_ of the _subject_ of the triple being indexed. 
This property does
+not have a default and must be specified for most uses of `jena-text`. This
+`Field` is often given the name, `uri`, in examples. It is via this `Field`
+that `?s` is bound in a typical use such as:
+
+select ?s
+where {
+?s text:query "some text"
+}
+
+Other `Field`s that may be configured: `text:uidField`, `text:graphField`,
+and so on are discussed below.
+
+Given the triple:
+
+ex:SomeOne skos:prefLabel "zorn protégé a prés"@fr ;
+
+The following is an abbreviated illustration a Lucene document that Jena will 
create and
+request Lucene to index:
+
+Document<
+http://example.org/SomeOne> 
+ 
+ 
+ 
+ 
+>
+
+It may be instructive to refer back to this example when considering the 
various
+points below.
+
 ## Query with SPARQL
 
 The URI of the text extension property function is
@@ -143,63 +217,233 @@
 
 ...   text:query ...
 
+### Syntax
 
 The following forms are all legal:
 
-?s text:query 'word'   # query
-?s text:query (rdfs:label 'word')  # query specific property if 
multiple
-?s text:query ('word' 10)  # with limit on results
-(?s ?score) text:query 'word'