diff --git a/CHANGELOG.md b/CHANGELOG.md index 67d83d16e7..45f746da69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Update to graphANNIS 4.0.1 that fixes performance issues with `@*` queries and has improved +timeout support for frequency queries (which otherwise could use all the resources of the server). + ## [4.15.0] - 2025-05-22 ### Added diff --git a/docs/user-guide/src/aql/operators.md b/docs/user-guide/src/aql/operators.md index b7a719722f..66aedd7706 100644 --- a/docs/user-guide/src/aql/operators.md +++ b/docs/user-guide/src/aql/operators.md @@ -2,37 +2,37 @@ AQL currently includes the following operators: -| Operator | Description | Illustration | Notes | | -| : -------: | :------------------- | :---------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | -| `.` | direct precedence | ![](../images/A-pred-B.svg) | For non-terminal nodes, precedence is determined by the right-most and left-most terminal children. In corpora with multiple segmentations the layer on which consecutivity holds may be specified with `.layer` | | -| `.*` | indirect precedence | ![](../images/A-pred-ind-B.svg) | For specific sizes of precedence spans, `.n,m` can be used, e.g. `.3,4` - between 3 and 4 token distance; the default maximum distance for `.*` is 50 tokens. As above, segmentation layers may be specified, e.g. `.layer,3,4` | | -| `^` | directly near | ![](../images/A-pred-B.svg) or ![](../images/B-pred-A.svg) | Same as precedence, but in either order. In corpora with multiple segmentations the layer on which consecutivity holds may be specified with `^layer` | | -| `^*` | indirectly near | ![](../images/A-pred-ind-B.svg) or ![](../images/B-pred-ind-A.svg) | Like indirect precedence in either order. The form `^n,m` can be used, e.g. `^3,4` - between 3 and 4 token distance; the default maximum distance for `^*` is 50 tokens. As above, segmentation layers may be specified, e.g. `^layer,3,4` | | -| `>` | direct dominance | ![](../images/A-dom-B.svg) | A specific edge type may be specified, e.g. `>secedge` to find secondary edges. Edge labels are specified in brackets, e.g. `>[func="OA"]` for an edge with the function 'object, accusative' | | -| `>*` | indirect dominance | ![](../images/A-dom-ind-B.svg) | For specific distance of dominance, `>n,m` can be used, e.g. `>3,4` - dominates with 3 to 4 edges distance | | -| `@*` | part of sub-corpus | | Left attribute is part of a sub-corpus having the attribute of the right-hand side. For specific distance range in the sub-corpus hierarchy, `@n,m` can be used. | | -| `_=_` | identical coverage | ![](../images/A-cov-ident-B.svg) | Applies when two annotations cover the exact same span of tokens | | -| `_i_` | inclusion | ![](../images/A-cov-incl-B.svg) | Applies when one annotation covers a span identical to or larger than another | | -| `_o_` | overlap | ![](../images/A-cov-over-B.svg) | | | -| `_l_` | left aligned | ![](../images/A-cov-left-B.svg) | Both elements span an area beginning with the same token | | -| `_r_` | right aligned | ![](../images/A-cov-right-B.svg) | Both elements span an area ending with the same token | | -| `==` | value identity | **A = B** | The value of the annotation or token A is identical to that of B (this operator does not bind, i.e. the nodes must be connected by some other criteria too) | | -| `!=` | value difference | **A ≠ B** | The value of the annotation or token A is different from B (this operator does not bind, i.e. the nodes must be connected by some other criteria too) | | -| `->LABEL` | labeled pointing relation | ![](../images/A-point-direct-B.svg) | A labeled, directed relationship between two elements. Annotations can be specified with `->LABEL[annotation="VALUE"]` | | -| `->LABEL *` | indirect pointing relation | ![](../images/A-point-ind-B.svg) | An indirect labeled relationship between two elements. The length of the chain may be specified with `->LABEL n,m` for relation chains of length n to m | | -| `#x:arity=n` | arity | ![](../images/A-arity.svg) | Specifies the amount of directly dominated children that the searched node has | | -| `_ident_` | node identity | | True for two attributes that belong to the same node | | +| Operator | Description | Illustration | Notes | +| :----------- | -------------------------: | :----------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `.` | direct precedence | ![](../images/A-pred-B.svg) | For non-terminal nodes, precedence is determined by the right-most and left-most terminal children. In corpora with multiple segmentations the layer on which consecutivity holds may be specified with `.layer` | +| `.*` | indirect precedence | ![](../images/A-pred-ind-B.svg) | For specific sizes of precedence spans, `.n,m` can be used, e.g. `.3,4` - between 3 and 4 token distance; the default maximum distance for `.*` is 50 tokens. As above, segmentation layers may be specified, e.g. `.layer,3,4` | +| `^` | directly near | ![](../images/A-pred-B.svg) or ![](../images/B-pred-A.svg) | Same as precedence, but in either order. In corpora with multiple segmentations the layer on which consecutivity holds may be specified with `^layer` | +| `^*` | indirectly near | ![](../images/A-pred-ind-B.svg) or ![](../images/B-pred-ind-A.svg) | Like indirect precedence in either order. The form `^n,m` can be used, e.g. `^3,4` - between 3 and 4 token distance; the default maximum distance for `^*` is 50 tokens. As above, segmentation layers may be specified, e.g. `^layer,3,4` | +| `>` | direct dominance | ![](../images/A-dom-B.svg) | A specific edge type may be specified, e.g. `>secedge` to find secondary edges. Edge labels are specified in brackets, e.g. `>[func="OA"]` for an edge with the function 'object, accusative' | +| `>*` | indirect dominance | ![](../images/A-dom-ind-B.svg) | For specific distance of dominance, `>n,m` can be used, e.g. `>3,4` - dominates with 3 to 4 edges distance | +| `@*` | part of sub-corpus | | Left attribute is part of a sub-corpus having the attribute of the right-hand side. For specific distance range in the sub-corpus hierarchy, `@n,m` can be used. | +| `_=_` | identical coverage | ![](../images/A-cov-ident-B.svg) | Applies when two annotations cover the exact same span of tokens | +| `_i_` | inclusion | ![](../images/A-cov-incl-B.svg) | Applies when one annotation covers a span identical to or larger than another | +| `_o_` | overlap | ![](../images/A-cov-over-B.svg) | | +| `_l_` | left aligned | ![](../images/A-cov-left-B.svg) | Both elements span an area beginning with the same token | +| `_r_` | right aligned | ![](../images/A-cov-right-B.svg) | Both elements span an area ending with the same token | +| `==` | value identity | **A = B** | The value of the annotation or token A is identical to that of B (this operator does not bind, i.e. the nodes must be connected by some other criteria too) | +| `!=` | value difference | **A ≠ B** | The value of the annotation or token A is different from B (this operator does not bind, i.e. the nodes must be connected by some other criteria too) | +| `->LABEL` | labeled pointing relation | ![](../images/A-point-direct-B.svg) | A labeled, directed relationship between two elements. Annotations can be specified with `->LABEL[annotation="VALUE"]` | +| `->LABEL *` | indirect pointing relation | ![](../images/A-point-ind-B.svg) | An indirect labeled relationship between two elements. The length of the chain may be specified with `->LABEL n,m` for relation chains of length n to m | +| `#x:arity=n` | arity | ![](../images/A-arity.svg) | Specifies the amount of directly dominated children that the searched node has | +| `_ident_` | node identity | | True for two attributes that belong to the same node | -## Unsupported operators +## Unsupported operators The following operators have been available in the legacy version ANNIS3, but are not yet implemented in the newest ANNIS version. -| Operator | Description | Illustration | Notes | -| : -------: | :------------------- | :---------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `_ol_` and `_or_`| Overlap, but only on the left or right side | | | -| `>@l` | left-most child | ![](../images/A-left-B.svg) | | -| `>@r` | right-most child | ![](../images/A-right-B.svg) | | -| `$` | common parent node | ![](../images/A-parent-B.svg) | | -| `$*` | common ancestor node | ![](../images/A-ancestor-B.svg) | | -| `#x:tokenarity=n` | tokenarity | ![](../images/A-tokenarity.svg) | Specifies the length of the span of tokens covered by the node | -| `#x:root` | root | ![](../images/A-root.svg) | Specifies that the node is not dominated by any other node within its namespace **s** | \ No newline at end of file +| Operator | Description | Illustration | Notes | +| :---------------: | :------------------------------------------ | :-----------------------------: | :------------------------------------------------------------------------------------ | +| `_ol_` and `_or_` | Overlap, but only on the left or right side | | | +| `>@l` | left-most child | ![](../images/A-left-B.svg) | | +| `>@r` | right-most child | ![](../images/A-right-B.svg) | | +| `$` | common parent node | ![](../images/A-parent-B.svg) | | +| `$*` | common ancestor node | ![](../images/A-ancestor-B.svg) | | +| `#x:tokenarity=n` | tokenarity | ![](../images/A-tokenarity.svg) | Specifies the length of the span of tokens covered by the node | +| `#x:root` | root | ![](../images/A-root.svg) | Specifies that the node is not dominated by any other node within its namespace **s** | diff --git a/pom.xml b/pom.xml index 0253033dd8..e46a9a3b31 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ 8.14.3 true org.corpus_tools.annis.gui.AnnisUiApplication - 3.8.1 + 4.0.1 4.7.2 server 1.5.24 @@ -261,7 +261,7 @@ https://github.com/korpling/graphANNIS/releases/download/v${graphannis.version}/graphannis-webservice-x86_64-unknown-linux-gnu.tar.xz ${project.build.directory}/native/ - e8e27646d9a0f8b9a60ca52e574f524695d153e3c9b1addd050841b16fd78aef + bbd0a6456f24c1b6594e569267302f54a142775b86ff63d2d9e4ea3b12f835de true @@ -276,7 +276,7 @@ https://github.com/korpling/graphANNIS/releases/download/v${graphannis.version}/graphannis-webservice-x86_64-pc-windows-msvc.zip ${project.build.directory}/native/win32-x86-64/ - e6c6e3131d7a644f11c1ef39e1507e87f04800ec9ef4c3bad784526c16fabdfa + 3d553737863c3dabf9fc80cbdec3aa3b909b42616ca75baa93547b24e79672df true @@ -291,7 +291,7 @@ https://github.com/korpling/graphANNIS/releases/download/v${graphannis.version}/graphannis-webservice-aarch64-apple-darwin.tar.xz ${project.build.directory}/native/ - 77357117a813fd4a19e255520f083d40584f14dc443bdee5350ec2090ee45ebc + 9c7a7bb65b3467a77330fa04856bc1169213b0c34584db6bd52ef9bc4f12d990 true @@ -306,7 +306,7 @@ https://github.com/korpling/graphANNIS/releases/download/v${graphannis.version}/graphannis-webservice-x86_64-apple-darwin.tar.xz ${project.build.directory}/native/ - 9e63429d031b2d3ff1ecc0a901f0748a6540ea0964c6b34d768f9f6bd4383489 + 659258a57a8c175910e1c3120211e732d5909a1e1cd57e822289c0535be20d9f true diff --git a/src/main/webapp/VAADIN/help/404.html b/src/main/webapp/VAADIN/help/404.html index baaa433fdd..fc5fb0d917 100644 --- a/src/main/webapp/VAADIN/help/404.html +++ b/src/main/webapp/VAADIN/help/404.html @@ -1,5 +1,5 @@ - + @@ -8,10 +8,10 @@ - + - + @@ -25,26 +25,41 @@ - - - + + + + + + + + +
+
+

Keyboard shortcuts

+
+

Press or to navigate between chapters

+

Press S or / to search in the book

+

Press ? to show this help

+

Press Esc to hide this help

+
+
+
- - - + + - - -
- +