References
- https://onap.readthedocs.io/en/latest/submodules/aai/aai-common.git/docs/platform/Getting%20Started/Edge_Rules.html
- https://tinkerpop.apache.org/javadocs/3.3.2/core/org/apache/tinkerpop/gremlin/structure/Direction.html
- https://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html#valueOf(java.lang.String)
- Source code: aai/aai-common/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums
- Source code: aai/aai-common/aai-core/src/main/java/org/onap/aai/serialization/db
- https://lists.onap.org/g/onap-discuss/message/11643
Example from documentation
Example | Equivalent Example |
---|---|
How to read SVC-INFRA How to read "SVC-INFRA" in this case: - when running edge-tag-query on ("in" node) traverse to ("out" node) and continue i.e. when running edge-tag-query on "vserver" traverse to "tenant" and continue |
General Applicability
- EdgeRules only apply to "relationship-list" relations in the schema, since the referenced object could be anything
- EdgeRules do no apply to sub-component relations in the schema, since this is implicit and hard-coded behaviour
Field | Values | Notes |
---|---|---|
from | (literal string as entered in EdgeRule file) | Note that the "from|to" pair is normalised in the code according to alphabetical order, so that "cousin pairs" with the "to|from" ordering in the EdgeRule are also grouped together, e.g.
Also note that the hyphens "-" are removed from the names before comparison, so the following would be equivalent:
|
to | (literal string as entered in EdgeRule file) | Note that the "from|to" pair is normalised in the code according to alphabetical order, so that "cousin pairs" with the "to|from" ordering in the EdgeRule are also grouped together, e.g.
Also note that the hyphens "-" are removed from the names before comparison, so the following would be equivalent:
|
label | (literal string as entered in EdgeRule file) | By convention, appears to be one of:
|
direction |
| Based on and extended from https://tinkerpop.apache.org/javadocs/3.3.2/core/org/apache/tinkerpop/gremlin/structure/Direction.html Comparison is case-sensitive |
multiplicity |
| Comparison ignores case |
contains-other-v |
| This is an "edge property" that applies for specific traversal directions. Comparison is case-sensitive Note that "opposite" means:
|
delete-other-v |
| This is an "edge property" that applies for specific traversal directions. Comparison is case-sensitive Note that "opposite" means:
|
SVC-INFRA |
| This is an "edge property" that applies for specific traversal directions. Comparison is case-sensitive Note that "opposite" means:
|
prevent-delete |
| This is an "edge property" that applies for specific traversal directions. Comparison is case-sensitive Note that "opposite" means:
|
default |
| Based on https://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html#valueOf(java.lang.String) Comparison ignores case |
description | (literal string as entered in EdgeRule file) | Optional for backwards compatibility with v12 and earlier (default value is empty string) |
Questions
- Is there a way to find/remove the unused/redundant EdgeRules from the json file?
- Is there any plan to simplify EdgeRules into an unambiguous canonical form (might be easier to read and write correctly)?