diff --git a/cypher/mdb-indexes.4.4.cypher b/cypher/mdb-indexes.4.4.cypher index 2a29702..82f4789 100644 --- a/cypher/mdb-indexes.4.4.cypher +++ b/cypher/mdb-indexes.4.4.cypher @@ -12,8 +12,8 @@ create fulltext index termValueDefn for (t:term) on each [t.value, t.origin_defi create fulltext index tagKeyValue for (g:tag) on each [g.key, g.value]; -create fulltext index nodeHandle on (n:node) on each [n.handle]; -create fulltext index edgeHandle on (n:relationship) on each [n.handle]; -create fulltext index propHandle on (n:property) on each [n.handle]; +create fulltext index nodeHandle for (n:node) on each [n.handle]; +create fulltext index edgeHandle for (n:relationship) on each [n.handle]; +create fulltext index propHandle for (n:property) on each [n.handle]; diff --git a/docs/_modules/bento_meta/mdb/mdb.html b/docs/_modules/bento_meta/mdb/mdb.html index 2997f7a..23036e3 100644 --- a/docs/_modules/bento_meta/mdb/mdb.html +++ b/docs/_modules/bento_meta/mdb/mdb.html @@ -323,8 +323,8 @@

Source code for bento_meta.mdb.mdb

         qry = (
             "match (t:term {nanoid:$nanoid}) "
             "where not exists(t._to) "
-            "with t "
-            "optional match (t)-[:has_origin]->(o:origin) "
+            "with t, t.origin_name as origin_name "
+            "optional match (o:origin {name: origin_name}) "
             "where not exists(o._to) "
             "return t as term, o as origin "
             )
diff --git a/docs/_modules/bento_meta/object_map.html b/docs/_modules/bento_meta/object_map.html
index 78c70ad..a375f93 100644
--- a/docs/_modules/bento_meta/object_map.html
+++ b/docs/_modules/bento_meta/object_map.html
@@ -104,7 +104,7 @@ 

Source code for bento_meta.object_map

 # from pdb import set_trace
 
 
-
[docs]class ObjectMap(object): +
[docs]class ObjectMap(object): """This module contains :class:`ObjectMap`, a class which provides the machinery for mapping bento_meta objects to a Bento Metamodel Database in Neo4j. Mostly not for human consumption.""" @@ -123,11 +123,11 @@

Source code for bento_meta.object_map

                 )
         self.maps = {}
 
-
[docs] @classmethod +
[docs] @classmethod def clear_cache(cls): cls.cache = {}
-
[docs] @classmethod +
[docs] @classmethod def cls_by_label(cls, lbl): if not hasattr(cls, "_clsxlbl"): cls._clsxlbl = {} @@ -135,7 +135,7 @@

Source code for bento_meta.object_map

                 cls._clsxlbl[o.mapspec()["label"]] = o
         return cls._clsxlbl.get(lbl)
-
[docs] @classmethod +
[docs] @classmethod def keys_by_cls_and_reln(cls, qcls, reln): if not hasattr(cls, "_keysxcls"): cls._keysxcls = {} @@ -150,7 +150,7 @@

Source code for bento_meta.object_map

                     cls._keysxcls[(o.__name__, r)] = (catt, o.mapspec()["key"])
         return cls._keysxcls.get((qcls.__name__, reln))
-
[docs] @classmethod +
[docs] @classmethod def _quote_val(cls, value, single=None): # double quote unless single is set if value is None: return @@ -162,7 +162,7 @@

Source code for bento_meta.object_map

             else:
                 return '"{val}"'.format(val=value)  # quote
-
[docs] def get_by_id(self, obj, id, refresh=False): +
[docs] def get_by_id(self, obj, id, refresh=False): """Get an entity given an id attribute value (not the Neo4j id)""" neoid = None @@ -184,7 +184,7 @@

Source code for bento_meta.object_map

         else:
             return
-
[docs] def get_by_node_nanoid(self, obj, nanoid, refresh=False): +
[docs] def get_by_node_nanoid(self, obj, nanoid, refresh=False): """PROTOTYPE Get an entity given an id attribute value (not the Neo4j id) """ @@ -208,7 +208,7 @@

Source code for bento_meta.object_map

         else:
             return
-
[docs] def get(self, obj, refresh=False): +
[docs] def get(self, obj, refresh=False): """Get the data for an object instance from the db and load the instance with it""" if not self.drv: raise ArgError("get() requires Neo4j driver instance") @@ -279,7 +279,7 @@

Source code for bento_meta.object_map

         obj.dirty = 0
         return obj
-
[docs] def put(self, obj): +
[docs] def put(self, obj): """Put the object instance's attributes to the mapped data node in the database""" if not self.drv: raise ArgError("put() requires Neo4j driver instance") @@ -329,7 +329,7 @@

Source code for bento_meta.object_map

         obj.dirty = 0
         return obj
-
[docs] def rm(self, obj, force=False): +
[docs] def rm(self, obj, force=False): """'Delete' the object's mapped node from the database""" if not self.drv: raise ArgError("rm() requires Neo4j driver instance") @@ -343,7 +343,7 @@

Source code for bento_meta.object_map

             else:
                 return s.value()
-
[docs] def add(self, obj, att, tgt): +
[docs] def add(self, obj, att, tgt): """Create a link between an object instance and a target object in the database. This represents adding an object-valued attribute to the object. """ @@ -357,7 +357,7 @@

Source code for bento_meta.object_map

                 warn("add() - corresponding db node not found")
             return tgt_id
-
[docs] def drop(self, obj, att, tgt, tx=None): +
[docs] def drop(self, obj, att, tgt, tx=None): """Remove an existing link between an object instance and a target object in the database. This represents dropping an object-valued attribute from the object. """ @@ -387,7 +387,7 @@

Source code for bento_meta.object_map

                 else:
                     return s.value()
-
[docs] def get_owners(self, obj): +
[docs] def get_owners(self, obj): """Get the nodes which are linked to the object instance (the owners of the object)""" if not self.drv: raise ArgError("get_owners() requires Neo4j driver instance") @@ -411,7 +411,7 @@

Source code for bento_meta.object_map

                 ret.append((o, keys))
         return ret
-
[docs] def get_q(self, obj): +
[docs] def get_q(self, obj): if not isinstance(obj, self.cls): raise ArgError( "arg1 must be object of class {cls}".format(cls=self.cls.__name__) @@ -422,16 +422,16 @@

Source code for bento_meta.object_map

             lbl=self.cls.mapspec()["label"], neoid=obj.neoid
         )
-
[docs] def get_by_id_q(self): +
[docs] def get_by_id_q(self): return "MATCH (n:{lbl}) WHERE id(n)=$id and n._to IS NULL RETURN id(n)".format( lbl=self.cls.mapspec()["label"] )
-
[docs] def get_by_node_nanoid_q(self): +
[docs] def get_by_node_nanoid_q(self): """PROTOTYPE""" return "MATCH (n:node) WHERE n.nanoid=$nanoid and n._to is NULL RETURN id(n)"
-
[docs] def get_attr_q(self, obj, att): +
[docs] def get_attr_q(self, obj, att): if not isinstance(obj, self.cls): raise ArgError( "arg1 must be object of class {cls}".format(cls=self.cls.__name__) @@ -473,7 +473,7 @@

Source code for bento_meta.object_map

                 )
             )
-
[docs] def get_owners_q(self, obj): +
[docs] def get_owners_q(self, obj): if not isinstance(obj, self.cls): raise ArgError( "arg1 must be object of class {cls}".format(cls=self.cls.__name__) @@ -485,7 +485,7 @@

Source code for bento_meta.object_map

             neoid=obj.neoid, lbl=label
         )
-
[docs] def put_q(self, obj): +
[docs] def put_q(self, obj): if not isinstance(obj, self.cls): raise ArgError( "arg1 must be object of class {cls}".format(cls=self.cls.__name__) @@ -531,7 +531,7 @@

Source code for bento_meta.object_map

                 % (self.cls.mapspec()["label"], spec)
             ]
-
[docs] def put_attr_q(self, obj, att, values): +
[docs] def put_attr_q(self, obj, att, values): if not isinstance(obj, self.cls): raise ArgError( "arg1 must be object of class {cls}".format(cls=self.cls.__name__) @@ -604,7 +604,7 @@

Source code for bento_meta.object_map

                 )
             )
-
[docs] def rm_q(self, obj, detach=False): +
[docs] def rm_q(self, obj, detach=False): if not isinstance(obj, self.cls): raise ArgError( "arg1 must be object of class {cls}".format(cls=self.cls.__name__) @@ -618,7 +618,7 @@

Source code for bento_meta.object_map

         return qry + dlt
         pass
-
[docs] def rm_attr_q(self, obj, att, values=None): +
[docs] def rm_attr_q(self, obj, att, values=None): if not isinstance(obj, self.cls): raise ArgError( "arg1 must be object of class {cls}".format(cls=self.cls.__name__) @@ -693,7 +693,7 @@

Source code for bento_meta.object_map

                 )
             )
-
[docs] def _check_values_list(self, att, values): +
[docs] def _check_values_list(self, att, values): v = values if isinstance(values, CollValue): v = values.values() diff --git a/docs/_sources/mdb-conventions.rst.txt b/docs/_sources/mdb-conventions.rst.txt index d35a258..f07e7e3 100644 --- a/docs/_sources/mdb-conventions.rst.txt +++ b/docs/_sources/mdb-conventions.rst.txt @@ -81,7 +81,7 @@ _______________________________________________ For integration with the STS, and for performance, the Neo4j instance of an MDB requires certain indexes to be established. These are -specified in `these Cypher statements `_. The primary +specified in `these Cypher statements `_. The primary requirement is that fulltext, Lucene-based indexes should be created on entity ``description`` and Term ``origin_definition`` properties to enable "search box" like queries over the the entire graph. Regular @@ -120,7 +120,7 @@ on `Cypher `_.) * *Concept*: For any `(c:concept)` and `(k:concept)` where `(n)--(c)` and `(n)--(k)` return exactly the same graph nodes `[n1, n2, ...]`, one of `c` or `k` should be removed from the database. -* *Tag*: For two tag nodes, all of whose properties except nanoid are identical in key and value, and which are linked to exactly the same graph nodes, one must be removed. +* *Tag*: Any node should have *at most one* Tag node with a given pair of values for `key` and `value` properties. Tags should attach to at most one node; that is, the `()-[:has_tag]->(:tag)` relationship is one-to-many, not many-to-many. Practically, this means that to use Tags to group a set of different nodes with a key-value pair, a separate Tag with that key-value pair should be created and linked to each nodes. * *Nanoid*: Each unique unversioned graph node as defined above must have a unique nanoid. diff --git a/docs/mdb-conventions.html b/docs/mdb-conventions.html index cd1bc2e..c82bf27 100644 --- a/docs/mdb-conventions.html +++ b/docs/mdb-conventions.html @@ -164,7 +164,7 @@

MDB entity properties required for consistency

For integration with the STS, and for performance, the Neo4j instance of an MDB requires certain indexes to be established. These are -specified in these Cypher statements. The primary +specified in these Cypher statements. The primary requirement is that fulltext, Lucene-based indexes should be created on entity description and Term origin_definition properties to enable “search box” like queries over the the entire graph. Regular @@ -200,7 +200,7 @@

Uniqueness and Existence of Entitiesbento_meta.entity", "bento_meta", "bento_meta.mdb", "bento_meta.mdb.loaders", "bento_meta.mdb.mdb", "bento_meta.mdb.mdb_tools", "bento_meta.mdb.mdb_tools.mdb_tools", "bento_meta.mdb.searchable", "bento_meta.mdb.writeable", "bento_meta.model", "bento_meta.object_map", "bento_meta.objects", "bento_meta.util._engine", "bento_meta.util.cypher.clauses", "bento_meta.util.cypher.entities", "bento_meta.util.cypher.functions", "bento_meta.util.cypher", "bento_meta.util", "bento_meta.util.makeq", "API Reference", "Loading an MDB instance", "bento_meta and Metamodel Database (MDB)", "MDB Conventions and Patterns", "Metamodel Database (MDB) Principles", "bento_meta and MDF", "Model Versioning", "Object Map Specifications", "The Object Model"], "terms": {"provid": [0, 10, 21, 22, 23, 24, 26, 27], "an": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 18, 21, 22, 23, 26], "represent": [13, 14, 15, 21, 23, 27], "graph": [0, 9, 14, 21, 23, 24, 26, 27], "base": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 21, 22, 23, 26, 27], "data": [2, 4, 9, 10, 11, 21, 22, 23, 24, 26, 27], "model": [0, 1, 2, 3, 4, 10, 11, 19, 21, 26], "embodi": 21, "structur": [21, 22, 24, 27], "bento": [1, 2, 5, 6, 8, 9, 10, 21, 22, 24], "The": [0, 2, 4, 8, 9, 10, 21, 22, 23, 24, 25, 26], "can": [9, 21, 22, 23, 24, 25, 26, 27], "store": [0, 21, 22, 23, 25, 27], "multipl": [21, 23, 24, 27], "term": [2, 4, 5, 6, 7, 8, 9, 11, 21, 23, 24], "relationship": [2, 4, 5, 6, 7, 11, 14, 21, 22, 23, 24, 26, 27], "link": [5, 6, 9, 10, 11, 21, 22, 23, 26, 27], "entiti": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 16, 17, 19, 21, 24, 27], "accord": [21, 22, 24, 27], "individu": [21, 23, 27], "For": [21, 22, 23, 27], "exampl": [21, 22, 23, 24, 26, 27], "ar": [0, 2, 4, 9, 10, 11, 21, 22, 23, 24, 27], "repres": [2, 4, 5, 6, 8, 10, 11, 13, 17, 21, 22, 23, 26, 27], "type": [0, 5, 6, 9, 11, 14, 21, 23, 24, 26, 27], "appropri": [10, 21, 22, 23, 26], "sourc": [0, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 21, 22, 23, 24, 26, 27], "destin": [21, 24, 26, 27], "class": [21, 23, 26, 27], "creat": [0, 2, 3, 4, 5, 6, 8, 9, 10, 13, 17, 19, 21, 22, 23, 24, 25, 26, 27], "read": [2, 4, 21, 23], "updat": [0, 21, 23], "togeth": 21, "push": [9, 21, 24, 26, 27], "pull": [9, 21, 22, 24, 26, 27], "them": [5, 6, 10, 21, 27], "from": [0, 2, 3, 4, 5, 6, 9, 10, 11, 17, 18, 21, 22, 23, 24, 25, 27], "back": [21, 22, 23, 27], "neo4j": [0, 2, 4, 7, 9, 10, 13, 18, 21, 22, 24, 26, 27], "also": [0, 2, 4, 21, 22, 23, 24, 26, 27], "defin": [0, 14, 21, 22, 23, 24], "maintain": [21, 22], "terminologi": [11, 21, 22, 23, 27], "associ": [2, 4, 8, 9, 10, 21, 22, 23, 24, 26], "These": [21, 22, 23, 26, 27], "includ": [21, 22, 23, 24, 26], "themselv": [10, 21, 22, 23, 27], "origin": [2, 4, 8, 11, 21, 22, 23, 27], "concept": [5, 6, 9, 11, 21, 22, 23, 26, 27], "predic": [5, 6, 11, 21, 23, 27], "each": [2, 4, 5, 6, 10, 21, 22, 23, 24, 26, 27], "us": [0, 2, 4, 5, 6, 9, 11, 21, 22, 23, 24, 26, 27], "run": [2, 4, 8, 21], "pip": [21, 24], "http": [2, 4, 24], "github": [2, 8, 22, 24], "com": [2, 4, 24], "cbiit": 24, "meta": [1, 2, 5, 6, 8, 21], "raw": [], "master": [], "python": [2, 4, 21, 22, 24], "dist": [], "0": [5, 6], "2": [25, 27], "tar": [], "gz": [], "principl": [21, 22], "motiv": 21, "rational": 21, "design": [21, 26], "decis": 21, "mean": [21, 22, 26], "mainten": 22, "convent": [21, 23], "requir": [5, 6, 21, 23, 24, 26, 27], "consist": [3, 21, 23], "index": [2, 7, 21], "need": [5, 6, 9, 21, 23, 27], "addit": [21, 23], "function": [1, 16, 17, 19, 21, 23, 24, 26, 27], "idempot": 21, "work": [9, 21, 22, 23], "compon": [21, 22], "contain": [0, 2, 4, 9, 10, 11, 19, 21, 23, 25, 26], "interfac": 21, "interact": [6, 21, 22, 23, 26], "mdf": [2, 3, 9, 21, 22], "descript": [21, 22, 25], "file": [5, 6, 21, 22], "slurp": 21, "squirt": 21, "yaml": 21, "version": [0, 9, 21, 22, 24, 26], "map": [0, 10, 11, 21, 23, 27], "specif": [0, 10, 11, 21, 22, 23, 27], "api": [2, 4, 17, 21, 23], "refer": [0, 21, 23, 26, 27], "i": [0, 2, 4, 5, 6, 8, 9, 14, 21, 22, 23, 24, 25, 26, 27], "built": [9, 21, 23], "word": [21, 22, 23, 27], "therefor": [21, 23, 26], "differ": [9, 21, 22, 23], "context": [13, 15, 21, 22, 23], "confus": 21, "especi": [21, 22, 23], "sinc": [0, 21, 23], "cancer": 21, "research": 21, "common": [0, 21, 22, 24, 26], "set": [0, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 21, 22, 23, 24, 25, 27], "up": [21, 25], "which": [0, 5, 6, 10, 11, 21, 22, 23, 24, 25, 26, 27], "central": 21, "repositori": [21, 22], "kind": [21, 22, 23, 27], "thi": [0, 2, 3, 4, 5, 6, 9, 10, 11, 19, 21, 22, 23, 24, 25, 26, 27], "relat": [14, 21, 23, 26, 27], "document": [19, 21, 22, 23, 24], "attempt": [0, 21, 27], "distinguish": [21, 22, 23, 27], "follow": [5, 6, 21, 22, 23, 24, 27], "instanc": [0, 2, 3, 4, 7, 9, 10, 11, 21, 22, 23, 26, 27], "usual": [0, 21, 24, 27], "categori": [21, 26], "item": [9, 21, 23, 27], "interest": 21, "real": 21, "world": 21, "ha": [0, 2, 8, 11, 21, 23, 26, 27], "other": [21, 22, 23, 26], "within": [9, 21, 22, 23, 27], "group": [15, 21, 22, 23], "via": [0, 5, 6, 9, 21, 22, 23, 27], "gener": [5, 6, 10, 13, 19, 21, 22, 23, 27], "engin": [21, 22, 23], "crdc": [21, 27], "part": [21, 22, 23], "icdc": [21, 22], "between": [5, 6, 10, 11, 21, 22, 23, 26, 27], "Of": 21, "cours": 21, "have": [2, 4, 5, 6, 9, 21, 22, 23, 25, 26, 27], "access": [0, 2, 4, 21, 22, 26], "setter": [21, 25, 26], "getter": 21, "exclus": 21, "thu": 21, "prop": [2, 4, 5, 6, 7, 9, 14, 21, 24, 26, 27], "arrai": [21, 27], "has_properti": [5, 6, 21, 22, 26], "its": [2, 4, 5, 6, 8, 9, 11, 21, 22, 23, 26, 27], "see": [2, 4, 9, 10, 21, 23, 26], "more": [5, 6, 21, 22, 23, 25], "detail": [21, 22, 23, 24], "modul": [2, 21], "search": [2, 7, 21, 22], "page": [19, 21], "softwar": [22, 23], "tool": [5, 6, 22, 23], "guidelin": 22, "necessari": [0, 22, 23, 24, 27], "enabl": [0, 10, 22, 23, 24], "organ": [22, 24], "stabl": [22, 23], "predict": 22, "so": [22, 23, 26, 27], "doe": [22, 23, 27], "get": [0, 2, 4, 5, 6, 9, 10, 22, 27], "lost": 22, "incorrectli": 22, "duplic": [0, 22, 25], "mutat": 22, "As": [13, 14, 15, 22], "grow": 22, "interconnect": 22, "vocabulari": [22, 23, 27], "increas": [22, 23], "databas": [0, 2, 4, 5, 6, 7, 8, 9, 10, 22, 24, 25, 26], "becom": 22, "less": 22, "amen": 22, "manual": 22, "cypher": [1, 2, 3, 5, 6, 10, 17, 19, 22], "statement": [2, 3, 4, 8, 13, 18, 22, 23], "one": [5, 6, 22, 23, 24, 27], "off": [9, 22], "script": 22, "At": [22, 23], "same": [9, 22, 23, 27], "time": [0, 22, 23], "complex": [22, 23], "util": [1, 19, 22], "valu": [0, 2, 4, 5, 6, 7, 9, 10, 11, 12, 14, 22, 23, 24, 26, 27], "long": 22, "remain": 22, "queri": [2, 4, 5, 6, 7, 8, 10, 17, 18, 22, 23, 27], "alwai": 22, "return": [0, 2, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 18, 22, 24, 27], "what": [9, 22, 23, 26], "schema": [22, 23, 27], "sai": [22, 23], "thei": [5, 6, 22, 23, 24, 26], "To": [22, 23, 24, 25, 27], "treat": 22, "dynam": [22, 23], "inform": [0, 2, 4, 22, 23, 27], "frequent": [22, 23], "chang": [0, 9, 22, 23, 25, 26, 27], "robust": [22, 23, 27], "allevi": 22, "sme": [5, 6, 22, 23], "rememb": [22, 27], "prevent": 22, "shortcut": [22, 27], "would": [22, 23], "affect": [22, 23], "outcom": 22, "standard": [22, 23, 26, 27], "expect": 22, "node": [0, 2, 4, 5, 6, 7, 9, 10, 11, 14, 22, 23, 24, 25, 26, 27], "cannot": 22, "ever": 22, "ad": [0, 5, 6, 10, 22, 23, 26], "reason": [5, 6, 22, 23], "perform": [22, 23, 26], "tune": 22, "tag": [2, 4, 11, 22, 27], "placehold": 22, "cursor": 22, "all": [0, 2, 4, 5, 6, 9, 22, 23, 26, 27], "valid": [5, 6, 22, 23, 24], "enhanc": 22, "temporari": 22, "modif": [22, 23, 27], "If": [0, 2, 3, 4, 5, 6, 8, 9, 11, 22, 23], "make": [18, 22, 23], "sens": [22, 23], "add": [5, 6, 9, 10, 22, 23, 27], "should": [2, 4, 8, 10, 22, 23, 26], "kei": [2, 4, 9, 11, 22, 23, 24, 26, 27], "question": [9, 22], "ask": [9, 22], "befor": 22, "perman": 22, "Will": 22, "break": [22, 23], "discuss": [22, 23, 24], "deprec": [0, 22, 25], "plan": 22, "facilit": [22, 23], "fix": 22, "mai": [22, 23, 24], "It": [0, 9, 22, 23, 24, 27], "critic": 22, "ahead": 22, "admin": 22, "complet": [14, 22, 23, 27], "out": [22, 24], "after": 22, "flexibl": [22, 23], "poss": 22, "non": 22, "null": 22, "nanoid": [2, 4, 5, 6, 8, 10, 22, 27], "six": 22, "charact": 22, "alphanumer": 22, "random": [2, 4, 8, 22], "identifi": [5, 6, 22, 23], "packag": [22, 24], "variou": 22, "languag": [16, 22], "e": [9, 10, 14, 22, 23, 26, 27], "g": [10, 14, 22, 23, 27], "onc": 22, "even": [22, 27], "when": [0, 6, 9, 22, 23], "remov": [0, 5, 6, 9, 10, 13, 22, 27], "plu": [22, 27], "string": [0, 2, 3, 4, 5, 6, 9, 13, 22, 23, 26, 27], "possibli": 22, "singl": [5, 6, 9, 10, 22, 23, 24, 27], "import": [5, 22, 23, 24], "through": [22, 23], "retir": 22, "serv": [22, 23, 26], "handl": [2, 4, 5, 6, 7, 9, 11, 14, 22, 23, 24, 25, 26, 27], "short": 22, "cut": 22, "simpl": [2, 4, 11, 22, 23, 24, 26, 27], "servic": 22, "st": 22, "append": 22, "id": [0, 2, 4, 5, 6, 10, 22, 23], "endpoint": [2, 4, 17, 18, 22], "must": [2, 7, 8, 9, 11, 22, 23, 24], "json": 22, "allow": [11, 22, 23, 24, 27], "qualifi": [11, 22], "retriev": [0, 22, 27], "new": [0, 2, 5, 6, 8, 22, 23, 25, 26, 27], "receiv": 22, "possess": [22, 27], "describ": [9, 22, 23, 24, 26], "correspond": [22, 23, 26, 27], "further": [22, 23], "A": [0, 9, 11, 14, 22, 23, 27], "under": [0, 22, 26], "intention": [22, 23], "_not_": 22, "directli": [0, 22, 23, 27], "ani": [2, 5, 6, 8, 22, 23, 24, 27], "idea": [22, 23, 27], "across": 22, "howev": [22, 23, 26], "everi": [22, 23, 27], "_origin_": 22, "indic": [7, 22, 23, 25, 26], "authorit": [11, 22, 23, 27], "itself": [0, 22, 23, 27], "product": 22, "extern": [22, 23, 27], "author": [22, 23], "domain": [2, 4, 9, 11, 22, 27], "ethnic": [22, 24], "cadsr": 22, "public": 22, "2016566": 22, "five": [22, 26], "integr": [22, 24], "certain": [7, 22, 23], "establish": 22, "specifi": [2, 4, 22, 26, 27], "primari": 22, "fulltext": [2, 7, 22], "lucen": [2, 7, 22], "origin_definit": [22, 23, 27], "box": 22, "like": [22, 26], "over": [2, 7, 22, 24], "entir": [22, 23], "regular": 22, "btree": 22, "highli": 22, "recommend": 22, "fast": 22, "respons": [22, 23], "In": [22, 23, 26, 27], "unvers": 22, "combin": [5, 6, 22], "point": [9, 11, 22, 23, 25, 26, 27], "notat": 22, "below": [22, 26], "n": [14, 22, 26, 27], "That": [22, 23, 25], "onli": [9, 13, 14, 22, 24, 27], "p": [14, 22, 26, 27], "One": [10, 22, 23, 27], "satisfi": 22, "condit": [13, 14, 22], "hold": [5, 6, 22], "distinct": [22, 23], "q": 22, "f": [18, 22], "among": [22, 23], "implic": 22, "form": [22, 23], "namespac": 22, "r": [14, 22], "": [2, 4, 5, 6, 9, 10, 11, 22, 23, 26, 27], "has_src": [5, 6, 22, 27], "has_dst": [5, 6, 22, 27], "d": 22, "value_domain": [2, 4, 22, 26, 27], "value_set": [2, 4, 9, 11, 22, 26, 27], "v": 22, "has_value_set": [22, 26], "t": [0, 5, 6, 9, 14, 22, 27], "origin_nam": [5, 6, 22, 23, 27], "origin_id": [22, 23, 27], "origin_vers": [22, 27], "c": 22, "k": [22, 24], "where": [13, 14, 22, 23], "exactli": [22, 23], "n1": 22, "n2": 22, "two": [5, 6, 22, 23, 26, 27], "whose": [22, 26], "except": [0, 6, 22], "ident": [22, 23], "abov": [22, 23], "shall": 22, "upon": 22, "longer": 22, "old": 22, "again": [22, 23], "relax": 22, "modulo": 22, "_to": [22, 25, 26, 27], "_from": [2, 8, 22, 25, 26, 27], "some": [5, 6, 9, 22, 23, 27], "formal": [22, 23], "rule": 22, "mani": [22, 24, 27], "consid": [22, 23], "name": [0, 2, 4, 7, 11, 14, 22, 23, 24, 26, 27], "demograph": 22, "breed": 22, "persist": 22, "meet": [22, 23], "thought": 22, "plai": 22, "given": [2, 4, 5, 6, 9, 10, 22, 23, 24, 27], "purpos": [22, 23], "often": [22, 23], "desir": [0, 22], "alreadi": [0, 2, 3, 8, 22], "been": [0, 22], "elsewher": [22, 23], "case": [22, 23, 24, 25, 27], "compli": 22, "system": [22, 23, 27], "being": [0, 22], "interoper": [22, 23], "peer": 22, "larger": 22, "element": [0, 22, 23], "sometim": 22, "call": [22, 23, 24, 27], "express": 22, "rather": [22, 23], "than": [22, 23, 27], "univers": [22, 23], "connect": [2, 4, 5, 6, 9, 22, 23, 24, 26, 27], "own": [0, 22, 23, 26, 27], "act": 22, "hub": 22, "annot": [9, 22, 23], "definit": [2, 7, 22, 23, 24], "figur": [22, 23], "exemplifi": 22, "pattern": [14, 21, 26, 27], "note": [5, 6, 7, 9, 22, 24, 26, 27], "explicitli": [22, 23], "intend": [22, 23], "accept": [5, 6, 22, 23, 27], "aggreg": [22, 23, 27], "list": [2, 4, 5, 6, 9, 11, 22, 23, 27], "both": [2, 5, 6, 7, 9, 22, 23], "here": [22, 24, 25, 27], "primary_sit": 22, "anatomic_loc": 22, "share": [22, 23], "while": [22, 23], "sample_typ": [22, 27], "borrow": 22, "blood": 22, "inter": 22, "synonymi": [22, 23], "assert": [22, 26], "equival": 22, "transform": [22, 23], "synonym": [5, 6, 22, 23], "backend": 22, "made": [0, 22, 27], "expert": [22, 23], "who": [22, 23], "opinion": [22, 23], "capabl": [22, 23], "drive": 22, "our": [22, 23], "manag": [0, 2, 4, 9, 22, 23], "open": [22, 24], "abl": [22, 23], "track": [22, 23], "branch": 22, "develop": [22, 23], "extrem": 22, "upcom": 22, "featur": [22, 23], "latest": [22, 24], "user": [2, 4, 5, 6, 22, 23, 27], "tap": 22, "process": [22, 26], "natur": [22, 23, 27], "place": [22, 23, 26], "incorpor": [22, 23], "systemat": 22, "approv": 22, "releas": 22, "ci": 22, "cd": 22, "action": 22, "jenkin": 22, "automat": 22, "determinist": 22, "unambigu": 22, "error": [0, 5, 6, 22], "do": [0, 9, 10, 22, 23], "intent": [22, 23], "clear": 22, "There": 22, "wai": [22, 23], "least": 22, "wip": 22, "without": [9, 14, 23], "profus": 23, "special": [23, 26], "enough": 23, "separ": [0, 23, 24, 25], "semat": [], "goal": 23, "independ": 23, "practic": 23, "exist": [2, 3, 5, 6, 9, 10, 15, 23, 26], "aspect": 23, "semant": [11, 23, 27], "encourag": 23, "reus": [9, 23], "substructur": 23, "extent": 23, "succe": 23, "yield": 23, "contribut": 23, "project": 23, "program": [23, 27], "might": 23, "particip": [9, 23, 27], "similar": 23, "meant": [23, 27], "easili": 23, "perhap": 23, "curat": 23, "qualiti": 23, "devis": 23, "record": [0, 2, 4, 23, 25], "Its": 23, "ncit": 23, "nci": 23, "nih": [], "gov": [], "ncitbrows": [], "_": [], "assist": 23, "rapidli": 23, "resourc": 23, "character": 23, "augment": 23, "scientif": 23, "consider": 23, "polici": 23, "milieu": 23, "oper": [23, 26, 27], "lead": 23, "usag": 23, "easi": 23, "intuit": 23, "subject": [23, 27], "matter": [13, 23, 26], "support": [6, 7, 8, 9, 23, 27], "regard": 23, "examgpl": [], "straightforward": 23, "manipul": [0, 9, 16, 23], "underli": 23, "transpar": 23, "worri": 23, "about": [23, 25], "whether": [0, 9, 23, 24, 27], "she": 23, "current": [2, 4, 23, 27], "ecosystem": 23, "accur": 23, "respect": [9, 23], "activ": [0, 23], "anchor": 23, "virtu": 23, "capac": 23, "reflect": 23, "those": 23, "rendit": 23, "lag": 23, "behind": 23, "immedi": 23, "cover": 23, "yet": [0, 23], "still": [23, 27], "state": [9, 23], "quickli": 23, "gap": 23, "encount": 23, "captur": 23, "logic": 23, "conceptu": 23, "abstract": 23, "inde": 23, "secondari": 23, "main": [23, 27], "fnlcr": 23, "bac": 23, "cto": 23, "veri": [23, 27], "close": [2, 4, 23], "physic": 23, "nativ": 23, "configur": [0, 23], "littl": 23, "rdbm": 23, "uml": 23, "artifact": 23, "primarili": 23, "pragmat": 23, "constitu": 23, "ontologi": 23, "solv": 23, "problem": 23, "abid": 23, "strictli": 23, "ruleset": 23, "patient": 23, "english": 23, "vernacular": 23, "clinic": [23, 24], "trial": [23, 24], "survei": 23, "healthi": 23, "former": 23, "c16960": 23, "latter": [23, 27], "studi": 23, "c142710": 23, "task": 23, "dataset": 23, "deriv": 23, "order": [13, 14, 23], "compar": 23, "analog": [23, 27], "align": 23, "impli": 23, "basic": 23, "almost": [23, 26], "render": [14, 23], "usefulli": 23, "properti": [0, 2, 4, 5, 6, 7, 9, 11, 13, 14, 18, 23, 24, 26, 27], "variabl": [2, 4, 14, 23], "column": 23, "slot": 23, "actual": [0, 23], "conciev": 23, "translat": 23, "tabl": 23, "foreign": 23, "inherit": 23, "attribut": [0, 2, 3, 5, 9, 10, 11, 23, 24, 25, 26], "field": 23, "although": 23, "could": 23, "emul": 23, "how": 23, "tend": 23, "code": [23, 26, 27], "chosen": 23, "datum": 23, "adopt": 23, "thesauru": 23, "build": [23, 27], "control": 23, "edg": [0, 5, 6, 9, 11, 14, 23, 26, 27], "role": 23, "intellectu": 23, "induc": 23, "essenti": [11, 23], "just": [23, 26, 27], "present": [2, 4, 7, 9, 23, 24, 27], "construct": [16, 23], "diagnosi": 23, "help": [5, 6, 23], "cross": 23, "analysi": 23, "infom": 23, "bear": 23, "has_concept": [23, 26], "direct": [23, 27], "instead": [5, 6, 23], "imput": 23, "said": 23, "continu": 23, "c15220": 23, "origin_cod": 23, "simpli": [23, 27], "put": [0, 10, 23, 27], "disallow": 23, "indirect": 23, "synony": 23, "come": [23, 27], "anoth": 23, "sdtm": 23, "mhedttyp": 23, "cdisc": 23, "_addition_": [], "notion": 23, "agre": 23, "becaus": 23, "previou": [23, 26], "interpret": [10, 23], "reli": 23, "knowledg": 23, "situat": 23, "precis": [23, 26], "bridg": 23, "number": 23, "step": 23, "beyond": 23, "object": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 18, 19, 23, 24, 25], "format": 23, "tripl": [5, 6, 14, 23], "parent": 23, "child": 23, "mention": 23, "fulli": [11, 23, 27], "visibl": 23, "per": 23, "se": 23, "end": [9, 23], "implement": [0, 9, 11, 23], "hierarch": 23, "broader": 23, "is_a": 23, "sko": 23, "think": 23, "layer": 23, "three": [23, 26], "view": 23, "team": 23, "stakehold": 23, "dai": 23, "right": 23, "awai": 23, "approach": [23, 27], "seem": 23, "human": [10, 11, 23], "readabl": 23, "otherwis": 23, "talk": 23, "But": 23, "conform": 23, "downstream": [23, 27], "local": [23, 24, 27], "intern": [23, 24, 27], "hand": 23, "first": [23, 26], "incom": [2, 4, 23], "content": 23, "kept": 23, "known": 23, "remind": 23, "necessarili": 23, "we": [22, 23, 26], "collect": [0, 13, 23, 26, 27], "clinical_diagnosi": 23, "spec": [9, 23, 24], "comput": 23, "c15607": 23, "label": [2, 4, 7, 14, 15, 23, 26, 27], "easier": [23, 27], "evolv": 23, "_interaction_": 23, "anonym": [14, 23], "cumbersom": 23, "benefit": 23, "attach": [2, 4, 9, 23], "synoym": 23, "correct": 23, "veterinari": 23, "veterinary_diagnosi": 23, "is_related_to": 23, "suffic": 23, "found": [5, 6, 9, 22, 23, 24], "later": [2, 4, 23, 25], "gdc": [], "blur": [], "written": 24, "section": 24, "top": 24, "level": 24, "propdefinit": 24, "belong": [0, 24, 27], "enumer": [11, 24], "particular": [24, 26], "cardin": 24, "etc": 24, "avail": [2, 4, 24, 27], "canin": 24, "syntax": 24, "against": [0, 24, 27], "jsonschema": 24, "live": 24, "bento_mdf": 24, "instal": 24, "git": 24, "egg": 24, "subdir": 24, "subdirectori": 24, "driver": [2, 4, 9, 24], "yml": 24, "test": [24, 26], "modifi": [9, 24, 27], "No": 24, "spread": 24, "typic": 24, "merg": [2, 5, 6, 8, 11, 13, 24], "keyword": 24, "argument": [0, 13, 24, 27], "url": [2, 4, 24, 27], "resolv": 24, "load": [2, 3, 10, 24], "ctdc": 24, "io": 24, "desc": [24, 27], "ctdc_model_fil": 24, "ctdc_model_properties_fil": 24, "ctdc_model": 24, "x": 24, "specimen": 24, "metastatic_sit": 24, "nucleic_acid": 24, "ihc_assay_report": 24, "sequencing_assai": 24, "variant_report": 24, "snv_variant": 24, "delins_vari": 24, "indel_vari": 24, "copy_number_vari": 24, "gene_fusion_vari": 24, "assignment_report": 24, "disease_eligibility_criterion": 24, "drug_eligibility_criterion": 24, "arm": 24, "clinical_tri": 24, "show_nod": 24, "case_id": 24, "source_id": 24, "gender": 24, "race": 24, "patient_statu": 24, "current_step": 24, "diseas": 24, "ctep_categori": 24, "ctep_subcategori": 24, "meddra_cod": 24, "prior_drug": 24, "extent_of_diseas": 24, "ecog_performance_statu": 24, "write_mdf": 24, "dictionari": [24, 26], "option": [2, 4, 13, 24], "write": [2, 8, 24], "encod": 24, "mdf_dict": 24, "your_model": 24, "your_mdf": 24, "w": [5, 6, 24], "everyth": 24, "els": 24, "mdb": [1, 9, 11, 19, 25, 27], "machineri": [0, 2, 4, 10, 25], "decor": [2, 4, 5, 6, 8, 25], "storag": 25, "lifetim": [25, 26], "histori": 25, "walk": 25, "_prev": [25, 26, 27], "_next": [25, 26, 27], "turn": 25, "count": [5, 6, 14, 15, 25], "true": [0, 2, 5, 6, 7, 9, 12, 18, 25, 27], "set_version_count": [0, 9, 25], "1": [0, 2, 5, 6, 8, 14, 19, 25], "until": 25, "fals": [0, 5, 6, 9, 10, 13, 14, 25], "add_nod": [9, 25, 26, 27], "bump": 25, "subsequ": 25, "case2": 25, "bento_meta": [19, 26], "realli": 26, "tell": 26, "you": [26, 27], "declar": [0, 26], "dot": 26, "magic": [0, 26], "bookkeep": [0, 26], "object_map": [0, 1, 19, 26], "objectmap": [10, 26], "next": [0, 26], "attspec_": [0, 11, 26], "mapspec_": [0, 11, 26], "rel": [5, 6, 26], "end_cl": 26, "scalar": [26, 27], "four": 26, "dict": [0, 2, 4, 5, 6, 7, 9, 11, 26, 27], "look": [9, 26], "def": 26, "unit": [26, 27], "is_requir": [26, 27], "valueset": [2, 4, 11, 26, 27], "mynod": 26, "myprop": 26, "add_properti": 26, "underscor": 26, "throughout": 27, "metamodel": [0, 2, 4, 9, 10, 27], "applic": 27, "emploi": 27, "understood": 27, "mode": 27, "subclass": [6, 7, 8, 9, 10, 11, 27], "method": [0, 9, 10, 27], "obtain": [5, 6, 27], "print": 27, "referenc": 27, "of_sampl": 27, "diagram": 27, "src": [5, 6, 9, 11, 27], "dst": [5, 6, 9, 11, 27], "encapsul": 27, "programm": 27, "ignor": 27, "concentr": 27, "relev": 27, "tupl": [2, 4, 5, 6, 8, 11, 27], "retriv": 27, "triplet": [11, 27], "depend": 27, "node_prop": 27, "edge_prop": 27, "conveni": 27, "ensur": [0, 27], "obect": 27, "extend": 27, "loos": 27, "tri": 27, "reliev": 27, "guard": 27, "deviat": 27, "add_edg": [9, 27], "add_prop": [9, 27], "add_term": [9, 27], "rm_node": [9, 27], "rm_edg": [9, 27], "rm_prop": [9, 27], "rm_term": [9, 27], "soon": 27, "either": 27, "src_node": 27, "sampl": 27, "dst_node": 27, "of_cas": 27, "regist": [2, 4, 27], "deregist": 27, "destroi": 27, "other_model": 27, "throw": [0, 27], "hide": 27, "normal": 27, "tumor": 27, "same_term": 27, "forth": 27, "cycl": 27, "instrument": [0, 27], "rest": 27, "dget": [0, 9, 27], "dput": [0, 9, 27], "equal": 27, "disturb": 27, "unless": [0, 27], "refresh": [0, 9, 10, 27], "overwrit": 27, "execut": 27, "correctli": 27, "convert": 27, "delet": [0, 10, 27], "rm": [0, 10, 27], "detach": [10, 27], "db": [0, 2, 3, 10, 27], "posess": 27, "_id": 27, "_commit": [2, 3, 5, 6, 27], "item_domain": 27, "is_extern": 27, "arbitrari": [2, 4, 8, 11, 27], "liquibas": 22, "platform": 22, "along": [5, 6, 22], "plugin": 22, "audit": 22, "revers": 22, "liquichang": 22, "collvalu": 0, "argerror": 0, "init": [0, 11], "none": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 14], "rare": 0, "redefin": 0, "__setattr__": [0, 11], "__getattr__": 0, "hood": 0, "privat": 0, "rais": [0, 6], "dirti": 0, "flag": 0, "removed_ent": 0, "owner": [0, 10], "pvt_attr": [0, 11], "pvt": 0, "neoid": 0, "attspec": [0, 10, 11], "mapspec": [0, 10, 11], "default": [0, 2, 4, 5, 6, 7, 11], "version_count": 0, "versioning_on": 0, "classmethod": [0, 9, 10, 12, 14, 18], "appli": [0, 9], "param": [0, 2, 3, 4, 5, 6, 8, 9, 13, 18], "boolean": [0, 9], "ct": [0, 9], "integ": [0, 9], "counter": [0, 9], "int": [0, 9, 14], "propnam": 0, "get_by_id": [0, 10], "clear_removed_ent": 0, "set_with_dict": 0, "set_with_nod": 0, "set_with_ent": 0, "ent": [0, 2, 3, 7, 9, 12, 14, 15], "__getattribute__": 0, "getattr": 0, "self": [0, 11, 13, 15, 18], "setattr": [0, 11], "version_m": 0, "_set_declared_attr": 0, "__delattr__": 0, "delattr": 0, "_check_init": 0, "_check_valu": 0, "att": [0, 10], "dup": 0, "too": 0, "deepli": 0, "mainli": 0, "forc": [0, 10], "cach": [0, 10, 18], "don": 0, "disrupt": 0, "surviv": 0, "attr_doc": 0, "docstr": 0, "owner_kei": 0, "userdict": 0, "hous": [0, 9], "hook": 0, "mark": [0, 2, 3], "protect": 0, "arbitrarili": 0, "__setitem__": 0, "paramet": [0, 9, 13], "__getitem__": 0, "__delitem__": 0, "mdb_tool": [1, 2, 19], "loader": [1, 2, 19], "searchabl": [1, 2, 19], "writeabl": [1, 2, 5, 6, 19], "claus": [1, 16, 17, 19], "_engin": [1, 17, 19], "makeq": [1, 17, 19], "effici": [2, 4], "uri": [2, 4, 5, 6], "o": [2, 4], "environ": [2, 4], "neo4j_mdb_uri": [2, 4], "neo4j_mdb_us": [2, 4], "password": [2, 4, 5, 6], "neo4j_mdb_pass": [2, 4], "_txfn": [2, 4], "bolt_url": [2, 4], "bolt": [2, 4], "protocol": [2, 4], "env": [2, 4], "str": [2, 3, 4, 5, 6, 8, 9, 11, 13, 15, 18], "usernam": [2, 4], "register_txfn": [2, 4], "fn": [2, 4], "transact": [2, 4, 8], "doc": [2, 4], "html": [2, 4], "get_model_handl": [2, 4], "get_model_nod": [2, 4], "get_nodes_by_model": [2, 4], "get_model_nodes_edg": [2, 4], "path": [2, 4, 5, 6, 12, 14, 17, 18], "get_node_edges_by_node_id": [2, 4], "outgo": [2, 4], "near_typ": [2, 4], "far_typ": [2, 4], "rln": [2, 4], "far_nod": [2, 4], "get_node_and_props_by_node_id": [2, 4], "get_nodes_and_props_by_model": [2, 4], "get_prop_node_and_domain_by_prop_id": [2, 4], "get_valueset_by_id": [2, 4], "constitut": [2, 4], "get_valuesets_by_model": [2, 4], "get_term_by_id": [2, 4], "get_props_and_terms_by_model": [2, 4], "get_origin": [2, 4], "get_origin_by_id": [2, 4], "oid": [2, 4], "get_tags_for_entity_by_id": [2, 4], "get_tags_and_valu": [2, 4], "pair": [2, 4], "get_entities_by_tag": [2, 4], "tag_kei": [2, 4], "tag_valu": [2, 4], "get_with_stat": [2, 4], "qry": [2, 4, 8], "parm": [2, 4, 5, 6, 8], "make_nanoid": [2, 4], "alphabet": [2, 4], "abcdefghijkmnopqrstuvwxyzabcdefghjkmnpqrstuvwxyz0123456789": [2, 4], "size": [2, 4], "6": [2, 4, 8], "read_txn": [2, 4], "func": [2, 4, 8, 15], "qry_str": [2, 4, 8], "param_dict": [2, 4, 8], "read_txn_valu": [2, 4], "values_kei": [2, 4], "read_txn_data": [2, 4], "writeablemdb": [2, 5, 6, 8], "arg": [2, 7, 8, 13, 14, 15], "kwarg": [2, 7, 8, 13], "put_with_stat": [2, 8], "put_term_with_origin": [2, 8], "commit": [2, 3, 8], "assign": [2, 5, 6, 8], "char": [2, 8], "sha1": [2, 8], "searchablemdb": [2, 7], "available_index": [2, 7], "index_nam": [2, 7], "entity_typ": [2, 7], "query_index": [2, 7], "qstring": [2, 7], "skip": [2, 7], "limit": [2, 7], "score": [2, 7], "search_entity_handl": [2, 7], "search_term": [2, 7], "search_valu": [2, 7], "search_definit": [2, 7], "load_mdf": [2, 3], "load_model": [2, 3], "load_model_stat": [2, 3], "de": [2, 3], "novo": [2, 3], "overrid": [2, 3], "_centiti": 3, "_tag_stat": 3, "cent": 3, "_prop_stat": 3, "_annotate_stat": 3, "toolsmdb": [5, 6], "get_entity_attr": [5, 6], "output_str": [5, 6], "bool": [5, 6], "output_as_str": [5, 6], "usabl": [5, 6], "write_txn": [5, 6, 8], "detach_delete_ent": [5, 6], "get_entity_count": [5, 6], "uniqu": [5, 6, 9], "get_triple_count": [5, 6], "src_entiti": [5, 6], "dst_entiti": [5, 6], "create_ent": [5, 6], "get_concept": [5, 6], "create_relationship": [5, 6], "link_synonym": [5, 6], "entity_1": [5, 6], "entity_2": [5, 6], "add_missing_ent_1": [5, 6], "add_missing_ent_2": [5, 6], "take": [5, 6], "determin": [5, 6], "doesn": [5, 6], "add_missing_": [5, 6], "give": [5, 6], "make_nano": [5, 6], "_get_prop_nano": [5, 6], "node_handl": [5, 6], "_get_edge_nano": [5, 6], "src_handl": [5, 6], "dst_handl": [5, 6], "get_entity_nano": [5, 6], "extra_handle_1": [5, 6], "extra_handle_2": [5, 6], "identif": [5, 6], "_2": [5, 6], "get_or_make_nano": [5, 6], "get_term_nano": [5, 6], "get_predicate_nano": [5, 6], "get_predicate_relationship": [5, 6], "link_concepts_to_pred": [5, 6], "concept_1": [5, 6], "concept_2": [5, 6], "predicate_handl": [5, 6], "exactmatch": [5, 6], "has_subject": [5, 6], "has_object": [5, 6], "merge_two_concept": [5, 6], "_get_all_term": [5, 6], "get_term_synonym": [5, 6], "threshhold": [5, 6], "float": [5, 6], "8": [5, 6], "potential_synonyms_to_csv": [5, 6], "input_data": [5, 6], "output_path": [5, 6], "output": [5, 6], "csv": [5, 6], "link_term_synonyms_csv": [5, 6], "csv_path": [5, 6], "syonym": [5, 6], "get_property_synonym": [5, 6], "get_entity_typ": [5, 6], "log_ini_path": 6, "log_file_path": 6, "logger": 6, "entnotfounderror": 6, "shouldn": 6, "entityhandl": 7, "termvalu": 7, "termdefn": 7, "termvaluedefn": 7, "drv": [9, 10], "deleg": 9, "keep": 9, "clarifi": 9, "happen": 9, "Not": [9, 11, 15], "assign_edge_end": 9, "move": 9, "edges_in": 9, "edges_out": 9, "edges_bi": 9, "edges_by_src": 9, "edges_by_dst": 9, "edges_by_typ": 9, "edge_handl": 9, "noop": 9, "unset": 9, "mostli": 10, "consumpt": [10, 11], "cl": 10, "clear_cach": 10, "cls_by_label": 10, "lbl": 10, "keys_by_cls_and_reln": 10, "qcl": 10, "reln": 10, "_quote_v": 10, "obj": 10, "get_by_node_nanoid": 10, "prototyp": 10, "tgt": 10, "target": 10, "drop": 10, "tx": 10, "get_own": 10, "get_q": 10, "get_by_id_q": 10, "get_by_node_nanoid_q": 10, "get_attr_q": 10, "get_owners_q": 10, "put_q": 10, "put_attr_q": 10, "rm_q": 10, "rm_attr_q": 10, "_check_values_list": 10, "mergespec": 11, "clsname": 11, "rtype": 11, "3": 11, "avail_func": [12, 18], "use_param": [12, 13], "set_path": [12, 18], "pars": 12, "tok": 12, "_process_nod": 12, "block": 12, "_process_prop": 12, "_process_edg": 12, "_process_func": 12, "_create_stat": 12, "pad": 12, "_walk": 12, "pth": [12, 18], "templat": [13, 15], "joiner": [13, 15], "static": [13, 15], "__str__": [13, 15, 18], "match": [13, 14], "op": 13, "AND": [13, 15], "join": 13, "With": 13, "WITH": 13, "oncreateset": 13, "ON": 13, "onmatchset": 13, "optionalmatch": 13, "unwind": 13, "AS": 13, "termin": 13, "compris": 13, "countmak": 14, "max": 14, "10000": 14, "_reset_count": 14, "_add_prop": 14, "relate_to": 14, "_dir": 14, "_right": 14, "m": 14, "varlenr": 14, "min_len": 14, "max_len": 14, "length": 14, "n0": 14, "r0": 14, "parameter": 14, "nodirt": 14, "directionless": 14, "partial": 14, "overlap": 14, "_create_path": 14, "_append": 14, "_a": 14, "alia": 14, "copi": 14, "_plain": 14, "_anon": 14, "_var": 14, "_plain_var": 14, "_pattern": [14, 15], "_condit": [14, 15], "_return": [14, 15], "And": 15, "Or": 15, "OR": 15, "is_nul": 15, "is_not_nul": 15, "programmat": [16, 17], "pfx": 18, "use_cach": 18, "path_id": 18, "load_path": 18, "flo": 18, "auto": 19, "sphinx": 19, "autoapi": 19, "noindex": []}, "objects": {"": [[27, 0, 1, "", "Concept"], [27, 0, 1, "", "Edge"], [27, 0, 1, "", "Entity"], [27, 0, 1, "", "Node"], [27, 0, 1, "", "Origin"], [27, 0, 1, "", "Predicate"], [27, 0, 1, "", "Property"], [27, 0, 1, "", "Tag"], [27, 0, 1, "", "Term"], [1, 1, 0, "-", "bento_meta"]], "bento_meta": [[0, 1, 0, "-", "entity"], [2, 1, 0, "-", "mdb"], [9, 1, 0, "-", "model"], [10, 1, 0, "-", "object_map"], [11, 1, 0, "-", "objects"], [17, 1, 0, "-", "util"]], "bento_meta.entity": [[0, 2, 1, "", "ArgError"], [0, 0, 1, "", "CollValue"], [0, 0, 1, "", "Entity"]], "bento_meta.entity.CollValue": [[0, 3, 1, "", "__delitem__"], [0, 3, 1, "", "__getitem__"], [0, 3, 1, "", "__setitem__"], [0, 4, 1, "", "owner"], [0, 4, 1, "", "owner_key"], [0, 3, 1, "", "version_me"]], "bento_meta.entity.Entity": [[0, 3, 1, "", "__delattr__"], [0, 3, 1, "", "__getattr__"], [0, 3, 1, "", "__getattribute__"], [0, 3, 1, "", "__setattr__"], [0, 3, 1, "", "_check_init"], [0, 3, 1, "", "_check_value"], [0, 3, 1, "", "_set_declared_attr"], [0, 3, 1, "", "attr_doc"], [0, 5, 1, "", "attspec"], [0, 5, 1, "", "attspec_"], [0, 4, 1, "", "belongs"], [0, 3, 1, "", "clear_removed_entities"], [0, 3, 1, "", "default"], [0, 5, 1, "", "defaults"], [0, 3, 1, "", "delete"], [0, 3, 1, "", "dget"], [0, 4, 1, "", "dirty"], [0, 3, 1, "", "dput"], [0, 3, 1, "", "dup"], [0, 3, 1, "", "get_by_id"], [0, 3, 1, "", "mapspec"], [0, 5, 1, "", "mapspec_"], [0, 5, 1, "id0", "object_map"], [0, 5, 1, "", "pvt_attr"], [0, 4, 1, "", "removed_entities"], [0, 3, 1, "", "rm"], [0, 3, 1, "", "set_version_count"], [0, 3, 1, "", "set_with_dict"], [0, 3, 1, "", "set_with_entity"], [0, 3, 1, "", "set_with_node"], [0, 5, 1, "", "version_count"], [0, 3, 1, "", "version_me"], [0, 4, 1, "", "versioned"], [0, 3, 1, "", "versioning"], [0, 5, 1, "", "versioning_on"]], "bento_meta.mdb": [[2, 0, 1, "", "MDB"], [2, 0, 1, "", "SearchableMDB"], [2, 0, 1, "", "WriteableMDB"], [2, 6, 1, "", "load_mdf"], [2, 6, 1, "", "load_model"], [2, 6, 1, "", "load_model_statements"], [3, 1, 0, "-", "loaders"], [2, 6, 1, "", "make_nanoid"], [4, 1, 0, "-", "mdb"], [5, 1, 0, "-", "mdb_tools"], [2, 6, 1, "", "read_txn"], [2, 6, 1, "", "read_txn_data"], [2, 6, 1, "", "read_txn_value"], [7, 1, 0, "-", "searchable"], [8, 1, 0, "-", "writeable"]], "bento_meta.mdb.MDB": [[2, 5, 1, "", "_txfns"], [2, 3, 1, "", "close"], [2, 3, 1, "", "get_entities_by_tag"], [2, 3, 1, "", "get_model_handles"], [2, 3, 1, "", "get_model_nodes"], [2, 3, 1, "", "get_model_nodes_edges"], [2, 3, 1, "", "get_node_and_props_by_node_id"], [2, 3, 1, "", "get_node_edges_by_node_id"], [2, 3, 1, "", "get_nodes_and_props_by_model"], [2, 3, 1, "", "get_nodes_by_model"], [2, 3, 1, "", "get_origin_by_id"], [2, 3, 1, "", "get_origins"], [2, 3, 1, "", "get_prop_node_and_domain_by_prop_id"], [2, 3, 1, "", "get_props_and_terms_by_model"], [2, 3, 1, "", "get_tags_and_values"], [2, 3, 1, "", "get_tags_for_entity_by_id"], [2, 3, 1, "", "get_term_by_id"], [2, 3, 1, "", "get_valueset_by_id"], [2, 3, 1, "", "get_valuesets_by_model"], [2, 3, 1, "", "get_with_statement"], [2, 3, 1, "", "register_txfn"]], "bento_meta.mdb.SearchableMDB": [[2, 3, 1, "", "available_indexes"], [2, 3, 1, "", "query_index"], [2, 3, 1, "", "search_entity_handles"], [2, 3, 1, "", "search_terms"]], "bento_meta.mdb.WriteableMDB": [[2, 3, 1, "", "put_term_with_origin"], [2, 3, 1, "", "put_with_statement"]], "bento_meta.mdb.loaders": [[3, 6, 1, "", "_annotate_statements"], [3, 6, 1, "", "_cEntity"], [3, 6, 1, "", "_prop_statements"], [3, 6, 1, "", "_tag_statements"], [3, 6, 1, "", "load_mdf"], [3, 6, 1, "", "load_model"], [3, 6, 1, "", "load_model_statements"]], "bento_meta.mdb.mdb": [[4, 0, 1, "", "MDB"], [4, 6, 1, "", "make_nanoid"], [4, 6, 1, "", "read_txn"], [4, 6, 1, "", "read_txn_data"], [4, 6, 1, "", "read_txn_value"]], "bento_meta.mdb.mdb.MDB": [[4, 5, 1, "", "_txfns"], [4, 3, 1, "", "close"], [4, 3, 1, "", "get_entities_by_tag"], [4, 3, 1, "", "get_model_handles"], [4, 3, 1, "", "get_model_nodes"], [4, 3, 1, "", "get_model_nodes_edges"], [4, 3, 1, "", "get_node_and_props_by_node_id"], [4, 3, 1, "", "get_node_edges_by_node_id"], [4, 3, 1, "", "get_nodes_and_props_by_model"], [4, 3, 1, "", "get_nodes_by_model"], [4, 3, 1, "", "get_origin_by_id"], [4, 3, 1, "", "get_origins"], [4, 3, 1, "", "get_prop_node_and_domain_by_prop_id"], [4, 3, 1, "", "get_props_and_terms_by_model"], [4, 3, 1, "", "get_tags_and_values"], [4, 3, 1, "", "get_tags_for_entity_by_id"], [4, 3, 1, "", "get_term_by_id"], [4, 3, 1, "", "get_valueset_by_id"], [4, 3, 1, "", "get_valuesets_by_model"], [4, 3, 1, "", "get_with_statement"], [4, 3, 1, "", "register_txfn"]], "bento_meta.mdb.mdb_tools": [[5, 0, 1, "", "ToolsMDB"], [5, 6, 1, "", "get_entity_type"], [6, 1, 0, "-", "mdb_tools"]], "bento_meta.mdb.mdb_tools.ToolsMDB": [[5, 3, 1, "", "_get_all_terms"], [5, 3, 1, "", "_get_edge_nano"], [5, 3, 1, "", "_get_prop_nano"], [5, 3, 1, "", "create_entity"], [5, 3, 1, "", "create_relationship"], [5, 3, 1, "", "detach_delete_entity"], [5, 3, 1, "", "get_concepts"], [5, 3, 1, "", "get_entity_attrs"], [5, 3, 1, "", "get_entity_count"], [5, 3, 1, "", "get_entity_nano"], [5, 3, 1, "", "get_or_make_nano"], [5, 3, 1, "", "get_predicate_nanos"], [5, 3, 1, "", "get_predicate_relationship"], [5, 3, 1, "", "get_property_synonyms"], [5, 3, 1, "", "get_term_nanos"], [5, 3, 1, "", "get_term_synonyms"], [5, 3, 1, "", "get_triple_count"], [5, 3, 1, "", "link_concepts_to_predicate"], [5, 3, 1, "", "link_synonyms"], [5, 3, 1, "", "link_term_synonyms_csv"], [5, 3, 1, "", "make_nano"], [5, 3, 1, "", "merge_two_concepts"], [5, 3, 1, "", "potential_synonyms_to_csv"]], "bento_meta.mdb.mdb_tools.mdb_tools": [[6, 2, 1, "", "EntNotFoundError"], [6, 0, 1, "", "ToolsMDB"], [6, 6, 1, "", "get_entity_type"], [6, 7, 1, "", "log_file_path"], [6, 7, 1, "", "log_ini_path"], [6, 7, 1, "", "logger"]], "bento_meta.mdb.mdb_tools.mdb_tools.ToolsMDB": [[6, 3, 1, "", "_get_all_terms"], [6, 3, 1, "", "_get_edge_nano"], [6, 3, 1, "", "_get_prop_nano"], [6, 3, 1, "", "create_entity"], [6, 3, 1, "", "create_relationship"], [6, 3, 1, "", "detach_delete_entity"], [6, 3, 1, "", "get_concepts"], [6, 3, 1, "", "get_entity_attrs"], [6, 3, 1, "", "get_entity_count"], [6, 3, 1, "", "get_entity_nano"], [6, 3, 1, "", "get_or_make_nano"], [6, 3, 1, "", "get_predicate_nanos"], [6, 3, 1, "", "get_predicate_relationship"], [6, 3, 1, "", "get_property_synonyms"], [6, 3, 1, "", "get_term_nanos"], [6, 3, 1, "", "get_term_synonyms"], [6, 3, 1, "", "get_triple_count"], [6, 3, 1, "", "link_concepts_to_predicate"], [6, 3, 1, "", "link_synonyms"], [6, 3, 1, "", "link_term_synonyms_csv"], [6, 3, 1, "", "make_nano"], [6, 3, 1, "", "merge_two_concepts"], [6, 3, 1, "", "potential_synonyms_to_csv"]], "bento_meta.mdb.searchable": [[7, 0, 1, "", "SearchableMDB"]], "bento_meta.mdb.searchable.SearchableMDB": [[7, 3, 1, "", "available_indexes"], [7, 3, 1, "", "query_index"], [7, 3, 1, "", "search_entity_handles"], [7, 3, 1, "", "search_terms"]], "bento_meta.mdb.writeable": [[8, 0, 1, "", "WriteableMDB"], [8, 6, 1, "", "write_txn"]], "bento_meta.mdb.writeable.WriteableMDB": [[8, 3, 1, "", "put_term_with_origin"], [8, 3, 1, "", "put_with_statement"]], "bento_meta.model": [[9, 0, 1, "", "Model"]], "bento_meta.model.Model": [[9, 3, 1, "", "add_edge"], [9, 3, 1, "", "add_node"], [9, 3, 1, "", "add_prop"], [9, 3, 1, "", "add_terms"], [9, 3, 1, "", "annotate"], [9, 3, 1, "", "assign_edge_end"], [9, 3, 1, "", "contains"], [9, 3, 1, "", "dget"], [9, 3, 1, "", "dput"], [9, 4, 1, "", "drv"], [9, 3, 1, "", "edges_by"], [9, 3, 1, "", "edges_by_dst"], [9, 3, 1, "", "edges_by_src"], [9, 3, 1, "", "edges_by_type"], [9, 3, 1, "", "edges_in"], [9, 3, 1, "", "edges_out"], [9, 4, 1, "", "mdb"], [9, 3, 1, "", "rm_edge"], [9, 3, 1, "", "rm_node"], [9, 3, 1, "", "rm_prop"], [9, 3, 1, "", "rm_term"], [9, 3, 1, "", "set_version_count"], [9, 3, 1, "", "versioning"]], "bento_meta.object_map": [[10, 0, 1, "", "ObjectMap"]], "bento_meta.object_map.ObjectMap": [[10, 3, 1, "", "_check_values_list"], [10, 3, 1, "", "_quote_val"], [10, 3, 1, "", "add"], [10, 5, 1, "", "cache"], [10, 3, 1, "", "clear_cache"], [10, 3, 1, "", "cls_by_label"], [10, 3, 1, "", "drop"], [10, 3, 1, "", "get"], [10, 3, 1, "", "get_attr_q"], [10, 3, 1, "", "get_by_id"], [10, 3, 1, "", "get_by_id_q"], [10, 3, 1, "", "get_by_node_nanoid"], [10, 3, 1, "", "get_by_node_nanoid_q"], [10, 3, 1, "", "get_owners"], [10, 3, 1, "", "get_owners_q"], [10, 3, 1, "", "get_q"], [10, 3, 1, "", "keys_by_cls_and_reln"], [10, 3, 1, "", "put"], [10, 3, 1, "", "put_attr_q"], [10, 3, 1, "", "put_q"], [10, 3, 1, "", "rm"], [10, 3, 1, "", "rm_attr_q"], [10, 3, 1, "", "rm_q"]], "bento_meta.objects": [[11, 0, 1, "", "Concept"], [11, 0, 1, "", "Edge"], [11, 0, 1, "", "Node"], [11, 0, 1, "", "Origin"], [11, 0, 1, "", "Predicate"], [11, 0, 1, "", "Property"], [11, 0, 1, "", "Tag"], [11, 0, 1, "", "Term"], [11, 0, 1, "", "ValueSet"], [11, 6, 1, "", "mergespec"]], "bento_meta.objects.Concept": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Edge": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "defaults"], [11, 5, 1, "", "mapspec_"], [11, 4, 1, "", "triplet"]], "bento_meta.objects.Node": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Origin": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Predicate": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Property": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "defaults"], [11, 5, 1, "", "mapspec_"], [11, 5, 1, "", "pvt_attr"], [11, 4, 1, "", "terms"], [11, 4, 1, "", "values"]], "bento_meta.objects.Tag": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Term": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.ValueSet": [[11, 3, 1, "", "__setattr__"], [11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.util": [[12, 1, 0, "-", "_engine"], [16, 1, 0, "-", "cypher"], [18, 1, 0, "-", "makeq"]], "bento_meta.util._engine": [[12, 0, 1, "", "_engine"], [12, 7, 1, "", "avail_funcs"]], "bento_meta.util._engine._engine": [[12, 3, 1, "", "_create_statement"], [12, 3, 1, "", "_process_edge"], [12, 3, 1, "", "_process_func"], [12, 3, 1, "", "_process_node"], [12, 3, 1, "", "_process_prop"], [12, 3, 1, "", "_walk"], [12, 3, 1, "", "parse"], [12, 5, 1, "", "paths"], [12, 3, 1, "", "set_paths"]], "bento_meta.util.cypher": [[13, 1, 0, "-", "clauses"], [14, 1, 0, "-", "entities"], [15, 1, 0, "-", "functions"]], "bento_meta.util.cypher.clauses": [[13, 0, 1, "", "As"], [13, 0, 1, "", "Clause"], [13, 0, 1, "", "Collect"], [13, 0, 1, "", "Create"], [13, 0, 1, "", "Match"], [13, 0, 1, "", "Merge"], [13, 0, 1, "", "OnCreateSet"], [13, 0, 1, "", "OnMatchSet"], [13, 0, 1, "", "OptionalMatch"], [13, 0, 1, "", "Remove"], [13, 0, 1, "", "Return"], [13, 0, 1, "", "Set"], [13, 0, 1, "", "Statement"], [13, 0, 1, "", "Unwind"], [13, 0, 1, "", "Where"], [13, 0, 1, "", "With"]], "bento_meta.util.cypher.clauses.As": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Clause": [[13, 3, 1, "", "__str__"], [13, 3, 1, "", "context"], [13, 5, 1, "", "joiner"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Collect": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Create": [[13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Match": [[13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Merge": [[13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.OnCreateSet": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.OnMatchSet": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.OptionalMatch": [[13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Remove": [[13, 3, 1, "", "__str__"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Return": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Set": [[13, 3, 1, "", "__str__"], [13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Statement": [[13, 3, 1, "", "__str__"], [13, 4, 1, "", "params"]], "bento_meta.util.cypher.clauses.Unwind": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Where": [[13, 3, 1, "", "__str__"], [13, 3, 1, "", "context"], [13, 5, 1, "", "joiner"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.With": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.entities": [[14, 0, 1, "", "Entity"], [14, 0, 1, "", "G"], [14, 0, 1, "", "N"], [14, 0, 1, "", "N0"], [14, 0, 1, "", "NoDirT"], [14, 0, 1, "", "P"], [14, 0, 1, "", "R"], [14, 0, 1, "", "R0"], [14, 0, 1, "", "T"], [14, 0, 1, "", "VarLenR"], [14, 6, 1, "", "_anon"], [14, 6, 1, "", "_as"], [14, 6, 1, "", "_condition"], [14, 6, 1, "", "_pattern"], [14, 6, 1, "", "_plain"], [14, 6, 1, "", "_plain_var"], [14, 6, 1, "", "_return"], [14, 6, 1, "", "_var"], [14, 6, 1, "", "countmaker"]], "bento_meta.util.cypher.entities.Entity": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "_add_props"], [14, 3, 1, "", "_reset_counter"], [14, 3, 1, "", "condition"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.G": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "_append"], [14, 3, 1, "", "_create_path"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 3, 1, "", "edges"], [14, 3, 1, "", "nodes"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.N": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 3, 1, "", "pattern"], [14, 3, 1, "", "relate_to"]], "bento_meta.util.cypher.entities.N0": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.NoDirT": [[14, 3, 1, "", "edge"], [14, 3, 1, "", "edges"], [14, 3, 1, "", "nodes"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.P": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 5, 1, "", "parameterize"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.R": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 3, 1, "", "pattern"], [14, 3, 1, "", "relate"]], "bento_meta.util.cypher.entities.R0": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.T": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 3, 1, "", "edge"], [14, 3, 1, "", "edges"], [14, 3, 1, "", "nodes"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.VarLenR": [[14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.functions": [[15, 0, 1, "", "And"], [15, 0, 1, "", "Func"], [15, 0, 1, "", "Not"], [15, 0, 1, "", "Or"], [15, 6, 1, "", "_condition"], [15, 6, 1, "", "_pattern"], [15, 6, 1, "", "_return"], [15, 0, 1, "", "count"], [15, 0, 1, "", "exists"], [15, 0, 1, "", "group"], [15, 0, 1, "", "is_not_null"], [15, 0, 1, "", "is_null"], [15, 0, 1, "", "labels"]], "bento_meta.util.cypher.functions.And": [[15, 3, 1, "", "context"], [15, 5, 1, "", "joiner"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.Func": [[15, 5, 1, "", "As"], [15, 3, 1, "", "__str__"], [15, 3, 1, "", "context"], [15, 5, 1, "", "joiner"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.Not": [[15, 3, 1, "", "context"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.Or": [[15, 3, 1, "", "context"], [15, 5, 1, "", "joiner"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.count": [[15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.exists": [[15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.group": [[15, 5, 1, "", "joiner"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.is_not_null": [[15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.is_null": [[15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.labels": [[15, 5, 1, "", "template"]], "bento_meta.util.makeq": [[18, 0, 1, "", "Query"], [18, 7, 1, "", "avail_funcs"], [18, 6, 1, "", "f"]], "bento_meta.util.makeq.Query": [[18, 3, 1, "", "__str__"], [18, 5, 1, "", "cache"], [18, 3, 1, "", "load_paths"], [18, 4, 1, "", "params"], [18, 4, 1, "", "path_id"], [18, 5, 1, "", "paths"], [18, 3, 1, "", "set_paths"], [18, 4, 1, "", "statement"]], "concept": [[27, 5, 1, "", "terms"]], "edge": [[27, 5, 1, "", "concept"], [27, 5, 1, "", "dst"], [27, 5, 1, "", "handle"], [27, 5, 1, "", "is_required"], [27, 5, 1, "", "model"], [27, 5, 1, "", "multiplicity"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "props"], [27, 5, 1, "", "src"]], "entity": [[27, 5, 1, "", "_commit"], [27, 5, 1, "", "_from"], [27, 5, 1, "", "_id"], [27, 5, 1, "", "_next"], [27, 5, 1, "", "_prev"], [27, 5, 1, "", "_to"], [27, 5, 1, "", "desc"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "tags"]], "node": [[27, 5, 1, "", "concept"], [27, 5, 1, "", "handle"], [27, 5, 1, "", "model"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "props"]], "origin": [[27, 5, 1, "", "is_external"], [27, 5, 1, "", "name"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "url"]], "predicate": [[27, 5, 1, "", "handle"], [27, 5, 1, "", "object"], [27, 5, 1, "", "subject"]], "property": [[27, 5, 1, "", "concept"], [27, 5, 1, "", "handle"], [27, 5, 1, "", "is_required"], [27, 5, 1, "", "item_domain"], [27, 5, 1, "", "model"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "pattern"], [27, 5, 1, "", "units"], [27, 5, 1, "", "value_domain"], [27, 5, 1, "", "value_set"]], "tag": [[27, 5, 1, "", "key"], [27, 5, 1, "", "value"]], "term": [[27, 5, 1, "", "concept"], [27, 5, 1, "", "handle"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "origin"], [27, 5, 1, "", "origin_definition"], [27, 5, 1, "", "origin_id"], [27, 5, 1, "", "origin_name"], [27, 5, 1, "", "origin_version"], [27, 5, 1, "", "value"]]}, "objtypes": {"0": "py:class", "1": "py:module", "2": "py:exception", "3": "py:method", "4": "py:property", "5": "py:attribute", "6": "py:function", "7": "py:data"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "module", "Python module"], "2": ["py", "exception", "Python exception"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "attribute", "Python attribute"], "6": ["py", "function", "Python function"], "7": ["py", "data", "Python data"]}, "titleterms": {"load": 20, "an": [20, 27], "mdb": [2, 3, 4, 5, 6, 7, 8, 20, 21, 22, 23], "instanc": 20, "bento_meta": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 24], "metamodel": [21, 23], "databas": [21, 23, 27], "instal": 21, "content": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 21], "A": 21, "note": 21, "node": 21, "object": [11, 21, 26, 27], "properti": [21, 22], "attribut": [6, 12, 18, 21, 27], "indic": 21, "tabl": 21, "mainten": [], "principl": 23, "convent": 22, "entiti": [0, 14, 22, 23, 26], "requir": 22, "consist": 22, "index": 22, "need": 22, "addit": 22, "function": [2, 3, 4, 5, 6, 8, 11, 14, 15, 18, 22], "idempot": 22, "updat": [22, 26], "uniqu": 22, "exist": 22, "reus": 22, "semant": 22, "role": 22, "encod": 22, "map": [22, 26], "model": [9, 22, 23, 24, 25, 27], "term": [22, 27], "motiv": 23, "rational": 23, "design": 23, "decis": 23, "structur": 23, "mean": 23, "mdf": 24, "descript": 24, "file": 24, "slurp": 24, "squirt": 24, "yaml": 24, "version": 25, "us": 25, "specif": 26, "defin": 26, "subclass": 26, "ar": 26, "deriv": 26, "from": 26, "attspec": 26, "mapspec": 26, "The": 27, "work": 27, "compon": 27, "contain": 27, "access": 27, "other": 27, "interfac": 27, "manipul": 27, "interact": 27, "pattern": 22, "graph": 22, "represent": 22, "modul": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18], "class": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18], "subpackag": [1, 2, 17], "submodul": [1, 2, 5, 16, 17], "packag": [2, 5], "loader": 3, "mdb_tool": [5, 6], "searchabl": 7, "writeabl": 8, "object_map": 10, "util": [12, 13, 14, 15, 16, 17, 18], "_engin": 12, "cypher": [13, 14, 15, 16], "claus": 13, "makeq": 18, "api": 19, "refer": 19}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Loading an MDB instance": [[20, "loading-an-mdb-instance"]], "bento_meta and Metamodel Database (MDB)": [[21, "bento-meta-and-metamodel-database-mdb"]], "Installation": [[21, "installation"]], "Contents:": [[21, null]], "A Note on \u201cNodes\u201d": [[21, "a-note-on-nodes"]], "A Note on Objects, Properties, and Attributes": [[21, "a-note-on-objects-properties-and-attributes"]], "Indices and tables": [[21, "indices-and-tables"]], "MDB Conventions and Patterns": [[22, "mdb-conventions-and-patterns"]], "MDB entity properties required for consistency": [[22, "mdb-entity-properties-required-for-consistency"]], "MDB indexes needed for additional functionality": [[22, "mdb-indexes-needed-for-additional-functionality"]], "Conventions for consistent and idempotent updates": [[22, "conventions-for-consistent-and-idempotent-updates"]], "Uniqueness and Existence of Entities": [[22, "uniqueness-and-existence-of-entities"]], "Graph Patterns for Representation": [[22, "graph-patterns-for-representation"]], "\u201cReuse\u201d of Semantic Roles in MDB": [[22, "reuse-of-semantic-roles-in-mdb"]], "Encoding \u201cMappings\u201d": [[22, "encoding-mappings"]], "Models": [[22, "models"]], "Terms": [[22, "terms"]], "Metamodel Database (MDB) Principles": [[23, "metamodel-database-mdb-principles"]], "MDB Motivation and Rationale": [[23, "mdb-motivation-and-rationale"]], "MDB Design Decisions": [[23, "mdb-design-decisions"]], "MDB Entities and Structures": [[23, "mdb-entities-and-structures"]], "Models and Meanings": [[23, "models-and-meanings"]], "bento_meta and MDF": [[24, "bento-meta-and-mdf"]], "Model Description Files": [[24, "model-description-files"]], "Slurping MDF into bento_meta": [[24, "slurping-mdf-into-bento-meta"]], "Squirting a Model into MDF YAML": [[24, "squirting-a-model-into-mdf-yaml"]], "Model Versioning": [[25, "model-versioning"]], "Using Model Versioning": [[25, "using-model-versioning"]], "Object Map Specifications": [[26, "object-map-specifications"]], "Defining and Updating Objects": [[26, "defining-and-updating-objects"]], "Subclasses are derived from Entity": [[26, "subclasses-are-derived-from-entity"]], "attspec and mapspec": [[26, "attspec-and-mapspec"]], "bento_meta.entity": [[0, "module-bento_meta.entity"]], "Module Contents": [[0, "module-contents"], [3, "module-contents"], [4, "module-contents"], [6, "module-contents"], [7, "module-contents"], [8, "module-contents"], [9, "module-contents"], [10, "module-contents"], [11, "module-contents"], [12, "module-contents"], [13, "module-contents"], [14, "module-contents"], [15, "module-contents"], [18, "module-contents"]], "Classes": [[0, "classes"], [2, "classes"], [4, "classes"], [5, "classes"], [6, "classes"], [7, "classes"], [8, "classes"], [9, "classes"], [10, "classes"], [11, "classes"], [12, "classes"], [13, "classes"], [14, "classes"], [15, "classes"], [18, "classes"]], "bento_meta": [[1, "module-bento_meta"]], "Subpackages": [[1, "subpackages"], [2, "subpackages"], [17, "subpackages"]], "Submodules": [[1, "submodules"], [2, "submodules"], [5, "submodules"], [16, "submodules"], [17, "submodules"]], "bento_meta.mdb": [[2, "module-bento_meta.mdb"]], "Package Contents": [[2, "package-contents"], [5, "package-contents"]], "Functions": [[2, "functions"], [3, "functions"], [4, "functions"], [5, "functions"], [6, "functions"], [8, "functions"], [11, "functions"], [14, "functions"], [15, "functions"], [18, "functions"]], "bento_meta.mdb.loaders": [[3, "module-bento_meta.mdb.loaders"]], "bento_meta.mdb.mdb": [[4, "module-bento_meta.mdb.mdb"]], "bento_meta.mdb.mdb_tools": [[5, "module-bento_meta.mdb.mdb_tools"]], "bento_meta.mdb.mdb_tools.mdb_tools": [[6, "module-bento_meta.mdb.mdb_tools.mdb_tools"]], "Attributes": [[6, "attributes"], [12, "attributes"], [18, "attributes"]], "bento_meta.mdb.searchable": [[7, "module-bento_meta.mdb.searchable"]], "bento_meta.mdb.writeable": [[8, "module-bento_meta.mdb.writeable"]], "bento_meta.model": [[9, "module-bento_meta.model"]], "bento_meta.object_map": [[10, "module-bento_meta.object_map"]], "bento_meta.objects": [[11, "module-bento_meta.objects"]], "bento_meta.util._engine": [[12, "module-bento_meta.util._engine"]], "bento_meta.util.cypher.clauses": [[13, "module-bento_meta.util.cypher.clauses"]], "bento_meta.util.cypher.entities": [[14, "module-bento_meta.util.cypher.entities"]], "bento_meta.util.cypher.functions": [[15, "module-bento_meta.util.cypher.functions"]], "bento_meta.util.cypher": [[16, "module-bento_meta.util.cypher"]], "bento_meta.util": [[17, "module-bento_meta.util"]], "bento_meta.util.makeq": [[18, "module-bento_meta.util.makeq"]], "API Reference": [[19, "api-reference"]], "The Object Model": [[27, "the-object-model"]], "Working with Models": [[27, "working-with-models"]], "Component Objects": [[27, "component-objects"]], "Object attributes": [[27, "object-attributes"]], "Model as a Container": [[27, "model-as-a-container"]], "Accessing other objects": [[27, "accessing-other-objects"]], "Model as an Interface": [[27, "model-as-an-interface"]], "Manipulating Terms": [[27, "manipulating-terms"]], "Database Interaction": [[27, "database-interaction"]], "Objects and their Attributes": [[27, "objects-and-their-attributes"]]}, "indexentries": {"concept (built-in class)": [[27, "Concept"]], "edge (built-in class)": [[27, "Edge"]], "entity (built-in class)": [[27, "Entity"]], "node (built-in class)": [[27, "Node"]], "origin (built-in class)": [[27, "Origin"]], "predicate (built-in class)": [[27, "Predicate"]], "property (built-in class)": [[27, "Property"]], "tag (built-in class)": [[27, "Tag"]], "term (built-in class)": [[27, "Term"]], "_commit (entity attribute)": [[27, "entity._commit"]], "_from (entity attribute)": [[27, "entity._from"]], "_id (entity attribute)": [[27, "entity._id"]], "_next (entity attribute)": [[27, "entity._next"]], "_prev (entity attribute)": [[27, "entity._prev"]], "_to (entity attribute)": [[27, "entity._to"]], "concept (edge attribute)": [[27, "edge.concept"]], "concept (node attribute)": [[27, "node.concept"]], "concept (property attribute)": [[27, "property.concept"]], "concept (term attribute)": [[27, "term.concept"]], "desc (entity attribute)": [[27, "entity.desc"]], "dst (edge attribute)": [[27, "edge.dst"]], "handle (edge attribute)": [[27, "edge.handle"]], "handle (node attribute)": [[27, "node.handle"]], "handle (predicate attribute)": [[27, "predicate.handle"]], "handle (property attribute)": [[27, "property.handle"]], "handle (term attribute)": [[27, "term.handle"]], "is_external (origin attribute)": [[27, "origin.is_external"]], "is_required (edge attribute)": [[27, "edge.is_required"]], "is_required (property attribute)": [[27, "property.is_required"]], "item_domain (property attribute)": [[27, "property.item_domain"]], "key (tag attribute)": [[27, "tag.key"]], "model (edge attribute)": [[27, "edge.model"]], "model (node attribute)": [[27, "node.model"]], "model (property attribute)": [[27, "property.model"]], "multiplicity (edge attribute)": [[27, "edge.multiplicity"]], "name (origin attribute)": [[27, "origin.name"]], "nanoid (edge attribute)": [[27, "edge.nanoid"]], "nanoid (entity attribute)": [[27, "entity.nanoid"]], "nanoid (node attribute)": [[27, "node.nanoid"]], "nanoid (origin attribute)": [[27, "origin.nanoid"]], "nanoid (property attribute)": [[27, "property.nanoid"]], "nanoid (term attribute)": [[27, "term.nanoid"]], "object (predicate attribute)": [[27, "predicate.object"]], "origin (term attribute)": [[27, "term.origin"]], "origin_definition (term attribute)": [[27, "term.origin_definition"]], "origin_id (term attribute)": [[27, "term.origin_id"]], "origin_name (term attribute)": [[27, "term.origin_name"]], "origin_version (term attribute)": [[27, "term.origin_version"]], "pattern (property attribute)": [[27, "property.pattern"]], "props (edge attribute)": [[27, "edge.props"]], "props (node attribute)": [[27, "node.props"]], "src (edge attribute)": [[27, "edge.src"]], "subject (predicate attribute)": [[27, "predicate.subject"]], "tags (entity attribute)": [[27, "entity.tags"]], "terms (concept attribute)": [[27, "concept.terms"]], "units (property attribute)": [[27, "property.units"]], "url (origin attribute)": [[27, "origin.url"]], "value (tag attribute)": [[27, "tag.value"]], "value (term attribute)": [[27, "term.value"]], "value_domain (property attribute)": [[27, "property.value_domain"]], "value_set (property attribute)": [[27, "property.value_set"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["autoapi/bento_meta/entity/index", "autoapi/bento_meta/index", "autoapi/bento_meta/mdb/index", "autoapi/bento_meta/mdb/loaders/index", "autoapi/bento_meta/mdb/mdb/index", "autoapi/bento_meta/mdb/mdb_tools/index", "autoapi/bento_meta/mdb/mdb_tools/mdb_tools/index", "autoapi/bento_meta/mdb/searchable/index", "autoapi/bento_meta/mdb/writeable/index", "autoapi/bento_meta/model/index", "autoapi/bento_meta/object_map/index", "autoapi/bento_meta/objects/index", "autoapi/bento_meta/util/_engine/index", "autoapi/bento_meta/util/cypher/clauses/index", "autoapi/bento_meta/util/cypher/entities/index", "autoapi/bento_meta/util/cypher/functions/index", "autoapi/bento_meta/util/cypher/index", "autoapi/bento_meta/util/index", "autoapi/bento_meta/util/makeq/index", "autoapi/index", "db_loading", "index", "mdb-conventions", "mdb-principles", "meta_and_mdf", "model_versioning", "object_mapping", "the_object_model"], "filenames": ["autoapi/bento_meta/entity/index.rst", "autoapi/bento_meta/index.rst", "autoapi/bento_meta/mdb/index.rst", "autoapi/bento_meta/mdb/loaders/index.rst", "autoapi/bento_meta/mdb/mdb/index.rst", "autoapi/bento_meta/mdb/mdb_tools/index.rst", "autoapi/bento_meta/mdb/mdb_tools/mdb_tools/index.rst", "autoapi/bento_meta/mdb/searchable/index.rst", "autoapi/bento_meta/mdb/writeable/index.rst", "autoapi/bento_meta/model/index.rst", "autoapi/bento_meta/object_map/index.rst", "autoapi/bento_meta/objects/index.rst", "autoapi/bento_meta/util/_engine/index.rst", "autoapi/bento_meta/util/cypher/clauses/index.rst", "autoapi/bento_meta/util/cypher/entities/index.rst", "autoapi/bento_meta/util/cypher/functions/index.rst", "autoapi/bento_meta/util/cypher/index.rst", "autoapi/bento_meta/util/index.rst", "autoapi/bento_meta/util/makeq/index.rst", "autoapi/index.rst", "db_loading.rst", "index.rst", "mdb-conventions.rst", "mdb-principles.rst", "meta_and_mdf.rst", "model_versioning.rst", "object_mapping.rst", "the_object_model.rst"], "titles": ["bento_meta.entity", "bento_meta", "bento_meta.mdb", "bento_meta.mdb.loaders", "bento_meta.mdb.mdb", "bento_meta.mdb.mdb_tools", "bento_meta.mdb.mdb_tools.mdb_tools", "bento_meta.mdb.searchable", "bento_meta.mdb.writeable", "bento_meta.model", "bento_meta.object_map", "bento_meta.objects", "bento_meta.util._engine", "bento_meta.util.cypher.clauses", "bento_meta.util.cypher.entities", "bento_meta.util.cypher.functions", "bento_meta.util.cypher", "bento_meta.util", "bento_meta.util.makeq", "API Reference", "Loading an MDB instance", "bento_meta and Metamodel Database (MDB)", "MDB Conventions and Patterns", "Metamodel Database (MDB) Principles", "bento_meta and MDF", "Model Versioning", "Object Map Specifications", "The Object Model"], "terms": {"provid": [0, 10, 21, 22, 23, 24, 26, 27], "an": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 18, 21, 22, 23, 26], "represent": [13, 14, 15, 21, 23, 27], "graph": [0, 9, 14, 21, 23, 24, 26, 27], "base": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 21, 22, 23, 26, 27], "data": [2, 4, 9, 10, 11, 21, 22, 23, 24, 26, 27], "model": [0, 1, 2, 3, 4, 10, 11, 19, 21, 26], "embodi": 21, "structur": [21, 22, 24, 27], "bento": [1, 2, 5, 6, 8, 9, 10, 21, 22, 24], "The": [0, 2, 4, 8, 9, 10, 21, 22, 23, 24, 25, 26], "can": [9, 21, 22, 23, 24, 25, 26, 27], "store": [0, 21, 22, 23, 25, 27], "multipl": [21, 23, 24, 27], "term": [2, 4, 5, 6, 7, 8, 9, 11, 21, 23, 24], "relationship": [2, 4, 5, 6, 7, 11, 14, 21, 22, 23, 24, 26, 27], "link": [5, 6, 9, 10, 11, 21, 22, 23, 26, 27], "entiti": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 16, 17, 19, 21, 24, 27], "accord": [21, 22, 24, 27], "individu": [21, 23, 27], "For": [21, 22, 23, 27], "exampl": [21, 22, 23, 24, 26, 27], "ar": [0, 2, 4, 9, 10, 11, 21, 22, 23, 24, 27], "repres": [2, 4, 5, 6, 8, 10, 11, 13, 17, 21, 22, 23, 26, 27], "type": [0, 5, 6, 9, 11, 14, 21, 23, 24, 26, 27], "appropri": [10, 21, 22, 23, 26], "sourc": [0, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 21, 22, 23, 24, 26, 27], "destin": [21, 24, 26, 27], "class": [21, 23, 26, 27], "creat": [0, 2, 3, 4, 5, 6, 8, 9, 10, 13, 17, 19, 21, 22, 23, 24, 25, 26, 27], "read": [2, 4, 21, 23], "updat": [0, 21, 23], "togeth": 21, "push": [9, 21, 24, 26, 27], "pull": [9, 21, 22, 24, 26, 27], "them": [5, 6, 10, 21, 27], "from": [0, 2, 3, 4, 5, 6, 9, 10, 11, 17, 18, 21, 22, 23, 24, 25, 27], "back": [21, 22, 23, 27], "neo4j": [0, 2, 4, 7, 9, 10, 13, 18, 21, 22, 24, 26, 27], "also": [0, 2, 4, 21, 22, 23, 24, 26, 27], "defin": [0, 14, 21, 22, 23, 24], "maintain": [21, 22], "terminologi": [11, 21, 22, 23, 27], "associ": [2, 4, 8, 9, 10, 21, 22, 23, 24, 26], "These": [21, 22, 23, 26, 27], "includ": [21, 22, 23, 24, 26], "themselv": [10, 21, 22, 23, 27], "origin": [2, 4, 8, 11, 21, 22, 23, 27], "concept": [5, 6, 9, 11, 21, 22, 23, 26, 27], "predic": [5, 6, 11, 21, 23, 27], "each": [2, 4, 5, 6, 10, 21, 22, 23, 24, 26, 27], "us": [0, 2, 4, 5, 6, 9, 11, 21, 22, 23, 24, 26, 27], "run": [2, 4, 8, 21], "pip": [21, 24], "http": [2, 4, 24], "github": [2, 8, 22, 24], "com": [2, 4, 24], "cbiit": 24, "meta": [1, 2, 5, 6, 8, 21], "raw": [], "master": [], "python": [2, 4, 21, 22, 24], "dist": [], "0": [5, 6], "2": [25, 27], "tar": [], "gz": [], "principl": [21, 22], "motiv": 21, "rational": 21, "design": [21, 26], "decis": 21, "mean": [21, 22, 26], "mainten": 22, "convent": [21, 23], "requir": [5, 6, 21, 23, 24, 26, 27], "consist": [3, 21, 23], "index": [2, 7, 21], "need": [5, 6, 9, 21, 23, 27], "addit": [21, 23], "function": [1, 16, 17, 19, 21, 23, 24, 26, 27], "idempot": 21, "work": [9, 21, 22, 23], "compon": [21, 22], "contain": [0, 2, 4, 9, 10, 11, 19, 21, 23, 25, 26], "interfac": 21, "interact": [6, 21, 22, 23, 26], "mdf": [2, 3, 9, 21, 22], "descript": [21, 22, 25], "file": [5, 6, 21, 22], "slurp": 21, "squirt": 21, "yaml": 21, "version": [0, 9, 21, 22, 24, 26], "map": [0, 10, 11, 21, 23, 27], "specif": [0, 10, 11, 21, 22, 23, 27], "api": [2, 4, 17, 21, 23], "refer": [0, 21, 23, 26, 27], "i": [0, 2, 4, 5, 6, 8, 9, 14, 21, 22, 23, 24, 25, 26, 27], "built": [9, 21, 23], "word": [21, 22, 23, 27], "therefor": [21, 23, 26], "differ": [9, 21, 22, 23], "context": [13, 15, 21, 22, 23], "confus": 21, "especi": [21, 22, 23], "sinc": [0, 21, 23], "cancer": 21, "research": 21, "common": [0, 21, 22, 24, 26], "set": [0, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 21, 22, 23, 24, 25, 27], "up": [21, 25], "which": [0, 5, 6, 10, 11, 21, 22, 23, 24, 25, 26, 27], "central": 21, "repositori": [21, 22], "kind": [21, 22, 23, 27], "thi": [0, 2, 3, 4, 5, 6, 9, 10, 11, 19, 21, 22, 23, 24, 25, 26, 27], "relat": [14, 21, 23, 26, 27], "document": [19, 21, 22, 23, 24], "attempt": [0, 21, 27], "distinguish": [21, 22, 23, 27], "follow": [5, 6, 21, 22, 23, 24, 27], "instanc": [0, 2, 3, 4, 7, 9, 10, 11, 21, 22, 23, 26, 27], "usual": [0, 21, 24, 27], "categori": [21, 26], "item": [9, 21, 23, 27], "interest": 21, "real": 21, "world": 21, "ha": [0, 2, 8, 11, 21, 23, 26, 27], "other": [21, 22, 23, 26], "within": [9, 21, 22, 23, 27], "group": [15, 21, 22, 23], "via": [0, 5, 6, 9, 21, 22, 23, 27], "gener": [5, 6, 10, 13, 19, 21, 22, 23, 27], "engin": [21, 22, 23], "crdc": [21, 27], "part": [21, 22, 23], "icdc": [21, 22], "between": [5, 6, 10, 11, 21, 22, 23, 26, 27], "Of": 21, "cours": 21, "have": [2, 4, 5, 6, 9, 21, 22, 23, 25, 26, 27], "access": [0, 2, 4, 21, 22, 26], "setter": [21, 25, 26], "getter": 21, "exclus": 21, "thu": 21, "prop": [2, 4, 5, 6, 7, 9, 14, 21, 24, 26, 27], "arrai": [21, 27], "has_properti": [5, 6, 21, 22, 26], "its": [2, 4, 5, 6, 8, 9, 11, 21, 22, 23, 26, 27], "see": [2, 4, 9, 10, 21, 23, 26], "more": [5, 6, 21, 22, 23, 25], "detail": [21, 22, 23, 24], "modul": [2, 21], "search": [2, 7, 21, 22], "page": [19, 21], "softwar": [22, 23], "tool": [5, 6, 22, 23], "guidelin": 22, "necessari": [0, 22, 23, 24, 27], "enabl": [0, 10, 22, 23, 24], "organ": [22, 24], "stabl": [22, 23], "predict": 22, "so": [22, 23, 26, 27], "doe": [22, 23, 27], "get": [0, 2, 4, 5, 6, 9, 10, 22, 27], "lost": 22, "incorrectli": 22, "duplic": [0, 22, 25], "mutat": 22, "As": [13, 14, 15, 22], "grow": 22, "interconnect": 22, "vocabulari": [22, 23, 27], "increas": [22, 23], "databas": [0, 2, 4, 5, 6, 7, 8, 9, 10, 22, 24, 25, 26], "becom": 22, "less": 22, "amen": 22, "manual": 22, "cypher": [1, 2, 3, 5, 6, 10, 17, 19, 22], "statement": [2, 3, 4, 8, 13, 18, 22, 23], "one": [5, 6, 22, 23, 24, 27], "off": [9, 22], "script": 22, "At": [22, 23], "same": [9, 22, 23, 27], "time": [0, 22, 23], "complex": [22, 23], "util": [1, 19, 22], "valu": [0, 2, 4, 5, 6, 7, 9, 10, 11, 12, 14, 22, 23, 24, 26, 27], "long": 22, "remain": 22, "queri": [2, 4, 5, 6, 7, 8, 10, 17, 18, 22, 23, 27], "alwai": 22, "return": [0, 2, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 18, 22, 24, 27], "what": [9, 22, 23, 26], "schema": [22, 23, 27], "sai": [22, 23], "thei": [5, 6, 22, 23, 24, 26], "To": [22, 23, 24, 25, 27], "treat": 22, "dynam": [22, 23], "inform": [0, 2, 4, 22, 23, 27], "frequent": [22, 23], "chang": [0, 9, 22, 23, 25, 26, 27], "robust": [22, 23, 27], "allevi": 22, "sme": [5, 6, 22, 23], "rememb": [22, 27], "prevent": 22, "shortcut": [22, 27], "would": [22, 23], "affect": [22, 23], "outcom": 22, "standard": [22, 23, 26, 27], "expect": 22, "node": [0, 2, 4, 5, 6, 7, 9, 10, 11, 14, 22, 23, 24, 25, 26, 27], "cannot": 22, "ever": 22, "ad": [0, 5, 6, 10, 22, 23, 26], "reason": [5, 6, 22, 23], "perform": [22, 23, 26], "tune": 22, "tag": [2, 4, 11, 22, 27], "placehold": 22, "cursor": 22, "all": [0, 2, 4, 5, 6, 9, 22, 23, 26, 27], "valid": [5, 6, 22, 23, 24], "enhanc": 22, "temporari": 22, "modif": [22, 23, 27], "If": [0, 2, 3, 4, 5, 6, 8, 9, 11, 22, 23], "make": [18, 22, 23], "sens": [22, 23], "add": [5, 6, 9, 10, 22, 23, 27], "should": [2, 4, 8, 10, 22, 23, 26], "kei": [2, 4, 9, 11, 22, 23, 24, 26, 27], "question": [9, 22], "ask": [9, 22], "befor": 22, "perman": 22, "Will": 22, "break": [22, 23], "discuss": [22, 23, 24], "deprec": [0, 22, 25], "plan": 22, "facilit": [22, 23], "fix": 22, "mai": [22, 23, 24], "It": [0, 9, 22, 23, 24, 27], "critic": 22, "ahead": 22, "admin": 22, "complet": [14, 22, 23, 27], "out": [22, 24], "after": 22, "flexibl": [22, 23], "poss": 22, "non": 22, "null": 22, "nanoid": [2, 4, 5, 6, 8, 10, 22, 27], "six": 22, "charact": 22, "alphanumer": 22, "random": [2, 4, 8, 22], "identifi": [5, 6, 22, 23], "packag": [22, 24], "variou": 22, "languag": [16, 22], "e": [9, 10, 14, 22, 23, 26, 27], "g": [10, 14, 22, 23, 27], "onc": 22, "even": [22, 27], "when": [0, 6, 9, 22, 23], "remov": [0, 5, 6, 9, 10, 13, 22, 27], "plu": [22, 27], "string": [0, 2, 3, 4, 5, 6, 9, 13, 22, 23, 26, 27], "possibli": 22, "singl": [5, 6, 9, 10, 22, 23, 24, 27], "import": [5, 22, 23, 24], "through": [22, 23], "retir": 22, "serv": [22, 23, 26], "handl": [2, 4, 5, 6, 7, 9, 11, 14, 22, 23, 24, 25, 26, 27], "short": 22, "cut": 22, "simpl": [2, 4, 11, 22, 23, 24, 26, 27], "servic": 22, "st": 22, "append": 22, "id": [0, 2, 4, 5, 6, 10, 22, 23], "endpoint": [2, 4, 17, 18, 22], "must": [2, 7, 8, 9, 11, 22, 23, 24], "json": 22, "allow": [11, 22, 23, 24, 27], "qualifi": [11, 22], "retriev": [0, 22, 27], "new": [0, 2, 5, 6, 8, 22, 23, 25, 26, 27], "receiv": 22, "possess": [22, 27], "describ": [9, 22, 23, 24, 26], "correspond": [22, 23, 26, 27], "further": [22, 23], "A": [0, 9, 11, 14, 22, 23, 27], "under": [0, 22, 26], "intention": [22, 23], "_not_": 22, "directli": [0, 22, 23, 27], "ani": [2, 5, 6, 8, 22, 23, 24, 27], "idea": [22, 23, 27], "across": 22, "howev": [22, 23, 26], "everi": [22, 23, 27], "_origin_": 22, "indic": [7, 22, 23, 25, 26], "authorit": [11, 22, 23, 27], "itself": [0, 22, 23, 27], "product": 22, "extern": [22, 23, 27], "author": [22, 23], "domain": [2, 4, 9, 11, 22, 27], "ethnic": [22, 24], "cadsr": 22, "public": 22, "2016566": 22, "five": [22, 26], "integr": [22, 24], "certain": [7, 22, 23], "establish": 22, "specifi": [2, 4, 22, 26, 27], "primari": 22, "fulltext": [2, 7, 22], "lucen": [2, 7, 22], "origin_definit": [22, 23, 27], "box": 22, "like": [22, 26], "over": [2, 7, 22, 24], "entir": [22, 23], "regular": 22, "btree": 22, "highli": 22, "recommend": 22, "fast": 22, "respons": [22, 23], "In": [22, 23, 26, 27], "unvers": 22, "combin": [5, 6, 22], "point": [9, 11, 22, 23, 25, 26, 27], "notat": 22, "below": [22, 26], "n": [14, 22, 26, 27], "That": [22, 23, 25], "onli": [9, 13, 14, 22, 24, 27], "p": [14, 22, 26, 27], "One": [10, 22, 23, 27], "satisfi": 22, "condit": [13, 14, 22], "hold": [5, 6, 22], "distinct": [22, 23], "q": 22, "f": [18, 22], "among": [22, 23], "implic": 22, "form": [22, 23], "namespac": 22, "r": [14, 22], "": [2, 4, 5, 6, 9, 10, 11, 22, 23, 26, 27], "has_src": [5, 6, 22, 27], "has_dst": [5, 6, 22, 27], "d": 22, "value_domain": [2, 4, 22, 26, 27], "value_set": [2, 4, 9, 11, 22, 26, 27], "v": 22, "has_value_set": [22, 26], "t": [0, 5, 6, 9, 14, 22, 27], "origin_nam": [5, 6, 22, 23, 27], "origin_id": [22, 23, 27], "origin_vers": [22, 27], "c": 22, "k": [22, 24], "where": [13, 14, 22, 23], "exactli": [22, 23], "n1": 22, "n2": 22, "two": [5, 6, 22, 23, 26, 27], "whose": 26, "except": [0, 6], "ident": 23, "abov": [22, 23], "shall": 22, "upon": 22, "longer": 22, "old": 22, "again": [22, 23], "relax": 22, "modulo": 22, "_to": [22, 25, 26, 27], "_from": [2, 8, 22, 25, 26, 27], "some": [5, 6, 9, 22, 23, 27], "formal": [22, 23], "rule": 22, "mani": [22, 24, 27], "consid": [22, 23], "name": [0, 2, 4, 7, 11, 14, 22, 23, 24, 26, 27], "demograph": 22, "breed": 22, "persist": 22, "meet": [22, 23], "thought": 22, "plai": 22, "given": [2, 4, 5, 6, 9, 10, 22, 23, 24, 27], "purpos": [22, 23], "often": [22, 23], "desir": [0, 22], "alreadi": [0, 2, 3, 8, 22], "been": [0, 22], "elsewher": [22, 23], "case": [22, 23, 24, 25, 27], "compli": 22, "system": [22, 23, 27], "being": [0, 22], "interoper": [22, 23], "peer": 22, "larger": 22, "element": [0, 22, 23], "sometim": 22, "call": [22, 23, 24, 27], "express": 22, "rather": [22, 23], "than": [22, 23, 27], "univers": [22, 23], "connect": [2, 4, 5, 6, 9, 22, 23, 24, 26, 27], "own": [0, 22, 23, 26, 27], "act": 22, "hub": 22, "annot": [9, 22, 23], "definit": [2, 7, 22, 23, 24], "figur": [22, 23], "exemplifi": 22, "pattern": [14, 21, 26, 27], "note": [5, 6, 7, 9, 22, 24, 26, 27], "explicitli": [22, 23], "intend": [22, 23], "accept": [5, 6, 22, 23, 27], "aggreg": [22, 23, 27], "list": [2, 4, 5, 6, 9, 11, 22, 23, 27], "both": [2, 5, 6, 7, 9, 22, 23], "here": [22, 24, 25, 27], "primary_sit": 22, "anatomic_loc": 22, "share": [22, 23], "while": [22, 23], "sample_typ": [22, 27], "borrow": 22, "blood": 22, "inter": 22, "synonymi": [22, 23], "assert": [22, 26], "equival": 22, "transform": [22, 23], "synonym": [5, 6, 22, 23], "backend": 22, "made": [0, 22, 27], "expert": [22, 23], "who": [22, 23], "opinion": [22, 23], "capabl": [22, 23], "drive": 22, "our": [22, 23], "manag": [0, 2, 4, 9, 22, 23], "open": [22, 24], "abl": [22, 23], "track": [22, 23], "branch": 22, "develop": [22, 23], "extrem": 22, "upcom": 22, "featur": [22, 23], "latest": [22, 24], "user": [2, 4, 5, 6, 22, 23, 27], "tap": 22, "process": [22, 26], "natur": [22, 23, 27], "place": [22, 23, 26], "incorpor": [22, 23], "systemat": 22, "approv": 22, "releas": 22, "ci": 22, "cd": 22, "action": 22, "jenkin": 22, "automat": 22, "determinist": 22, "unambigu": 22, "error": [0, 5, 6, 22], "do": [0, 9, 10, 22, 23], "intent": [22, 23], "clear": 22, "There": 22, "wai": [22, 23], "least": 22, "wip": 22, "without": [9, 14, 23], "profus": 23, "special": [23, 26], "enough": 23, "separ": [0, 22, 23, 24, 25], "semat": [], "goal": 23, "independ": 23, "practic": [22, 23], "exist": [2, 3, 5, 6, 9, 10, 15, 23, 26], "aspect": 23, "semant": [11, 23, 27], "encourag": 23, "reus": [9, 23], "substructur": 23, "extent": 23, "succe": 23, "yield": 23, "contribut": 23, "project": 23, "program": [23, 27], "might": 23, "particip": [9, 23, 27], "similar": 23, "meant": [23, 27], "easili": 23, "perhap": 23, "curat": 23, "qualiti": 23, "devis": 23, "record": [0, 2, 4, 23, 25], "Its": 23, "ncit": 23, "nci": 23, "nih": [], "gov": [], "ncitbrows": [], "_": [], "assist": 23, "rapidli": 23, "resourc": 23, "character": 23, "augment": 23, "scientif": 23, "consider": 23, "polici": 23, "milieu": 23, "oper": [23, 26, 27], "lead": 23, "usag": 23, "easi": 23, "intuit": 23, "subject": [23, 27], "matter": [13, 23, 26], "support": [6, 7, 8, 9, 23, 27], "regard": 23, "examgpl": [], "straightforward": 23, "manipul": [0, 9, 16, 23], "underli": 23, "transpar": 23, "worri": 23, "about": [23, 25], "whether": [0, 9, 23, 24, 27], "she": 23, "current": [2, 4, 23, 27], "ecosystem": 23, "accur": 23, "respect": [9, 23], "activ": [0, 23], "anchor": 23, "virtu": 23, "capac": 23, "reflect": 23, "those": 23, "rendit": 23, "lag": 23, "behind": 23, "immedi": 23, "cover": 23, "yet": [0, 23], "still": [23, 27], "state": [9, 23], "quickli": 23, "gap": 23, "encount": 23, "captur": 23, "logic": 23, "conceptu": 23, "abstract": 23, "inde": 23, "secondari": 23, "main": [23, 27], "fnlcr": 23, "bac": 23, "cto": 23, "veri": [23, 27], "close": [2, 4, 23], "physic": 23, "nativ": 23, "configur": [0, 23], "littl": 23, "rdbm": 23, "uml": 23, "artifact": 23, "primarili": 23, "pragmat": 23, "constitu": 23, "ontologi": 23, "solv": 23, "problem": 23, "abid": 23, "strictli": 23, "ruleset": 23, "patient": 23, "english": 23, "vernacular": 23, "clinic": [23, 24], "trial": [23, 24], "survei": 23, "healthi": 23, "former": 23, "c16960": 23, "latter": [23, 27], "studi": 23, "c142710": 23, "task": 23, "dataset": 23, "deriv": 23, "order": [13, 14, 23], "compar": 23, "analog": [23, 27], "align": 23, "impli": 23, "basic": 23, "almost": [23, 26], "render": [14, 23], "usefulli": 23, "properti": [0, 2, 4, 5, 6, 7, 9, 11, 13, 14, 18, 23, 24, 26, 27], "variabl": [2, 4, 14, 23], "column": 23, "slot": 23, "actual": [0, 23], "conciev": 23, "translat": 23, "tabl": 23, "foreign": 23, "inherit": 23, "attribut": [0, 2, 3, 5, 9, 10, 11, 23, 24, 25, 26], "field": 23, "although": 23, "could": 23, "emul": 23, "how": 23, "tend": 23, "code": [23, 26, 27], "chosen": 23, "datum": 23, "adopt": 23, "thesauru": 23, "build": [23, 27], "control": 23, "edg": [0, 5, 6, 9, 11, 14, 23, 26, 27], "role": 23, "intellectu": 23, "induc": 23, "essenti": [11, 23], "just": [23, 26, 27], "present": [2, 4, 7, 9, 23, 24, 27], "construct": [16, 23], "diagnosi": 23, "help": [5, 6, 23], "cross": 23, "analysi": 23, "infom": 23, "bear": 23, "has_concept": [23, 26], "direct": [23, 27], "instead": [5, 6, 23], "imput": 23, "said": 23, "continu": 23, "c15220": 23, "origin_cod": 23, "simpli": [23, 27], "put": [0, 10, 23, 27], "disallow": 23, "indirect": 23, "synony": 23, "come": [23, 27], "anoth": 23, "sdtm": 23, "mhedttyp": 23, "cdisc": 23, "_addition_": [], "notion": 23, "agre": 23, "becaus": 23, "previou": [23, 26], "interpret": [10, 23], "reli": 23, "knowledg": 23, "situat": 23, "precis": [23, 26], "bridg": 23, "number": 23, "step": 23, "beyond": 23, "object": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 18, 19, 23, 24, 25], "format": 23, "tripl": [5, 6, 14, 23], "parent": 23, "child": 23, "mention": 23, "fulli": [11, 23, 27], "visibl": 23, "per": 23, "se": 23, "end": [9, 23], "implement": [0, 9, 11, 23], "hierarch": 23, "broader": 23, "is_a": 23, "sko": 23, "think": 23, "layer": 23, "three": [23, 26], "view": 23, "team": 23, "stakehold": 23, "dai": 23, "right": 23, "awai": 23, "approach": [23, 27], "seem": 23, "human": [10, 11, 23], "readabl": 23, "otherwis": 23, "talk": 23, "But": 23, "conform": 23, "downstream": [23, 27], "local": [23, 24, 27], "intern": [23, 24, 27], "hand": 23, "first": [23, 26], "incom": [2, 4, 23], "content": 23, "kept": 23, "known": 23, "remind": 23, "necessarili": 23, "we": [22, 23, 26], "collect": [0, 13, 23, 26, 27], "clinical_diagnosi": 23, "spec": [9, 23, 24], "comput": 23, "c15607": 23, "label": [2, 4, 7, 14, 15, 23, 26, 27], "easier": [23, 27], "evolv": 23, "_interaction_": 23, "anonym": [14, 23], "cumbersom": 23, "benefit": 23, "attach": [2, 4, 9, 22, 23], "synoym": 23, "correct": 23, "veterinari": 23, "veterinary_diagnosi": 23, "is_related_to": 23, "suffic": 23, "found": [5, 6, 9, 22, 23, 24], "later": [2, 4, 23, 25], "gdc": [], "blur": [], "written": 24, "section": 24, "top": 24, "level": 24, "propdefinit": 24, "belong": [0, 24, 27], "enumer": [11, 24], "particular": [24, 26], "cardin": 24, "etc": 24, "avail": [2, 4, 24, 27], "canin": 24, "syntax": 24, "against": [0, 24, 27], "jsonschema": 24, "live": 24, "bento_mdf": 24, "instal": 24, "git": 24, "egg": 24, "subdir": 24, "subdirectori": 24, "driver": [2, 4, 9, 24], "yml": 24, "test": [24, 26], "modifi": [9, 24, 27], "No": 24, "spread": 24, "typic": 24, "merg": [2, 5, 6, 8, 11, 13, 24], "keyword": 24, "argument": [0, 13, 24, 27], "url": [2, 4, 24, 27], "resolv": 24, "load": [2, 3, 10, 24], "ctdc": 24, "io": 24, "desc": [24, 27], "ctdc_model_fil": 24, "ctdc_model_properties_fil": 24, "ctdc_model": 24, "x": 24, "specimen": 24, "metastatic_sit": 24, "nucleic_acid": 24, "ihc_assay_report": 24, "sequencing_assai": 24, "variant_report": 24, "snv_variant": 24, "delins_vari": 24, "indel_vari": 24, "copy_number_vari": 24, "gene_fusion_vari": 24, "assignment_report": 24, "disease_eligibility_criterion": 24, "drug_eligibility_criterion": 24, "arm": 24, "clinical_tri": 24, "show_nod": 24, "case_id": 24, "source_id": 24, "gender": 24, "race": 24, "patient_statu": 24, "current_step": 24, "diseas": 24, "ctep_categori": 24, "ctep_subcategori": 24, "meddra_cod": 24, "prior_drug": 24, "extent_of_diseas": 24, "ecog_performance_statu": 24, "write_mdf": 24, "dictionari": [24, 26], "option": [2, 4, 13, 24], "write": [2, 8, 24], "encod": 24, "mdf_dict": 24, "your_model": 24, "your_mdf": 24, "w": [5, 6, 24], "everyth": 24, "els": 24, "mdb": [1, 9, 11, 19, 25, 27], "machineri": [0, 2, 4, 10, 25], "decor": [2, 4, 5, 6, 8, 25], "storag": 25, "lifetim": [25, 26], "histori": 25, "walk": 25, "_prev": [25, 26, 27], "_next": [25, 26, 27], "turn": 25, "count": [5, 6, 14, 15, 25], "true": [0, 2, 5, 6, 7, 9, 12, 18, 25, 27], "set_version_count": [0, 9, 25], "1": [0, 2, 5, 6, 8, 14, 19, 25], "until": 25, "fals": [0, 5, 6, 9, 10, 13, 14, 25], "add_nod": [9, 25, 26, 27], "bump": 25, "subsequ": 25, "case2": 25, "bento_meta": [19, 26], "realli": 26, "tell": 26, "you": [26, 27], "declar": [0, 26], "dot": 26, "magic": [0, 26], "bookkeep": [0, 26], "object_map": [0, 1, 19, 26], "objectmap": [10, 26], "next": [0, 26], "attspec_": [0, 11, 26], "mapspec_": [0, 11, 26], "rel": [5, 6, 26], "end_cl": 26, "scalar": [26, 27], "four": 26, "dict": [0, 2, 4, 5, 6, 7, 9, 11, 26, 27], "look": [9, 26], "def": 26, "unit": [26, 27], "is_requir": [26, 27], "valueset": [2, 4, 11, 26, 27], "mynod": 26, "myprop": 26, "add_properti": 26, "underscor": 26, "throughout": 27, "metamodel": [0, 2, 4, 9, 10, 27], "applic": 27, "emploi": 27, "understood": 27, "mode": 27, "subclass": [6, 7, 8, 9, 10, 11, 27], "method": [0, 9, 10, 27], "obtain": [5, 6, 27], "print": 27, "referenc": 27, "of_sampl": 27, "diagram": 27, "src": [5, 6, 9, 11, 27], "dst": [5, 6, 9, 11, 27], "encapsul": 27, "programm": 27, "ignor": 27, "concentr": 27, "relev": 27, "tupl": [2, 4, 5, 6, 8, 11, 27], "retriv": 27, "triplet": [11, 27], "depend": 27, "node_prop": 27, "edge_prop": 27, "conveni": 27, "ensur": [0, 27], "obect": 27, "extend": 27, "loos": 27, "tri": 27, "reliev": 27, "guard": 27, "deviat": 27, "add_edg": [9, 27], "add_prop": [9, 27], "add_term": [9, 27], "rm_node": [9, 27], "rm_edg": [9, 27], "rm_prop": [9, 27], "rm_term": [9, 27], "soon": 27, "either": 27, "src_node": 27, "sampl": 27, "dst_node": 27, "of_cas": 27, "regist": [2, 4, 27], "deregist": 27, "destroi": 27, "other_model": 27, "throw": [0, 27], "hide": 27, "normal": 27, "tumor": 27, "same_term": 27, "forth": 27, "cycl": 27, "instrument": [0, 27], "rest": 27, "dget": [0, 9, 27], "dput": [0, 9, 27], "equal": 27, "disturb": 27, "unless": [0, 27], "refresh": [0, 9, 10, 27], "overwrit": 27, "execut": 27, "correctli": 27, "convert": 27, "delet": [0, 10, 27], "rm": [0, 10, 27], "detach": [10, 27], "db": [0, 2, 3, 10, 27], "posess": 27, "_id": 27, "_commit": [2, 3, 5, 6, 27], "item_domain": 27, "is_extern": 27, "arbitrari": [2, 4, 8, 11, 27], "liquibas": 22, "platform": 22, "along": [5, 6, 22], "plugin": 22, "audit": 22, "revers": 22, "liquichang": 22, "collvalu": 0, "argerror": 0, "init": [0, 11], "none": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 14], "rare": 0, "redefin": 0, "__setattr__": [0, 11], "__getattr__": 0, "hood": 0, "privat": 0, "rais": [0, 6], "dirti": 0, "flag": 0, "removed_ent": 0, "owner": [0, 10], "pvt_attr": [0, 11], "pvt": 0, "neoid": 0, "attspec": [0, 10, 11], "mapspec": [0, 10, 11], "default": [0, 2, 4, 5, 6, 7, 11], "version_count": 0, "versioning_on": 0, "classmethod": [0, 9, 10, 12, 14, 18], "appli": [0, 9], "param": [0, 2, 3, 4, 5, 6, 8, 9, 13, 18], "boolean": [0, 9], "ct": [0, 9], "integ": [0, 9], "counter": [0, 9], "int": [0, 9, 14], "propnam": 0, "get_by_id": [0, 10], "clear_removed_ent": 0, "set_with_dict": 0, "set_with_nod": 0, "set_with_ent": 0, "ent": [0, 2, 3, 7, 9, 12, 14, 15], "__getattribute__": 0, "getattr": 0, "self": [0, 11, 13, 15, 18], "setattr": [0, 11], "version_m": 0, "_set_declared_attr": 0, "__delattr__": 0, "delattr": 0, "_check_init": 0, "_check_valu": 0, "att": [0, 10], "dup": 0, "too": 0, "deepli": 0, "mainli": 0, "forc": [0, 10], "cach": [0, 10, 18], "don": 0, "disrupt": 0, "surviv": 0, "attr_doc": 0, "docstr": 0, "owner_kei": 0, "userdict": 0, "hous": [0, 9], "hook": 0, "mark": [0, 2, 3], "protect": 0, "arbitrarili": 0, "__setitem__": 0, "paramet": [0, 9, 13], "__getitem__": 0, "__delitem__": 0, "mdb_tool": [1, 2, 19], "loader": [1, 2, 19], "searchabl": [1, 2, 19], "writeabl": [1, 2, 5, 6, 19], "claus": [1, 16, 17, 19], "_engin": [1, 17, 19], "makeq": [1, 17, 19], "effici": [2, 4], "uri": [2, 4, 5, 6], "o": [2, 4], "environ": [2, 4], "neo4j_mdb_uri": [2, 4], "neo4j_mdb_us": [2, 4], "password": [2, 4, 5, 6], "neo4j_mdb_pass": [2, 4], "_txfn": [2, 4], "bolt_url": [2, 4], "bolt": [2, 4], "protocol": [2, 4], "env": [2, 4], "str": [2, 3, 4, 5, 6, 8, 9, 11, 13, 15, 18], "usernam": [2, 4], "register_txfn": [2, 4], "fn": [2, 4], "transact": [2, 4, 8], "doc": [2, 4], "html": [2, 4], "get_model_handl": [2, 4], "get_model_nod": [2, 4], "get_nodes_by_model": [2, 4], "get_model_nodes_edg": [2, 4], "path": [2, 4, 5, 6, 12, 14, 17, 18], "get_node_edges_by_node_id": [2, 4], "outgo": [2, 4], "near_typ": [2, 4], "far_typ": [2, 4], "rln": [2, 4], "far_nod": [2, 4], "get_node_and_props_by_node_id": [2, 4], "get_nodes_and_props_by_model": [2, 4], "get_prop_node_and_domain_by_prop_id": [2, 4], "get_valueset_by_id": [2, 4], "constitut": [2, 4], "get_valuesets_by_model": [2, 4], "get_term_by_id": [2, 4], "get_props_and_terms_by_model": [2, 4], "get_origin": [2, 4], "get_origin_by_id": [2, 4], "oid": [2, 4], "get_tags_for_entity_by_id": [2, 4], "get_tags_and_valu": [2, 4], "pair": [2, 4, 22], "get_entities_by_tag": [2, 4], "tag_kei": [2, 4], "tag_valu": [2, 4], "get_with_stat": [2, 4], "qry": [2, 4, 8], "parm": [2, 4, 5, 6, 8], "make_nanoid": [2, 4], "alphabet": [2, 4], "abcdefghijkmnopqrstuvwxyzabcdefghjkmnpqrstuvwxyz0123456789": [2, 4], "size": [2, 4], "6": [2, 4, 8], "read_txn": [2, 4], "func": [2, 4, 8, 15], "qry_str": [2, 4, 8], "param_dict": [2, 4, 8], "read_txn_valu": [2, 4], "values_kei": [2, 4], "read_txn_data": [2, 4], "writeablemdb": [2, 5, 6, 8], "arg": [2, 7, 8, 13, 14, 15], "kwarg": [2, 7, 8, 13], "put_with_stat": [2, 8], "put_term_with_origin": [2, 8], "commit": [2, 3, 8], "assign": [2, 5, 6, 8], "char": [2, 8], "sha1": [2, 8], "searchablemdb": [2, 7], "available_index": [2, 7], "index_nam": [2, 7], "entity_typ": [2, 7], "query_index": [2, 7], "qstring": [2, 7], "skip": [2, 7], "limit": [2, 7], "score": [2, 7], "search_entity_handl": [2, 7], "search_term": [2, 7], "search_valu": [2, 7], "search_definit": [2, 7], "load_mdf": [2, 3], "load_model": [2, 3], "load_model_stat": [2, 3], "de": [2, 3], "novo": [2, 3], "overrid": [2, 3], "_centiti": 3, "_tag_stat": 3, "cent": 3, "_prop_stat": 3, "_annotate_stat": 3, "toolsmdb": [5, 6], "get_entity_attr": [5, 6], "output_str": [5, 6], "bool": [5, 6], "output_as_str": [5, 6], "usabl": [5, 6], "write_txn": [5, 6, 8], "detach_delete_ent": [5, 6], "get_entity_count": [5, 6], "uniqu": [5, 6, 9], "get_triple_count": [5, 6], "src_entiti": [5, 6], "dst_entiti": [5, 6], "create_ent": [5, 6], "get_concept": [5, 6], "create_relationship": [5, 6], "link_synonym": [5, 6], "entity_1": [5, 6], "entity_2": [5, 6], "add_missing_ent_1": [5, 6], "add_missing_ent_2": [5, 6], "take": [5, 6], "determin": [5, 6], "doesn": [5, 6], "add_missing_": [5, 6], "give": [5, 6], "make_nano": [5, 6], "_get_prop_nano": [5, 6], "node_handl": [5, 6], "_get_edge_nano": [5, 6], "src_handl": [5, 6], "dst_handl": [5, 6], "get_entity_nano": [5, 6], "extra_handle_1": [5, 6], "extra_handle_2": [5, 6], "identif": [5, 6], "_2": [5, 6], "get_or_make_nano": [5, 6], "get_term_nano": [5, 6], "get_predicate_nano": [5, 6], "get_predicate_relationship": [5, 6], "link_concepts_to_pred": [5, 6], "concept_1": [5, 6], "concept_2": [5, 6], "predicate_handl": [5, 6], "exactmatch": [5, 6], "has_subject": [5, 6], "has_object": [5, 6], "merge_two_concept": [5, 6], "_get_all_term": [5, 6], "get_term_synonym": [5, 6], "threshhold": [5, 6], "float": [5, 6], "8": [5, 6], "potential_synonyms_to_csv": [5, 6], "input_data": [5, 6], "output_path": [5, 6], "output": [5, 6], "csv": [5, 6], "link_term_synonyms_csv": [5, 6], "csv_path": [5, 6], "syonym": [5, 6], "get_property_synonym": [5, 6], "get_entity_typ": [5, 6], "log_ini_path": 6, "log_file_path": 6, "logger": 6, "entnotfounderror": 6, "shouldn": 6, "entityhandl": 7, "termvalu": 7, "termdefn": 7, "termvaluedefn": 7, "drv": [9, 10], "deleg": 9, "keep": 9, "clarifi": 9, "happen": 9, "Not": [9, 11, 15], "assign_edge_end": 9, "move": 9, "edges_in": 9, "edges_out": 9, "edges_bi": 9, "edges_by_src": 9, "edges_by_dst": 9, "edges_by_typ": 9, "edge_handl": 9, "noop": 9, "unset": 9, "mostli": 10, "consumpt": [10, 11], "cl": 10, "clear_cach": 10, "cls_by_label": 10, "lbl": 10, "keys_by_cls_and_reln": 10, "qcl": 10, "reln": 10, "_quote_v": 10, "obj": 10, "get_by_node_nanoid": 10, "prototyp": 10, "tgt": 10, "target": 10, "drop": 10, "tx": 10, "get_own": 10, "get_q": 10, "get_by_id_q": 10, "get_by_node_nanoid_q": 10, "get_attr_q": 10, "get_owners_q": 10, "put_q": 10, "put_attr_q": 10, "rm_q": 10, "rm_attr_q": 10, "_check_values_list": 10, "mergespec": 11, "clsname": 11, "rtype": 11, "3": 11, "avail_func": [12, 18], "use_param": [12, 13], "set_path": [12, 18], "pars": 12, "tok": 12, "_process_nod": 12, "block": 12, "_process_prop": 12, "_process_edg": 12, "_process_func": 12, "_create_stat": 12, "pad": 12, "_walk": 12, "pth": [12, 18], "templat": [13, 15], "joiner": [13, 15], "static": [13, 15], "__str__": [13, 15, 18], "match": [13, 14], "op": 13, "AND": [13, 15], "join": 13, "With": 13, "WITH": 13, "oncreateset": 13, "ON": 13, "onmatchset": 13, "optionalmatch": 13, "unwind": 13, "AS": 13, "termin": 13, "compris": 13, "countmak": 14, "max": 14, "10000": 14, "_reset_count": 14, "_add_prop": 14, "relate_to": 14, "_dir": 14, "_right": 14, "m": 14, "varlenr": 14, "min_len": 14, "max_len": 14, "length": 14, "n0": 14, "r0": 14, "parameter": 14, "nodirt": 14, "directionless": 14, "partial": 14, "overlap": 14, "_create_path": 14, "_append": 14, "_a": 14, "alia": 14, "copi": 14, "_plain": 14, "_anon": 14, "_var": 14, "_plain_var": 14, "_pattern": [14, 15], "_condit": [14, 15], "_return": [14, 15], "And": 15, "Or": 15, "OR": 15, "is_nul": 15, "is_not_nul": 15, "programmat": [16, 17], "pfx": 18, "use_cach": 18, "path_id": 18, "load_path": 18, "flo": 18, "auto": 19, "sphinx": 19, "autoapi": 19, "noindex": [], "most": 22, "has_tag": 22}, "objects": {"": [[27, 0, 1, "", "Concept"], [27, 0, 1, "", "Edge"], [27, 0, 1, "", "Entity"], [27, 0, 1, "", "Node"], [27, 0, 1, "", "Origin"], [27, 0, 1, "", "Predicate"], [27, 0, 1, "", "Property"], [27, 0, 1, "", "Tag"], [27, 0, 1, "", "Term"], [1, 1, 0, "-", "bento_meta"]], "bento_meta": [[0, 1, 0, "-", "entity"], [2, 1, 0, "-", "mdb"], [9, 1, 0, "-", "model"], [10, 1, 0, "-", "object_map"], [11, 1, 0, "-", "objects"], [17, 1, 0, "-", "util"]], "bento_meta.entity": [[0, 2, 1, "", "ArgError"], [0, 0, 1, "", "CollValue"], [0, 0, 1, "", "Entity"]], "bento_meta.entity.CollValue": [[0, 3, 1, "", "__delitem__"], [0, 3, 1, "", "__getitem__"], [0, 3, 1, "", "__setitem__"], [0, 4, 1, "", "owner"], [0, 4, 1, "", "owner_key"], [0, 3, 1, "", "version_me"]], "bento_meta.entity.Entity": [[0, 3, 1, "", "__delattr__"], [0, 3, 1, "", "__getattr__"], [0, 3, 1, "", "__getattribute__"], [0, 3, 1, "", "__setattr__"], [0, 3, 1, "", "_check_init"], [0, 3, 1, "", "_check_value"], [0, 3, 1, "", "_set_declared_attr"], [0, 3, 1, "", "attr_doc"], [0, 5, 1, "", "attspec"], [0, 5, 1, "", "attspec_"], [0, 4, 1, "", "belongs"], [0, 3, 1, "", "clear_removed_entities"], [0, 3, 1, "", "default"], [0, 5, 1, "", "defaults"], [0, 3, 1, "", "delete"], [0, 3, 1, "", "dget"], [0, 4, 1, "", "dirty"], [0, 3, 1, "", "dput"], [0, 3, 1, "", "dup"], [0, 3, 1, "", "get_by_id"], [0, 3, 1, "", "mapspec"], [0, 5, 1, "", "mapspec_"], [0, 5, 1, "id0", "object_map"], [0, 5, 1, "", "pvt_attr"], [0, 4, 1, "", "removed_entities"], [0, 3, 1, "", "rm"], [0, 3, 1, "", "set_version_count"], [0, 3, 1, "", "set_with_dict"], [0, 3, 1, "", "set_with_entity"], [0, 3, 1, "", "set_with_node"], [0, 5, 1, "", "version_count"], [0, 3, 1, "", "version_me"], [0, 4, 1, "", "versioned"], [0, 3, 1, "", "versioning"], [0, 5, 1, "", "versioning_on"]], "bento_meta.mdb": [[2, 0, 1, "", "MDB"], [2, 0, 1, "", "SearchableMDB"], [2, 0, 1, "", "WriteableMDB"], [2, 6, 1, "", "load_mdf"], [2, 6, 1, "", "load_model"], [2, 6, 1, "", "load_model_statements"], [3, 1, 0, "-", "loaders"], [2, 6, 1, "", "make_nanoid"], [4, 1, 0, "-", "mdb"], [5, 1, 0, "-", "mdb_tools"], [2, 6, 1, "", "read_txn"], [2, 6, 1, "", "read_txn_data"], [2, 6, 1, "", "read_txn_value"], [7, 1, 0, "-", "searchable"], [8, 1, 0, "-", "writeable"]], "bento_meta.mdb.MDB": [[2, 5, 1, "", "_txfns"], [2, 3, 1, "", "close"], [2, 3, 1, "", "get_entities_by_tag"], [2, 3, 1, "", "get_model_handles"], [2, 3, 1, "", "get_model_nodes"], [2, 3, 1, "", "get_model_nodes_edges"], [2, 3, 1, "", "get_node_and_props_by_node_id"], [2, 3, 1, "", "get_node_edges_by_node_id"], [2, 3, 1, "", "get_nodes_and_props_by_model"], [2, 3, 1, "", "get_nodes_by_model"], [2, 3, 1, "", "get_origin_by_id"], [2, 3, 1, "", "get_origins"], [2, 3, 1, "", "get_prop_node_and_domain_by_prop_id"], [2, 3, 1, "", "get_props_and_terms_by_model"], [2, 3, 1, "", "get_tags_and_values"], [2, 3, 1, "", "get_tags_for_entity_by_id"], [2, 3, 1, "", "get_term_by_id"], [2, 3, 1, "", "get_valueset_by_id"], [2, 3, 1, "", "get_valuesets_by_model"], [2, 3, 1, "", "get_with_statement"], [2, 3, 1, "", "register_txfn"]], "bento_meta.mdb.SearchableMDB": [[2, 3, 1, "", "available_indexes"], [2, 3, 1, "", "query_index"], [2, 3, 1, "", "search_entity_handles"], [2, 3, 1, "", "search_terms"]], "bento_meta.mdb.WriteableMDB": [[2, 3, 1, "", "put_term_with_origin"], [2, 3, 1, "", "put_with_statement"]], "bento_meta.mdb.loaders": [[3, 6, 1, "", "_annotate_statements"], [3, 6, 1, "", "_cEntity"], [3, 6, 1, "", "_prop_statements"], [3, 6, 1, "", "_tag_statements"], [3, 6, 1, "", "load_mdf"], [3, 6, 1, "", "load_model"], [3, 6, 1, "", "load_model_statements"]], "bento_meta.mdb.mdb": [[4, 0, 1, "", "MDB"], [4, 6, 1, "", "make_nanoid"], [4, 6, 1, "", "read_txn"], [4, 6, 1, "", "read_txn_data"], [4, 6, 1, "", "read_txn_value"]], "bento_meta.mdb.mdb.MDB": [[4, 5, 1, "", "_txfns"], [4, 3, 1, "", "close"], [4, 3, 1, "", "get_entities_by_tag"], [4, 3, 1, "", "get_model_handles"], [4, 3, 1, "", "get_model_nodes"], [4, 3, 1, "", "get_model_nodes_edges"], [4, 3, 1, "", "get_node_and_props_by_node_id"], [4, 3, 1, "", "get_node_edges_by_node_id"], [4, 3, 1, "", "get_nodes_and_props_by_model"], [4, 3, 1, "", "get_nodes_by_model"], [4, 3, 1, "", "get_origin_by_id"], [4, 3, 1, "", "get_origins"], [4, 3, 1, "", "get_prop_node_and_domain_by_prop_id"], [4, 3, 1, "", "get_props_and_terms_by_model"], [4, 3, 1, "", "get_tags_and_values"], [4, 3, 1, "", "get_tags_for_entity_by_id"], [4, 3, 1, "", "get_term_by_id"], [4, 3, 1, "", "get_valueset_by_id"], [4, 3, 1, "", "get_valuesets_by_model"], [4, 3, 1, "", "get_with_statement"], [4, 3, 1, "", "register_txfn"]], "bento_meta.mdb.mdb_tools": [[5, 0, 1, "", "ToolsMDB"], [5, 6, 1, "", "get_entity_type"], [6, 1, 0, "-", "mdb_tools"]], "bento_meta.mdb.mdb_tools.ToolsMDB": [[5, 3, 1, "", "_get_all_terms"], [5, 3, 1, "", "_get_edge_nano"], [5, 3, 1, "", "_get_prop_nano"], [5, 3, 1, "", "create_entity"], [5, 3, 1, "", "create_relationship"], [5, 3, 1, "", "detach_delete_entity"], [5, 3, 1, "", "get_concepts"], [5, 3, 1, "", "get_entity_attrs"], [5, 3, 1, "", "get_entity_count"], [5, 3, 1, "", "get_entity_nano"], [5, 3, 1, "", "get_or_make_nano"], [5, 3, 1, "", "get_predicate_nanos"], [5, 3, 1, "", "get_predicate_relationship"], [5, 3, 1, "", "get_property_synonyms"], [5, 3, 1, "", "get_term_nanos"], [5, 3, 1, "", "get_term_synonyms"], [5, 3, 1, "", "get_triple_count"], [5, 3, 1, "", "link_concepts_to_predicate"], [5, 3, 1, "", "link_synonyms"], [5, 3, 1, "", "link_term_synonyms_csv"], [5, 3, 1, "", "make_nano"], [5, 3, 1, "", "merge_two_concepts"], [5, 3, 1, "", "potential_synonyms_to_csv"]], "bento_meta.mdb.mdb_tools.mdb_tools": [[6, 2, 1, "", "EntNotFoundError"], [6, 0, 1, "", "ToolsMDB"], [6, 6, 1, "", "get_entity_type"], [6, 7, 1, "", "log_file_path"], [6, 7, 1, "", "log_ini_path"], [6, 7, 1, "", "logger"]], "bento_meta.mdb.mdb_tools.mdb_tools.ToolsMDB": [[6, 3, 1, "", "_get_all_terms"], [6, 3, 1, "", "_get_edge_nano"], [6, 3, 1, "", "_get_prop_nano"], [6, 3, 1, "", "create_entity"], [6, 3, 1, "", "create_relationship"], [6, 3, 1, "", "detach_delete_entity"], [6, 3, 1, "", "get_concepts"], [6, 3, 1, "", "get_entity_attrs"], [6, 3, 1, "", "get_entity_count"], [6, 3, 1, "", "get_entity_nano"], [6, 3, 1, "", "get_or_make_nano"], [6, 3, 1, "", "get_predicate_nanos"], [6, 3, 1, "", "get_predicate_relationship"], [6, 3, 1, "", "get_property_synonyms"], [6, 3, 1, "", "get_term_nanos"], [6, 3, 1, "", "get_term_synonyms"], [6, 3, 1, "", "get_triple_count"], [6, 3, 1, "", "link_concepts_to_predicate"], [6, 3, 1, "", "link_synonyms"], [6, 3, 1, "", "link_term_synonyms_csv"], [6, 3, 1, "", "make_nano"], [6, 3, 1, "", "merge_two_concepts"], [6, 3, 1, "", "potential_synonyms_to_csv"]], "bento_meta.mdb.searchable": [[7, 0, 1, "", "SearchableMDB"]], "bento_meta.mdb.searchable.SearchableMDB": [[7, 3, 1, "", "available_indexes"], [7, 3, 1, "", "query_index"], [7, 3, 1, "", "search_entity_handles"], [7, 3, 1, "", "search_terms"]], "bento_meta.mdb.writeable": [[8, 0, 1, "", "WriteableMDB"], [8, 6, 1, "", "write_txn"]], "bento_meta.mdb.writeable.WriteableMDB": [[8, 3, 1, "", "put_term_with_origin"], [8, 3, 1, "", "put_with_statement"]], "bento_meta.model": [[9, 0, 1, "", "Model"]], "bento_meta.model.Model": [[9, 3, 1, "", "add_edge"], [9, 3, 1, "", "add_node"], [9, 3, 1, "", "add_prop"], [9, 3, 1, "", "add_terms"], [9, 3, 1, "", "annotate"], [9, 3, 1, "", "assign_edge_end"], [9, 3, 1, "", "contains"], [9, 3, 1, "", "dget"], [9, 3, 1, "", "dput"], [9, 4, 1, "", "drv"], [9, 3, 1, "", "edges_by"], [9, 3, 1, "", "edges_by_dst"], [9, 3, 1, "", "edges_by_src"], [9, 3, 1, "", "edges_by_type"], [9, 3, 1, "", "edges_in"], [9, 3, 1, "", "edges_out"], [9, 4, 1, "", "mdb"], [9, 3, 1, "", "rm_edge"], [9, 3, 1, "", "rm_node"], [9, 3, 1, "", "rm_prop"], [9, 3, 1, "", "rm_term"], [9, 3, 1, "", "set_version_count"], [9, 3, 1, "", "versioning"]], "bento_meta.object_map": [[10, 0, 1, "", "ObjectMap"]], "bento_meta.object_map.ObjectMap": [[10, 3, 1, "", "_check_values_list"], [10, 3, 1, "", "_quote_val"], [10, 3, 1, "", "add"], [10, 5, 1, "", "cache"], [10, 3, 1, "", "clear_cache"], [10, 3, 1, "", "cls_by_label"], [10, 3, 1, "", "drop"], [10, 3, 1, "", "get"], [10, 3, 1, "", "get_attr_q"], [10, 3, 1, "", "get_by_id"], [10, 3, 1, "", "get_by_id_q"], [10, 3, 1, "", "get_by_node_nanoid"], [10, 3, 1, "", "get_by_node_nanoid_q"], [10, 3, 1, "", "get_owners"], [10, 3, 1, "", "get_owners_q"], [10, 3, 1, "", "get_q"], [10, 3, 1, "", "keys_by_cls_and_reln"], [10, 3, 1, "", "put"], [10, 3, 1, "", "put_attr_q"], [10, 3, 1, "", "put_q"], [10, 3, 1, "", "rm"], [10, 3, 1, "", "rm_attr_q"], [10, 3, 1, "", "rm_q"]], "bento_meta.objects": [[11, 0, 1, "", "Concept"], [11, 0, 1, "", "Edge"], [11, 0, 1, "", "Node"], [11, 0, 1, "", "Origin"], [11, 0, 1, "", "Predicate"], [11, 0, 1, "", "Property"], [11, 0, 1, "", "Tag"], [11, 0, 1, "", "Term"], [11, 0, 1, "", "ValueSet"], [11, 6, 1, "", "mergespec"]], "bento_meta.objects.Concept": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Edge": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "defaults"], [11, 5, 1, "", "mapspec_"], [11, 4, 1, "", "triplet"]], "bento_meta.objects.Node": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Origin": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Predicate": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Property": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "defaults"], [11, 5, 1, "", "mapspec_"], [11, 5, 1, "", "pvt_attr"], [11, 4, 1, "", "terms"], [11, 4, 1, "", "values"]], "bento_meta.objects.Tag": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.Term": [[11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.objects.ValueSet": [[11, 3, 1, "", "__setattr__"], [11, 5, 1, "", "attspec_"], [11, 5, 1, "", "mapspec_"]], "bento_meta.util": [[12, 1, 0, "-", "_engine"], [16, 1, 0, "-", "cypher"], [18, 1, 0, "-", "makeq"]], "bento_meta.util._engine": [[12, 0, 1, "", "_engine"], [12, 7, 1, "", "avail_funcs"]], "bento_meta.util._engine._engine": [[12, 3, 1, "", "_create_statement"], [12, 3, 1, "", "_process_edge"], [12, 3, 1, "", "_process_func"], [12, 3, 1, "", "_process_node"], [12, 3, 1, "", "_process_prop"], [12, 3, 1, "", "_walk"], [12, 3, 1, "", "parse"], [12, 5, 1, "", "paths"], [12, 3, 1, "", "set_paths"]], "bento_meta.util.cypher": [[13, 1, 0, "-", "clauses"], [14, 1, 0, "-", "entities"], [15, 1, 0, "-", "functions"]], "bento_meta.util.cypher.clauses": [[13, 0, 1, "", "As"], [13, 0, 1, "", "Clause"], [13, 0, 1, "", "Collect"], [13, 0, 1, "", "Create"], [13, 0, 1, "", "Match"], [13, 0, 1, "", "Merge"], [13, 0, 1, "", "OnCreateSet"], [13, 0, 1, "", "OnMatchSet"], [13, 0, 1, "", "OptionalMatch"], [13, 0, 1, "", "Remove"], [13, 0, 1, "", "Return"], [13, 0, 1, "", "Set"], [13, 0, 1, "", "Statement"], [13, 0, 1, "", "Unwind"], [13, 0, 1, "", "Where"], [13, 0, 1, "", "With"]], "bento_meta.util.cypher.clauses.As": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Clause": [[13, 3, 1, "", "__str__"], [13, 3, 1, "", "context"], [13, 5, 1, "", "joiner"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Collect": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Create": [[13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Match": [[13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Merge": [[13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.OnCreateSet": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.OnMatchSet": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.OptionalMatch": [[13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Remove": [[13, 3, 1, "", "__str__"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Return": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Set": [[13, 3, 1, "", "__str__"], [13, 3, 1, "", "context"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Statement": [[13, 3, 1, "", "__str__"], [13, 4, 1, "", "params"]], "bento_meta.util.cypher.clauses.Unwind": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.Where": [[13, 3, 1, "", "__str__"], [13, 3, 1, "", "context"], [13, 5, 1, "", "joiner"], [13, 5, 1, "", "template"]], "bento_meta.util.cypher.clauses.With": [[13, 5, 1, "", "template"]], "bento_meta.util.cypher.entities": [[14, 0, 1, "", "Entity"], [14, 0, 1, "", "G"], [14, 0, 1, "", "N"], [14, 0, 1, "", "N0"], [14, 0, 1, "", "NoDirT"], [14, 0, 1, "", "P"], [14, 0, 1, "", "R"], [14, 0, 1, "", "R0"], [14, 0, 1, "", "T"], [14, 0, 1, "", "VarLenR"], [14, 6, 1, "", "_anon"], [14, 6, 1, "", "_as"], [14, 6, 1, "", "_condition"], [14, 6, 1, "", "_pattern"], [14, 6, 1, "", "_plain"], [14, 6, 1, "", "_plain_var"], [14, 6, 1, "", "_return"], [14, 6, 1, "", "_var"], [14, 6, 1, "", "countmaker"]], "bento_meta.util.cypher.entities.Entity": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "_add_props"], [14, 3, 1, "", "_reset_counter"], [14, 3, 1, "", "condition"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.G": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "_append"], [14, 3, 1, "", "_create_path"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 3, 1, "", "edges"], [14, 3, 1, "", "nodes"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.N": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 3, 1, "", "pattern"], [14, 3, 1, "", "relate_to"]], "bento_meta.util.cypher.entities.N0": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.NoDirT": [[14, 3, 1, "", "edge"], [14, 3, 1, "", "edges"], [14, 3, 1, "", "nodes"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.P": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 5, 1, "", "parameterize"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.R": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 3, 1, "", "pattern"], [14, 3, 1, "", "relate"]], "bento_meta.util.cypher.entities.R0": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.T": [[14, 3, 1, "", "Return"], [14, 3, 1, "", "condition"], [14, 5, 1, "", "count"], [14, 3, 1, "", "edge"], [14, 3, 1, "", "edges"], [14, 3, 1, "", "nodes"], [14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.entities.VarLenR": [[14, 3, 1, "", "pattern"]], "bento_meta.util.cypher.functions": [[15, 0, 1, "", "And"], [15, 0, 1, "", "Func"], [15, 0, 1, "", "Not"], [15, 0, 1, "", "Or"], [15, 6, 1, "", "_condition"], [15, 6, 1, "", "_pattern"], [15, 6, 1, "", "_return"], [15, 0, 1, "", "count"], [15, 0, 1, "", "exists"], [15, 0, 1, "", "group"], [15, 0, 1, "", "is_not_null"], [15, 0, 1, "", "is_null"], [15, 0, 1, "", "labels"]], "bento_meta.util.cypher.functions.And": [[15, 3, 1, "", "context"], [15, 5, 1, "", "joiner"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.Func": [[15, 5, 1, "", "As"], [15, 3, 1, "", "__str__"], [15, 3, 1, "", "context"], [15, 5, 1, "", "joiner"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.Not": [[15, 3, 1, "", "context"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.Or": [[15, 3, 1, "", "context"], [15, 5, 1, "", "joiner"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.count": [[15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.exists": [[15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.group": [[15, 5, 1, "", "joiner"], [15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.is_not_null": [[15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.is_null": [[15, 5, 1, "", "template"]], "bento_meta.util.cypher.functions.labels": [[15, 5, 1, "", "template"]], "bento_meta.util.makeq": [[18, 0, 1, "", "Query"], [18, 7, 1, "", "avail_funcs"], [18, 6, 1, "", "f"]], "bento_meta.util.makeq.Query": [[18, 3, 1, "", "__str__"], [18, 5, 1, "", "cache"], [18, 3, 1, "", "load_paths"], [18, 4, 1, "", "params"], [18, 4, 1, "", "path_id"], [18, 5, 1, "", "paths"], [18, 3, 1, "", "set_paths"], [18, 4, 1, "", "statement"]], "concept": [[27, 5, 1, "", "terms"]], "edge": [[27, 5, 1, "", "concept"], [27, 5, 1, "", "dst"], [27, 5, 1, "", "handle"], [27, 5, 1, "", "is_required"], [27, 5, 1, "", "model"], [27, 5, 1, "", "multiplicity"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "props"], [27, 5, 1, "", "src"]], "entity": [[27, 5, 1, "", "_commit"], [27, 5, 1, "", "_from"], [27, 5, 1, "", "_id"], [27, 5, 1, "", "_next"], [27, 5, 1, "", "_prev"], [27, 5, 1, "", "_to"], [27, 5, 1, "", "desc"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "tags"]], "node": [[27, 5, 1, "", "concept"], [27, 5, 1, "", "handle"], [27, 5, 1, "", "model"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "props"]], "origin": [[27, 5, 1, "", "is_external"], [27, 5, 1, "", "name"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "url"]], "predicate": [[27, 5, 1, "", "handle"], [27, 5, 1, "", "object"], [27, 5, 1, "", "subject"]], "property": [[27, 5, 1, "", "concept"], [27, 5, 1, "", "handle"], [27, 5, 1, "", "is_required"], [27, 5, 1, "", "item_domain"], [27, 5, 1, "", "model"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "pattern"], [27, 5, 1, "", "units"], [27, 5, 1, "", "value_domain"], [27, 5, 1, "", "value_set"]], "tag": [[27, 5, 1, "", "key"], [27, 5, 1, "", "value"]], "term": [[27, 5, 1, "", "concept"], [27, 5, 1, "", "handle"], [27, 5, 1, "", "nanoid"], [27, 5, 1, "", "origin"], [27, 5, 1, "", "origin_definition"], [27, 5, 1, "", "origin_id"], [27, 5, 1, "", "origin_name"], [27, 5, 1, "", "origin_version"], [27, 5, 1, "", "value"]]}, "objtypes": {"0": "py:class", "1": "py:module", "2": "py:exception", "3": "py:method", "4": "py:property", "5": "py:attribute", "6": "py:function", "7": "py:data"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "module", "Python module"], "2": ["py", "exception", "Python exception"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"], "5": ["py", "attribute", "Python attribute"], "6": ["py", "function", "Python function"], "7": ["py", "data", "Python data"]}, "titleterms": {"load": 20, "an": [20, 27], "mdb": [2, 3, 4, 5, 6, 7, 8, 20, 21, 22, 23], "instanc": 20, "bento_meta": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 24], "metamodel": [21, 23], "databas": [21, 23, 27], "instal": 21, "content": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 21], "A": 21, "note": 21, "node": 21, "object": [11, 21, 26, 27], "properti": [21, 22], "attribut": [6, 12, 18, 21, 27], "indic": 21, "tabl": 21, "mainten": [], "principl": 23, "convent": 22, "entiti": [0, 14, 22, 23, 26], "requir": 22, "consist": 22, "index": 22, "need": 22, "addit": 22, "function": [2, 3, 4, 5, 6, 8, 11, 14, 15, 18, 22], "idempot": 22, "updat": [22, 26], "uniqu": 22, "exist": 22, "reus": 22, "semant": 22, "role": 22, "encod": 22, "map": [22, 26], "model": [9, 22, 23, 24, 25, 27], "term": [22, 27], "motiv": 23, "rational": 23, "design": 23, "decis": 23, "structur": 23, "mean": 23, "mdf": 24, "descript": 24, "file": 24, "slurp": 24, "squirt": 24, "yaml": 24, "version": 25, "us": 25, "specif": 26, "defin": 26, "subclass": 26, "ar": 26, "deriv": 26, "from": 26, "attspec": 26, "mapspec": 26, "The": 27, "work": 27, "compon": 27, "contain": 27, "access": 27, "other": 27, "interfac": 27, "manipul": 27, "interact": 27, "pattern": 22, "graph": 22, "represent": 22, "modul": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18], "class": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18], "subpackag": [1, 2, 17], "submodul": [1, 2, 5, 16, 17], "packag": [2, 5], "loader": 3, "mdb_tool": [5, 6], "searchabl": 7, "writeabl": 8, "object_map": 10, "util": [12, 13, 14, 15, 16, 17, 18], "_engin": 12, "cypher": [13, 14, 15, 16], "claus": 13, "makeq": 18, "api": 19, "refer": 19}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Loading an MDB instance": [[20, "loading-an-mdb-instance"]], "bento_meta and MDF": [[24, "bento-meta-and-mdf"]], "Model Description Files": [[24, "model-description-files"]], "Slurping MDF into bento_meta": [[24, "slurping-mdf-into-bento-meta"]], "Squirting a Model into MDF YAML": [[24, "squirting-a-model-into-mdf-yaml"]], "Model Versioning": [[25, "model-versioning"]], "Using Model Versioning": [[25, "using-model-versioning"]], "Object Map Specifications": [[26, "object-map-specifications"]], "Defining and Updating Objects": [[26, "defining-and-updating-objects"]], "Subclasses are derived from Entity": [[26, "subclasses-are-derived-from-entity"]], "attspec and mapspec": [[26, "attspec-and-mapspec"]], "bento_meta.entity": [[0, "module-bento_meta.entity"]], "Module Contents": [[0, "module-contents"], [3, "module-contents"], [4, "module-contents"], [6, "module-contents"], [7, "module-contents"], [8, "module-contents"], [9, "module-contents"], [10, "module-contents"], [11, "module-contents"], [12, "module-contents"], [13, "module-contents"], [14, "module-contents"], [15, "module-contents"], [18, "module-contents"]], "Classes": [[0, "classes"], [2, "classes"], [4, "classes"], [5, "classes"], [6, "classes"], [7, "classes"], [8, "classes"], [9, "classes"], [10, "classes"], [11, "classes"], [12, "classes"], [13, "classes"], [14, "classes"], [15, "classes"], [18, "classes"]], "bento_meta": [[1, "module-bento_meta"]], "Subpackages": [[1, "subpackages"], [2, "subpackages"], [17, "subpackages"]], "Submodules": [[1, "submodules"], [2, "submodules"], [5, "submodules"], [16, "submodules"], [17, "submodules"]], "bento_meta.mdb": [[2, "module-bento_meta.mdb"]], "Package Contents": [[2, "package-contents"], [5, "package-contents"]], "Functions": [[2, "functions"], [3, "functions"], [4, "functions"], [5, "functions"], [6, "functions"], [8, "functions"], [11, "functions"], [14, "functions"], [15, "functions"], [18, "functions"]], "bento_meta.mdb.loaders": [[3, "module-bento_meta.mdb.loaders"]], "bento_meta.mdb.mdb": [[4, "module-bento_meta.mdb.mdb"]], "bento_meta.mdb.mdb_tools": [[5, "module-bento_meta.mdb.mdb_tools"]], "bento_meta.mdb.mdb_tools.mdb_tools": [[6, "module-bento_meta.mdb.mdb_tools.mdb_tools"]], "Attributes": [[6, "attributes"], [12, "attributes"], [18, "attributes"]], "bento_meta.mdb.searchable": [[7, "module-bento_meta.mdb.searchable"]], "bento_meta.mdb.writeable": [[8, "module-bento_meta.mdb.writeable"]], "bento_meta.model": [[9, "module-bento_meta.model"]], "bento_meta.object_map": [[10, "module-bento_meta.object_map"]], "bento_meta.objects": [[11, "module-bento_meta.objects"]], "bento_meta.util._engine": [[12, "module-bento_meta.util._engine"]], "bento_meta.util.cypher.clauses": [[13, "module-bento_meta.util.cypher.clauses"]], "bento_meta.util.cypher.entities": [[14, "module-bento_meta.util.cypher.entities"]], "bento_meta.util.cypher.functions": [[15, "module-bento_meta.util.cypher.functions"]], "bento_meta.util.cypher": [[16, "module-bento_meta.util.cypher"]], "bento_meta.util": [[17, "module-bento_meta.util"]], "bento_meta.util.makeq": [[18, "module-bento_meta.util.makeq"]], "API Reference": [[19, "api-reference"]], "bento_meta and Metamodel Database (MDB)": [[21, "bento-meta-and-metamodel-database-mdb"]], "Installation": [[21, "installation"]], "Contents:": [[21, null]], "A Note on \u201cNodes\u201d": [[21, "a-note-on-nodes"]], "A Note on Objects, Properties, and Attributes": [[21, "a-note-on-objects-properties-and-attributes"]], "Indices and tables": [[21, "indices-and-tables"]], "MDB Conventions and Patterns": [[22, "mdb-conventions-and-patterns"]], "MDB entity properties required for consistency": [[22, "mdb-entity-properties-required-for-consistency"]], "MDB indexes needed for additional functionality": [[22, "mdb-indexes-needed-for-additional-functionality"]], "Conventions for consistent and idempotent updates": [[22, "conventions-for-consistent-and-idempotent-updates"]], "Uniqueness and Existence of Entities": [[22, "uniqueness-and-existence-of-entities"]], "Graph Patterns for Representation": [[22, "graph-patterns-for-representation"]], "\u201cReuse\u201d of Semantic Roles in MDB": [[22, "reuse-of-semantic-roles-in-mdb"]], "Encoding \u201cMappings\u201d": [[22, "encoding-mappings"]], "Models": [[22, "models"]], "Terms": [[22, "terms"]], "Metamodel Database (MDB) Principles": [[23, "metamodel-database-mdb-principles"]], "MDB Motivation and Rationale": [[23, "mdb-motivation-and-rationale"]], "MDB Design Decisions": [[23, "mdb-design-decisions"]], "MDB Entities and Structures": [[23, "mdb-entities-and-structures"]], "Models and Meanings": [[23, "models-and-meanings"]], "The Object Model": [[27, "the-object-model"]], "Working with Models": [[27, "working-with-models"]], "Component Objects": [[27, "component-objects"]], "Object attributes": [[27, "object-attributes"]], "Model as a Container": [[27, "model-as-a-container"]], "Accessing other objects": [[27, "accessing-other-objects"]], "Model as an Interface": [[27, "model-as-an-interface"]], "Manipulating Terms": [[27, "manipulating-terms"]], "Database Interaction": [[27, "database-interaction"]], "Objects and their Attributes": [[27, "objects-and-their-attributes"]]}, "indexentries": {"concept (built-in class)": [[27, "Concept"]], "edge (built-in class)": [[27, "Edge"]], "entity (built-in class)": [[27, "Entity"]], "node (built-in class)": [[27, "Node"]], "origin (built-in class)": [[27, "Origin"]], "predicate (built-in class)": [[27, "Predicate"]], "property (built-in class)": [[27, "Property"]], "tag (built-in class)": [[27, "Tag"]], "term (built-in class)": [[27, "Term"]], "_commit (entity attribute)": [[27, "entity._commit"]], "_from (entity attribute)": [[27, "entity._from"]], "_id (entity attribute)": [[27, "entity._id"]], "_next (entity attribute)": [[27, "entity._next"]], "_prev (entity attribute)": [[27, "entity._prev"]], "_to (entity attribute)": [[27, "entity._to"]], "concept (edge attribute)": [[27, "edge.concept"]], "concept (node attribute)": [[27, "node.concept"]], "concept (property attribute)": [[27, "property.concept"]], "concept (term attribute)": [[27, "term.concept"]], "desc (entity attribute)": [[27, "entity.desc"]], "dst (edge attribute)": [[27, "edge.dst"]], "handle (edge attribute)": [[27, "edge.handle"]], "handle (node attribute)": [[27, "node.handle"]], "handle (predicate attribute)": [[27, "predicate.handle"]], "handle (property attribute)": [[27, "property.handle"]], "handle (term attribute)": [[27, "term.handle"]], "is_external (origin attribute)": [[27, "origin.is_external"]], "is_required (edge attribute)": [[27, "edge.is_required"]], "is_required (property attribute)": [[27, "property.is_required"]], "item_domain (property attribute)": [[27, "property.item_domain"]], "key (tag attribute)": [[27, "tag.key"]], "model (edge attribute)": [[27, "edge.model"]], "model (node attribute)": [[27, "node.model"]], "model (property attribute)": [[27, "property.model"]], "multiplicity (edge attribute)": [[27, "edge.multiplicity"]], "name (origin attribute)": [[27, "origin.name"]], "nanoid (edge attribute)": [[27, "edge.nanoid"]], "nanoid (entity attribute)": [[27, "entity.nanoid"]], "nanoid (node attribute)": [[27, "node.nanoid"]], "nanoid (origin attribute)": [[27, "origin.nanoid"]], "nanoid (property attribute)": [[27, "property.nanoid"]], "nanoid (term attribute)": [[27, "term.nanoid"]], "object (predicate attribute)": [[27, "predicate.object"]], "origin (term attribute)": [[27, "term.origin"]], "origin_definition (term attribute)": [[27, "term.origin_definition"]], "origin_id (term attribute)": [[27, "term.origin_id"]], "origin_name (term attribute)": [[27, "term.origin_name"]], "origin_version (term attribute)": [[27, "term.origin_version"]], "pattern (property attribute)": [[27, "property.pattern"]], "props (edge attribute)": [[27, "edge.props"]], "props (node attribute)": [[27, "node.props"]], "src (edge attribute)": [[27, "edge.src"]], "subject (predicate attribute)": [[27, "predicate.subject"]], "tags (entity attribute)": [[27, "entity.tags"]], "terms (concept attribute)": [[27, "concept.terms"]], "units (property attribute)": [[27, "property.units"]], "url (origin attribute)": [[27, "origin.url"]], "value (tag attribute)": [[27, "tag.value"]], "value (term attribute)": [[27, "term.value"]], "value_domain (property attribute)": [[27, "property.value_domain"]], "value_set (property attribute)": [[27, "property.value_set"]]}}) \ No newline at end of file diff --git a/python/docs/mdb-conventions.rst b/python/docs/mdb-conventions.rst index d35a258..f07e7e3 100644 --- a/python/docs/mdb-conventions.rst +++ b/python/docs/mdb-conventions.rst @@ -81,7 +81,7 @@ _______________________________________________ For integration with the STS, and for performance, the Neo4j instance of an MDB requires certain indexes to be established. These are -specified in `these Cypher statements `_. The primary +specified in `these Cypher statements `_. The primary requirement is that fulltext, Lucene-based indexes should be created on entity ``description`` and Term ``origin_definition`` properties to enable "search box" like queries over the the entire graph. Regular @@ -120,7 +120,7 @@ on `Cypher `_.) * *Concept*: For any `(c:concept)` and `(k:concept)` where `(n)--(c)` and `(n)--(k)` return exactly the same graph nodes `[n1, n2, ...]`, one of `c` or `k` should be removed from the database. -* *Tag*: For two tag nodes, all of whose properties except nanoid are identical in key and value, and which are linked to exactly the same graph nodes, one must be removed. +* *Tag*: Any node should have *at most one* Tag node with a given pair of values for `key` and `value` properties. Tags should attach to at most one node; that is, the `()-[:has_tag]->(:tag)` relationship is one-to-many, not many-to-many. Practically, this means that to use Tags to group a set of different nodes with a key-value pair, a separate Tag with that key-value pair should be created and linked to each nodes. * *Nanoid*: Each unique unversioned graph node as defined above must have a unique nanoid. diff --git a/python/pyproject.toml b/python/pyproject.toml index c7be753..9f13936 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "bento-meta" -version = "0.2.2" +version = "0.2.3" description = "Python drivers for Bento Metamodel Database" authors = [ { name="Mark A. Jensen", email = "mark.jensen@nih.gov"}, @@ -20,7 +20,7 @@ classifiers = [ [tool.poetry] name = "bento-meta" -version = "0.2.2" +version = "0.2.3" description = "Python drivers for Bento Metamodel Database" authors = [ "Mark A. Jensen ", diff --git a/python/src/bento_meta/mdb/mdb.py b/python/src/bento_meta/mdb/mdb.py index 525da94..d1f8f67 100644 --- a/python/src/bento_meta/mdb/mdb.py +++ b/python/src/bento_meta/mdb/mdb.py @@ -244,8 +244,8 @@ def get_term_by_id(self, nanoid): qry = ( "match (t:term {nanoid:$nanoid}) " "where not exists(t._to) " - "with t " - "optional match (t)-[:has_origin]->(o:origin) " + "with t, t.origin_name as origin_name " + "optional match (o:origin {name: origin_name}) " "where not exists(o._to) " "return t as term, o as origin " ) diff --git a/python/tox.ini b/python/tox.ini index ef63d4c..7094630 100644 --- a/python/tox.ini +++ b/python/tox.ini @@ -7,5 +7,6 @@ deps = pytest docker-compose pytest-docker commands = - pytest + pytest -m "not slow" +