diff --git a/.github/workflows/deploy_documentation.yml b/.github/workflows/deploy_documentation.yml
index fc8bc88..f8171c4 100644
--- a/.github/workflows/deploy_documentation.yml
+++ b/.github/workflows/deploy_documentation.yml
@@ -53,4 +53,5 @@ jobs:
mkdir docs
touch docs/.nojekyll
cp -r src/docs/* docs/
- make deploy-gh-doc
+ make gendoc
+ make mkd-gh-deploy
diff --git a/Makefile b/Makefile
index 5a1fb84..41e44aa 100644
--- a/Makefile
+++ b/Makefile
@@ -21,6 +21,19 @@ STAGED_ONTOLOGIES = $(patsubst %, stage/%.db.gz, $(ALL_ONTS))
TEST_ONTOLOGIES = go-nucleus robot-example
+# environment variables
+include config.env
+
+GEN_PARGS =
+ifdef LINKML_GENERATORS_PROJECT_ARGS
+GEN_PARGS = ${LINKML_GENERATORS_PROJECT_ARGS}
+endif
+
+GEN_DARGS =
+ifdef LINKML_GENERATORS_MARKDOWN_ARGS
+GEN_DARGS = ${LINKML_GENERATORS_MARKDOWN_ARGS}
+endif
+
include ontologies.Makefile
@@ -175,7 +188,7 @@ include ontologies.Makefile
MODULES = rdf owl obo omo relation_graph semsql
-GENDOC_ARGS = --no-mergeimports -d docs --template-directory docgen-templates
+GENDOC_ARGS = -d docs --template-directory docgen-templates
# TODO: markdown gen should make modular output
markdown-%: $(YAML_DIR)/%.yaml
@@ -183,8 +196,10 @@ markdown-%: $(YAML_DIR)/%.yaml
markdown: $(patsubst %, markdown-%, $(MODULES))
$(RUN) gen-doc $(GENDOC_ARGS) $(YAML_DIR)/semsql.yaml
+gendoc: markdown
+
gen-project: $(YAML_DIR)/semsql.yaml
- $(RUN) gen-project $< -d project
+ $(RUN) gen-project ${GEN_PARGS} $< -d project
# Create SQL Create Table statements from linkml
# 1. first use generic ddl generation
@@ -228,6 +243,24 @@ s3-version:
s3-deploy-%: stage/%.db.gz
aws s3 cp $< s3://bbop-sqlite/$*.db.gz --acl public-read
+
+# Test documentation locally
+serve: mkd-serve
+
+# Python datamodel
+$(PYMODEL):
+ mkdir -p $@
+
+
+$(DOCDIR):
+ mkdir -p $@
+
+testdoc: gendoc serve
+
+MKDOCS = $(RUN) mkdocs
+mkd-%:
+ $(MKDOCS) $*
+
################################################
#### Commands for building the Docker image ####
################################################
diff --git a/config.env b/config.env
new file mode 100644
index 0000000..2e6d554
--- /dev/null
+++ b/config.env
@@ -0,0 +1,8 @@
+LINKML_GENERATORS_PROJECT_ARGS=--config-file config.yaml
+
+### Extra layer of configuration for Makefile beyond
+### what 'gen-project --config-file config.yaml' provides.
+### Uncomment and set environment variables as needed.
+
+# LINKML_GENERATORS_MARKDOWN_ARGS=--no-mergeimports
+
diff --git a/docgen-templates/class.md.jinja2 b/docgen-templates/class.md.jinja2
index 663cc98..1efbb6a 100644
--- a/docgen-templates/class.md.jinja2
+++ b/docgen-templates/class.md.jinja2
@@ -1,4 +1,27 @@
-# Class: {{ gen.name(element) }}
+{%- if element.title %}
+ {%- set title = element.title ~ ' (' ~ element.name ~ ')' -%}
+{%- else %}
+ {%- if gen.use_class_uris -%}
+ {%- set title = element.name -%}
+ {%- else -%}
+ {%- set title = gen.name(element) -%}
+ {%- endif -%}
+{%- endif -%}
+
+{% macro compute_range(slot) -%}
+ {%- if slot.any_of or slot.exactly_one_of -%}
+ {%- for subslot_range in schemaview.slot_range_as_union(slot) -%}
+ {{ gen.link(subslot_range) }}
+ {%- if not loop.last -%}
+ or
+ {%- endif -%}
+ {%- endfor -%}
+ {%- else -%}
+ {{ gen.link(slot.range) }}
+ {%- endif -%}
+{% endmacro %}
+
+# Class: {{ title }}
{%- if header -%}
{{header}}
@@ -6,52 +29,31 @@
{% if element.description %}
-_{{ element.description }}_
+{% set element_description_lines = element.description.split('\n') %}
+{% for element_description_line in element_description_lines %}
+_{{ element_description_line }}_
+{% endfor %}
{% endif %}
{% if element.abstract %}
* __NOTE__: this is an abstract class and should not be instantiated directly
{% endif %}
-{% if element.mixin %}
-* __NOTE__: this is a mixin class intended to be used in combination with other classes, and not used directly
-{% endif %}
URI: {{ gen.uri_link(element) }}
-
-{% if schemaview.class_parents(element.name) %}
+{% if diagram_type == "er_diagram" %}
```{{ gen.mermaid_directive() }}
- classDiagram
- {% for s in schemaview.class_parents(element.name)|sort(attribute='name') -%}
- {{ gen.name(schemaview.get_element(s)) }} <|-- {{ gen.name(element) }}
- {% endfor %}
- {% for s in schemaview.class_induced_slots(element.name)|sort(attribute='name') -%}
- {{ gen.name(element) }} : {{gen.name(s)}}
- {% endfor %}
-
+{{ gen.mermaid_diagram([element.name]) }}
```
-{% elif schemaview.class_children(element.name) %}
-```{{ gen.mermaid_directive() }}
- classDiagram
- {% for s in schemaview.class_children(element.name)|sort(attribute='name') -%}
- {{ gen.name(element) }} <|-- {{ gen.name(schemaview.get_element(s)) }}
- {% endfor %}
- {% for s in schemaview.class_induced_slots(element.name)|sort(attribute='name') -%}
- {{ gen.name(element) }} : {{gen.name(s)}}
- {% endfor %}
+{% elif diagram_type == "plantuml_class_diagram" %}
+```puml
+{{ gen.mermaid_diagram([element.name]) }}
```
{% else %}
-```{{ gen.mermaid_directive() }}
- classDiagram
- class {{ gen.name(element) }}
- {% for s in schemaview.class_induced_slots(element.name)|sort(attribute='name') -%}
- {{ gen.name(element) }} : {{gen.name(s)}}
- {% endfor %}
-```
+{% include "class_diagram.md.jinja2" %}
{% endif %}
-
{% if schemaview.class_parents(element.name) or schemaview.class_children(element.name, mixins=False) %}
## Usage
@@ -68,19 +70,36 @@ SELECT * FROM {{element.name}};
## Slots
-| Name | Cardinality and Range | Description |
-| --- | --- | --- |
-{% for s in schemaview.class_induced_slots(element.name) -%}
-| {{gen.link(s)}} | {{ gen.cardinality(s) }}
{{gen.link(s.range)}} | {{s.description|enshorten}} |
+| Name | Cardinality and Range | Description | Inheritance |
+| --- | --- | --- | --- |
+{% if gen.get_direct_slots(element)|length > 0 %}
+{%- for slot in gen.get_direct_slots(element) -%}
+| {{ gen.link(slot) }} | {{ gen.cardinality(slot) }}
{{ compute_range(slot) }} | {{ slot.description|enshorten }} | direct |
+{% endfor -%}
+{% endif -%}
+{% if gen.get_indirect_slots(element)|length > 0 %}
+{%- for slot in gen.get_indirect_slots(element) -%}
+| {{ gen.link(slot) }} | {{ gen.cardinality(slot) }}
{{ compute_range(slot) }} | {{ slot.description|enshorten }} | {{ gen.links(gen.get_slot_inherited_from(element.name, slot.name))|join(', ') }} |
+{% endfor -%}
+{% endif %}
+
+{% if schemaview.is_mixin(element.name) %}
+## Mixin Usage
+
+| mixed into | description |
+| --- | --- |
+{% for c in schemaview.class_children(element.name, is_a=False) -%}
+| {{ gen.link(c) }} | {{ schemaview.get_class(c).description|enshorten }} |
{% endfor %}
+{% endif %}
+{% if schemaview.usage_index().get(element.name) %}
## Usages
-{% if schemaview.usage_index().get(element.name) %}
| used by | used in | type | used |
| --- | --- | --- | --- |
{% for usage in schemaview.usage_index().get(element.name) -%}
-| {{gen.link(usage.used_by)}} | {{gen.link(usage.slot)}} | {{usage.metaslot}} | {{usage.used }} |
+| {{gen.link(usage.used_by)}} | {{gen.link(usage.slot)}} | {{usage.metaslot}} | {{ gen.link(usage.used) }} |
{% endfor %}
{% endif %}
@@ -128,14 +147,25 @@ This class has a SQL view definition:
| --- | --- |
{% for m, mt in schemaview.get_mappings(element.name).items() -%}
{% if mt|length > 0 -%}
-| {{ m }} | {{ mt }} |
+| {{ m }} | {{ mt|join(', ') }} |
{% endif -%}
{% endfor %}
{% endif -%}
+{% if gen.example_object_blobs(element.name) -%}
+## Examples
+{% for name, blob in gen.example_object_blobs(element.name) -%}
+### Example: {{name}}
+
+```yaml
+{{ blob }}
+```
+{% endfor %}
+{% endif %}
+
-## LinkML Specification
+## LinkML Source
@@ -157,4 +187,4 @@ This class has a SQL view definition:
{%- if footer -%}
{{footer}}
-{%- endif -%}
\ No newline at end of file
+{%- endif -%}
diff --git a/docgen-templates/common_metadata.md.jinja2 b/docgen-templates/common_metadata.md.jinja2
index faa6354..de147a5 100644
--- a/docgen-templates/common_metadata.md.jinja2
+++ b/docgen-templates/common_metadata.md.jinja2
@@ -1,3 +1,22 @@
+{% if element.aliases %}
+## Aliases
+
+{% for alias in element.aliases %}
+* {{ alias }}
+{%- endfor %}
+{% endif %}
+
+
+{% if element.examples %}
+## Examples
+
+| Value |
+| --- |
+{% for x in element.examples -%}
+| {{ x.value }} |
+{% endfor %}
+{% endif -%}
+
{% if element.comments -%}
## Comments
@@ -14,6 +33,14 @@
{% endfor %}
{% endif -%}
+{% if element.see_also -%}
+## See Also
+
+{% for x in element.see_also -%}
+* {{ gen.uri_link(x) }}
+{% endfor %}
+{% endif -%}
+
## Identifier and Mapping Information
{% if element.id_prefixes %}
@@ -33,7 +60,9 @@ Instances of this class *should* have identifiers with one of the following pref
| property | value |
| --- | --- |
{% for a in element.annotations -%}
-| {{a}} | {{ element.annotations[a].value }} |
+{%- if a|string|first != '_' -%}
+| {{ a }} | {{ element.annotations[a].value }} |
+{%- endif -%}
{% endfor %}
{% endif %}
diff --git a/docgen-templates/enum.md.jinja2 b/docgen-templates/enum.md.jinja2
index 7fbc2c8..030ef85 100644
--- a/docgen-templates/enum.md.jinja2
+++ b/docgen-templates/enum.md.jinja2
@@ -1,24 +1,40 @@
-# {{ gen.name(element) }}
+# Enum: {{ gen.name(element) }}
-{{ element.description }}
+{% if element.description %}
+{% set element_description_lines = element.description.split('\n') %}
+{% for element_description_line in element_description_lines %}
+_{{ element_description_line }}_
+{% endfor %}
+{% endif %}
-URI: {{ gen.uri(element) }}
+URI: {{ gen.link(element) }}
{% if element.permissible_values -%}
## Permissible Values
-| Value | Meaning | Description | Info |
-| --- | --- | --- | --- |
+| Value | Meaning | Description |
+| --- | --- | --- |
{% for pv in element.permissible_values.values() -%}
-| {{pv.text}} | {{pv.meaning}} | {{pv.description|enshorten}} | |
+| {{pv.text}} | {{pv.meaning}} | {{pv.description|enshorten}} |
{% endfor %}
{% else %}
_This is a dynamic enum_
{% endif %}
+{% set slots_for_enum = schemaview.get_slots_by_enum(element.name) %}
+{% if slots_for_enum is defined and slots_for_enum|length > 0 -%}
+## Slots
+
+| Name | Description |
+| --- | --- |
+{% for s in schemaview.get_slots_by_enum(element.name) -%}
+| {{gen.link(s)}} | {{s.description|enshorten}} |
+{% endfor %}
+{% endif %}
+
{% include "common_metadata.md.jinja2" %}
-## Schema
+## LinkML Source
```yaml
diff --git a/docgen-templates/index.md.jinja2 b/docgen-templates/index.md.jinja2
index 17642ac..dd8e1f2 100644
--- a/docgen-templates/index.md.jinja2
+++ b/docgen-templates/index.md.jinja2
@@ -1,17 +1,35 @@
# {% if schema.title %}{{ schema.title }}{% else %}{{ schema.name }}{% endif %}
-{{ schema.description }}
+{% if schema.description %}{{ schema.description }}{% endif %}
URI: {{ schema.id }}
+
Name: {{ schema.name }}
+{% if include_top_level_diagram %}
+
+## Schema Diagram
+
+```{{ gen.mermaid_directive() }}
+{{ gen.mermaid_diagram() }}
+```
+{% endif %}
+
## Classes
| Class | Description |
| --- | --- |
+{% if gen.hierarchical_class_view -%}
+{% for u, v in gen.class_hierarchy_as_tuples() -%}
+{%- set link = gen.link(schemaview.get_class(v)) -%}
+{%- set hi = "**" if schemaview.get_class(v, imports=False) else "*" -%}
+| {{ " "|safe*u*8 }}{{ hi }}{{ link }}{{ hi }} | {{ schemaview.get_class(v).description }} |
+{% endfor %}
+{% else -%}
{% for c in gen.all_class_objects()|sort(attribute=sort_by) -%}
| {{gen.link(c)}} | {{c.description|enshorten}} |
{% endfor %}
+{% endif %}
## Slots
diff --git a/docgen-templates/slot.md.jinja2 b/docgen-templates/slot.md.jinja2
index dcb1601..d3d9a27 100644
--- a/docgen-templates/slot.md.jinja2
+++ b/docgen-templates/slot.md.jinja2
@@ -1,14 +1,40 @@
-# Slot: {{ gen.name(element) }}
+{%- if element.title %}
+ {%- set title = element.title ~ ' (' ~ element.name ~ ')' -%}
+{%- else %}
+ {%- if gen.use_slot_uris -%}
+ {%- set title = element.name -%}
+ {%- else -%}
+ {%- set title = gen.name(element) -%}
+ {%- endif -%}
+{%- endif -%}
+
+{% macro compute_range(slot) -%}
+ {%- if slot.any_of or slot.exactly_one_of -%}
+ {%- for subslot_range in schemaview.slot_range_as_union(slot) -%}
+ {{ gen.link(subslot_range) }}
+ {%- if not loop.last -%}
+ or
+ {%- endif -%}
+ {%- endfor -%}
+ {%- else -%}
+ {{ gen.link(slot.range) }}
+ {%- endif -%}
+{% endmacro %}
+
+# Slot: {{ title }}
{%- if header -%}
{{header}}
{%- endif -%}
{% if element.description %}
-_{{ element.description }}_
+{% set element_description_lines = element.description.split('\n') %}
+{% for element_description_line in element_description_lines %}
+_{{ element_description_line }}_
+{% endfor %}
{% endif %}
-URI: [{{ gen.uri(element) }}]({{ gen.uri(element) }})
+URI: {{ gen.uri_link(element) }}
{% if schemaview.slot_parents(element.name) or schemaview.slot_children(element.name, mixins=False) %}
@@ -20,17 +46,75 @@ URI: [{{ gen.uri(element) }}]({{ gen.uri(element) }})
{% endif %}
+{% set classes_by_slot = schemaview.get_classes_by_slot(element, include_induced=True) %}
+{% if classes_by_slot %}
+
+## Applicable Classes
+
+| Name | Description | Modifies Slot |
+| --- | --- | --- |
+{% for c in classes_by_slot -%}
+| {{ gen.link(c) }} | {{ schemaview.get_class(c).description|enshorten }} | {% if c in schemaview.get_classes_modifying_slot(element) %} yes {% else %} no {% endif %} |
+{% endfor %}
+
+{% endif %}
+
+
+{% if schemaview.is_mixin(element.name) %}
+## Mixin Usage
+
+| mixed into | description | range | domain |
+| --- | --- | --- | --- |
+{% for s in schemaview.slot_children(element.name, is_a=False) -%}
+| {{ gen.link(s) }} | {{ schemaview.get_slot(s).description|enshorten }} | {{ schemaview.get_slot(s).range }} | {{ schemaview.get_classes_by_slot(schemaview.get_slot(s))|join(', ') }} |
+{% endfor %}
+{% endif %}
+
## Properties
- * Range: {{gen.link(element.range)}}
+* Range: {{ compute_range(element) }}
+{% if element.multivalued %}
+* Multivalued: {{ element.multivalued }}
+{% endif -%}
+{% if element.required %}
+* Required: {{ element.required }}
+{% elif element.recommended %}
+* Recommended: {{ element.recommended }}
+{% endif -%}
+{% if element.minimum_value is not none %}
+* Minimum Value: {{ element.minimum_value|int }}
+{% endif -%}
+{% if element.maximum_value is not none %}
+* Maximum Value: {{ element.maximum_value|int }}
+{% endif -%}
+{% if element.pattern %}
+* Regex pattern: {{ '`' }}{{ element.pattern }}{{ '`' }}
+{% endif -%}
+{% if schemaview.is_mixin(element.name) %}
+* Mixin: {{ element.mixin }}
+{% endif -%}
+
{% if schemaview.usage_index().get(element.name) %}
+## Usages
+
| used by | used in | type | used |
| --- | --- | --- | --- |
{% for usage in schemaview.usage_index().get(element.name) -%}
-| {{gen.link(usage.used_by)}} | {{gen.link(usage.slot)}} | {{usage.metaslot}} | {{usage.used }} |
+| {{gen.link(usage.used_by)}} | {{gen.link(usage.slot)}} | {{usage.metaslot}} | {{ gen.link(usage.used) }} |
{% endfor %}
{% endif %}
{% include "common_metadata.md.jinja2" %}
+## LinkML Source
+
+
+```yaml
+{{ gen.yaml(element) }}
+```
+
+
+{%- if footer -%}
+{{footer}}
+{%- endif -%}
\ No newline at end of file
diff --git a/docgen-templates/subset.md.jinja2 b/docgen-templates/subset.md.jinja2
index 51c083a..e9522f3 100644
--- a/docgen-templates/subset.md.jinja2
+++ b/docgen-templates/subset.md.jinja2
@@ -1,15 +1,44 @@
-# {{ gen.name(element) }}
+# Subset: {{ gen.name(element) }}
{%- if header -%}
-{{header}}
+{{ header }}
{%- endif -%}
{% if element.description %}
-{{ element.description }}
+{% set element_description_lines = element.description.split('\n') %}
+{% for element_description_line in element_description_lines %}
+_{{ element_description_line }}_
+{% endfor %}
{% endif %}
+URI: {{ gen.link(element) }}
+
{% include "common_metadata.md.jinja2" %}
+{% set classes_in_subset = [] %}
+{% set slots_in_subset = [] %}
+{% set enums_in_subset = [] %}
+
+{# Collect classes, slots, and enumerations in subset #}
+{% for c in gen.all_class_objects()|sort(attribute=sort_by) %}
+ {%- if element.name in c.in_subset %}
+ {% set _ = classes_in_subset.append(c) %}
+ {%- endif %}
+{% endfor %}
+
+{% for s in gen.all_slot_objects()|sort(attribute=sort_by) %}
+ {%- if element.name in s.in_subset %}
+ {% set _ = slots_in_subset.append(s) %}
+ {%- endif %}
+{% endfor %}
+
+{% for e in schemaview.all_enums().values() %}
+ {%- if element.name in e.in_subset %}
+ {% set _ = enums_in_subset.append(e) %}
+ {%- endif %}
+{% endfor %}
+
+{% if classes_in_subset %}
## Classes in subset
| Class | Description |
@@ -26,34 +55,52 @@
{{c.description}}
+{%- set filtered_slots = [] -%}
+
+{%- for s in induced_slots|sort(attribute=sort_by) -%}
+ {%- if element.name in s.in_subset or element.name in schemaview.get_slot(s.name).in_subset -%}
+ {% set _ = filtered_slots.append(s) %}
+ {%- endif -%}
+{%- endfor %}
+
+{%- if filtered_slots|length > 0 -%}
| Name | Cardinality and Range | Description |
| --- | --- | --- |
-{% for s in gen.class_induced_slots(c.name)|sort(attribute=sort_by) -%}
-{% if element.name in s.in_subset or element.name in schemaview.get_slot(s.name).in_subset -%}
+{% for s in filtered_slots -%}
| {{gen.link(s)}} | {{ gen.cardinality(s) }}
{{gen.link(s.range)}} | {{s.description|enshorten}} {% if s.identifier %}**identifier**{% endif %} |
-{% endif -%}
{% endfor %}
+{%- endif %}
-{% endif -%}
+
+{%- endif %}
{% endfor %}
+{%- endif %}
+
+
+{% if slots_in_subset %}
## Slots in subset
| Slot | Description |
| --- | --- |
-{% for s in gen.all_slot_objects()|sort(attribute=sort_by) -%}
+{% for s in slots_in_subset|sort(attribute=sort_by) -%}
{%- if element.name in s.in_subset -%}
-| {{gen.link(s)}} | {{s.description|enshorten}} |
-{% endif -%}
+| {{ gen.link(s) }} | {{ s.description|enshorten }} |
+{%- endif %}
{% endfor %}
+{%- endif %}
+
+
+{% if enums_in_subset %}
## Enumerations in subset
| Enumeration | Description |
| --- | --- |
-{% for e in schemaview.all_enums().values()|sort(attribute='name') -%}
-{%- if element.name in e.in_subset -%}
-| {{gen.link(e)}} | {{e.description|enshorten}} |
-{% endif -%}
+{% for e in enums_in_subset|sort(attribute='name') -%}
+{%- if element.name in e.in_subset %}
+| {{ gen.link(e) }} | {{ e.description|enshorten }} |
+{%- endif %}
{% endfor %}
+{%- endif %}
diff --git a/docgen-templates/type.md.jinja2 b/docgen-templates/type.md.jinja2
index f4f2542..5efcdd7 100644
--- a/docgen-templates/type.md.jinja2
+++ b/docgen-templates/type.md.jinja2
@@ -1,8 +1,13 @@
-# {{ gen.name(element) }}
+# Type: {{ gen.name(element) }}
-{{ element.description }}
+{% if element.description %}
+{% set element_description_lines = element.description.split('\n') %}
+{% for element_description_line in element_description_lines %}
+_{{ element_description_line }}_
+{% endfor %}
+{% endif %}
-URI: {{ gen.uri(element) }}
+URI: {{ gen.uri_link(element) }}
{{ gen.bullet(element, "base") }}
{{ gen.bullet(element, "uri") }}
diff --git a/ontologies.Makefile b/ontologies.Makefile
index 31732e9..bcec603 100644
--- a/ontologies.Makefile
+++ b/ontologies.Makefile
@@ -1,3 +1,14 @@
+download/upheno.owl: STAMP
+ curl -L -s http://purl.obolibrary.org/obo/upheno.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/upheno.owl
+
+db/upheno.owl: download/upheno.owl
+ robot merge -i $< -o $@
+
+
download/chiro.owl: STAMP
curl -L -s http://purl.obolibrary.org/obo/chiro.owl > $@.tmp
sha256sum -b $@.tmp > $@.sha256
@@ -97,6 +108,17 @@ db/phenio.owl: download/phenio.owl
cp $< $@
+download/phenio_test.owl: STAMP
+ curl -L -s https://github.com/monarch-initiative/phenio/releases/latest/download/phenio-test.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/phenio_test.owl
+
+db/phenio_test.owl: download/phenio_test.owl
+ cp $< $@
+
+
download/comploinc.owl: STAMP
curl -L -s https://github.com/loinc/comp-loinc/releases/download/v2022-11-05/merged_reasoned_loinc.owl > $@.tmp
sha256sum -b $@.tmp > $@.sha256
@@ -229,6 +251,17 @@ db/omop.owl: download/omop.owl
cp $< $@
+download/cco.owl: STAMP
+ curl -L -s http://www.ontologyrepository.com/CommonCoreOntologies/Mid/AllCoreOntology > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/cco.owl
+
+db/cco.owl: download/cco.owl
+ robot merge -i $< relax -o $@
+
+
download/occo.owl: STAMP
curl -L -s https://raw.githubusercontent.com/Occupation-Ontology/OccO/main/src/ontology/occo-merged.owl > $@.tmp
sha256sum -b $@.tmp > $@.sha256
@@ -251,6 +284,17 @@ db/iof.owl: download/iof.owl
robot relax -i $< merge -o $@
+download/upa.owl: STAMP
+ curl -L -s http://purl.obolibrary.org/obo/upa.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/upa.owl
+
+db/upa.owl: download/upa.owl
+ cp $< $@
+
+
download/go.owl: STAMP
curl -L -s http://purl.obolibrary.org/obo/go/extensions/go-plus.owl > $@.tmp
sha256sum -b $@.tmp > $@.sha256
@@ -273,6 +317,28 @@ db/go-lego.owl: download/go-lego.owl
cp $< $@
+download/go-amigo.owl: STAMP
+ curl -L -s http://purl.obolibrary.org/obo/go/extensions/go-amigo.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/go-amigo.owl
+
+db/go-amigo.owl: download/go-amigo.owl
+ cp $< $@
+
+
+download/neo.owl: STAMP
+ curl -L -s http://purl.obolibrary.org/obo/go/noctua/neo.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/neo.owl
+
+db/neo.owl: download/neo.owl
+ cp $< $@
+
+
download/bao.owl: STAMP
curl -L -s http://www.bioassayontology.org/bao/bao_complete.owl > $@.tmp
sha256sum -b $@.tmp > $@.sha256
@@ -515,6 +581,17 @@ db/uberoncm.owl: download/uberoncm.owl
cp $< $@
+download/icd10cm.owl: STAMP
+ curl -L -s https://github.com/monarch-initiative/mondo-ingest/releases/latest/download/icd10cm.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/icd10cm.owl
+
+db/icd10cm.owl: download/icd10cm.owl
+ cp $< $@
+
+
download/co_324.owl: STAMP
curl -L -s https://cropontology.org/ontology/CO_324/rdf > $@.tmp
sha256sum -b $@.tmp > $@.sha256
@@ -593,7 +670,7 @@ db/dictybase.owl: download/dictybase.owl
download/eccode.owl: STAMP
- curl -L -s https://github.com/biopragmatics/obo-db-ingest/raw/main/export/eccode/25-May-2022/eccode.owl.gz | gzip -dc > $@.tmp
+ curl -L -s https://w3id.org/biopragmatics/resources/eccode/eccode.owl.gz | gzip -dc > $@.tmp
sha256sum -b $@.tmp > $@.sha256
mv $@.tmp $@
@@ -615,7 +692,7 @@ db/uniprot.owl: download/uniprot.owl
download/rhea.owl: STAMP
- curl -L -s https://github.com/biopragmatics/obo-db-ingest/raw/main/export/rhea/122/rhea.owl.gz | gzip -dc > $@.tmp
+ curl -L -s https://w3id.org/biopragmatics/resources/rhea/rhea.owl > $@.tmp
sha256sum -b $@.tmp > $@.sha256
mv $@.tmp $@
@@ -669,6 +746,17 @@ db/complexportal.owl: download/complexportal.owl
cp $< $@
+download/wikipathways.owl: STAMP
+ curl -L -s https://w3id.org/biopragmatics/resources/wikipathways/wikipathways.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/wikipathways.owl
+
+db/wikipathways.owl: download/wikipathways.owl
+ cp $< $@
+
+
download/drugmechdb.owl: STAMP
curl -L -s None > $@.tmp
sha256sum -b $@.tmp > $@.sha256
@@ -713,8 +801,30 @@ db/ontobiotope.owl: download/ontobiotope.owl
cp $< $@
+download/nando.owl: STAMP
+ curl -L -s 'https://data.bioontology.org/ontologies/NANDO/submissions/15/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb' > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/nando.owl
+
+db/nando.owl: download/nando.owl
+ cp $< $@
+
+
+download/ontie.owl: STAMP
+ curl -L -s https://ontology.iedb.org/file/ontie.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/ontie.owl
+
+db/ontie.owl: download/ontie.owl
+ cp $< $@
+
+
download/ecosim.owl: STAMP
- curl -L -s None > $@.tmp
+ curl -L -s https://data.bioontology.org/ontologies/ECOSIM/submissions/1/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb > $@.tmp
sha256sum -b $@.tmp > $@.sha256
mv $@.tmp $@
@@ -746,6 +856,61 @@ db/mixs.owl: download/mixs.owl
robot merge -i $< reason -o $@.tmp.owl && perl -npe 's@_6_2_rc@@g;s@-6-2-rc@@g' $@.tmp.owl > $@
+download/fibo.owl: STAMP
+ curl -L -s https://spec.edmcouncil.org/fibo/ontology/AboutFIBOProd/ > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/fibo.owl
+
+db/fibo.owl: download/fibo.owl
+ robot merge -i $< -o $@
+
+
+download/bfo2020.owl: STAMP
+ curl -L -s http://purl.obolibrary.org/obo/bfo/2020/bfo.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/bfo2020.owl
+
+db/bfo2020.owl: download/bfo2020.owl
+ cp $< $@
+
+
+download/bfo2020_core.owl: STAMP
+ curl -L -s http://purl.obolibrary.org/obo/bfo/2020/bfo-core.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/bfo2020_core.owl
+
+db/bfo2020_core.owl: download/bfo2020_core.owl
+ cp $< $@
+
+
+download/bfo2020_notime.owl: STAMP
+ curl -L -s http://purl.obolibrary.org/obo/bfo/2020/notime/bfo.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/bfo2020_notime.owl
+
+db/bfo2020_notime.owl: download/bfo2020_notime.owl
+ cp $< $@
+
+
+download/bfo2020_time.owl: STAMP
+ curl -L -s https://raw.githubusercontent.com/BFO-ontology/BFO-2020/master/src/owl/profiles/temporal%20extensions/temporalized%20relations/owl/bfo-temporalized-relations.owl > $@.tmp
+ sha256sum -b $@.tmp > $@.sha256
+ mv $@.tmp $@
+
+.PRECIOUS: download/bfo2020_time.owl
+
+db/bfo2020_time.owl: download/bfo2020_time.owl
+ cp $< $@
+
+
download/%.owl: STAMP
curl -L -s http://purl.obolibrary.org/obo/$*.owl > $@.tmp
sha256sum -b $@.tmp > $@.sha256
@@ -756,4 +921,4 @@ download/%.owl: STAMP
db/%.owl: download/%.owl
robot merge -i $< -o $@
-EXTRA_ONTOLOGIES = chiro ncit fma maxo foodon chebiplus msio modl phenio comploinc bero aio reacto bcio icd10who ordo gard mondo-ingest oeo biovoices omop occo iof go go-lego bao orcid cpont biolink biopax enanomapper mlo ito reactome-Homo-sapiens efo hcao hpinternational edam sweetAll lov schema-dot-org prov cellosaurus cosmo fhkb dbpendiaont uberoncm co_324 ppeo interpro hgnc.genegroup hgnc sgd dictybase eccode uniprot rhea swisslipid drugbank drugcentral complexportal drugmechdb rxnorm vccf ontobiotope ecosim nmdc_schema mixs
+EXTRA_ONTOLOGIES = upheno chiro ncit fma maxo foodon chebiplus msio modl phenio phenio_test comploinc bero aio reacto bcio icd10who ordo gard mondo-ingest oeo biovoices omop cco occo iof upa go go-lego go-amigo neo bao orcid cpont biolink biopax enanomapper mlo ito reactome-Homo-sapiens efo hcao hpinternational edam sweetAll lov schema-dot-org prov cellosaurus cosmo fhkb dbpendiaont uberoncm icd10cm co_324 ppeo interpro hgnc.genegroup hgnc sgd dictybase eccode uniprot rhea swisslipid drugbank drugcentral complexportal wikipathways drugmechdb rxnorm vccf ontobiotope nando ontie ecosim nmdc_schema mixs fibo bfo2020 bfo2020_core bfo2020_notime bfo2020_time
diff --git a/poetry.lock b/poetry.lock
index 44cfb52..a4eb44e 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,10 +1,19 @@
+# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand.
+
[[package]]
-name = "alabaster"
-version = "0.7.12"
-description = "A configurable sidebar-enabled Sphinx theme"
-category = "dev"
+name = "annotated-types"
+version = "0.6.0"
+description = "Reusable constraint types to use with typing.Annotated"
+category = "main"
optional = false
-python-versions = "*"
+python-versions = ">=3.8"
+files = [
+ {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"},
+ {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"},
+]
+
+[package.dependencies]
+typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""}
[[package]]
name = "antlr4-python3-runtime"
@@ -13,30 +22,65 @@ description = "ANTLR 4.9.3 runtime for Python 3.7"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b"},
+]
+
+[[package]]
+name = "anyio"
+version = "4.3.0"
+description = "High level compatibility layer for multiple asynchronous event loop implementations"
+category = "dev"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"},
+ {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"},
+]
+
+[package.dependencies]
+exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""}
+idna = ">=2.8"
+sniffio = ">=1.1"
+typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""}
+
+[package.extras]
+doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
+test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"]
+trio = ["trio (>=0.23)"]
[[package]]
name = "appnope"
-version = "0.1.3"
+version = "0.1.4"
description = "Disable App Nap on macOS >= 10.9"
category = "dev"
optional = false
-python-versions = "*"
+python-versions = ">=3.6"
+files = [
+ {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"},
+ {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"},
+]
[[package]]
name = "argon2-cffi"
-version = "21.3.0"
-description = "The secure Argon2 password hashing algorithm."
+version = "23.1.0"
+description = "Argon2 for Python"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
+files = [
+ {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"},
+ {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"},
+]
[package.dependencies]
argon2-cffi-bindings = "*"
[package.extras]
-dev = ["pre-commit", "cogapp", "tomli", "coverage[toml] (>=5.0.2)", "hypothesis", "pytest", "sphinx", "sphinx-notfound-page", "furo"]
-docs = ["sphinx", "sphinx-notfound-page", "furo"]
-tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"]
+dev = ["argon2-cffi[tests,typing]", "tox (>4)"]
+docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"]
+tests = ["hypothesis", "pytest"]
+typing = ["mypy"]
[[package]]
name = "argon2-cffi-bindings"
@@ -45,60 +89,128 @@ description = "Low-level CFFI bindings for Argon2"
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"},
+ {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"},
+ {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"},
+ {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"},
+ {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"},
+ {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"},
+ {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"},
+ {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"},
+ {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"},
+ {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"},
+ {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"},
+ {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"},
+ {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"},
+ {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"},
+ {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"},
+ {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"},
+ {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"},
+ {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"},
+ {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"},
+ {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"},
+ {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"},
+]
[package.dependencies]
cffi = ">=1.0.1"
[package.extras]
-dev = ["pytest", "cogapp", "pre-commit", "wheel"]
+dev = ["cogapp", "pre-commit", "pytest", "wheel"]
tests = ["pytest"]
[[package]]
-name = "argparse"
-version = "1.4.0"
-description = "Python command-line parsing library"
+name = "arrow"
+version = "1.3.0"
+description = "Better dates & times for Python"
category = "dev"
optional = false
-python-versions = "*"
+python-versions = ">=3.8"
+files = [
+ {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"},
+ {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"},
+]
+
+[package.dependencies]
+python-dateutil = ">=2.7.0"
+types-python-dateutil = ">=2.8.10"
+
+[package.extras]
+doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"]
+test = ["dateparser (>=1.0.0,<2.0.0)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (>=3.0.0,<4.0.0)"]
[[package]]
name = "asttokens"
-version = "2.0.8"
+version = "2.4.1"
description = "Annotate AST trees with source code positions"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"},
+ {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"},
+]
[package.dependencies]
-six = "*"
+six = ">=1.12.0"
[package.extras]
-test = ["pytest", "astroid (<=2.5.3)"]
+astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"]
+test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"]
+
+[[package]]
+name = "async-lru"
+version = "2.0.4"
+description = "Simple LRU cache for asyncio"
+category = "dev"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"},
+ {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"},
+]
+
+[package.dependencies]
+typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""}
[[package]]
name = "attrs"
-version = "21.4.0"
+version = "23.2.0"
description = "Classes Without Boilerplate"
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=3.7"
+files = [
+ {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"},
+ {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"},
+]
[package.extras]
-dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
-docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
-tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
-tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"]
+cov = ["attrs[tests]", "coverage[toml] (>=5.3)"]
+dev = ["attrs[tests]", "pre-commit"]
+docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"]
+tests = ["attrs[tests-no-zope]", "zope-interface"]
+tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"]
+tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"]
[[package]]
name = "babel"
-version = "2.10.1"
+version = "2.14.0"
description = "Internationalization utilities"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
+files = [
+ {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"},
+ {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"},
+]
[package.dependencies]
-pytz = ">=2015.7"
+pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""}
+
+[package.extras]
+dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"]
[[package]]
name = "backcall"
@@ -107,53 +219,125 @@ description = "Specifications for callback functions passed in to an API"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"},
+ {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"},
+]
[[package]]
name = "beautifulsoup4"
-version = "4.11.1"
+version = "4.12.3"
description = "Screen-scraping library"
category = "dev"
optional = false
python-versions = ">=3.6.0"
+files = [
+ {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"},
+ {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"},
+]
[package.dependencies]
soupsieve = ">1.2"
[package.extras]
+cchardet = ["cchardet"]
+chardet = ["chardet"]
+charset-normalizer = ["charset-normalizer"]
html5lib = ["html5lib"]
lxml = ["lxml"]
[[package]]
name = "bleach"
-version = "5.0.1"
+version = "6.1.0"
description = "An easy safelist-based HTML-sanitizing tool."
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"},
+ {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"},
+]
[package.dependencies]
six = ">=1.9.0"
webencodings = "*"
[package.extras]
-css = ["tinycss2 (>=1.1.0,<1.2)"]
-dev = ["build (==0.8.0)", "flake8 (==4.0.1)", "hashin (==0.17.0)", "pip-tools (==6.6.2)", "pytest (==7.1.2)", "Sphinx (==4.3.2)", "tox (==3.25.0)", "twine (==4.0.1)", "wheel (==0.37.1)", "black (==22.3.0)", "mypy (==0.961)"]
+css = ["tinycss2 (>=1.1.0,<1.3)"]
[[package]]
name = "certifi"
-version = "2022.5.18.1"
+version = "2024.2.2"
description = "Python package for providing Mozilla's CA Bundle."
category = "main"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"},
+ {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"},
+]
[[package]]
name = "cffi"
-version = "1.15.1"
+version = "1.16.0"
description = "Foreign Function Interface for Python calling C code."
category = "dev"
optional = false
-python-versions = "*"
+python-versions = ">=3.8"
+files = [
+ {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"},
+ {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"},
+ {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"},
+ {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"},
+ {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"},
+ {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"},
+ {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"},
+ {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"},
+ {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"},
+ {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"},
+ {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"},
+ {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"},
+ {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"},
+ {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"},
+ {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"},
+ {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"},
+ {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"},
+ {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"},
+ {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"},
+ {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"},
+ {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"},
+ {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"},
+ {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"},
+ {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"},
+ {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"},
+ {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"},
+ {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"},
+ {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"},
+ {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"},
+ {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"},
+ {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"},
+ {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"},
+]
[package.dependencies]
pycparser = "*"
@@ -165,55 +349,226 @@ description = "rdflib collections flattening graph"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "CFGraph-0.2.1.tar.gz", hash = "sha256:b57fe7044a10b8ff65aa3a8a8ddc7d4cd77bf511b42e57289cd52cbc29f8fe74"},
+]
[package.dependencies]
rdflib = ">=0.4.2"
[[package]]
name = "chardet"
-version = "4.0.0"
-description = "Universal encoding detector for Python 2 and 3"
+version = "5.2.0"
+description = "Universal encoding detector for Python 3"
category = "dev"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=3.7"
+files = [
+ {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"},
+ {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"},
+]
[[package]]
name = "charset-normalizer"
-version = "2.0.12"
+version = "3.3.2"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main"
optional = false
-python-versions = ">=3.5.0"
-
-[package.extras]
-unicode_backport = ["unicodedata2"]
+python-versions = ">=3.7.0"
+files = [
+ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"},
+ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
+]
[[package]]
name = "click"
-version = "8.1.3"
+version = "8.1.7"
description = "Composable command line interface toolkit"
category = "main"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
+ {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
+]
[package.dependencies]
colorama = {version = "*", markers = "platform_system == \"Windows\""}
[[package]]
name = "colorama"
-version = "0.4.4"
+version = "0.4.6"
description = "Cross-platform colored terminal text."
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+files = [
+ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
+
+[[package]]
+name = "comm"
+version = "0.2.2"
+description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc."
+category = "dev"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"},
+ {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"},
+]
+
+[package.dependencies]
+traitlets = ">=4"
+
+[package.extras]
+test = ["pytest"]
+
+[[package]]
+name = "curies"
+version = "0.7.8"
+description = "Idiomatic conversion between URIs and compact URIs (CURIEs)."
+category = "main"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "curies-0.7.8-py3-none-any.whl", hash = "sha256:a60b2559f08557176b0a3df1f7c47ec7cd8ae4e0695f23fc6574825d2ccd17eb"},
+ {file = "curies-0.7.8.tar.gz", hash = "sha256:d208ad40b5e40b532285c917f116001f9e887a48dda54e6eedd10e514ea6aa1a"},
+]
+
+[package.dependencies]
+pydantic = "*"
+pytrie = "*"
+requests = "*"
+
+[package.extras]
+docs = ["sphinx", "sphinx-automodapi", "sphinx-rtd-theme"]
+fastapi = ["defusedxml", "fastapi", "httpx", "python-multipart", "uvicorn"]
+flask = ["defusedxml", "flask"]
+pandas = ["pandas"]
+rdflib = ["rdflib"]
+tests = ["coverage", "pytest"]
[[package]]
name = "debugpy"
-version = "1.6.2"
+version = "1.8.1"
description = "An implementation of the Debug Adapter Protocol for Python"
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"},
+ {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"},
+ {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"},
+ {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"},
+ {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"},
+ {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"},
+ {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"},
+ {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"},
+ {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"},
+ {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"},
+ {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"},
+ {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"},
+ {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"},
+ {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"},
+ {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"},
+ {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"},
+ {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"},
+ {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"},
+ {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"},
+ {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"},
+ {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"},
+ {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"},
+]
[[package]]
name = "decorator"
@@ -222,6 +577,10 @@ description = "Decorators for Humans"
category = "dev"
optional = false
python-versions = ">=3.5"
+files = [
+ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"},
+ {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"},
+]
[[package]]
name = "defusedxml"
@@ -230,44 +589,39 @@ description = "XML bomb protection for Python stdlib modules"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+files = [
+ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"},
+ {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"},
+]
[[package]]
name = "deprecated"
-version = "1.2.13"
+version = "1.2.14"
description = "Python @deprecated decorator to deprecate old python classes, functions or methods."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+files = [
+ {file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c"},
+ {file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"},
+]
[package.dependencies]
wrapt = ">=1.10,<2"
[package.extras]
-dev = ["tox", "bump2version (<1)", "sphinx (<2)", "importlib-metadata (<3)", "importlib-resources (<4)", "configparser (<5)", "sphinxcontrib-websupport (<2)", "zipp (<2)", "PyTest (<5)", "PyTest-Cov (<2.6)", "pytest", "pytest-cov"]
-
-[[package]]
-name = "docutils"
-version = "0.17.1"
-description = "Docutils -- Python Documentation Utilities"
-category = "dev"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"]
[[package]]
name = "editorconfig"
-version = "0.12.3"
+version = "0.12.4"
description = "EditorConfig File Locator and Interpreter for Python"
category = "dev"
optional = false
python-versions = "*"
-
-[[package]]
-name = "entrypoints"
-version = "0.4"
-description = "Discover and load entry points from installed packages."
-category = "dev"
-optional = false
-python-versions = ">=3.6"
+files = [
+ {file = "EditorConfig-0.12.4.tar.gz", hash = "sha256:24857fa1793917dd9ccf0c7810a07e05404ce9b823521c7dce22a4fb5d125f80"},
+]
[[package]]
name = "et-xmlfile"
@@ -276,25 +630,67 @@ description = "An implementation of lxml.xmlfile for the standard library"
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"},
+ {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"},
+]
+
+[[package]]
+name = "exceptiongroup"
+version = "1.2.0"
+description = "Backport of PEP 654 (exception groups)"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
+ {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
+]
+
+[package.extras]
+test = ["pytest (>=6)"]
[[package]]
name = "executing"
-version = "0.10.0"
+version = "2.0.1"
description = "Get the currently executing AST node of a frame, and other information"
category = "dev"
optional = false
-python-versions = "*"
+python-versions = ">=3.5"
+files = [
+ {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"},
+ {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"},
+]
+
+[package.extras]
+tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"]
[[package]]
name = "fastjsonschema"
-version = "2.16.1"
+version = "2.19.1"
description = "Fastest Python implementation of JSON schema"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"},
+ {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"},
+]
[package.extras]
-devel = ["colorama", "jsonschema", "json-spec", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"]
+devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"]
+
+[[package]]
+name = "fqdn"
+version = "1.5.1"
+description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4"
+files = [
+ {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"},
+ {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"},
+]
[[package]]
name = "ghp-import"
@@ -303,36 +699,117 @@ description = "Copy your docs directly to the gh-pages branch."
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"},
+ {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"},
+]
[package.dependencies]
python-dateutil = ">=2.8.1"
[package.extras]
-dev = ["twine", "markdown", "flake8", "wheel"]
+dev = ["flake8", "markdown", "twine", "wheel"]
[[package]]
name = "graphviz"
-version = "0.20"
+version = "0.20.3"
description = "Simple Python interface for Graphviz"
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "graphviz-0.20.3-py3-none-any.whl", hash = "sha256:81f848f2904515d8cd359cc611faba817598d2feaac4027b266aa3eda7b3dde5"},
+ {file = "graphviz-0.20.3.zip", hash = "sha256:09d6bc81e6a9fa392e7ba52135a9d49f1ed62526f96499325930e87ca1b5925d"},
+]
[package.extras]
-dev = ["tox (>=3)", "flake8", "pep8-naming", "wheel", "twine"]
-docs = ["sphinx (>=4)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"]
-test = ["pytest (>=7)", "pytest-mock (>=3)", "mock (>=4)", "pytest-cov", "coverage"]
+dev = ["flake8", "pep8-naming", "tox (>=3)", "twine", "wheel"]
+docs = ["sphinx (>=5,<7)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"]
+test = ["coverage", "pytest (>=7,<8.1)", "pytest-cov", "pytest-mock (>=3)"]
[[package]]
name = "greenlet"
-version = "1.1.2"
+version = "3.0.3"
description = "Lightweight in-process concurrent programming"
category = "main"
optional = false
-python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
+python-versions = ">=3.7"
+files = [
+ {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"},
+ {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"},
+ {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"},
+ {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"},
+ {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"},
+ {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"},
+ {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"},
+ {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"},
+ {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"},
+ {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"},
+ {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"},
+ {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"},
+ {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"},
+ {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"},
+ {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"},
+ {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"},
+ {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"},
+ {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"},
+ {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"},
+ {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"},
+ {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"},
+ {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"},
+ {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"},
+ {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"},
+ {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"},
+ {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"},
+ {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"},
+ {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"},
+]
[package.extras]
-docs = ["sphinx"]
+docs = ["Sphinx", "furo"]
+test = ["objgraph", "psutil"]
+
+[[package]]
+name = "h11"
+version = "0.14.0"
+description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
+ {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
+]
[[package]]
name = "hbreader"
@@ -341,85 +818,166 @@ description = "Honey Badger reader - a generic file/url/string open and read too
category = "main"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "hbreader-0.9.1-py3-none-any.whl", hash = "sha256:9a6e76c9d1afc1b977374a5dc430a1ebb0ea0488205546d4678d6e31cc5f6801"},
+ {file = "hbreader-0.9.1.tar.gz", hash = "sha256:d2c132f8ba6276d794c66224c3297cec25c8079d0a4cf019c061611e0a3b94fa"},
+]
[[package]]
-name = "idna"
-version = "3.3"
-description = "Internationalized Domain Names in Applications (IDNA)"
-category = "main"
+name = "httpcore"
+version = "1.0.5"
+description = "A minimal low-level HTTP client."
+category = "dev"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.8"
+files = [
+ {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"},
+ {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"},
+]
+
+[package.dependencies]
+certifi = "*"
+h11 = ">=0.13,<0.15"
+
+[package.extras]
+asyncio = ["anyio (>=4.0,<5.0)"]
+http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (>=1.0.0,<2.0.0)"]
+trio = ["trio (>=0.22.0,<0.26.0)"]
[[package]]
-name = "imagesize"
-version = "1.3.0"
-description = "Getting image size from png/jpeg/jpeg2000/gif file"
+name = "httpx"
+version = "0.27.0"
+description = "The next generation HTTP client."
category = "dev"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=3.8"
+files = [
+ {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"},
+ {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"},
+]
+
+[package.dependencies]
+anyio = "*"
+certifi = "*"
+httpcore = ">=1.0.0,<2.0.0"
+idna = "*"
+sniffio = "*"
+
+[package.extras]
+brotli = ["brotli", "brotlicffi"]
+cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<14)"]
+http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (>=1.0.0,<2.0.0)"]
+
+[[package]]
+name = "idna"
+version = "3.6"
+description = "Internationalized Domain Names in Applications (IDNA)"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+files = [
+ {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"},
+ {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"},
+]
[[package]]
name = "importlib-metadata"
-version = "4.11.4"
+version = "7.1.0"
description = "Read metadata from Python packages"
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"},
+ {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"},
+]
[package.dependencies]
zipp = ">=0.5"
[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"]
+docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
perf = ["ipython"]
-testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"]
+testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"]
[[package]]
name = "importlib-resources"
-version = "5.7.1"
+version = "6.4.0"
description = "Read resources from Python packages"
category = "main"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "importlib_resources-6.4.0-py3-none-any.whl", hash = "sha256:50d10f043df931902d4194ea07ec57960f66a80449ff867bfe782b4c486ba78c"},
+ {file = "importlib_resources-6.4.0.tar.gz", hash = "sha256:cdb2b453b8046ca4e3798eb1d84f3cce1446a0e8e7b5ef4efb600f19fc398145"},
+]
[package.dependencies]
zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""}
[package.extras]
-testing = ["pytest-mypy (>=0.9.1)", "pytest-black (>=0.3.7)", "pytest-enabler (>=1.0.1)", "pytest-cov", "pytest-flake8", "pytest-checkdocs (>=2.4)", "pytest (>=6)"]
-docs = ["rst.linker (>=1.9)", "jaraco.packaging (>=9)", "sphinx"]
+docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"]
+testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"]
+
+[[package]]
+name = "iniconfig"
+version = "2.0.0"
+description = "brain-dead simple config-ini parsing"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
+ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
+]
[[package]]
name = "ipykernel"
-version = "6.15.1"
+version = "6.29.4"
description = "IPython Kernel for Jupyter"
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"},
+ {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"},
+]
[package.dependencies]
appnope = {version = "*", markers = "platform_system == \"Darwin\""}
-debugpy = ">=1.0"
+comm = ">=0.1.1"
+debugpy = ">=1.6.5"
ipython = ">=7.23.1"
jupyter-client = ">=6.1.12"
+jupyter-core = ">=4.12,<5.0.0 || >=5.1.0"
matplotlib-inline = ">=0.1"
nest-asyncio = "*"
packaging = "*"
psutil = "*"
-pyzmq = ">=17"
+pyzmq = ">=24"
tornado = ">=6.1"
-traitlets = ">=5.1.0"
+traitlets = ">=5.4.0"
[package.extras]
-test = ["flaky", "ipyparallel", "pre-commit", "pytest-cov", "pytest-timeout", "pytest (>=6.0)"]
+cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"]
+docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"]
+pyqt5 = ["pyqt5"]
+pyside6 = ["pyside6"]
+test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"]
[[package]]
name = "ipython"
-version = "8.4.0"
+version = "8.12.3"
description = "IPython: Productive Interactive Computing"
category = "dev"
optional = false
python-versions = ">=3.8"
+files = [
+ {file = "ipython-8.12.3-py3-none-any.whl", hash = "sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c"},
+ {file = "ipython-8.12.3.tar.gz", hash = "sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363"},
+]
[package.dependencies]
appnope = {version = "*", markers = "sys_platform == \"darwin\""}
@@ -430,15 +988,16 @@ jedi = ">=0.16"
matplotlib-inline = "*"
pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""}
pickleshare = "*"
-prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0"
+prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0"
pygments = ">=2.4.0"
stack-data = "*"
traitlets = ">=5"
+typing-extensions = {version = "*", markers = "python_version < \"3.10\""}
[package.extras]
-all = ["black", "Sphinx (>=1.3)", "ipykernel", "nbconvert", "nbformat", "ipywidgets", "notebook", "ipyparallel", "qtconsole", "pytest (<7.1)", "pytest-asyncio", "testpath", "curio", "matplotlib (!=3.2.0)", "numpy (>=1.19)", "pandas", "trio"]
+all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"]
black = ["black"]
-doc = ["Sphinx (>=1.3)"]
+doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"]
kernel = ["ipykernel"]
nbconvert = ["nbconvert"]
nbformat = ["nbformat"]
@@ -446,7 +1005,7 @@ notebook = ["ipywidgets", "notebook"]
parallel = ["ipyparallel"]
qtconsole = ["qtconsole"]
test = ["pytest (<7.1)", "pytest-asyncio", "testpath"]
-test_extra = ["pytest (<7.1)", "pytest-asyncio", "testpath", "curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.19)", "pandas", "trio"]
+test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"]
[[package]]
name = "ipython-genutils"
@@ -455,6 +1014,10 @@ description = "Vestigial utilities from IPython"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"},
+ {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"},
+]
[[package]]
name = "ipython-sql"
@@ -463,6 +1026,10 @@ description = "RDBMS access via IPython"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "ipython-sql-0.4.1.tar.gz", hash = "sha256:3786344ce208a58047a4bcf43afd3c143d935a395c72ea849bf0e3fc24fad9e4"},
+ {file = "ipython_sql-0.4.1-py3-none-any.whl", hash = "sha256:fda28e16edf6692eb680fa99726932c75bc27b284ad9678c45347c97fd680bd2"},
+]
[package.dependencies]
ipython = ">=1.0"
@@ -474,22 +1041,25 @@ sqlparse = "*"
[[package]]
name = "ipywidgets"
-version = "7.7.1"
-description = "IPython HTML widgets for Jupyter"
+version = "8.1.2"
+description = "Jupyter interactive widgets"
category = "dev"
optional = false
-python-versions = "*"
+python-versions = ">=3.7"
+files = [
+ {file = "ipywidgets-8.1.2-py3-none-any.whl", hash = "sha256:bbe43850d79fb5e906b14801d6c01402857996864d1e5b6fa62dd2ee35559f60"},
+ {file = "ipywidgets-8.1.2.tar.gz", hash = "sha256:d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9"},
+]
[package.dependencies]
-ipykernel = ">=4.5.1"
-ipython = {version = ">=4.0.0", markers = "python_version >= \"3.3\""}
-ipython-genutils = ">=0.2.0,<0.3.0"
-jupyterlab-widgets = {version = ">=1.0.0", markers = "python_version >= \"3.6\""}
+comm = ">=0.1.3"
+ipython = ">=6.1.0"
+jupyterlab-widgets = ">=3.0.10,<3.1.0"
traitlets = ">=4.3.1"
-widgetsnbextension = ">=3.6.0,<3.7.0"
+widgetsnbextension = ">=4.0.10,<4.1.0"
[package.extras]
-test = ["pytest (>=3.6.0)", "pytest-cov", "mock"]
+test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"]
[[package]]
name = "isodate"
@@ -498,32 +1068,60 @@ description = "An ISO 8601 date/time/duration parser and formatter"
category = "main"
optional = false
python-versions = "*"
+files = [
+ {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"},
+ {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"},
+]
[package.dependencies]
six = "*"
+[[package]]
+name = "isoduration"
+version = "20.11.0"
+description = "Operations with ISO 8601 durations"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"},
+ {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"},
+]
+
+[package.dependencies]
+arrow = ">=0.15.0"
+
[[package]]
name = "jedi"
-version = "0.18.1"
+version = "0.19.1"
description = "An autocompletion tool for Python that can be used for text editors."
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"},
+ {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"},
+]
[package.dependencies]
-parso = ">=0.8.0,<0.9.0"
+parso = ">=0.8.3,<0.9.0"
[package.extras]
-qa = ["flake8 (==3.8.3)", "mypy (==0.782)"]
-testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"]
+docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"]
+qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"]
+testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"]
[[package]]
name = "jinja2"
-version = "3.1.2"
+version = "3.1.3"
description = "A very fast and expressive template engine."
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"},
+ {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"},
+]
[package.dependencies]
MarkupSafe = ">=2.0"
@@ -533,11 +1131,14 @@ i18n = ["Babel (>=2.7)"]
[[package]]
name = "jsbeautifier"
-version = "1.14.5"
+version = "1.15.1"
description = "JavaScript unobfuscator and beautifier."
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "jsbeautifier-1.15.1.tar.gz", hash = "sha256:ebd733b560704c602d744eafc839db60a1ee9326e30a2a80c4adb8718adc1b24"},
+]
[package.dependencies]
editorconfig = ">=0.12.2"
@@ -550,21 +1151,38 @@ description = "Python library for denormalizing nested dicts or json objects to
category = "main"
optional = false
python-versions = ">=3.7.0"
+files = [
+ {file = "json_flattener-0.1.9-py3-none-any.whl", hash = "sha256:6b027746f08bf37a75270f30c6690c7149d5f704d8af1740c346a3a1236bc941"},
+ {file = "json_flattener-0.1.9.tar.gz", hash = "sha256:84cf8523045ffb124301a602602201665fcb003a171ece87e6f46ed02f7f0c15"},
+]
[package.dependencies]
click = "*"
pyyaml = "*"
+[[package]]
+name = "json5"
+version = "0.9.24"
+description = "A Python implementation of the JSON5 data format."
+category = "dev"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "json5-0.9.24-py3-none-any.whl", hash = "sha256:4ca101fd5c7cb47960c055ef8f4d0e31e15a7c6c48c3b6f1473fc83b6c462a13"},
+ {file = "json5-0.9.24.tar.gz", hash = "sha256:0c638399421da959a20952782800e5c1a78c14e08e1dc9738fa10d8ec14d58c8"},
+]
+
[[package]]
name = "jsonasobj"
-version = "2.0.1"
+version = "1.3.1"
description = "JSON as python objects"
category = "dev"
optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-hbreader = "*"
+python-versions = "*"
+files = [
+ {file = "jsonasobj-1.3.1-py3-none-any.whl", hash = "sha256:b9e329dc1ceaae7cf5d5b214684a0b100e0dad0be6d5bbabac281ec35ddeca65"},
+ {file = "jsonasobj-1.3.1.tar.gz", hash = "sha256:d52e0544a54a08f6ea3f77fa3387271e3648655e0eace2f21e825c26370e44a2"},
+]
[[package]]
name = "jsonasobj2"
@@ -573,58 +1191,104 @@ description = "JSON as python objects - version 2"
category = "main"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "jsonasobj2-1.0.4-py3-none-any.whl", hash = "sha256:12e86f86324d54fcf60632db94ea74488d5314e3da554c994fe1e2c6f29acb79"},
+ {file = "jsonasobj2-1.0.4.tar.gz", hash = "sha256:f50b1668ef478004aa487b2d2d094c304e5cb6b79337809f4a1f2975cc7fbb4e"},
+]
[package.dependencies]
hbreader = "*"
[[package]]
name = "jsonpatch"
-version = "1.32"
+version = "1.33"
description = "Apply JSON-Patches (RFC 6902)"
category = "dev"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*"
+files = [
+ {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"},
+ {file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"},
+]
[package.dependencies]
jsonpointer = ">=1.9"
[[package]]
name = "jsonpath-ng"
-version = "1.5.3"
+version = "1.6.1"
description = "A final implementation of JSONPath for Python that aims to be standard compliant, including arithmetic and binary comparison operators and providing clear AST for metaprogramming."
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "jsonpath-ng-1.6.1.tar.gz", hash = "sha256:086c37ba4917304850bd837aeab806670224d3f038fe2833ff593a672ef0a5fa"},
+ {file = "jsonpath_ng-1.6.1-py3-none-any.whl", hash = "sha256:8f22cd8273d7772eea9aaa84d922e0841aa36fdb8a2c6b7f6c3791a16a9bc0be"},
+]
[package.dependencies]
-decorator = "*"
ply = "*"
-six = "*"
[[package]]
name = "jsonpointer"
-version = "2.3"
+version = "2.4"
description = "Identify specific nodes in a JSON document (RFC 6901)"
category = "dev"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*"
+files = [
+ {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"},
+ {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"},
+]
[[package]]
name = "jsonschema"
-version = "4.5.1"
+version = "4.21.1"
description = "An implementation of JSON Schema validation for Python"
category = "main"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"},
+ {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"},
+]
[package.dependencies]
-attrs = ">=17.4.0"
+attrs = ">=22.2.0"
+fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""}
+idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""}
importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""}
-pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2"
+isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""}
+jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""}
+jsonschema-specifications = ">=2023.03.6"
+pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""}
+referencing = ">=0.28.4"
+rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""}
+rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""}
+rfc3987 = {version = "*", optional = true, markers = "extra == \"format\""}
+rpds-py = ">=0.7.1"
+uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""}
+webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""}
[package.extras]
format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"]
-format_nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"]
+format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"]
+
+[[package]]
+name = "jsonschema-specifications"
+version = "2023.12.1"
+description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry"
+category = "main"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"},
+ {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"},
+]
+
+[package.dependencies]
+importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""}
+referencing = ">=0.31.0"
[[package]]
name = "jupyter"
@@ -633,6 +1297,11 @@ description = "Jupyter metapackage. Install all the Jupyter components in one go
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"},
+ {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"},
+ {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"},
+]
[package.dependencies]
ipykernel = "*"
@@ -644,239 +1313,451 @@ qtconsole = "*"
[[package]]
name = "jupyter-client"
-version = "7.3.4"
+version = "8.6.1"
description = "Jupyter protocol implementation and client libraries"
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "jupyter_client-8.6.1-py3-none-any.whl", hash = "sha256:3b7bd22f058434e3b9a7ea4b1500ed47de2713872288c0d511d19926f99b459f"},
+ {file = "jupyter_client-8.6.1.tar.gz", hash = "sha256:e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f"},
+]
[package.dependencies]
-entrypoints = "*"
-jupyter-core = ">=4.9.2"
-nest-asyncio = ">=1.5.4"
+importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""}
+jupyter-core = ">=4.12,<5.0.0 || >=5.1.0"
python-dateutil = ">=2.8.2"
pyzmq = ">=23.0"
-tornado = ">=6.0"
-traitlets = "*"
+tornado = ">=6.2"
+traitlets = ">=5.3"
[package.extras]
-doc = ["ipykernel", "myst-parser", "sphinx-rtd-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt"]
-test = ["codecov", "coverage", "ipykernel (>=6.5)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"]
+docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"]
+test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"]
[[package]]
name = "jupyter-console"
-version = "6.4.4"
+version = "6.6.3"
description = "Jupyter terminal console"
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"},
+ {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"},
+]
[package.dependencies]
-ipykernel = "*"
+ipykernel = ">=6.14"
ipython = "*"
jupyter-client = ">=7.0.0"
-prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0"
+jupyter-core = ">=4.12,<5.0.0 || >=5.1.0"
+prompt-toolkit = ">=3.0.30"
pygments = "*"
+pyzmq = ">=17"
+traitlets = ">=5.4"
[package.extras]
-test = ["pexpect"]
+test = ["flaky", "pexpect", "pytest"]
[[package]]
name = "jupyter-core"
-version = "4.11.1"
+version = "5.7.2"
description = "Jupyter core package. A base package on which Jupyter projects rely."
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"},
+ {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"},
+]
[package.dependencies]
-pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""}
-traitlets = "*"
+platformdirs = ">=2.5"
+pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""}
+traitlets = ">=5.3"
[package.extras]
-test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"]
+docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"]
+test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"]
[[package]]
-name = "jupyterlab-pygments"
-version = "0.2.2"
-description = "Pygments theme using JupyterLab CSS variables"
+name = "jupyter-events"
+version = "0.10.0"
+description = "Jupyter Event System library"
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "jupyter_events-0.10.0-py3-none-any.whl", hash = "sha256:4b72130875e59d57716d327ea70d3ebc3af1944d3717e5a498b8a06c6c159960"},
+ {file = "jupyter_events-0.10.0.tar.gz", hash = "sha256:670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22"},
+]
+
+[package.dependencies]
+jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]}
+python-json-logger = ">=2.0.4"
+pyyaml = ">=5.3"
+referencing = "*"
+rfc3339-validator = "*"
+rfc3986-validator = ">=0.1.1"
+traitlets = ">=5.3"
+
+[package.extras]
+cli = ["click", "rich"]
+docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"]
+test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"]
[[package]]
-name = "jupyterlab-widgets"
-version = "1.1.1"
-description = "A JupyterLab extension."
+name = "jupyter-lsp"
+version = "2.2.4"
+description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
+files = [
+ {file = "jupyter-lsp-2.2.4.tar.gz", hash = "sha256:5e50033149344065348e688608f3c6d654ef06d9856b67655bd7b6bac9ee2d59"},
+ {file = "jupyter_lsp-2.2.4-py3-none-any.whl", hash = "sha256:da61cb63a16b6dff5eac55c2699cc36eac975645adee02c41bdfc03bf4802e77"},
+]
+
+[package.dependencies]
+importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""}
+jupyter-server = ">=1.1.2"
[[package]]
-name = "linkml"
-version = "1.3.2"
-description = "Linked Open Data Modeling Language"
+name = "jupyter-server"
+version = "2.13.0"
+description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications."
category = "dev"
optional = false
-python-versions = ">=3.7.6,<4.0.0"
+python-versions = ">=3.8"
+files = [
+ {file = "jupyter_server-2.13.0-py3-none-any.whl", hash = "sha256:77b2b49c3831fbbfbdb5048cef4350d12946191f833a24e5f83e5f8f4803e97b"},
+ {file = "jupyter_server-2.13.0.tar.gz", hash = "sha256:c80bfb049ea20053c3d9641c2add4848b38073bf79f1729cea1faed32fc1c78e"},
+]
[package.dependencies]
-antlr4-python3-runtime = ">=4.9.0,<4.10"
-argparse = ">=1.4.0"
-click = ">=7.0"
-graphviz = ">=0.10.1"
-hbreader = "*"
-isodate = ">=0.6.0"
+anyio = ">=3.1.0"
+argon2-cffi = "*"
jinja2 = "*"
-jsonasobj2 = ">=1.0.3,<2.0.0"
-jsonschema = ">=3.0.1"
-linkml-dataops = "*"
-linkml-runtime = ">=1.3.0,<2.0.0"
-myst-parser = "*"
-openpyxl = "*"
-parse = "*"
-prefixcommons = ">=0.1.7"
-pydantic = "*"
-pyjsg = ">=0.11.6"
-pyshex = ">=0.7.20"
-pyshexc = ">=0.8.3"
-python-dateutil = "*"
-pyyaml = "*"
-rdflib = ">=6.0.0"
-requests = ">=2.22"
-sphinx-click = "*"
-sqlalchemy = ">=1.4.31"
-watchdog = ">=0.9.0"
+jupyter-client = ">=7.4.4"
+jupyter-core = ">=4.12,<5.0.0 || >=5.1.0"
+jupyter-events = ">=0.9.0"
+jupyter-server-terminals = "*"
+nbconvert = ">=6.4.4"
+nbformat = ">=5.3.0"
+overrides = "*"
+packaging = "*"
+prometheus-client = "*"
+pywinpty = {version = "*", markers = "os_name == \"nt\""}
+pyzmq = ">=24"
+send2trash = ">=1.8.2"
+terminado = ">=0.8.3"
+tornado = ">=6.2.0"
+traitlets = ">=5.6.0"
+websocket-client = "*"
[package.extras]
-docs = ["sphinx-rtd-theme", "sphinx"]
+docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"]
+test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"]
[[package]]
-name = "linkml-dataops"
-version = "0.1.0"
-description = "LinkML Data Operations API"
+name = "jupyter-server-terminals"
+version = "0.5.3"
+description = "A Jupyter Server Extension Providing Terminals."
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"},
+ {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"},
+]
[package.dependencies]
-jinja2 = "*"
-jsonpatch = "*"
-jsonpath-ng = "*"
-linkml-runtime = ">=1.1.6"
-"ruamel.yaml" = "*"
+pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""}
+terminado = ">=0.8.3"
+
+[package.extras]
+docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"]
+test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"]
[[package]]
-name = "linkml-runtime"
-version = "1.3.2"
-description = "Runtime environment for LinkML, the Linked open data modeling language"
-category = "main"
+name = "jupyterlab"
+version = "4.1.5"
+description = "JupyterLab computational environment"
+category = "dev"
optional = false
-python-versions = ">=3.7.1,<4.0.0"
+python-versions = ">=3.8"
+files = [
+ {file = "jupyterlab-4.1.5-py3-none-any.whl", hash = "sha256:3bc843382a25e1ab7bc31d9e39295a9f0463626692b7995597709c0ab236ab2c"},
+ {file = "jupyterlab-4.1.5.tar.gz", hash = "sha256:c9ad75290cb10bfaff3624bf3fbb852319b4cce4c456613f8ebbaa98d03524db"},
+]
[package.dependencies]
-click = "*"
-deprecated = "*"
-hbreader = "*"
-json-flattener = ">=0.1.9"
-jsonasobj2 = ">=1.0.4,<2.0.0"
-jsonschema = ">=3.2.0"
-prefixcommons = "0.1.11"
-pyyaml = "*"
-rdflib = ">=6.0.0"
-requests = "*"
+async-lru = ">=1.0.0"
+httpx = ">=0.25.0"
+importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""}
+importlib-resources = {version = ">=1.4", markers = "python_version < \"3.9\""}
+ipykernel = "*"
+jinja2 = ">=3.0.3"
+jupyter-core = "*"
+jupyter-lsp = ">=2.0.0"
+jupyter-server = ">=2.4.0,<3"
+jupyterlab-server = ">=2.19.0,<3"
+notebook-shim = ">=0.2"
+packaging = "*"
+tomli = {version = "*", markers = "python_version < \"3.11\""}
+tornado = ">=6.2.0"
+traitlets = "*"
+
+[package.extras]
+dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.2.0)"]
+docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"]
+docs-screenshots = ["altair (==5.2.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.1)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post6)", "matplotlib (==3.8.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.0)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"]
+test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"]
[[package]]
-name = "lxml"
-version = "4.9.1"
-description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
+name = "jupyterlab-pygments"
+version = "0.3.0"
+description = "Pygments theme using JupyterLab CSS variables"
category = "dev"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*"
-
-[package.extras]
-cssselect = ["cssselect (>=0.7)"]
-html5 = ["html5lib"]
-htmlsoup = ["beautifulsoup4"]
-source = ["Cython (>=0.29.7)"]
+python-versions = ">=3.8"
+files = [
+ {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"},
+ {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"},
+]
[[package]]
-name = "markdown"
-version = "3.3.7"
-description = "Python implementation of Markdown."
+name = "jupyterlab-server"
+version = "2.25.4"
+description = "A set of server components for JupyterLab and JupyterLab like applications."
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
+files = [
+ {file = "jupyterlab_server-2.25.4-py3-none-any.whl", hash = "sha256:eb645ecc8f9b24bac5decc7803b6d5363250e16ec5af814e516bc2c54dd88081"},
+ {file = "jupyterlab_server-2.25.4.tar.gz", hash = "sha256:2098198e1e82e0db982440f9b5136175d73bea2cd42a6480aa6fd502cb23c4f9"},
+]
[package.dependencies]
-importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""}
+babel = ">=2.10"
+importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""}
+jinja2 = ">=3.0.3"
+json5 = ">=0.9.0"
+jsonschema = ">=4.18.0"
+jupyter-server = ">=1.21,<3"
+packaging = ">=21.3"
+requests = ">=2.31"
[package.extras]
-testing = ["coverage", "pyyaml"]
+docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"]
+openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"]
+test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0,<8)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"]
[[package]]
-name = "markdown-it-py"
-version = "2.1.0"
-description = "Python port of markdown-it. Markdown parsing, done right!"
+name = "jupyterlab-widgets"
+version = "3.0.10"
+description = "Jupyter interactive widgets for JupyterLab"
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "jupyterlab_widgets-3.0.10-py3-none-any.whl", hash = "sha256:dd61f3ae7a5a7f80299e14585ce6cf3d6925a96c9103c978eda293197730cb64"},
+ {file = "jupyterlab_widgets-3.0.10.tar.gz", hash = "sha256:04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0"},
+]
+
+[[package]]
+name = "linkml"
+version = "1.7.7"
+description = "Linked Open Data Modeling Language"
+category = "dev"
+optional = false
+python-versions = "<4.0.0,>=3.8.1"
+files = [
+ {file = "linkml-1.7.7-py3-none-any.whl", hash = "sha256:3f17bcaf77458dd2aaecd4c7f9a6545e8422aa3260513868f395b4f3d4b36571"},
+ {file = "linkml-1.7.7.tar.gz", hash = "sha256:d89c6b793dba01bb2e53e4929fab70c4b2d498d7b2141f7f1985f8cf9f570537"},
+]
[package.dependencies]
-mdurl = ">=0.1,<1.0"
+antlr4-python3-runtime = ">=4.9.0,<4.10"
+click = ">=7.0"
+graphviz = ">=0.10.1"
+hbreader = "*"
+isodate = ">=0.6.0"
+jinja2 = ">=3.1.0"
+jsonasobj2 = ">=1.0.3,<2.0.0"
+jsonschema = {version = ">=4.0.0", extras = ["format"]}
+linkml-dataops = "*"
+linkml-runtime = ">=1.7.4"
+openpyxl = "*"
+parse = "*"
+prefixcommons = ">=0.1.7"
+prefixmaps = ">=0.2.2"
+pydantic = ">=1.0.0,<3.0.0"
+pyjsg = ">=0.11.6"
+pyshex = ">=0.7.20"
+pyshexc = ">=0.8.3"
+python-dateutil = "*"
+pyyaml = "*"
+rdflib = ">=6.0.0"
+requests = ">=2.22"
+sqlalchemy = ">=1.4.31"
+watchdog = ">=0.9.0"
[package.extras]
-benchmarking = ["psutil", "pytest", "pytest-benchmark (>=3.2,<4.0)"]
-code_style = ["pre-commit (==2.6)"]
-compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.3.6,<3.4.0)", "mistletoe (>=0.8.1,<0.9.0)", "mistune (>=2.0.2,<2.1.0)", "panflute (>=2.1.3,<2.2.0)"]
-linkify = ["linkify-it-py (>=1.0,<2.0)"]
-plugins = ["mdit-py-plugins"]
-profiling = ["gprof2dot"]
-rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx-book-theme"]
-testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"]
+black = ["black (>=24.0.0)"]
+shacl = ["pyshacl (>=0.25.0,<0.26.0)"]
+tests = ["black (>=24.0.0)", "pyshacl (>=0.25.0,<0.26.0)"]
[[package]]
-name = "markupsafe"
-version = "2.1.1"
-description = "Safely add untrusted strings to HTML/XML markup."
+name = "linkml-dataops"
+version = "0.1.0"
+description = "LinkML Data Operations API"
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "linkml_dataops-0.1.0-py3-none-any.whl", hash = "sha256:193cf7f659e5f07946d2c2761896910d5f7151d91282543b1363801f68307f4c"},
+ {file = "linkml_dataops-0.1.0.tar.gz", hash = "sha256:4550eab65e78b70dc3b9c651724a94ac2b1d1edb2fbe576465f1d6951a54ed04"},
+]
+
+[package.dependencies]
+jinja2 = "*"
+jsonpatch = "*"
+jsonpath-ng = "*"
+linkml-runtime = ">=1.1.6"
+"ruamel.yaml" = "*"
[[package]]
-name = "matplotlib-inline"
-version = "0.1.3"
-description = "Inline Matplotlib backend for Jupyter"
-category = "dev"
+name = "linkml-runtime"
+version = "1.7.5"
+description = "Runtime environment for LinkML, the Linked open data modeling language"
+category = "main"
optional = false
-python-versions = ">=3.5"
+python-versions = "<4.0,>=3.8"
+files = [
+ {file = "linkml_runtime-1.7.5-py3-none-any.whl", hash = "sha256:c58000c7c68fa97b7d76c50421a85a64e25f07eec5bcac464bc00c4cd79007a6"},
+ {file = "linkml_runtime-1.7.5.tar.gz", hash = "sha256:b31197a5398359441ae1ed43470c54377a1d08db961366dda670300dddcd71d7"},
+]
[package.dependencies]
-traitlets = "*"
+click = "*"
+curies = ">=0.5.4"
+deprecated = "*"
+hbreader = "*"
+json-flattener = ">=0.1.9"
+jsonasobj2 = ">=1.0.4,<2.dev0"
+jsonschema = ">=3.2.0"
+prefixcommons = ">=0.1.12"
+prefixmaps = ">=0.1.4"
+pydantic = ">=1.10.2,<3.0.0"
+pyyaml = "*"
+rdflib = ">=6.0.0"
+requests = "*"
[[package]]
-name = "mdit-py-plugins"
-version = "0.3.0"
-description = "Collection of plugins for markdown-it-py"
+name = "markdown"
+version = "3.6"
+description = "Python implementation of John Gruber's Markdown."
category = "dev"
optional = false
-python-versions = "~=3.6"
+python-versions = ">=3.8"
+files = [
+ {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"},
+ {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"},
+]
[package.dependencies]
-markdown-it-py = ">=1.0.0,<3.0.0"
+importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""}
[package.extras]
-code_style = ["pre-commit (==2.6)"]
-rtd = ["myst-parser (>=0.14.0,<0.15.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"]
-testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"]
+docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"]
+testing = ["coverage", "pyyaml"]
[[package]]
-name = "mdurl"
-version = "0.1.1"
-description = "Markdown URL utilities"
+name = "markupsafe"
+version = "2.1.5"
+description = "Safely add untrusted strings to HTML/XML markup."
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"},
+ {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"},
+]
+
+[[package]]
+name = "matplotlib-inline"
+version = "0.1.6"
+description = "Inline Matplotlib backend for Jupyter"
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+files = [
+ {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"},
+ {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"},
+]
+
+[package.dependencies]
+traitlets = "*"
[[package]]
name = "mergedeep"
@@ -885,61 +1766,96 @@ description = "A deep merge function for 🐍."
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"},
+ {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"},
+]
[[package]]
name = "mistune"
-version = "0.8.4"
-description = "The fastest markdown parser in pure Python"
+version = "3.0.2"
+description = "A sane and fast Markdown parser with useful plugins and renderers"
category = "dev"
optional = false
-python-versions = "*"
+python-versions = ">=3.7"
+files = [
+ {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"},
+ {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"},
+]
[[package]]
name = "mkdocs"
-version = "1.3.0"
+version = "1.5.3"
description = "Project documentation with Markdown."
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
+files = [
+ {file = "mkdocs-1.5.3-py3-none-any.whl", hash = "sha256:3b3a78e736b31158d64dbb2f8ba29bd46a379d0c6e324c2246c3bc3d2189cfc1"},
+ {file = "mkdocs-1.5.3.tar.gz", hash = "sha256:eb7c99214dcb945313ba30426c2451b735992c73c2e10838f76d09e39ff4d0e2"},
+]
[package.dependencies]
-click = ">=3.3"
+click = ">=7.0"
+colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""}
ghp-import = ">=1.0"
-importlib-metadata = ">=4.3"
-Jinja2 = ">=2.10.2"
-Markdown = ">=3.2.1"
+importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""}
+jinja2 = ">=2.11.1"
+markdown = ">=3.2.1"
+markupsafe = ">=2.0.1"
mergedeep = ">=1.3.4"
packaging = ">=20.5"
-PyYAML = ">=3.10"
+pathspec = ">=0.11.1"
+platformdirs = ">=2.2.0"
+pyyaml = ">=5.1"
pyyaml-env-tag = ">=0.1"
watchdog = ">=2.0"
[package.extras]
i18n = ["babel (>=2.9.0)"]
+min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pathspec (==0.11.1)", "platformdirs (==2.2.0)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"]
[[package]]
name = "mkdocs-material"
-version = "8.4.0"
+version = "9.5.16"
description = "Documentation that simply works"
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "mkdocs_material-9.5.16-py3-none-any.whl", hash = "sha256:32fce3cd8ecbd5dca6e5887cc0cf5bc78707a36f7d0f6f1bbbe9edaf428b8055"},
+ {file = "mkdocs_material-9.5.16.tar.gz", hash = "sha256:8b89b639592660f24657bb058de4aff0060cd0383148f8f51711201730f17503"},
+]
+
+[package.dependencies]
+babel = ">=2.10,<3.0"
+colorama = ">=0.4,<1.0"
+jinja2 = ">=3.0,<4.0"
+markdown = ">=3.2,<4.0"
+mkdocs = ">=1.5.3,<1.6.0"
+mkdocs-material-extensions = ">=1.3,<2.0"
+paginate = ">=0.5,<1.0"
+pygments = ">=2.16,<3.0"
+pymdown-extensions = ">=10.2,<11.0"
+regex = ">=2022.4"
+requests = ">=2.26,<3.0"
-[package.dependencies]
-jinja2 = ">=3.0.2"
-markdown = ">=3.2"
-mkdocs = ">=1.3.0"
-mkdocs-material-extensions = ">=1.0.3"
-pygments = ">=2.12"
-pymdown-extensions = ">=9.4"
+[package.extras]
+git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "mkdocs-git-revision-date-localized-plugin (>=1.2.4,<2.0)"]
+imaging = ["cairosvg (>=2.6,<3.0)", "pillow (>=10.2,<11.0)"]
+recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2.0)", "mkdocs-rss-plugin (>=1.6,<2.0)"]
[[package]]
name = "mkdocs-material-extensions"
-version = "1.0.3"
-description = "Extension pack for Python Markdown."
+version = "1.3.1"
+description = "Extension pack for Python Markdown and MkDocs Material."
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
+files = [
+ {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"},
+ {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"},
+]
[[package]]
name = "mkdocs-mermaid2-plugin"
@@ -948,6 +1864,10 @@ description = "A MkDocs plugin for including mermaid graphs in markdown sources"
category = "dev"
optional = false
python-versions = ">=3.5"
+files = [
+ {file = "mkdocs-mermaid2-plugin-0.6.0.tar.gz", hash = "sha256:99cca6db7c6b4a954a701dcb6b507191bc32a7b0b47eacf2885c1bacf77d1af1"},
+ {file = "mkdocs_mermaid2_plugin-0.6.0-py3-none-any.whl", hash = "sha256:ffbe8a7daa7ed718cb800c44c5ce4c0ff413caebf7b8b63d9c4a998dfd78a64d"},
+]
[package.dependencies]
beautifulsoup4 = ">=4.6.3"
@@ -957,89 +1877,81 @@ mkdocs-material = "*"
pymdown-extensions = ">=8.0"
pyyaml = "*"
requests = "*"
-
-[[package]]
-name = "myst-parser"
-version = "0.17.2"
-description = "An extended commonmark compliant parser, with bridges to docutils & sphinx."
-category = "dev"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-docutils = ">=0.15,<0.18"
-jinja2 = "*"
-markdown-it-py = ">=1.0.0,<3.0.0"
-mdit-py-plugins = ">=0.3.0,<0.4.0"
-pyyaml = "*"
-sphinx = ">=3.1,<5"
-typing-extensions = "*"
-
-[package.extras]
-code_style = ["pre-commit (>=2.12,<3.0)"]
-linkify = ["linkify-it-py (>=1.0,<2.0)"]
-rtd = ["ipython", "sphinx-book-theme", "sphinx-panels", "sphinxcontrib-bibtex (>=2.4,<3.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)"]
-testing = ["beautifulsoup4", "coverage", "docutils (>=0.17.0,<0.18.0)", "pytest (>=6,<7)", "pytest-cov", "pytest-regressions", "pytest-param-files (>=0.3.4,<0.4.0)"]
+setuptools = ">=18.5"
[[package]]
name = "nbclient"
-version = "0.6.6"
+version = "0.10.0"
description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor."
category = "dev"
optional = false
-python-versions = ">=3.7.0"
+python-versions = ">=3.8.0"
+files = [
+ {file = "nbclient-0.10.0-py3-none-any.whl", hash = "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f"},
+ {file = "nbclient-0.10.0.tar.gz", hash = "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09"},
+]
[package.dependencies]
-jupyter-client = ">=6.1.5"
-nbformat = ">=5.0"
-nest-asyncio = "*"
-traitlets = ">=5.2.2"
+jupyter-client = ">=6.1.12"
+jupyter-core = ">=4.12,<5.0.0 || >=5.1.0"
+nbformat = ">=5.1"
+traitlets = ">=5.4"
[package.extras]
-sphinx = ["autodoc-traits", "mock", "moto", "myst-parser", "Sphinx (>=1.7)", "sphinx-book-theme"]
-test = ["black", "check-manifest", "flake8", "ipykernel", "ipython (<8.0.0)", "ipywidgets (<8.0.0)", "mypy", "pip (>=18.1)", "pre-commit", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=60.0)", "testpath", "twine (>=1.11.0)", "xmltodict"]
+dev = ["pre-commit"]
+docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"]
+test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"]
[[package]]
name = "nbconvert"
-version = "6.5.3"
-description = "Converting Jupyter Notebooks"
+version = "7.16.3"
+description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)."
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "nbconvert-7.16.3-py3-none-any.whl", hash = "sha256:ddeff14beeeedf3dd0bc506623e41e4507e551736de59df69a91f86700292b3b"},
+ {file = "nbconvert-7.16.3.tar.gz", hash = "sha256:a6733b78ce3d47c3f85e504998495b07e6ea9cf9bf6ec1c98dda63ec6ad19142"},
+]
[package.dependencies]
beautifulsoup4 = "*"
-bleach = "*"
+bleach = "!=5.0.0"
defusedxml = "*"
-entrypoints = ">=0.2.2"
+importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""}
jinja2 = ">=3.0"
jupyter-core = ">=4.7"
jupyterlab-pygments = "*"
-lxml = "*"
-MarkupSafe = ">=2.0"
-mistune = ">=0.8.1,<2"
+markupsafe = ">=2.0"
+mistune = ">=2.0.3,<4"
nbclient = ">=0.5.0"
-nbformat = ">=5.1"
+nbformat = ">=5.7"
packaging = "*"
pandocfilters = ">=1.4.1"
pygments = ">=2.4.1"
tinycss2 = "*"
-traitlets = ">=5.0"
+traitlets = ">=5.1"
[package.extras]
-all = ["pytest", "pytest-cov", "pytest-dependency", "ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "tornado (>=6.1)", "sphinx (>=1.5.1)", "sphinx-rtd-theme", "nbsphinx (>=0.2.12)", "ipython"]
-docs = ["sphinx (>=1.5.1)", "sphinx-rtd-theme", "nbsphinx (>=0.2.12)", "ipython"]
+all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"]
+docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"]
+qtpdf = ["nbconvert[qtpng]"]
+qtpng = ["pyqtwebengine (>=5.15)"]
serve = ["tornado (>=6.1)"]
-test = ["pytest", "pytest-cov", "pytest-dependency", "ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)"]
-webpdf = ["pyppeteer (>=1,<1.1)"]
+test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"]
+webpdf = ["playwright"]
[[package]]
name = "nbformat"
-version = "5.4.0"
+version = "5.10.3"
description = "The Jupyter Notebook format"
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "nbformat-5.10.3-py3-none-any.whl", hash = "sha256:d9476ca28676799af85385f409b49d95e199951477a159a576ef2a675151e5e8"},
+ {file = "nbformat-5.10.3.tar.gz", hash = "sha256:60ed5e910ef7c6264b87d644f276b1b49e24011930deef54605188ddeb211685"},
+]
[package.dependencies]
fastjsonschema = "*"
@@ -1048,83 +1960,136 @@ jupyter-core = "*"
traitlets = ">=5.1"
[package.extras]
-test = ["check-manifest", "testpath", "pytest", "pre-commit"]
+docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"]
+test = ["pep440", "pre-commit", "pytest", "testpath"]
[[package]]
name = "nest-asyncio"
-version = "1.5.5"
+version = "1.6.0"
description = "Patch asyncio to allow nested event loops"
category = "dev"
optional = false
python-versions = ">=3.5"
+files = [
+ {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"},
+ {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"},
+]
[[package]]
name = "notebook"
-version = "6.4.12"
-description = "A web-based notebook environment for interactive computing"
+version = "7.1.2"
+description = "Jupyter Notebook - A web-based notebook environment for interactive computing"
+category = "dev"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "notebook-7.1.2-py3-none-any.whl", hash = "sha256:fc6c24b9aef18d0cd57157c9c47e95833b9b0bdc599652639acf0bdb61dc7d5f"},
+ {file = "notebook-7.1.2.tar.gz", hash = "sha256:efc2c80043909e0faa17fce9e9b37c059c03af0ec99a4d4db84cb21d9d2e936a"},
+]
+
+[package.dependencies]
+jupyter-server = ">=2.4.0,<3"
+jupyterlab = ">=4.1.1,<4.2"
+jupyterlab-server = ">=2.22.1,<3"
+notebook-shim = ">=0.2,<0.3"
+tornado = ">=6.2.0"
+
+[package.extras]
+dev = ["hatch", "pre-commit"]
+docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"]
+test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.22.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"]
+
+[[package]]
+name = "notebook-shim"
+version = "0.2.4"
+description = "A shim layer for notebook traits and config"
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"},
+ {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"},
+]
[package.dependencies]
-argon2-cffi = "*"
-ipykernel = "*"
-ipython-genutils = "*"
-jinja2 = "*"
-jupyter-client = ">=5.3.4"
-jupyter-core = ">=4.6.1"
-nbconvert = ">=5"
-nbformat = "*"
-nest-asyncio = ">=1.5"
-prometheus-client = "*"
-pyzmq = ">=17"
-Send2Trash = ">=1.8.0"
-terminado = ">=0.8.3"
-tornado = ">=6.1"
-traitlets = ">=4.2.1"
+jupyter-server = ">=1.8,<3"
[package.extras]
-docs = ["sphinx", "nbsphinx", "sphinxcontrib-github-alt", "sphinx-rtd-theme", "myst-parser"]
-json-logging = ["json-logging"]
-test = ["pytest", "coverage", "requests", "testpath", "nbval", "selenium", "pytest-cov", "requests-unixsocket"]
+test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"]
[[package]]
name = "openpyxl"
-version = "3.0.10"
+version = "3.1.2"
description = "A Python library to read/write Excel 2010 xlsx/xlsm files"
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "openpyxl-3.1.2-py2.py3-none-any.whl", hash = "sha256:f91456ead12ab3c6c2e9491cf33ba6d08357d802192379bb482f1033ade496f5"},
+ {file = "openpyxl-3.1.2.tar.gz", hash = "sha256:a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184"},
+]
[package.dependencies]
et-xmlfile = "*"
[[package]]
-name = "packaging"
-version = "21.3"
-description = "Core utilities for Python packages"
+name = "overrides"
+version = "7.7.0"
+description = "A decorator to automatically detect mismatch when overriding a method."
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"},
+ {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"},
+]
-[package.dependencies]
-pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
+[[package]]
+name = "packaging"
+version = "24.0"
+description = "Core utilities for Python packages"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"},
+ {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"},
+]
+
+[[package]]
+name = "paginate"
+version = "0.5.6"
+description = "Divides large result sets into pages for easier browsing"
+category = "dev"
+optional = false
+python-versions = "*"
+files = [
+ {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"},
+]
[[package]]
name = "pandocfilters"
-version = "1.5.0"
+version = "1.5.1"
description = "Utilities for writing pandoc filters in python"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+files = [
+ {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"},
+ {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"},
+]
[[package]]
name = "parse"
-version = "1.19.0"
+version = "1.20.1"
description = "parse() is the opposite of format()"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "parse-1.20.1-py2.py3-none-any.whl", hash = "sha256:76ddd5214255ae711db4c512be636151fbabaa948c6f30115aecc440422ca82c"},
+ {file = "parse-1.20.1.tar.gz", hash = "sha256:09002ca350ad42e76629995f71f7b518670bcf93548bdde3684fd55d2be51975"},
+]
[[package]]
name = "parso"
@@ -1133,18 +2098,38 @@ description = "A Python Parser"
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"},
+ {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"},
+]
[package.extras]
qa = ["flake8 (==3.8.3)", "mypy (==0.782)"]
testing = ["docopt", "pytest (<6.0.0)"]
+[[package]]
+name = "pathspec"
+version = "0.12.1"
+description = "Utility library for gitignore style pattern matching of file paths."
+category = "dev"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
+ {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
+]
+
[[package]]
name = "pexpect"
-version = "4.8.0"
+version = "4.9.0"
description = "Pexpect allows easy control of interactive console applications."
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"},
+ {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"},
+]
[package.dependencies]
ptyprocess = ">=0.5"
@@ -1156,6 +2141,54 @@ description = "Tiny 'shelve'-like database with concurrency support"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"},
+ {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"},
+]
+
+[[package]]
+name = "pkgutil-resolve-name"
+version = "1.3.10"
+description = "Resolve a name to an object."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"},
+ {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"},
+]
+
+[[package]]
+name = "platformdirs"
+version = "4.2.0"
+description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
+category = "dev"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"},
+ {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"},
+]
+
+[package.extras]
+docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"]
+
+[[package]]
+name = "pluggy"
+version = "1.4.0"
+description = "plugin and hook calling mechanisms for python"
+category = "main"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"},
+ {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"},
+]
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+testing = ["pytest", "pytest-benchmark"]
[[package]]
name = "ply"
@@ -1164,18 +2197,45 @@ description = "Python Lex & Yacc"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "ply-3.11-py2.py3-none-any.whl", hash = "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce"},
+ {file = "ply-3.11.tar.gz", hash = "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3"},
+]
[[package]]
name = "prefixcommons"
-version = "0.1.11"
+version = "0.1.12"
description = "A python API for working with ID prefixes"
category = "main"
optional = false
python-versions = ">=3.7,<4.0"
+files = [
+ {file = "prefixcommons-0.1.12-py3-none-any.whl", hash = "sha256:16dbc0a1f775e003c724f19a694fcfa3174608f5c8b0e893d494cf8098ac7f8b"},
+ {file = "prefixcommons-0.1.12.tar.gz", hash = "sha256:22c4e2d37b63487b3ab48f0495b70f14564cb346a15220f23919eb0c1851f69f"},
+]
[package.dependencies]
+click = ">=8.1.3,<9.0.0"
+pytest-logging = ">=2015.11.4,<2016.0.0"
+PyYAML = ">=6.0,<7.0"
requests = ">=2.28.1,<3.0.0"
+[[package]]
+name = "prefixmaps"
+version = "0.2.2"
+description = "A python library for retrieving semantic prefix maps"
+category = "main"
+optional = false
+python-versions = ">=3.8,<4.0"
+files = [
+ {file = "prefixmaps-0.2.2-py3-none-any.whl", hash = "sha256:4ac2bf3ddb9b27c40c978cf937e9bedb160050d24e8c679b94c9c885e1d73c72"},
+ {file = "prefixmaps-0.2.2.tar.gz", hash = "sha256:a36b1554154ef465271bde82dc91cd671e2d31dc1f50c2fd08ccb0d7d5791c33"},
+]
+
+[package.dependencies]
+curies = ">=0.5.3"
+pyyaml = ">=5.3.1"
+
[[package]]
name = "prettytable"
version = "0.7.2"
@@ -1183,39 +2243,70 @@ description = "A simple Python library for easily displaying tabular data in a v
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "prettytable-0.7.2.tar.bz2", hash = "sha256:853c116513625c738dc3ce1aee148b5b5757a86727e67eff6502c7ca59d43c36"},
+ {file = "prettytable-0.7.2.tar.gz", hash = "sha256:2d5460dc9db74a32bcc8f9f67de68b2c4f4d2f01fa3bd518764c69156d9cacd9"},
+ {file = "prettytable-0.7.2.zip", hash = "sha256:a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f"},
+]
[[package]]
name = "prometheus-client"
-version = "0.14.1"
+version = "0.20.0"
description = "Python client for the Prometheus monitoring system."
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
+files = [
+ {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"},
+ {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"},
+]
[package.extras]
twisted = ["twisted"]
[[package]]
name = "prompt-toolkit"
-version = "3.0.30"
+version = "3.0.43"
description = "Library for building powerful interactive command lines in Python"
category = "dev"
optional = false
-python-versions = ">=3.6.2"
+python-versions = ">=3.7.0"
+files = [
+ {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"},
+ {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"},
+]
[package.dependencies]
wcwidth = "*"
[[package]]
name = "psutil"
-version = "5.9.1"
+version = "5.9.8"
description = "Cross-platform lib for process and system monitoring in Python."
category = "dev"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
+files = [
+ {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"},
+ {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"},
+ {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"},
+ {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"},
+ {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"},
+ {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"},
+ {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"},
+ {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"},
+ {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"},
+ {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"},
+ {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"},
+ {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"},
+ {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"},
+ {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"},
+ {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"},
+ {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"},
+]
[package.extras]
-test = ["ipaddress", "mock", "enum34", "pywin32", "wmi"]
+test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"]
[[package]]
name = "ptyprocess"
@@ -1224,6 +2315,10 @@ description = "Run a subprocess in a pseudo terminal"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"},
+ {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"},
+]
[[package]]
name = "pure-eval"
@@ -1232,48 +2327,153 @@ description = "Safely evaluate AST nodes without side effects"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"},
+ {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"},
+]
[package.extras]
tests = ["pytest"]
-[[package]]
-name = "py"
-version = "1.11.0"
-description = "library with cross-python path, ini-parsing, io, code, log facilities"
-category = "dev"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-
[[package]]
name = "pycparser"
-version = "2.21"
+version = "2.22"
description = "C parser in Python"
category = "dev"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=3.8"
+files = [
+ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
+ {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
+]
[[package]]
name = "pydantic"
-version = "1.9.1"
-description = "Data validation and settings management using python type hints"
-category = "dev"
+version = "2.6.4"
+description = "Data validation using Python type hints"
+category = "main"
optional = false
-python-versions = ">=3.6.1"
+python-versions = ">=3.8"
+files = [
+ {file = "pydantic-2.6.4-py3-none-any.whl", hash = "sha256:cc46fce86607580867bdc3361ad462bab9c222ef042d3da86f2fb333e1d916c5"},
+ {file = "pydantic-2.6.4.tar.gz", hash = "sha256:b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"},
+]
[package.dependencies]
-typing-extensions = ">=3.7.4.3"
+annotated-types = ">=0.4.0"
+pydantic-core = "2.16.3"
+typing-extensions = ">=4.6.1"
[package.extras]
-dotenv = ["python-dotenv (>=0.10.4)"]
-email = ["email-validator (>=1.0.3)"]
+email = ["email-validator (>=2.0.0)"]
+
+[[package]]
+name = "pydantic-core"
+version = "2.16.3"
+description = ""
+category = "main"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pydantic_core-2.16.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:75b81e678d1c1ede0785c7f46690621e4c6e63ccd9192af1f0bd9d504bbb6bf4"},
+ {file = "pydantic_core-2.16.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9c865a7ee6f93783bd5d781af5a4c43dadc37053a5b42f7d18dc019f8c9d2bd1"},
+ {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:162e498303d2b1c036b957a1278fa0899d02b2842f1ff901b6395104c5554a45"},
+ {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f583bd01bbfbff4eaee0868e6fc607efdfcc2b03c1c766b06a707abbc856187"},
+ {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b926dd38db1519ed3043a4de50214e0d600d404099c3392f098a7f9d75029ff8"},
+ {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:716b542728d4c742353448765aa7cdaa519a7b82f9564130e2b3f6766018c9ec"},
+ {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4ad7f7ee1a13d9cb49d8198cd7d7e3aa93e425f371a68235f784e99741561f"},
+ {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bd87f48924f360e5d1c5f770d6155ce0e7d83f7b4e10c2f9ec001c73cf475c99"},
+ {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0df446663464884297c793874573549229f9eca73b59360878f382a0fc085979"},
+ {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4df8a199d9f6afc5ae9a65f8f95ee52cae389a8c6b20163762bde0426275b7db"},
+ {file = "pydantic_core-2.16.3-cp310-none-win32.whl", hash = "sha256:456855f57b413f077dff513a5a28ed838dbbb15082ba00f80750377eed23d132"},
+ {file = "pydantic_core-2.16.3-cp310-none-win_amd64.whl", hash = "sha256:732da3243e1b8d3eab8c6ae23ae6a58548849d2e4a4e03a1924c8ddf71a387cb"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:519ae0312616026bf4cedc0fe459e982734f3ca82ee8c7246c19b650b60a5ee4"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b3992a322a5617ded0a9f23fd06dbc1e4bd7cf39bc4ccf344b10f80af58beacd"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d62da299c6ecb04df729e4b5c52dc0d53f4f8430b4492b93aa8de1f541c4aac"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2acca2be4bb2f2147ada8cac612f8a98fc09f41c89f87add7256ad27332c2fda"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b662180108c55dfbf1280d865b2d116633d436cfc0bba82323554873967b340"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e7c6ed0dc9d8e65f24f5824291550139fe6f37fac03788d4580da0d33bc00c97"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6b1bb0827f56654b4437955555dc3aeeebeddc47c2d7ed575477f082622c49e"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e56f8186d6210ac7ece503193ec84104da7ceb98f68ce18c07282fcc2452e76f"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:936e5db01dd49476fa8f4383c259b8b1303d5dd5fb34c97de194560698cc2c5e"},
+ {file = "pydantic_core-2.16.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33809aebac276089b78db106ee692bdc9044710e26f24a9a2eaa35a0f9fa70ba"},
+ {file = "pydantic_core-2.16.3-cp311-none-win32.whl", hash = "sha256:ded1c35f15c9dea16ead9bffcde9bb5c7c031bff076355dc58dcb1cb436c4721"},
+ {file = "pydantic_core-2.16.3-cp311-none-win_amd64.whl", hash = "sha256:d89ca19cdd0dd5f31606a9329e309d4fcbb3df860960acec32630297d61820df"},
+ {file = "pydantic_core-2.16.3-cp311-none-win_arm64.whl", hash = "sha256:6162f8d2dc27ba21027f261e4fa26f8bcb3cf9784b7f9499466a311ac284b5b9"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:0f56ae86b60ea987ae8bcd6654a887238fd53d1384f9b222ac457070b7ac4cff"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9bd22a2a639e26171068f8ebb5400ce2c1bc7d17959f60a3b753ae13c632975"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4204e773b4b408062960e65468d5346bdfe139247ee5f1ca2a378983e11388a2"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f651dd19363c632f4abe3480a7c87a9773be27cfe1341aef06e8759599454120"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aaf09e615a0bf98d406657e0008e4a8701b11481840be7d31755dc9f97c44053"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8e47755d8152c1ab5b55928ab422a76e2e7b22b5ed8e90a7d584268dd49e9c6b"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:500960cb3a0543a724a81ba859da816e8cf01b0e6aaeedf2c3775d12ee49cade"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cf6204fe865da605285c34cf1172879d0314ff267b1c35ff59de7154f35fdc2e"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d33dd21f572545649f90c38c227cc8631268ba25c460b5569abebdd0ec5974ca"},
+ {file = "pydantic_core-2.16.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:49d5d58abd4b83fb8ce763be7794d09b2f50f10aa65c0f0c1696c677edeb7cbf"},
+ {file = "pydantic_core-2.16.3-cp312-none-win32.whl", hash = "sha256:f53aace168a2a10582e570b7736cc5bef12cae9cf21775e3eafac597e8551fbe"},
+ {file = "pydantic_core-2.16.3-cp312-none-win_amd64.whl", hash = "sha256:0d32576b1de5a30d9a97f300cc6a3f4694c428d956adbc7e6e2f9cad279e45ed"},
+ {file = "pydantic_core-2.16.3-cp312-none-win_arm64.whl", hash = "sha256:ec08be75bb268473677edb83ba71e7e74b43c008e4a7b1907c6d57e940bf34b6"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:b1f6f5938d63c6139860f044e2538baeee6f0b251a1816e7adb6cbce106a1f01"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2a1ef6a36fdbf71538142ed604ad19b82f67b05749512e47f247a6ddd06afdc7"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:704d35ecc7e9c31d48926150afada60401c55efa3b46cd1ded5a01bdffaf1d48"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d937653a696465677ed583124b94a4b2d79f5e30b2c46115a68e482c6a591c8a"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9803edf8e29bd825f43481f19c37f50d2b01899448273b3a7758441b512acf8"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:72282ad4892a9fb2da25defeac8c2e84352c108705c972db82ab121d15f14e6d"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f752826b5b8361193df55afcdf8ca6a57d0232653494ba473630a83ba50d8c9"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4384a8f68ddb31a0b0c3deae88765f5868a1b9148939c3f4121233314ad5532c"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a4b2bf78342c40b3dc830880106f54328928ff03e357935ad26c7128bbd66ce8"},
+ {file = "pydantic_core-2.16.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:13dcc4802961b5f843a9385fc821a0b0135e8c07fc3d9949fd49627c1a5e6ae5"},
+ {file = "pydantic_core-2.16.3-cp38-none-win32.whl", hash = "sha256:e3e70c94a0c3841e6aa831edab1619ad5c511199be94d0c11ba75fe06efe107a"},
+ {file = "pydantic_core-2.16.3-cp38-none-win_amd64.whl", hash = "sha256:ecdf6bf5f578615f2e985a5e1f6572e23aa632c4bd1dc67f8f406d445ac115ed"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:bda1ee3e08252b8d41fa5537413ffdddd58fa73107171a126d3b9ff001b9b820"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:21b888c973e4f26b7a96491c0965a8a312e13be108022ee510248fe379a5fa23"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be0ec334369316fa73448cc8c982c01e5d2a81c95969d58b8f6e272884df0074"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5b6079cc452a7c53dd378c6f881ac528246b3ac9aae0f8eef98498a75657805"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ee8d5f878dccb6d499ba4d30d757111847b6849ae07acdd1205fffa1fc1253c"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7233d65d9d651242a68801159763d09e9ec96e8a158dbf118dc090cd77a104c9"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6119dc90483a5cb50a1306adb8d52c66e447da88ea44f323e0ae1a5fcb14256"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:578114bc803a4c1ff9946d977c221e4376620a46cf78da267d946397dc9514a8"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d8f99b147ff3fcf6b3cc60cb0c39ea443884d5559a30b1481e92495f2310ff2b"},
+ {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4ac6b4ce1e7283d715c4b729d8f9dab9627586dafce81d9eaa009dd7f25dd972"},
+ {file = "pydantic_core-2.16.3-cp39-none-win32.whl", hash = "sha256:e7774b570e61cb998490c5235740d475413a1f6de823169b4cf94e2fe9e9f6b2"},
+ {file = "pydantic_core-2.16.3-cp39-none-win_amd64.whl", hash = "sha256:9091632a25b8b87b9a605ec0e61f241c456e9248bfdcf7abdf344fdb169c81cf"},
+ {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:36fa178aacbc277bc6b62a2c3da95226520da4f4e9e206fdf076484363895d2c"},
+ {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:dcca5d2bf65c6fb591fff92da03f94cd4f315972f97c21975398bd4bd046854a"},
+ {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a72fb9963cba4cd5793854fd12f4cfee731e86df140f59ff52a49b3552db241"},
+ {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b60cc1a081f80a2105a59385b92d82278b15d80ebb3adb200542ae165cd7d183"},
+ {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cbcc558401de90a746d02ef330c528f2e668c83350f045833543cd57ecead1ad"},
+ {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:fee427241c2d9fb7192b658190f9f5fd6dfe41e02f3c1489d2ec1e6a5ab1e04a"},
+ {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f4cb85f693044e0f71f394ff76c98ddc1bc0953e48c061725e540396d5c8a2e1"},
+ {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b29eeb887aa931c2fcef5aa515d9d176d25006794610c264ddc114c053bf96fe"},
+ {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a425479ee40ff021f8216c9d07a6a3b54b31c8267c6e17aa88b70d7ebd0e5e5b"},
+ {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5c5cbc703168d1b7a838668998308018a2718c2130595e8e190220238addc96f"},
+ {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99b6add4c0b39a513d323d3b93bc173dac663c27b99860dd5bf491b240d26137"},
+ {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f76ee558751746d6a38f89d60b6228fa174e5172d143886af0f85aa306fd89"},
+ {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:00ee1c97b5364b84cb0bd82e9bbf645d5e2871fb8c58059d158412fee2d33d8a"},
+ {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:287073c66748f624be4cef893ef9174e3eb88fe0b8a78dc22e88eca4bc357ca6"},
+ {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ed25e1835c00a332cb10c683cd39da96a719ab1dfc08427d476bce41b92531fc"},
+ {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:86b3d0033580bd6bbe07590152007275bd7af95f98eaa5bd36f3da219dcd93da"},
+ {file = "pydantic_core-2.16.3.tar.gz", hash = "sha256:1cac689f80a3abab2d3c0048b29eea5751114054f032a941a32de4c852c59cad"},
+]
+
+[package.dependencies]
+typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
[[package]]
name = "pygments"
-version = "2.12.0"
+version = "2.17.2"
description = "Pygments is a syntax highlighting package written in Python."
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
+files = [
+ {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"},
+ {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"},
+]
+
+[package.extras]
+plugins = ["importlib-metadata"]
+windows-terminal = ["colorama (>=0.4.6)"]
[[package]]
name = "pyjsg"
@@ -1282,6 +2482,10 @@ description = "Python JSON Schema Grammar interpreter"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "PyJSG-0.11.10-py3-none-any.whl", hash = "sha256:10af60ff42219be7e85bf7f11c19b648715b0b29eb2ddbd269e87069a7c3f26d"},
+ {file = "PyJSG-0.11.10.tar.gz", hash = "sha256:4bd6e3ff2833fa2b395bbe803a2d72a5f0bab5b7285bccd0da1a1bc0aee88bfa"},
+]
[package.dependencies]
antlr4-python3-runtime = ">=4.9.3,<4.10.0"
@@ -1289,33 +2493,37 @@ jsonasobj = ">=1.2.1"
[[package]]
name = "pymdown-extensions"
-version = "9.5"
+version = "10.7.1"
description = "Extension pack for Python Markdown."
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "pymdown_extensions-10.7.1-py3-none-any.whl", hash = "sha256:f5cc7000d7ff0d1ce9395d216017fa4df3dde800afb1fb72d1c7d3fd35e710f4"},
+ {file = "pymdown_extensions-10.7.1.tar.gz", hash = "sha256:c70e146bdd83c744ffc766b4671999796aba18842b268510a329f7f64700d584"},
+]
[package.dependencies]
-markdown = ">=3.2"
+markdown = ">=3.5"
+pyyaml = "*"
+
+[package.extras]
+extra = ["pygments (>=2.12)"]
[[package]]
name = "pyparsing"
-version = "3.0.9"
+version = "3.1.2"
description = "pyparsing module - Classes and methods to define and execute parsing grammars"
category = "main"
optional = false
python-versions = ">=3.6.8"
+files = [
+ {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"},
+ {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"},
+]
[package.extras]
-diagrams = ["railroad-diagrams", "jinja2"]
-
-[[package]]
-name = "pyrsistent"
-version = "0.18.1"
-description = "Persistent/Functional/Immutable data structures"
-category = "main"
-optional = false
-python-versions = ">=3.7"
+diagrams = ["jinja2", "railroad-diagrams"]
[[package]]
name = "pyshex"
@@ -1324,6 +2532,10 @@ description = "Python ShEx Implementation"
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "PyShEx-0.8.1-py3-none-any.whl", hash = "sha256:6da1b10123e191abf8dcb6bf3e54aa3e1fcf771df5d1a0ed453217c8900c8e6a"},
+ {file = "PyShEx-0.8.1.tar.gz", hash = "sha256:3c5c4d45fe27faaadae803cb008c41acf8ee784da7868b04fd84967e75be70d0"},
+]
[package.dependencies]
cfgraph = ">=0.2.1"
@@ -1343,6 +2555,10 @@ description = "PyShExC - Python ShEx compiler"
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "PyShExC-0.9.1-py2.py3-none-any.whl", hash = "sha256:efc55ed5cb2453e9df569b03e282505e96bb06597934288f3b23dd980ef10028"},
+ {file = "PyShExC-0.9.1.tar.gz", hash = "sha256:35a9975d4b9afeb20ef710fb6680871756381d0c39fbb5470b3b506581a304d3"},
+]
[package.dependencies]
antlr4-python3-runtime = ">=4.9.3,<4.10.0"
@@ -1352,48 +2568,197 @@ pyjsg = ">=0.11.10"
rdflib-shim = "*"
shexjsg = ">=0.8.1"
+[[package]]
+name = "pytest"
+version = "8.1.1"
+description = "pytest: simple powerful testing with Python"
+category = "main"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"},
+ {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"},
+]
+
+[package.dependencies]
+colorama = {version = "*", markers = "sys_platform == \"win32\""}
+exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
+iniconfig = "*"
+packaging = "*"
+pluggy = ">=1.4,<2.0"
+tomli = {version = ">=1", markers = "python_version < \"3.11\""}
+
+[package.extras]
+testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
+
+[[package]]
+name = "pytest-logging"
+version = "2015.11.4"
+description = "Configures logging and allows tweaking the log level with a py.test flag"
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "pytest-logging-2015.11.4.tar.gz", hash = "sha256:cec5c85ecf18aab7b2ead5498a31b9f758680ef5a902b9054ab3f2bdbb77c896"},
+]
+
+[package.dependencies]
+pytest = ">=2.8.1"
+
[[package]]
name = "python-dateutil"
-version = "2.8.2"
+version = "2.9.0.post0"
description = "Extensions to the standard Python datetime module"
category = "dev"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+files = [
+ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
+ {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
+]
[package.dependencies]
six = ">=1.5"
+[[package]]
+name = "python-json-logger"
+version = "2.0.7"
+description = "A python library adding a json log formatter"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"},
+ {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"},
+]
+
+[[package]]
+name = "pytrie"
+version = "0.4.0"
+description = "A pure Python implementation of the trie data structure."
+category = "main"
+optional = false
+python-versions = "*"
+files = [
+ {file = "PyTrie-0.4.0-py3-none-any.whl", hash = "sha256:f687c224ee8c66cda8e8628a903011b692635ffbb08d4b39c5f92b18eb78c950"},
+ {file = "PyTrie-0.4.0.tar.gz", hash = "sha256:8f4488f402d3465993fb6b6efa09866849ed8cda7903b50647b7d0342b805379"},
+]
+
+[package.dependencies]
+sortedcontainers = "*"
+
[[package]]
name = "pytz"
-version = "2022.1"
+version = "2024.1"
description = "World timezone definitions, modern and historical"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"},
+ {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"},
+]
[[package]]
name = "pywin32"
-version = "304"
+version = "306"
description = "Python for Window Extensions"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"},
+ {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"},
+ {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"},
+ {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"},
+ {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"},
+ {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"},
+ {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"},
+ {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"},
+ {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"},
+ {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"},
+ {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"},
+ {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"},
+ {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"},
+ {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"},
+]
[[package]]
name = "pywinpty"
-version = "2.0.7"
+version = "2.0.13"
description = "Pseudo terminal support for Windows from Python."
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "pywinpty-2.0.13-cp310-none-win_amd64.whl", hash = "sha256:697bff211fb5a6508fee2dc6ff174ce03f34a9a233df9d8b5fe9c8ce4d5eaf56"},
+ {file = "pywinpty-2.0.13-cp311-none-win_amd64.whl", hash = "sha256:b96fb14698db1284db84ca38c79f15b4cfdc3172065b5137383910567591fa99"},
+ {file = "pywinpty-2.0.13-cp312-none-win_amd64.whl", hash = "sha256:2fd876b82ca750bb1333236ce98488c1be96b08f4f7647cfdf4129dfad83c2d4"},
+ {file = "pywinpty-2.0.13-cp38-none-win_amd64.whl", hash = "sha256:61d420c2116c0212808d31625611b51caf621fe67f8a6377e2e8b617ea1c1f7d"},
+ {file = "pywinpty-2.0.13-cp39-none-win_amd64.whl", hash = "sha256:71cb613a9ee24174730ac7ae439fd179ca34ccb8c5349e8d7b72ab5dea2c6f4b"},
+ {file = "pywinpty-2.0.13.tar.gz", hash = "sha256:c34e32351a3313ddd0d7da23d27f835c860d32fe4ac814d372a3ea9594f41dde"},
+]
[[package]]
name = "pyyaml"
-version = "6.0"
+version = "6.0.1"
description = "YAML parser and emitter for Python"
category = "main"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"},
+ {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"},
+ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"},
+ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"},
+ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"},
+ {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"},
+ {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"},
+ {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"},
+ {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"},
+ {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"},
+ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"},
+ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"},
+ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"},
+ {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"},
+ {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"},
+ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"},
+ {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"},
+ {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"},
+ {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"},
+ {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"},
+ {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"},
+ {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"},
+ {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"},
+ {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"},
+ {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"},
+ {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"},
+ {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"},
+ {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"},
+ {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"},
+ {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"},
+ {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"},
+ {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"},
+ {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"},
+ {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"},
+ {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"},
+ {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"},
+ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"},
+ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"},
+ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"},
+ {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"},
+ {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"},
+ {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"},
+ {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"},
+ {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"},
+ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"},
+ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"},
+ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"},
+ {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"},
+ {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"},
+ {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"},
+ {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"},
+]
[[package]]
name = "pyyaml-env-tag"
@@ -1402,38 +2767,140 @@ description = "A custom YAML tag for referencing environment variables in YAML f
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"},
+ {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"},
+]
[package.dependencies]
pyyaml = "*"
[[package]]
name = "pyzmq"
-version = "23.2.1"
+version = "25.1.2"
description = "Python bindings for 0MQ"
category = "dev"
optional = false
python-versions = ">=3.6"
+files = [
+ {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:e624c789359f1a16f83f35e2c705d07663ff2b4d4479bad35621178d8f0f6ea4"},
+ {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49151b0efece79f6a79d41a461d78535356136ee70084a1c22532fc6383f4ad0"},
+ {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9a5f194cf730f2b24d6af1f833c14c10f41023da46a7f736f48b6d35061e76e"},
+ {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:faf79a302f834d9e8304fafdc11d0d042266667ac45209afa57e5efc998e3872"},
+ {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f51a7b4ead28d3fca8dda53216314a553b0f7a91ee8fc46a72b402a78c3e43d"},
+ {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0ddd6d71d4ef17ba5a87becf7ddf01b371eaba553c603477679ae817a8d84d75"},
+ {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:246747b88917e4867e2367b005fc8eefbb4a54b7db363d6c92f89d69abfff4b6"},
+ {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:00c48ae2fd81e2a50c3485de1b9d5c7c57cd85dc8ec55683eac16846e57ac979"},
+ {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5a68d491fc20762b630e5db2191dd07ff89834086740f70e978bb2ef2668be08"},
+ {file = "pyzmq-25.1.2-cp310-cp310-win32.whl", hash = "sha256:09dfe949e83087da88c4a76767df04b22304a682d6154de2c572625c62ad6886"},
+ {file = "pyzmq-25.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:fa99973d2ed20417744fca0073390ad65ce225b546febb0580358e36aa90dba6"},
+ {file = "pyzmq-25.1.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:82544e0e2d0c1811482d37eef297020a040c32e0687c1f6fc23a75b75db8062c"},
+ {file = "pyzmq-25.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:01171fc48542348cd1a360a4b6c3e7d8f46cdcf53a8d40f84db6707a6768acc1"},
+ {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc69c96735ab501419c432110016329bf0dea8898ce16fab97c6d9106dc0b348"},
+ {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3e124e6b1dd3dfbeb695435dff0e383256655bb18082e094a8dd1f6293114642"},
+ {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7598d2ba821caa37a0f9d54c25164a4fa351ce019d64d0b44b45540950458840"},
+ {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d1299d7e964c13607efd148ca1f07dcbf27c3ab9e125d1d0ae1d580a1682399d"},
+ {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4e6f689880d5ad87918430957297c975203a082d9a036cc426648fcbedae769b"},
+ {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cc69949484171cc961e6ecd4a8911b9ce7a0d1f738fcae717177c231bf77437b"},
+ {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9880078f683466b7f567b8624bfc16cad65077be046b6e8abb53bed4eeb82dd3"},
+ {file = "pyzmq-25.1.2-cp311-cp311-win32.whl", hash = "sha256:4e5837af3e5aaa99a091302df5ee001149baff06ad22b722d34e30df5f0d9097"},
+ {file = "pyzmq-25.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:25c2dbb97d38b5ac9fd15586e048ec5eb1e38f3d47fe7d92167b0c77bb3584e9"},
+ {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:11e70516688190e9c2db14fcf93c04192b02d457b582a1f6190b154691b4c93a"},
+ {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:313c3794d650d1fccaaab2df942af9f2c01d6217c846177cfcbc693c7410839e"},
+ {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b3cbba2f47062b85fe0ef9de5b987612140a9ba3a9c6d2543c6dec9f7c2ab27"},
+ {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc31baa0c32a2ca660784d5af3b9487e13b61b3032cb01a115fce6588e1bed30"},
+ {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02c9087b109070c5ab0b383079fa1b5f797f8d43e9a66c07a4b8b8bdecfd88ee"},
+ {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f8429b17cbb746c3e043cb986328da023657e79d5ed258b711c06a70c2ea7537"},
+ {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5074adeacede5f810b7ef39607ee59d94e948b4fd954495bdb072f8c54558181"},
+ {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7ae8f354b895cbd85212da245f1a5ad8159e7840e37d78b476bb4f4c3f32a9fe"},
+ {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b264bf2cc96b5bc43ce0e852be995e400376bd87ceb363822e2cb1964fcdc737"},
+ {file = "pyzmq-25.1.2-cp312-cp312-win32.whl", hash = "sha256:02bbc1a87b76e04fd780b45e7f695471ae6de747769e540da909173d50ff8e2d"},
+ {file = "pyzmq-25.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:ced111c2e81506abd1dc142e6cd7b68dd53747b3b7ae5edbea4578c5eeff96b7"},
+ {file = "pyzmq-25.1.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:7b6d09a8962a91151f0976008eb7b29b433a560fde056ec7a3db9ec8f1075438"},
+ {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967668420f36878a3c9ecb5ab33c9d0ff8d054f9c0233d995a6d25b0e95e1b6b"},
+ {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5edac3f57c7ddaacdb4d40f6ef2f9e299471fc38d112f4bc6d60ab9365445fb0"},
+ {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0dabfb10ef897f3b7e101cacba1437bd3a5032ee667b7ead32bbcdd1a8422fe7"},
+ {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:2c6441e0398c2baacfe5ba30c937d274cfc2dc5b55e82e3749e333aabffde561"},
+ {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:16b726c1f6c2e7625706549f9dbe9b06004dfbec30dbed4bf50cbdfc73e5b32a"},
+ {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:a86c2dd76ef71a773e70551a07318b8e52379f58dafa7ae1e0a4be78efd1ff16"},
+ {file = "pyzmq-25.1.2-cp36-cp36m-win32.whl", hash = "sha256:359f7f74b5d3c65dae137f33eb2bcfa7ad9ebefd1cab85c935f063f1dbb245cc"},
+ {file = "pyzmq-25.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:55875492f820d0eb3417b51d96fea549cde77893ae3790fd25491c5754ea2f68"},
+ {file = "pyzmq-25.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b8c8a419dfb02e91b453615c69568442e897aaf77561ee0064d789705ff37a92"},
+ {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8807c87fa893527ae8a524c15fc505d9950d5e856f03dae5921b5e9aa3b8783b"},
+ {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5e319ed7d6b8f5fad9b76daa0a68497bc6f129858ad956331a5835785761e003"},
+ {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3c53687dde4d9d473c587ae80cc328e5b102b517447456184b485587ebd18b62"},
+ {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9add2e5b33d2cd765ad96d5eb734a5e795a0755f7fc49aa04f76d7ddda73fd70"},
+ {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e690145a8c0c273c28d3b89d6fb32c45e0d9605b2293c10e650265bf5c11cfec"},
+ {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:00a06faa7165634f0cac1abb27e54d7a0b3b44eb9994530b8ec73cf52e15353b"},
+ {file = "pyzmq-25.1.2-cp37-cp37m-win32.whl", hash = "sha256:0f97bc2f1f13cb16905a5f3e1fbdf100e712d841482b2237484360f8bc4cb3d7"},
+ {file = "pyzmq-25.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6cc0020b74b2e410287e5942e1e10886ff81ac77789eb20bec13f7ae681f0fdd"},
+ {file = "pyzmq-25.1.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:bef02cfcbded83473bdd86dd8d3729cd82b2e569b75844fb4ea08fee3c26ae41"},
+ {file = "pyzmq-25.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e10a4b5a4b1192d74853cc71a5e9fd022594573926c2a3a4802020360aa719d8"},
+ {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8c5f80e578427d4695adac6fdf4370c14a2feafdc8cb35549c219b90652536ae"},
+ {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5dde6751e857910c1339890f3524de74007958557593b9e7e8c5f01cd919f8a7"},
+ {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea1608dd169da230a0ad602d5b1ebd39807ac96cae1845c3ceed39af08a5c6df"},
+ {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0f513130c4c361201da9bc69df25a086487250e16b5571ead521b31ff6b02220"},
+ {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:019744b99da30330798bb37df33549d59d380c78e516e3bab9c9b84f87a9592f"},
+ {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2e2713ef44be5d52dd8b8e2023d706bf66cb22072e97fc71b168e01d25192755"},
+ {file = "pyzmq-25.1.2-cp38-cp38-win32.whl", hash = "sha256:07cd61a20a535524906595e09344505a9bd46f1da7a07e504b315d41cd42eb07"},
+ {file = "pyzmq-25.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb7e49a17fb8c77d3119d41a4523e432eb0c6932187c37deb6fbb00cc3028088"},
+ {file = "pyzmq-25.1.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:94504ff66f278ab4b7e03e4cba7e7e400cb73bfa9d3d71f58d8972a8dc67e7a6"},
+ {file = "pyzmq-25.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6dd0d50bbf9dca1d0bdea219ae6b40f713a3fb477c06ca3714f208fd69e16fd8"},
+ {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:004ff469d21e86f0ef0369717351073e0e577428e514c47c8480770d5e24a565"},
+ {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c0b5ca88a8928147b7b1e2dfa09f3b6c256bc1135a1338536cbc9ea13d3b7add"},
+ {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c9a79f1d2495b167119d02be7448bfba57fad2a4207c4f68abc0bab4b92925b"},
+ {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:518efd91c3d8ac9f9b4f7dd0e2b7b8bf1a4fe82a308009016b07eaa48681af82"},
+ {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1ec23bd7b3a893ae676d0e54ad47d18064e6c5ae1fadc2f195143fb27373f7f6"},
+ {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db36c27baed588a5a8346b971477b718fdc66cf5b80cbfbd914b4d6d355e44e2"},
+ {file = "pyzmq-25.1.2-cp39-cp39-win32.whl", hash = "sha256:39b1067f13aba39d794a24761e385e2eddc26295826530a8c7b6c6c341584289"},
+ {file = "pyzmq-25.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:8e9f3fabc445d0ce320ea2c59a75fe3ea591fdbdeebec5db6de530dd4b09412e"},
+ {file = "pyzmq-25.1.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a8c1d566344aee826b74e472e16edae0a02e2a044f14f7c24e123002dcff1c05"},
+ {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:759cfd391a0996345ba94b6a5110fca9c557ad4166d86a6e81ea526c376a01e8"},
+ {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c61e346ac34b74028ede1c6b4bcecf649d69b707b3ff9dc0fab453821b04d1e"},
+ {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cb8fc1f8d69b411b8ec0b5f1ffbcaf14c1db95b6bccea21d83610987435f1a4"},
+ {file = "pyzmq-25.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3c00c9b7d1ca8165c610437ca0c92e7b5607b2f9076f4eb4b095c85d6e680a1d"},
+ {file = "pyzmq-25.1.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:df0c7a16ebb94452d2909b9a7b3337940e9a87a824c4fc1c7c36bb4404cb0cde"},
+ {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:45999e7f7ed5c390f2e87ece7f6c56bf979fb213550229e711e45ecc7d42ccb8"},
+ {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ac170e9e048b40c605358667aca3d94e98f604a18c44bdb4c102e67070f3ac9b"},
+ {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1b604734bec94f05f81b360a272fc824334267426ae9905ff32dc2be433ab96"},
+ {file = "pyzmq-25.1.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a793ac733e3d895d96f865f1806f160696422554e46d30105807fdc9841b9f7d"},
+ {file = "pyzmq-25.1.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0806175f2ae5ad4b835ecd87f5f85583316b69f17e97786f7443baaf54b9bb98"},
+ {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ef12e259e7bc317c7597d4f6ef59b97b913e162d83b421dd0db3d6410f17a244"},
+ {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea253b368eb41116011add00f8d5726762320b1bda892f744c91997b65754d73"},
+ {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b9b1f2ad6498445a941d9a4fee096d387fee436e45cc660e72e768d3d8ee611"},
+ {file = "pyzmq-25.1.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8b14c75979ce932c53b79976a395cb2a8cd3aaf14aef75e8c2cb55a330b9b49d"},
+ {file = "pyzmq-25.1.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:889370d5174a741a62566c003ee8ddba4b04c3f09a97b8000092b7ca83ec9c49"},
+ {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a18fff090441a40ffda8a7f4f18f03dc56ae73f148f1832e109f9bffa85df15"},
+ {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99a6b36f95c98839ad98f8c553d8507644c880cf1e0a57fe5e3a3f3969040882"},
+ {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4345c9a27f4310afbb9c01750e9461ff33d6fb74cd2456b107525bbeebcb5be3"},
+ {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3516e0b6224cf6e43e341d56da15fd33bdc37fa0c06af4f029f7d7dfceceabbc"},
+ {file = "pyzmq-25.1.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:146b9b1f29ead41255387fb07be56dc29639262c0f7344f570eecdcd8d683314"},
+ {file = "pyzmq-25.1.2.tar.gz", hash = "sha256:93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226"},
+]
[package.dependencies]
cffi = {version = "*", markers = "implementation_name == \"pypy\""}
-py = {version = "*", markers = "implementation_name == \"pypy\""}
[[package]]
name = "qtconsole"
-version = "5.3.1"
+version = "5.5.1"
description = "Jupyter Qt console"
category = "dev"
optional = false
-python-versions = ">= 3.7"
+python-versions = ">= 3.8"
+files = [
+ {file = "qtconsole-5.5.1-py3-none-any.whl", hash = "sha256:8c75fa3e9b4ed884880ff7cea90a1b67451219279ec33deaee1d59e3df1a5d2b"},
+ {file = "qtconsole-5.5.1.tar.gz", hash = "sha256:a0e806c6951db9490628e4df80caec9669b65149c7ba40f9bf033c025a5b56bc"},
+]
[package.dependencies]
ipykernel = ">=4.1"
-ipython-genutils = "*"
jupyter-client = ">=4.1"
jupyter-core = "*"
+packaging = "*"
pygments = "*"
pyzmq = ">=17.1"
-qtpy = ">=2.0.1"
+qtpy = ">=2.4.0"
traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2"
[package.extras]
@@ -1442,34 +2909,43 @@ test = ["flaky", "pytest", "pytest-qt"]
[[package]]
name = "qtpy"
-version = "2.2.0"
+version = "2.4.1"
description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)."
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "QtPy-2.4.1-py3-none-any.whl", hash = "sha256:1c1d8c4fa2c884ae742b069151b0abe15b3f70491f3972698c683b8e38de839b"},
+ {file = "QtPy-2.4.1.tar.gz", hash = "sha256:a5a15ffd519550a1361bdc56ffc07fda56a6af7292f17c7b395d4083af632987"},
+]
[package.dependencies]
packaging = "*"
[package.extras]
-test = ["pytest-qt", "pytest-cov (>=3.0.0)", "pytest (>=6,!=7.0.0,!=7.0.1)"]
+test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"]
[[package]]
name = "rdflib"
-version = "6.1.1"
+version = "7.0.0"
description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information."
category = "main"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8.1,<4.0.0"
+files = [
+ {file = "rdflib-7.0.0-py3-none-any.whl", hash = "sha256:0438920912a642c866a513de6fe8a0001bd86ef975057d6962c79ce4771687cd"},
+ {file = "rdflib-7.0.0.tar.gz", hash = "sha256:9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae"},
+]
[package.dependencies]
-isodate = "*"
-pyparsing = "*"
+isodate = ">=0.6.0,<0.7.0"
+pyparsing = ">=2.1.0,<4"
[package.extras]
-docs = ["sphinx (<5)", "sphinxcontrib-apidoc"]
-html = ["html5lib"]
-tests = ["berkeleydb", "html5lib", "networkx", "pytest", "pytest-cov", "pytest-subtests"]
+berkeleydb = ["berkeleydb (>=18.1.0,<19.0.0)"]
+html = ["html5lib (>=1.0,<2.0)"]
+lxml = ["lxml (>=4.3.0,<5.0.0)"]
+networkx = ["networkx (>=2.0.0,<3.0.0)"]
[[package]]
name = "rdflib-jsonld"
@@ -1478,6 +2954,10 @@ description = "rdflib extension adding JSON-LD parser and serializer"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "rdflib-jsonld-0.6.1.tar.gz", hash = "sha256:eda5a42a2e09f80d4da78e32b5c684bccdf275368f1541e6b7bcddfb1382a0e0"},
+ {file = "rdflib_jsonld-0.6.1-py2.py3-none-any.whl", hash = "sha256:bcf84317e947a661bae0a3f2aee1eced697075fc4ac4db6065a3340ea0f10fc2"},
+]
[package.dependencies]
rdflib = ">=5.0.0"
@@ -1489,65 +2969,417 @@ description = "Shim for rdflib 5 and 6 incompatibilities"
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "rdflib_shim-1.0.3-py3-none-any.whl", hash = "sha256:7a853e7750ef1e9bf4e35dea27d54e02d4ed087de5a9e0c329c4a6d82d647081"},
+ {file = "rdflib_shim-1.0.3.tar.gz", hash = "sha256:d955d11e2986aab42b6830ca56ac6bc9c893abd1d049a161c6de2f1b99d4fc0d"},
+]
[package.dependencies]
rdflib = ">=5.0.0"
rdflib-jsonld = "0.6.1"
+[[package]]
+name = "referencing"
+version = "0.34.0"
+description = "JSON Referencing + Python"
+category = "main"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "referencing-0.34.0-py3-none-any.whl", hash = "sha256:d53ae300ceddd3169f1ffa9caf2cb7b769e92657e4fafb23d34b93679116dfd4"},
+ {file = "referencing-0.34.0.tar.gz", hash = "sha256:5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844"},
+]
+
+[package.dependencies]
+attrs = ">=22.2.0"
+rpds-py = ">=0.7.0"
+
+[[package]]
+name = "regex"
+version = "2023.12.25"
+description = "Alternative regular expression module, to replace re."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0694219a1d54336fd0445ea382d49d36882415c0134ee1e8332afd1529f0baa5"},
+ {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b014333bd0217ad3d54c143de9d4b9a3ca1c5a29a6d0d554952ea071cff0f1f8"},
+ {file = "regex-2023.12.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d865984b3f71f6d0af64d0d88f5733521698f6c16f445bb09ce746c92c97c586"},
+ {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e0eabac536b4cc7f57a5f3d095bfa557860ab912f25965e08fe1545e2ed8b4c"},
+ {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c25a8ad70e716f96e13a637802813f65d8a6760ef48672aa3502f4c24ea8b400"},
+ {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9b6d73353f777630626f403b0652055ebfe8ff142a44ec2cf18ae470395766e"},
+ {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9cc99d6946d750eb75827cb53c4371b8b0fe89c733a94b1573c9dd16ea6c9e4"},
+ {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88d1f7bef20c721359d8675f7d9f8e414ec5003d8f642fdfd8087777ff7f94b5"},
+ {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cb3fe77aec8f1995611f966d0c656fdce398317f850d0e6e7aebdfe61f40e1cd"},
+ {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7aa47c2e9ea33a4a2a05f40fcd3ea36d73853a2aae7b4feab6fc85f8bf2c9704"},
+ {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:df26481f0c7a3f8739fecb3e81bc9da3fcfae34d6c094563b9d4670b047312e1"},
+ {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c40281f7d70baf6e0db0c2f7472b31609f5bc2748fe7275ea65a0b4601d9b392"},
+ {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:d94a1db462d5690ebf6ae86d11c5e420042b9898af5dcf278bd97d6bda065423"},
+ {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ba1b30765a55acf15dce3f364e4928b80858fa8f979ad41f862358939bdd1f2f"},
+ {file = "regex-2023.12.25-cp310-cp310-win32.whl", hash = "sha256:150c39f5b964e4d7dba46a7962a088fbc91f06e606f023ce57bb347a3b2d4630"},
+ {file = "regex-2023.12.25-cp310-cp310-win_amd64.whl", hash = "sha256:09da66917262d9481c719599116c7dc0c321ffcec4b1f510c4f8a066f8768105"},
+ {file = "regex-2023.12.25-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1b9d811f72210fa9306aeb88385b8f8bcef0dfbf3873410413c00aa94c56c2b6"},
+ {file = "regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d902a43085a308cef32c0d3aea962524b725403fd9373dea18110904003bac97"},
+ {file = "regex-2023.12.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d166eafc19f4718df38887b2bbe1467a4f74a9830e8605089ea7a30dd4da8887"},
+ {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7ad32824b7f02bb3c9f80306d405a1d9b7bb89362d68b3c5a9be53836caebdb"},
+ {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:636ba0a77de609d6510235b7f0e77ec494d2657108f777e8765efc060094c98c"},
+ {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fda75704357805eb953a3ee15a2b240694a9a514548cd49b3c5124b4e2ad01b"},
+ {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f72cbae7f6b01591f90814250e636065850c5926751af02bb48da94dfced7baa"},
+ {file = "regex-2023.12.25-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db2a0b1857f18b11e3b0e54ddfefc96af46b0896fb678c85f63fb8c37518b3e7"},
+ {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7502534e55c7c36c0978c91ba6f61703faf7ce733715ca48f499d3dbbd7657e0"},
+ {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e8c7e08bb566de4faaf11984af13f6bcf6a08f327b13631d41d62592681d24fe"},
+ {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:283fc8eed679758de38fe493b7d7d84a198b558942b03f017b1f94dda8efae80"},
+ {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f44dd4d68697559d007462b0a3a1d9acd61d97072b71f6d1968daef26bc744bd"},
+ {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:67d3ccfc590e5e7197750fcb3a2915b416a53e2de847a728cfa60141054123d4"},
+ {file = "regex-2023.12.25-cp311-cp311-win32.whl", hash = "sha256:68191f80a9bad283432385961d9efe09d783bcd36ed35a60fb1ff3f1ec2efe87"},
+ {file = "regex-2023.12.25-cp311-cp311-win_amd64.whl", hash = "sha256:7d2af3f6b8419661a0c421584cfe8aaec1c0e435ce7e47ee2a97e344b98f794f"},
+ {file = "regex-2023.12.25-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8a0ccf52bb37d1a700375a6b395bff5dd15c50acb745f7db30415bae3c2b0715"},
+ {file = "regex-2023.12.25-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c3c4a78615b7762740531c27cf46e2f388d8d727d0c0c739e72048beb26c8a9d"},
+ {file = "regex-2023.12.25-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ad83e7545b4ab69216cef4cc47e344d19622e28aabec61574b20257c65466d6a"},
+ {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7a635871143661feccce3979e1727c4e094f2bdfd3ec4b90dfd4f16f571a87a"},
+ {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d498eea3f581fbe1b34b59c697512a8baef88212f92e4c7830fcc1499f5b45a5"},
+ {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:43f7cd5754d02a56ae4ebb91b33461dc67be8e3e0153f593c509e21d219c5060"},
+ {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51f4b32f793812714fd5307222a7f77e739b9bc566dc94a18126aba3b92b98a3"},
+ {file = "regex-2023.12.25-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba99d8077424501b9616b43a2d208095746fb1284fc5ba490139651f971d39d9"},
+ {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4bfc2b16e3ba8850e0e262467275dd4d62f0d045e0e9eda2bc65078c0110a11f"},
+ {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8c2c19dae8a3eb0ea45a8448356ed561be843b13cbc34b840922ddf565498c1c"},
+ {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:60080bb3d8617d96f0fb7e19796384cc2467447ef1c491694850ebd3670bc457"},
+ {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b77e27b79448e34c2c51c09836033056a0547aa360c45eeeb67803da7b0eedaf"},
+ {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:518440c991f514331f4850a63560321f833979d145d7d81186dbe2f19e27ae3d"},
+ {file = "regex-2023.12.25-cp312-cp312-win32.whl", hash = "sha256:e2610e9406d3b0073636a3a2e80db05a02f0c3169b5632022b4e81c0364bcda5"},
+ {file = "regex-2023.12.25-cp312-cp312-win_amd64.whl", hash = "sha256:cc37b9aeebab425f11f27e5e9e6cf580be7206c6582a64467a14dda211abc232"},
+ {file = "regex-2023.12.25-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:da695d75ac97cb1cd725adac136d25ca687da4536154cdc2815f576e4da11c69"},
+ {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d126361607b33c4eb7b36debc173bf25d7805847346dd4d99b5499e1fef52bc7"},
+ {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4719bb05094d7d8563a450cf8738d2e1061420f79cfcc1fa7f0a44744c4d8f73"},
+ {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5dd58946bce44b53b06d94aa95560d0b243eb2fe64227cba50017a8d8b3cd3e2"},
+ {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22a86d9fff2009302c440b9d799ef2fe322416d2d58fc124b926aa89365ec482"},
+ {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2aae8101919e8aa05ecfe6322b278f41ce2994c4a430303c4cd163fef746e04f"},
+ {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e692296c4cc2873967771345a876bcfc1c547e8dd695c6b89342488b0ea55cd8"},
+ {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:263ef5cc10979837f243950637fffb06e8daed7f1ac1e39d5910fd29929e489a"},
+ {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d6f7e255e5fa94642a0724e35406e6cb7001c09d476ab5fce002f652b36d0c39"},
+ {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:88ad44e220e22b63b0f8f81f007e8abbb92874d8ced66f32571ef8beb0643b2b"},
+ {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:3a17d3ede18f9cedcbe23d2daa8a2cd6f59fe2bf082c567e43083bba3fb00347"},
+ {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d15b274f9e15b1a0b7a45d2ac86d1f634d983ca40d6b886721626c47a400bf39"},
+ {file = "regex-2023.12.25-cp37-cp37m-win32.whl", hash = "sha256:ed19b3a05ae0c97dd8f75a5d8f21f7723a8c33bbc555da6bbe1f96c470139d3c"},
+ {file = "regex-2023.12.25-cp37-cp37m-win_amd64.whl", hash = "sha256:a6d1047952c0b8104a1d371f88f4ab62e6275567d4458c1e26e9627ad489b445"},
+ {file = "regex-2023.12.25-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b43523d7bc2abd757119dbfb38af91b5735eea45537ec6ec3a5ec3f9562a1c53"},
+ {file = "regex-2023.12.25-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:efb2d82f33b2212898f1659fb1c2e9ac30493ac41e4d53123da374c3b5541e64"},
+ {file = "regex-2023.12.25-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7fca9205b59c1a3d5031f7e64ed627a1074730a51c2a80e97653e3e9fa0d415"},
+ {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086dd15e9435b393ae06f96ab69ab2d333f5d65cbe65ca5a3ef0ec9564dfe770"},
+ {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e81469f7d01efed9b53740aedd26085f20d49da65f9c1f41e822a33992cb1590"},
+ {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:34e4af5b27232f68042aa40a91c3b9bb4da0eeb31b7632e0091afc4310afe6cb"},
+ {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9852b76ab558e45b20bf1893b59af64a28bd3820b0c2efc80e0a70a4a3ea51c1"},
+ {file = "regex-2023.12.25-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff100b203092af77d1a5a7abe085b3506b7eaaf9abf65b73b7d6905b6cb76988"},
+ {file = "regex-2023.12.25-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cc038b2d8b1470364b1888a98fd22d616fba2b6309c5b5f181ad4483e0017861"},
+ {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:094ba386bb5c01e54e14434d4caabf6583334090865b23ef58e0424a6286d3dc"},
+ {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5cd05d0f57846d8ba4b71d9c00f6f37d6b97d5e5ef8b3c3840426a475c8f70f4"},
+ {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:9aa1a67bbf0f957bbe096375887b2505f5d8ae16bf04488e8b0f334c36e31360"},
+ {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:98a2636994f943b871786c9e82bfe7883ecdaba2ef5df54e1450fa9869d1f756"},
+ {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:37f8e93a81fc5e5bd8db7e10e62dc64261bcd88f8d7e6640aaebe9bc180d9ce2"},
+ {file = "regex-2023.12.25-cp38-cp38-win32.whl", hash = "sha256:d78bd484930c1da2b9679290a41cdb25cc127d783768a0369d6b449e72f88beb"},
+ {file = "regex-2023.12.25-cp38-cp38-win_amd64.whl", hash = "sha256:b521dcecebc5b978b447f0f69b5b7f3840eac454862270406a39837ffae4e697"},
+ {file = "regex-2023.12.25-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f7bc09bc9c29ebead055bcba136a67378f03d66bf359e87d0f7c759d6d4ffa31"},
+ {file = "regex-2023.12.25-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e14b73607d6231f3cc4622809c196b540a6a44e903bcfad940779c80dffa7be7"},
+ {file = "regex-2023.12.25-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9eda5f7a50141291beda3edd00abc2d4a5b16c29c92daf8d5bd76934150f3edc"},
+ {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc6bb9aa69aacf0f6032c307da718f61a40cf970849e471254e0e91c56ffca95"},
+ {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:298dc6354d414bc921581be85695d18912bea163a8b23cac9a2562bbcd5088b1"},
+ {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f4e475a80ecbd15896a976aa0b386c5525d0ed34d5c600b6d3ebac0a67c7ddf"},
+ {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:531ac6cf22b53e0696f8e1d56ce2396311254eb806111ddd3922c9d937151dae"},
+ {file = "regex-2023.12.25-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22f3470f7524b6da61e2020672df2f3063676aff444db1daa283c2ea4ed259d6"},
+ {file = "regex-2023.12.25-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:89723d2112697feaa320c9d351e5f5e7b841e83f8b143dba8e2d2b5f04e10923"},
+ {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0ecf44ddf9171cd7566ef1768047f6e66975788258b1c6c6ca78098b95cf9a3d"},
+ {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:905466ad1702ed4acfd67a902af50b8db1feeb9781436372261808df7a2a7bca"},
+ {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:4558410b7a5607a645e9804a3e9dd509af12fb72b9825b13791a37cd417d73a5"},
+ {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7e316026cc1095f2a3e8cc012822c99f413b702eaa2ca5408a513609488cb62f"},
+ {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3b1de218d5375cd6ac4b5493e0b9f3df2be331e86520f23382f216c137913d20"},
+ {file = "regex-2023.12.25-cp39-cp39-win32.whl", hash = "sha256:11a963f8e25ab5c61348d090bf1b07f1953929c13bd2309a0662e9ff680763c9"},
+ {file = "regex-2023.12.25-cp39-cp39-win_amd64.whl", hash = "sha256:e693e233ac92ba83a87024e1d32b5f9ab15ca55ddd916d878146f4e3406b5c91"},
+ {file = "regex-2023.12.25.tar.gz", hash = "sha256:29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5"},
+]
+
[[package]]
name = "requests"
-version = "2.28.1"
+version = "2.31.0"
description = "Python HTTP for Humans."
category = "main"
optional = false
-python-versions = ">=3.7, <4"
+python-versions = ">=3.7"
+files = [
+ {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
+ {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
+]
[package.dependencies]
certifi = ">=2017.4.17"
-charset-normalizer = ">=2,<3"
+charset-normalizer = ">=2,<4"
idna = ">=2.5,<4"
-urllib3 = ">=1.21.1,<1.27"
+urllib3 = ">=1.21.1,<3"
[package.extras]
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
-use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"]
+use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
[[package]]
-name = "ruamel.yaml"
-version = "0.17.21"
+name = "rfc3339-validator"
+version = "0.1.4"
+description = "A pure python RFC3339 validator"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+files = [
+ {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"},
+ {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"},
+]
+
+[package.dependencies]
+six = "*"
+
+[[package]]
+name = "rfc3986-validator"
+version = "0.1.1"
+description = "Pure python rfc3986 validator"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+files = [
+ {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"},
+ {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"},
+]
+
+[[package]]
+name = "rfc3987"
+version = "1.3.8"
+description = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)"
+category = "dev"
+optional = false
+python-versions = "*"
+files = [
+ {file = "rfc3987-1.3.8-py2.py3-none-any.whl", hash = "sha256:10702b1e51e5658843460b189b185c0366d2cf4cff716f13111b0ea9fd2dce53"},
+ {file = "rfc3987-1.3.8.tar.gz", hash = "sha256:d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733"},
+]
+
+[[package]]
+name = "rpds-py"
+version = "0.18.0"
+description = "Python bindings to Rust's persistent data structures (rpds)"
+category = "main"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"},
+ {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"},
+ {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"},
+ {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"},
+ {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"},
+ {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"},
+ {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"},
+ {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"},
+ {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"},
+ {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"},
+ {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"},
+ {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"},
+ {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"},
+ {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"},
+ {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"},
+ {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"},
+ {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"},
+ {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"},
+ {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"},
+ {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"},
+ {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"},
+ {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"},
+ {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"},
+ {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"},
+ {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"},
+ {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"},
+ {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"},
+ {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"},
+ {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"},
+ {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"},
+ {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"},
+ {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"},
+ {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"},
+ {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"},
+ {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"},
+ {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"},
+ {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"},
+ {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"},
+ {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"},
+ {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"},
+ {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"},
+ {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"},
+ {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"},
+ {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"},
+ {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"},
+ {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"},
+ {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"},
+ {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"},
+ {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"},
+ {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"},
+ {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"},
+ {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"},
+ {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"},
+ {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"},
+ {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"},
+ {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"},
+ {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"},
+ {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"},
+ {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"},
+ {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"},
+ {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"},
+ {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"},
+ {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"},
+ {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"},
+ {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"},
+ {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"},
+ {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"},
+ {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"},
+ {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"},
+]
+
+[[package]]
+name = "ruamel-yaml"
+version = "0.18.6"
description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order"
category = "dev"
optional = false
-python-versions = ">=3"
+python-versions = ">=3.7"
+files = [
+ {file = "ruamel.yaml-0.18.6-py3-none-any.whl", hash = "sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636"},
+ {file = "ruamel.yaml-0.18.6.tar.gz", hash = "sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b"},
+]
[package.dependencies]
-"ruamel.yaml.clib" = {version = ">=0.2.6", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.11\""}
+"ruamel.yaml.clib" = {version = ">=0.2.7", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.13\""}
[package.extras]
-docs = ["ryd"]
+docs = ["mercurial (>5.7)", "ryd"]
jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"]
[[package]]
-name = "ruamel.yaml.clib"
-version = "0.2.6"
+name = "ruamel-yaml-clib"
+version = "0.2.8"
description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml"
category = "dev"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.6"
+files = [
+ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"},
+ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"},
+ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"},
+ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"},
+ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"},
+ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"},
+ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"},
+ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"},
+ {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"},
+ {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"},
+ {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"},
+ {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"},
+ {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"},
+ {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"},
+ {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"},
+ {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"},
+ {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"},
+ {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"},
+ {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"},
+ {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"},
+ {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"},
+ {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"},
+ {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"},
+ {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"},
+ {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"},
+ {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"},
+ {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"},
+ {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"},
+ {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"},
+ {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"},
+ {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"},
+ {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"},
+ {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"},
+ {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"},
+ {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"},
+ {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"},
+ {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"},
+ {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"},
+ {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"},
+ {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"},
+ {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"},
+ {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"},
+ {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"},
+ {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"},
+ {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"},
+ {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"},
+ {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"},
+ {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"},
+ {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"},
+ {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"},
+]
[[package]]
name = "send2trash"
-version = "1.8.0"
-description = "Send file to trash natively under Mac OS X, Windows and Linux."
+version = "1.8.2"
+description = "Send file to trash natively under Mac OS X, Windows and Linux"
category = "dev"
optional = false
-python-versions = "*"
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+files = [
+ {file = "Send2Trash-1.8.2-py3-none-any.whl", hash = "sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679"},
+ {file = "Send2Trash-1.8.2.tar.gz", hash = "sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"},
+]
[package.extras]
-nativelib = ["pyobjc-framework-cocoa", "pywin32"]
-objc = ["pyobjc-framework-cocoa"]
+nativelib = ["pyobjc-framework-Cocoa", "pywin32"]
+objc = ["pyobjc-framework-Cocoa"]
win32 = ["pywin32"]
+[[package]]
+name = "setuptools"
+version = "69.2.0"
+description = "Easily download, build, install, upgrade, and uninstall Python packages"
+category = "dev"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c"},
+ {file = "setuptools-69.2.0.tar.gz", hash = "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e"},
+]
+
+[package.extras]
+docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
+testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
+testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
+
[[package]]
name = "shexjsg"
version = "0.8.2"
@@ -1555,6 +3387,10 @@ description = "ShExJSG - Astract Syntax Tree for the ShEx 2.0 language"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "ShExJSG-0.8.2-py2.py3-none-any.whl", hash = "sha256:3b0d8432dd313bee9e1343382c5e02e9908dd941a7dd7342bf8c0200fe523766"},
+ {file = "ShExJSG-0.8.2.tar.gz", hash = "sha256:f17a629fc577fa344382bdee143cd9ff86588537f9f811f66cea6f63cdbcd0b6"},
+]
[package.dependencies]
pyjsg = ">=0.11.10"
@@ -1566,22 +3402,46 @@ description = "Python 2 and 3 compatibility utilities"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+files = [
+ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
+ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
+]
[[package]]
-name = "snowballstemmer"
-version = "2.2.0"
-description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
+name = "sniffio"
+version = "1.3.1"
+description = "Sniff out which async library your code is running under"
category = "dev"
optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
+ {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
+]
+
+[[package]]
+name = "sortedcontainers"
+version = "2.4.0"
+description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set"
+category = "main"
+optional = false
python-versions = "*"
+files = [
+ {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"},
+ {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"},
+]
[[package]]
name = "soupsieve"
-version = "2.3.2.post1"
+version = "2.5"
description = "A modern CSS selector implementation for Beautiful Soup."
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
+files = [
+ {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"},
+ {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"},
+]
[[package]]
name = "sparqlslurper"
@@ -1590,6 +3450,10 @@ description = "SPARQL Slurper for rdflib"
category = "dev"
optional = false
python-versions = ">=3.7.4"
+files = [
+ {file = "sparqlslurper-0.5.1-py3-none-any.whl", hash = "sha256:ae49b2d8ce3dd38df7a40465b228ad5d33fb7e11b3f248d195f9cadfc9cfff87"},
+ {file = "sparqlslurper-0.5.1.tar.gz", hash = "sha256:9282ebb064fc6152a58269d194cb1e7b275b0f095425a578d75b96dcc851f546"},
+]
[package.dependencies]
rdflib = ">=5.0.0"
@@ -1603,175 +3467,122 @@ description = "SPARQL Endpoint interface to Python"
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "SPARQLWrapper-2.0.0-py3-none-any.whl", hash = "sha256:c99a7204fff676ee28e6acef327dc1ff8451c6f7217dcd8d49e8872f324a8a20"},
+ {file = "SPARQLWrapper-2.0.0.tar.gz", hash = "sha256:3fed3ebcc77617a4a74d2644b86fd88e0f32e7f7003ac7b2b334c026201731f1"},
+]
[package.dependencies]
rdflib = ">=6.1.1"
[package.extras]
-dev = ["setuptools (>=3.7.1)", "mypy (>=0.931)", "pandas (>=1.3.5)", "pandas-stubs (>=1.2.0.48)"]
+dev = ["mypy (>=0.931)", "pandas (>=1.3.5)", "pandas-stubs (>=1.2.0.48)", "setuptools (>=3.7.1)"]
docs = ["sphinx (<5)", "sphinx-rtd-theme"]
keepalive = ["keepalive (>=0.5)"]
pandas = ["pandas (>=1.3.5)"]
-[[package]]
-name = "sphinx"
-version = "4.5.0"
-description = "Python documentation generator"
-category = "dev"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-alabaster = ">=0.7,<0.8"
-babel = ">=1.3"
-colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
-docutils = ">=0.14,<0.18"
-imagesize = "*"
-importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""}
-Jinja2 = ">=2.3"
-packaging = "*"
-Pygments = ">=2.0"
-requests = ">=2.5.0"
-snowballstemmer = ">=1.1"
-sphinxcontrib-applehelp = "*"
-sphinxcontrib-devhelp = "*"
-sphinxcontrib-htmlhelp = ">=2.0.0"
-sphinxcontrib-jsmath = "*"
-sphinxcontrib-qthelp = "*"
-sphinxcontrib-serializinghtml = ">=1.1.5"
-
-[package.extras]
-docs = ["sphinxcontrib-websupport"]
-lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "docutils-stubs", "types-typed-ast", "types-requests"]
-test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
-
-[[package]]
-name = "sphinx-click"
-version = "4.1.0"
-description = "Sphinx extension that automatically documents click applications"
-category = "dev"
-optional = false
-python-versions = ">=3.7"
-
-[package.dependencies]
-click = ">=7.0"
-docutils = "*"
-sphinx = ">=2.0"
-
-[[package]]
-name = "sphinxcontrib-applehelp"
-version = "1.0.2"
-description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest"]
-
-[[package]]
-name = "sphinxcontrib-devhelp"
-version = "1.0.2"
-description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest"]
-
-[[package]]
-name = "sphinxcontrib-htmlhelp"
-version = "2.0.0"
-description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
-category = "dev"
-optional = false
-python-versions = ">=3.6"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest", "html5lib"]
-
-[[package]]
-name = "sphinxcontrib-jsmath"
-version = "1.0.1"
-description = "A sphinx extension which renders display math in HTML via JavaScript"
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-test = ["pytest", "flake8", "mypy"]
-
-[[package]]
-name = "sphinxcontrib-qthelp"
-version = "1.0.3"
-description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document."
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest"]
-
-[[package]]
-name = "sphinxcontrib-serializinghtml"
-version = "1.1.5"
-description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."
-category = "dev"
-optional = false
-python-versions = ">=3.5"
-
-[package.extras]
-lint = ["flake8", "mypy", "docutils-stubs"]
-test = ["pytest"]
-
[[package]]
name = "sqlalchemy"
-version = "1.4.36"
+version = "2.0.29"
description = "Database Abstraction Library"
category = "main"
optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
-
-[package.dependencies]
-greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"}
+python-versions = ">=3.7"
+files = [
+ {file = "SQLAlchemy-2.0.29-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4c142852ae192e9fe5aad5c350ea6befe9db14370b34047e1f0f7cf99e63c63b"},
+ {file = "SQLAlchemy-2.0.29-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:99a1e69d4e26f71e750e9ad6fdc8614fbddb67cfe2173a3628a2566034e223c7"},
+ {file = "SQLAlchemy-2.0.29-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ef3fbccb4058355053c51b82fd3501a6e13dd808c8d8cd2561e610c5456013c"},
+ {file = "SQLAlchemy-2.0.29-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d6753305936eddc8ed190e006b7bb33a8f50b9854823485eed3a886857ab8d1"},
+ {file = "SQLAlchemy-2.0.29-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0f3ca96af060a5250a8ad5a63699180bc780c2edf8abf96c58af175921df847a"},
+ {file = "SQLAlchemy-2.0.29-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c4520047006b1d3f0d89e0532978c0688219857eb2fee7c48052560ae76aca1e"},
+ {file = "SQLAlchemy-2.0.29-cp310-cp310-win32.whl", hash = "sha256:b2a0e3cf0caac2085ff172c3faacd1e00c376e6884b5bc4dd5b6b84623e29e4f"},
+ {file = "SQLAlchemy-2.0.29-cp310-cp310-win_amd64.whl", hash = "sha256:01d10638a37460616708062a40c7b55f73e4d35eaa146781c683e0fa7f6c43fb"},
+ {file = "SQLAlchemy-2.0.29-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:308ef9cb41d099099fffc9d35781638986870b29f744382904bf9c7dadd08513"},
+ {file = "SQLAlchemy-2.0.29-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:296195df68326a48385e7a96e877bc19aa210e485fa381c5246bc0234c36c78e"},
+ {file = "SQLAlchemy-2.0.29-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a13b917b4ffe5a0a31b83d051d60477819ddf18276852ea68037a144a506efb9"},
+ {file = "SQLAlchemy-2.0.29-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f6d971255d9ddbd3189e2e79d743ff4845c07f0633adfd1de3f63d930dbe673"},
+ {file = "SQLAlchemy-2.0.29-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:61405ea2d563407d316c63a7b5271ae5d274a2a9fbcd01b0aa5503635699fa1e"},
+ {file = "SQLAlchemy-2.0.29-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:de7202ffe4d4a8c1e3cde1c03e01c1a3772c92858837e8f3879b497158e4cb44"},
+ {file = "SQLAlchemy-2.0.29-cp311-cp311-win32.whl", hash = "sha256:b5d7ed79df55a731749ce65ec20d666d82b185fa4898430b17cb90c892741520"},
+ {file = "SQLAlchemy-2.0.29-cp311-cp311-win_amd64.whl", hash = "sha256:205f5a2b39d7c380cbc3b5dcc8f2762fb5bcb716838e2d26ccbc54330775b003"},
+ {file = "SQLAlchemy-2.0.29-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d96710d834a6fb31e21381c6d7b76ec729bd08c75a25a5184b1089141356171f"},
+ {file = "SQLAlchemy-2.0.29-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:52de4736404e53c5c6a91ef2698c01e52333988ebdc218f14c833237a0804f1b"},
+ {file = "SQLAlchemy-2.0.29-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c7b02525ede2a164c5fa5014915ba3591730f2cc831f5be9ff3b7fd3e30958e"},
+ {file = "SQLAlchemy-2.0.29-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dfefdb3e54cd15f5d56fd5ae32f1da2d95d78319c1f6dfb9bcd0eb15d603d5d"},
+ {file = "SQLAlchemy-2.0.29-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a88913000da9205b13f6f195f0813b6ffd8a0c0c2bd58d499e00a30eb508870c"},
+ {file = "SQLAlchemy-2.0.29-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fecd5089c4be1bcc37c35e9aa678938d2888845a134dd016de457b942cf5a758"},
+ {file = "SQLAlchemy-2.0.29-cp312-cp312-win32.whl", hash = "sha256:8197d6f7a3d2b468861ebb4c9f998b9df9e358d6e1cf9c2a01061cb9b6cf4e41"},
+ {file = "SQLAlchemy-2.0.29-cp312-cp312-win_amd64.whl", hash = "sha256:9b19836ccca0d321e237560e475fd99c3d8655d03da80c845c4da20dda31b6e1"},
+ {file = "SQLAlchemy-2.0.29-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87a1d53a5382cdbbf4b7619f107cc862c1b0a4feb29000922db72e5a66a5ffc0"},
+ {file = "SQLAlchemy-2.0.29-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a0732dffe32333211801b28339d2a0babc1971bc90a983e3035e7b0d6f06b93"},
+ {file = "SQLAlchemy-2.0.29-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90453597a753322d6aa770c5935887ab1fc49cc4c4fdd436901308383d698b4b"},
+ {file = "SQLAlchemy-2.0.29-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ea311d4ee9a8fa67f139c088ae9f905fcf0277d6cd75c310a21a88bf85e130f5"},
+ {file = "SQLAlchemy-2.0.29-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:5f20cb0a63a3e0ec4e169aa8890e32b949c8145983afa13a708bc4b0a1f30e03"},
+ {file = "SQLAlchemy-2.0.29-cp37-cp37m-win32.whl", hash = "sha256:e5bbe55e8552019c6463709b39634a5fc55e080d0827e2a3a11e18eb73f5cdbd"},
+ {file = "SQLAlchemy-2.0.29-cp37-cp37m-win_amd64.whl", hash = "sha256:c2f9c762a2735600654c654bf48dad388b888f8ce387b095806480e6e4ff6907"},
+ {file = "SQLAlchemy-2.0.29-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e614d7a25a43a9f54fcce4675c12761b248547f3d41b195e8010ca7297c369c"},
+ {file = "SQLAlchemy-2.0.29-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:471fcb39c6adf37f820350c28aac4a7df9d3940c6548b624a642852e727ea586"},
+ {file = "SQLAlchemy-2.0.29-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:988569c8732f54ad3234cf9c561364221a9e943b78dc7a4aaf35ccc2265f1930"},
+ {file = "SQLAlchemy-2.0.29-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dddaae9b81c88083e6437de95c41e86823d150f4ee94bf24e158a4526cbead01"},
+ {file = "SQLAlchemy-2.0.29-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:334184d1ab8f4c87f9652b048af3f7abea1c809dfe526fb0435348a6fef3d380"},
+ {file = "SQLAlchemy-2.0.29-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:38b624e5cf02a69b113c8047cf7f66b5dfe4a2ca07ff8b8716da4f1b3ae81567"},
+ {file = "SQLAlchemy-2.0.29-cp38-cp38-win32.whl", hash = "sha256:bab41acf151cd68bc2b466deae5deeb9e8ae9c50ad113444151ad965d5bf685b"},
+ {file = "SQLAlchemy-2.0.29-cp38-cp38-win_amd64.whl", hash = "sha256:52c8011088305476691b8750c60e03b87910a123cfd9ad48576d6414b6ec2a1d"},
+ {file = "SQLAlchemy-2.0.29-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3071ad498896907a5ef756206b9dc750f8e57352113c19272bdfdc429c7bd7de"},
+ {file = "SQLAlchemy-2.0.29-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dba622396a3170974f81bad49aacebd243455ec3cc70615aeaef9e9613b5bca5"},
+ {file = "SQLAlchemy-2.0.29-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b184e3de58009cc0bf32e20f137f1ec75a32470f5fede06c58f6c355ed42a72"},
+ {file = "SQLAlchemy-2.0.29-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c37f1050feb91f3d6c32f864d8e114ff5545a4a7afe56778d76a9aec62638ba"},
+ {file = "SQLAlchemy-2.0.29-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bda7ce59b06d0f09afe22c56714c65c957b1068dee3d5e74d743edec7daba552"},
+ {file = "SQLAlchemy-2.0.29-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:25664e18bef6dc45015b08f99c63952a53a0a61f61f2e48a9e70cec27e55f699"},
+ {file = "SQLAlchemy-2.0.29-cp39-cp39-win32.whl", hash = "sha256:77d29cb6c34b14af8a484e831ab530c0f7188f8efed1c6a833a2c674bf3c26ec"},
+ {file = "SQLAlchemy-2.0.29-cp39-cp39-win_amd64.whl", hash = "sha256:04c487305ab035a9548f573763915189fc0fe0824d9ba28433196f8436f1449c"},
+ {file = "SQLAlchemy-2.0.29-py3-none-any.whl", hash = "sha256:dc4ee2d4ee43251905f88637d5281a8d52e916a021384ec10758826f5cbae305"},
+ {file = "SQLAlchemy-2.0.29.tar.gz", hash = "sha256:bd9566b8e58cabd700bc367b60e90d9349cd16f0984973f98a9a09f9c64e86f0"},
+]
+
+[package.dependencies]
+greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""}
+typing-extensions = ">=4.6.0"
[package.extras]
-aiomysql = ["greenlet (!=0.4.17)", "aiomysql"]
-aiosqlite = ["typing_extensions (!=3.10.0.1)", "greenlet (!=0.4.17)", "aiosqlite"]
+aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"]
+aioodbc = ["aioodbc", "greenlet (!=0.4.17)"]
+aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"]
asyncio = ["greenlet (!=0.4.17)"]
-asyncmy = ["greenlet (!=0.4.17)", "asyncmy (>=0.2.3,!=0.2.4)"]
-mariadb_connector = ["mariadb (>=1.0.1)"]
+asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"]
+mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"]
mssql = ["pyodbc"]
-mssql_pymssql = ["pymssql"]
-mssql_pyodbc = ["pyodbc"]
-mypy = ["sqlalchemy2-stubs", "mypy (>=0.910)"]
-mysql = ["mysqlclient (>=1.4.0,<2)", "mysqlclient (>=1.4.0)"]
-mysql_connector = ["mysql-connector-python"]
-oracle = ["cx_oracle (>=7,<8)", "cx_oracle (>=7)"]
+mssql-pymssql = ["pymssql"]
+mssql-pyodbc = ["pyodbc"]
+mypy = ["mypy (>=0.910)"]
+mysql = ["mysqlclient (>=1.4.0)"]
+mysql-connector = ["mysql-connector-python"]
+oracle = ["cx_oracle (>=8)"]
+oracle-oracledb = ["oracledb (>=1.0.1)"]
postgresql = ["psycopg2 (>=2.7)"]
-postgresql_asyncpg = ["greenlet (!=0.4.17)", "asyncpg"]
-postgresql_pg8000 = ["pg8000 (>=1.16.6)"]
-postgresql_psycopg2binary = ["psycopg2-binary"]
-postgresql_psycopg2cffi = ["psycopg2cffi"]
-pymysql = ["pymysql (<1)", "pymysql"]
-sqlcipher = ["sqlcipher3-binary"]
+postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"]
+postgresql-pg8000 = ["pg8000 (>=1.29.1)"]
+postgresql-psycopg = ["psycopg (>=3.0.7)"]
+postgresql-psycopg2binary = ["psycopg2-binary"]
+postgresql-psycopg2cffi = ["psycopg2cffi"]
+postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"]
+pymysql = ["pymysql"]
+sqlcipher = ["sqlcipher3_binary"]
[[package]]
name = "sqlalchemy-utils"
-version = "0.38.2"
+version = "0.38.3"
description = "Various utility functions for SQLAlchemy."
category = "main"
optional = false
-python-versions = "~=3.4"
+python-versions = "~=3.6"
+files = [
+ {file = "SQLAlchemy-Utils-0.38.3.tar.gz", hash = "sha256:9f9afba607a40455cf703adfa9846584bf26168a0c5a60a70063b70d65051f4d"},
+ {file = "SQLAlchemy_Utils-0.38.3-py3-none-any.whl", hash = "sha256:5c13b5d08adfaa85f3d4e8ec09a75136216fad41346980d02974a70a77988bf9"},
+]
[package.dependencies]
-six = "*"
-SQLAlchemy = ">=1.0"
+SQLAlchemy = ">=1.3"
[package.extras]
arrow = ["arrow (>=0.3.4)"]
@@ -1782,42 +3593,59 @@ intervals = ["intervals (>=0.7.1)"]
password = ["passlib (>=1.6,<2.0)"]
pendulum = ["pendulum (>=2.0.5)"]
phone = ["phonenumbers (>=5.9.2)"]
-test = ["pytest (>=2.7.1)", "Pygments (>=1.2)", "Jinja2 (>=2.3)", "docutils (>=0.10)", "flexmock (>=0.9.7)", "mock (==2.0.0)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pg8000 (>=1.12.4)", "pytz (>=2014.2)", "python-dateutil (>=2.6)", "pymysql", "flake8 (>=2.4.0)", "isort (>=4.2.2)", "pyodbc", "backports.zoneinfo"]
-test_all = ["Babel (>=1.3)", "Jinja2 (>=2.3)", "Pygments (>=1.2)", "arrow (>=0.3.4)", "colour (>=0.0.4)", "cryptography (>=0.6)", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "furl (>=0.4.1)", "intervals (>=0.7.1)", "isort (>=4.2.2)", "mock (==2.0.0)", "passlib (>=1.6,<2.0)", "pendulum (>=2.0.5)", "pg8000 (>=1.12.4)", "phonenumbers (>=5.9.2)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil", "python-dateutil (>=2.6)", "pytz (>=2014.2)", "backports.zoneinfo"]
+test = ["Jinja2 (>=2.3)", "Pygments (>=1.2)", "backports.zoneinfo", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "isort (>=4.2.2)", "pg8000 (>=1.12.4)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil (>=2.6)", "pytz (>=2014.2)"]
+test-all = ["Babel (>=1.3)", "Jinja2 (>=2.3)", "Pygments (>=1.2)", "arrow (>=0.3.4)", "backports.zoneinfo", "colour (>=0.0.4)", "cryptography (>=0.6)", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "furl (>=0.4.1)", "intervals (>=0.7.1)", "isort (>=4.2.2)", "passlib (>=1.6,<2.0)", "pendulum (>=2.0.5)", "pg8000 (>=1.12.4)", "phonenumbers (>=5.9.2)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil", "python-dateutil (>=2.6)", "pytz (>=2014.2)"]
timezone = ["python-dateutil"]
url = ["furl (>=0.4.1)"]
[[package]]
name = "sqlparse"
-version = "0.4.2"
+version = "0.4.4"
description = "A non-validating SQL parser."
category = "dev"
optional = false
python-versions = ">=3.5"
+files = [
+ {file = "sqlparse-0.4.4-py3-none-any.whl", hash = "sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3"},
+ {file = "sqlparse-0.4.4.tar.gz", hash = "sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c"},
+]
+
+[package.extras]
+dev = ["build", "flake8"]
+doc = ["sphinx"]
+test = ["pytest", "pytest-cov"]
[[package]]
name = "stack-data"
-version = "0.4.0"
+version = "0.6.3"
description = "Extract data from python stack frames and tracebacks for informative displays"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"},
+ {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"},
+]
[package.dependencies]
-asttokens = "*"
-executing = "*"
+asttokens = ">=2.1.0"
+executing = ">=1.2.0"
pure-eval = "*"
[package.extras]
-tests = ["cython", "littleutils", "pygments", "typeguard", "pytest"]
+tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"]
[[package]]
name = "terminado"
-version = "0.15.0"
+version = "0.18.1"
description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library."
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"},
+ {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"},
+]
[package.dependencies]
ptyprocess = {version = "*", markers = "os_name != \"nt\""}
@@ -1825,81 +3653,204 @@ pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""}
tornado = ">=6.1.0"
[package.extras]
-test = ["pre-commit", "pytest-timeout", "pytest (>=6.0)"]
+docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"]
+test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"]
+typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"]
[[package]]
name = "tinycss2"
-version = "1.1.1"
+version = "1.2.1"
description = "A tiny CSS parser"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
+files = [
+ {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"},
+ {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"},
+]
[package.dependencies]
webencodings = ">=0.4"
[package.extras]
-doc = ["sphinx", "sphinx-rtd-theme"]
-test = ["pytest", "pytest-cov", "pytest-flake8", "pytest-isort", "coverage"]
+doc = ["sphinx", "sphinx_rtd_theme"]
+test = ["flake8", "isort", "pytest"]
+
+[[package]]
+name = "tomli"
+version = "2.0.1"
+description = "A lil' TOML parser"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
+ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
+]
[[package]]
name = "tornado"
-version = "6.2"
+version = "6.4"
description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed."
category = "dev"
optional = false
-python-versions = ">= 3.7"
+python-versions = ">= 3.8"
+files = [
+ {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"},
+ {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"},
+ {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"},
+ {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"},
+ {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"},
+ {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"},
+ {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"},
+ {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"},
+ {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"},
+ {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"},
+ {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"},
+]
[[package]]
name = "traitlets"
-version = "5.3.0"
-description = ""
+version = "5.14.2"
+description = "Traitlets Python configuration system"
category = "dev"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "traitlets-5.14.2-py3-none-any.whl", hash = "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80"},
+ {file = "traitlets-5.14.2.tar.gz", hash = "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"},
+]
[package.extras]
-test = ["pre-commit", "pytest"]
+docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"]
+test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.1)", "pytest-mock", "pytest-mypy-testing"]
+
+[[package]]
+name = "types-python-dateutil"
+version = "2.9.0.20240316"
+description = "Typing stubs for python-dateutil"
+category = "dev"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"},
+ {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"},
+]
[[package]]
name = "typing-extensions"
-version = "4.2.0"
-description = "Backported and Experimental Type Hints for Python 3.7+"
+version = "4.10.0"
+description = "Backported and Experimental Type Hints for Python 3.8+"
+category = "main"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"},
+ {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"},
+]
+
+[[package]]
+name = "uri-template"
+version = "1.3.0"
+description = "RFC 6570 URI Template Processor"
category = "dev"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"},
+ {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"},
+]
+
+[package.extras]
+dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"]
[[package]]
name = "urllib3"
-version = "1.26.9"
+version = "2.2.1"
description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
+python-versions = ">=3.8"
+files = [
+ {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"},
+ {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"},
+]
[package.extras]
-brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"]
-secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
-socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
+h2 = ["h2 (>=4,<5)"]
+socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
+zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "watchdog"
-version = "2.1.8"
+version = "4.0.0"
description = "Filesystem events monitoring"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
+files = [
+ {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b"},
+ {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b"},
+ {file = "watchdog-4.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c"},
+ {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b"},
+ {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935"},
+ {file = "watchdog-4.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b"},
+ {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257"},
+ {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19"},
+ {file = "watchdog-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b"},
+ {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:45cc09cc4c3b43fb10b59ef4d07318d9a3ecdbff03abd2e36e77b6dd9f9a5c85"},
+ {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eed82cdf79cd7f0232e2fdc1ad05b06a5e102a43e331f7d041e5f0e0a34a51c4"},
+ {file = "watchdog-4.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba30a896166f0fee83183cec913298151b73164160d965af2e93a20bbd2ab605"},
+ {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d18d7f18a47de6863cd480734613502904611730f8def45fc52a5d97503e5101"},
+ {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2895bf0518361a9728773083908801a376743bcc37dfa252b801af8fd281b1ca"},
+ {file = "watchdog-4.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87e9df830022488e235dd601478c15ad73a0389628588ba0b028cb74eb72fed8"},
+ {file = "watchdog-4.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b"},
+ {file = "watchdog-4.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92"},
+ {file = "watchdog-4.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07"},
+ {file = "watchdog-4.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3"},
+ {file = "watchdog-4.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f"},
+ {file = "watchdog-4.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50"},
+ {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927"},
+ {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d"},
+ {file = "watchdog-4.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87"},
+ {file = "watchdog-4.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269"},
+ {file = "watchdog-4.0.0-py3-none-win32.whl", hash = "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c"},
+ {file = "watchdog-4.0.0-py3-none-win_amd64.whl", hash = "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245"},
+ {file = "watchdog-4.0.0-py3-none-win_ia64.whl", hash = "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7"},
+ {file = "watchdog-4.0.0.tar.gz", hash = "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec"},
+]
[package.extras]
watchmedo = ["PyYAML (>=3.10)"]
[[package]]
name = "wcwidth"
-version = "0.2.5"
+version = "0.2.13"
description = "Measures the displayed width of unicode strings in a terminal"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"},
+ {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"},
+]
+
+[[package]]
+name = "webcolors"
+version = "1.13"
+description = "A library for working with the color formats defined by HTML and CSS."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"},
+ {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"},
+]
+
+[package.extras]
+docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"]
+tests = ["pytest", "pytest-cov"]
[[package]]
name = "webencodings"
@@ -1908,193 +3859,137 @@ description = "Character encoding aliases for legacy web content"
category = "dev"
optional = false
python-versions = "*"
+files = [
+ {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"},
+ {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
+]
[[package]]
-name = "widgetsnbextension"
-version = "3.6.1"
-description = "IPython HTML widgets for Jupyter"
+name = "websocket-client"
+version = "1.7.0"
+description = "WebSocket client for Python with low level API options"
category = "dev"
optional = false
-python-versions = "*"
+python-versions = ">=3.8"
+files = [
+ {file = "websocket-client-1.7.0.tar.gz", hash = "sha256:10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6"},
+ {file = "websocket_client-1.7.0-py3-none-any.whl", hash = "sha256:f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588"},
+]
-[package.dependencies]
-notebook = ">=4.4.1"
+[package.extras]
+docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"]
+optional = ["python-socks", "wsaccel"]
+test = ["websockets"]
+
+[[package]]
+name = "widgetsnbextension"
+version = "4.0.10"
+description = "Jupyter interactive widgets for Jupyter Notebook"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "widgetsnbextension-4.0.10-py3-none-any.whl", hash = "sha256:d37c3724ec32d8c48400a435ecfa7d3e259995201fbefa37163124a9fcb393cc"},
+ {file = "widgetsnbextension-4.0.10.tar.gz", hash = "sha256:64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f"},
+]
[[package]]
name = "wrapt"
-version = "1.14.1"
+version = "1.16.0"
description = "Module for decorators, wrappers and monkey patching."
category = "main"
optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+python-versions = ">=3.6"
+files = [
+ {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"},
+ {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"},
+ {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"},
+ {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"},
+ {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"},
+ {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"},
+ {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"},
+ {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"},
+ {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"},
+ {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"},
+ {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"},
+ {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"},
+ {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"},
+ {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"},
+ {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"},
+ {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"},
+ {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"},
+ {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"},
+ {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"},
+ {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"},
+ {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"},
+ {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"},
+ {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"},
+ {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"},
+ {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"},
+ {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"},
+ {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"},
+ {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"},
+ {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"},
+ {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"},
+ {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"},
+ {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"},
+ {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"},
+ {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"},
+ {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"},
+ {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"},
+ {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"},
+ {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"},
+ {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"},
+ {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"},
+ {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"},
+ {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"},
+ {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"},
+ {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"},
+ {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"},
+ {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"},
+ {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"},
+ {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"},
+ {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"},
+ {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"},
+ {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"},
+ {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"},
+ {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"},
+ {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"},
+ {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"},
+ {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"},
+ {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"},
+ {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"},
+ {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"},
+ {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"},
+ {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"},
+ {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"},
+ {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"},
+ {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"},
+ {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"},
+ {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"},
+ {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"},
+ {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"},
+ {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"},
+ {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"},
+]
[[package]]
name = "zipp"
-version = "3.8.0"
+version = "3.18.1"
description = "Backport of pathlib-compatible object wrapper for zip files"
category = "main"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+files = [
+ {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"},
+ {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"},
+]
[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"]
+docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"]
[metadata]
-lock-version = "1.1"
-python-versions = "^3.8"
-content-hash = "fddaddefc5fbd539e7fe77017ed7f73230f8fc208b088be6a3e1f52c135c67dd"
-
-[metadata.files]
-alabaster = []
-antlr4-python3-runtime = []
-appnope = []
-argon2-cffi = []
-argon2-cffi-bindings = []
-argparse = []
-asttokens = []
-attrs = []
-babel = []
-backcall = []
-beautifulsoup4 = []
-bleach = []
-certifi = []
-cffi = []
-cfgraph = []
-chardet = []
-charset-normalizer = []
-click = []
-colorama = []
-debugpy = []
-decorator = []
-defusedxml = []
-deprecated = []
-docutils = []
-editorconfig = []
-entrypoints = []
-et-xmlfile = []
-executing = []
-fastjsonschema = []
-ghp-import = []
-graphviz = []
-greenlet = []
-hbreader = []
-idna = []
-imagesize = []
-importlib-metadata = []
-importlib-resources = []
-ipykernel = []
-ipython = []
-ipython-genutils = []
-ipython-sql = []
-ipywidgets = []
-isodate = []
-jedi = []
-jinja2 = []
-jsbeautifier = []
-json-flattener = []
-jsonasobj = []
-jsonasobj2 = []
-jsonpatch = []
-jsonpath-ng = []
-jsonpointer = []
-jsonschema = []
-jupyter = []
-jupyter-client = []
-jupyter-console = []
-jupyter-core = []
-jupyterlab-pygments = []
-jupyterlab-widgets = []
-linkml = []
-linkml-dataops = []
-linkml-runtime = []
-lxml = []
-markdown = []
-markdown-it-py = []
-markupsafe = []
-matplotlib-inline = []
-mdit-py-plugins = []
-mdurl = []
-mergedeep = []
-mistune = []
-mkdocs = []
-mkdocs-material = []
-mkdocs-material-extensions = []
-mkdocs-mermaid2-plugin = []
-myst-parser = []
-nbclient = []
-nbconvert = []
-nbformat = []
-nest-asyncio = []
-notebook = []
-openpyxl = []
-packaging = []
-pandocfilters = []
-parse = []
-parso = []
-pexpect = []
-pickleshare = []
-ply = []
-prefixcommons = []
-prettytable = []
-prometheus-client = []
-prompt-toolkit = []
-psutil = []
-ptyprocess = []
-pure-eval = []
-py = []
-pycparser = []
-pydantic = []
-pygments = []
-pyjsg = []
-pymdown-extensions = []
-pyparsing = []
-pyrsistent = []
-pyshex = []
-pyshexc = []
-python-dateutil = []
-pytz = []
-pywin32 = []
-pywinpty = []
-pyyaml = []
-pyyaml-env-tag = []
-pyzmq = []
-qtconsole = []
-qtpy = []
-rdflib = []
-rdflib-jsonld = []
-rdflib-shim = []
-requests = []
-"ruamel.yaml" = []
-"ruamel.yaml.clib" = []
-send2trash = []
-shexjsg = []
-six = []
-snowballstemmer = []
-soupsieve = []
-sparqlslurper = []
-sparqlwrapper = []
-sphinx = []
-sphinx-click = []
-sphinxcontrib-applehelp = []
-sphinxcontrib-devhelp = []
-sphinxcontrib-htmlhelp = []
-sphinxcontrib-jsmath = []
-sphinxcontrib-qthelp = []
-sphinxcontrib-serializinghtml = []
-sqlalchemy = []
-sqlalchemy-utils = []
-sqlparse = []
-stack-data = []
-terminado = []
-tinycss2 = []
-tornado = []
-traitlets = []
-typing-extensions = []
-urllib3 = []
-watchdog = []
-wcwidth = []
-webencodings = []
-widgetsnbextension = []
-wrapt = []
-zipp = []
+lock-version = "2.0"
+python-versions = "^3.8.1"
+content-hash = "78411e9dade75915a8a6b9f71a8537a9199b643cd248d769457be7cc1a0d3dc0"
diff --git a/pyproject.toml b/pyproject.toml
index 77b702e..8eed1e4 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -6,14 +6,14 @@ authors = ["cmungall "]
readme = "README.md"
[tool.poetry.dependencies]
-python = "^3.8"
+python = "^3.8.1"
linkml-runtime = "^1.2.15"
SQLAlchemy-Utils = "^0.38.2"
click = "^8.1.3"
[tool.poetry.dev-dependencies]
mkdocs = "^1.3.0"
-linkml = "^1.3.2"
+linkml = ">=1.7.4"
mkdocs-mermaid2-plugin = "^0.6.0"
jupyter = "^1.0.0"
ipython-sql = "^0.4.1"
diff --git a/src/semsql/builder/prefixes/prefixes.csv b/src/semsql/builder/prefixes/prefixes.csv
index 40f9c82..afa6299 100644
--- a/src/semsql/builder/prefixes/prefixes.csv
+++ b/src/semsql/builder/prefixes/prefixes.csv
@@ -49,16 +49,30 @@ wikidata,http://www.wikidata.org/entity/
schema,https://schema.org/
ICD10CM,http://purl.bioontology.org/ontology/ICD10CM/
snomedct,http://snomed.info/id/
+cc,http://creativecommons.org/licenses/
+HGNC,http://identifiers.org/hgnc/
+MEDDRA,http://identifiers.org/meddra/
+MESH,http://identifiers.org/mesh/
+MEDGEN,http://identifiers.org/medgen/
+SCTID,http://identifiers.org/snomedct/
+UMLS,http://linkedlifedata.com/resource/umls/id/
+orcid,https://orcid.org/
+swrl,http://www.w3.org/2003/11/swrl#
+semapv,https://w3id.org/semapv/vocab/
+sssom,https://w3id.org/sssom/
+CLINGEN,https://www.clinicalgenome.org/affiliation/
prefix,base
FMA,http://purl.org/sig/ont/fma/fma
MSIO,http://purl.obolibrary.org/obo/MSIO_
nmrCV,http://nmrML.org/nmrCV#NMR:
modl,https://archive.org/services/purl/purl/modular_ontology_design_library#
biolink,https://w3id.org/biolink/vocab/
+biolink,https://w3id.org/biolink/vocab/
loinc,https://loinc.org/
BCIO,http://humanbehaviourchange.org/ontology/BCIO_
BCIOR,http://humanbehaviourchange.org/ontology/BCIOR_
icd10who,https://icd.who.int/browse10/2019/en#/
+icd11f,http://id.who.int/icd/entity/
GARD,http://purl.obolibrary.org/obo/GARD_
OMIM,https://omim.org/entry/
OMIMPS,https://www.omim.org/phenotypicSeries/PS
@@ -66,8 +80,10 @@ CHR,http://purl.obolibrary.org/obo/CHR_
OEO,http://openenergy-platform.org/ontology/oeo/OEO_
ontorion,http://ontorion.com/namespace#
omop,https://athena.ohdsi.org/search-terms/terms/
+CCO,http://www.ontologyrepository.com/CommonCoreOntologies/
OccO,http://purl.obolibrary.org/obo/OccO_
IOFcore,https://spec.industrialontologies.org/ontology/
+UPa,http://purl.obolibrary.org/obo/UPa_
orcid,https://orcid.org/
evs.ncit,http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#
old.fix,http://purl.org/obo/owl/FIX#
@@ -77,6 +93,7 @@ cellosaurus,http://purl.obolibrary.org/obo/Cellosaurus#CVCL_
fhkb,http://owl.cs.manchester.ac.uk/tutorials/fhkb#
dbpediaont,http://dbpedia.org/ontology/
dbpedia,http://dbpedia.org/
+ICD10CM,http://purl.bioontology.org/ontology/ICD10CM/
co_324,https://cropontology.org/rdf/CO_324:
PPEO,http://purl.org/ppeo/PPEO.owl#
InterPro,http://purl.obolibrary.org/obo/InterPro_
@@ -93,15 +110,20 @@ swisslipid,http://purl.obolibrary.org/obo/swisslipid_
drugbank,http://purl.obolibrary.org/obo/drugbank_
drugbank,http://purl.obolibrary.org/obo/drugcentral_
complexportal,http://purl.obolibrary.org/obo/complexportal_
+complexportal,http://purl.obolibrary.org/obo/wikipathways_
MESH,http://id.nlm.nih.gov/mesh/
RXNORM,http://purl.bioontology.org/ontology/RXNORM/
OBT,http://purl.obolibrary.org/obo/OBT_
+NANDO,http://nanbyodata.jp/ontology/NANDO_
+ONTIE,https://ontology.iedb.org/ontology/ONTIE_
ECOSIM,http://purl.obolibrary.org/obo/ECOSIM_
ECOSIMCONCEPT,http://purl.obolibrary.org/obo/ECOSIMCONCEPT_
nmdc,https://w3id.org/nmdc/
linkml,https://w3id.org/linkml/
mixs,https://w3id.org/mixs/
mixs,https://w3id.org/mixs/
+fibo,https://spec.edmcouncil.org/fibo/ontology/
+cmnsav,https://www.omg.org/spec/Commons/AnnotationVocabulary/
RBO,http://purl.obolibrary.org/obo/RBO_
RBO,http://purl.obolibrary.org/obo/RBO_
CLYH,http://purl.obolibrary.org/obo/CLYH_
diff --git a/src/semsql/builder/prefixes/prefixes_local.csv b/src/semsql/builder/prefixes/prefixes_local.csv
index 849cfd7..bebb757 100644
--- a/src/semsql/builder/prefixes/prefixes_local.csv
+++ b/src/semsql/builder/prefixes/prefixes_local.csv
@@ -4,6 +4,7 @@ MSIO,http://purl.obolibrary.org/obo/MSIO_
nmrCV,http://nmrML.org/nmrCV#NMR:
modl,https://archive.org/services/purl/purl/modular_ontology_design_library#
biolink,https://w3id.org/biolink/vocab/
+biolink,https://w3id.org/biolink/vocab/
loinc,https://loinc.org/
BCIO,http://humanbehaviourchange.org/ontology/BCIO_
BCIOR,http://humanbehaviourchange.org/ontology/BCIOR_
@@ -15,8 +16,10 @@ CHR,http://purl.obolibrary.org/obo/CHR_
OEO,http://openenergy-platform.org/ontology/oeo/OEO_
ontorion,http://ontorion.com/namespace#
omop,https://athena.ohdsi.org/search-terms/terms/
+CCO,http://www.ontologyrepository.com/CommonCoreOntologies/
OccO,http://purl.obolibrary.org/obo/OccO_
IOFcore,https://spec.industrialontologies.org/ontology/
+UPa,http://purl.obolibrary.org/obo/UPa_
orcid,https://orcid.org/
evs.ncit,http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#
old.fix,http://purl.org/obo/owl/FIX#
@@ -26,6 +29,7 @@ cellosaurus,http://purl.obolibrary.org/obo/Cellosaurus#CVCL_
fhkb,http://owl.cs.manchester.ac.uk/tutorials/fhkb#
dbpediaont,http://dbpedia.org/ontology/
dbpedia,http://dbpedia.org/
+ICD10CM,http://purl.bioontology.org/ontology/ICD10CM/
co_324,https://cropontology.org/rdf/CO_324:
PPEO,http://purl.org/ppeo/PPEO.owl#
InterPro,http://purl.obolibrary.org/obo/InterPro_
@@ -42,12 +46,17 @@ swisslipid,http://purl.obolibrary.org/obo/swisslipid_
drugbank,http://purl.obolibrary.org/obo/drugbank_
drugbank,http://purl.obolibrary.org/obo/drugcentral_
complexportal,http://purl.obolibrary.org/obo/complexportal_
+complexportal,http://purl.obolibrary.org/obo/wikipathways_
MESH,http://id.nlm.nih.gov/mesh/
RXNORM,http://purl.bioontology.org/ontology/RXNORM/
OBT,http://purl.obolibrary.org/obo/OBT_
+NANDO,http://nanbyodata.jp/ontology/NANDO_
+ONTIE,https://ontology.iedb.org/ontology/ONTIE_
ECOSIM,http://purl.obolibrary.org/obo/ECOSIM_
ECOSIMCONCEPT,http://purl.obolibrary.org/obo/ECOSIMCONCEPT_
nmdc,https://w3id.org/nmdc/
linkml,https://w3id.org/linkml/
mixs,https://w3id.org/mixs/
mixs,https://w3id.org/mixs/
+fibo,https://spec.edmcouncil.org/fibo/ontology/
+cmnsav,https://www.omg.org/spec/Commons/AnnotationVocabulary/
diff --git a/src/semsql/builder/registry/ontologies.yaml b/src/semsql/builder/registry/ontologies.yaml
index c4f7efb..09639e3 100644
--- a/src/semsql/builder/registry/ontologies.yaml
+++ b/src/semsql/builder/registry/ontologies.yaml
@@ -2,6 +2,9 @@ id: semantic-sql-registry
description: Registry overlap for Semantic-SQL designed to supplement OBO vocabularies
license: CC0
ontologies:
+ upheno:
+ url: http://purl.obolibrary.org/obo/upheno.owl
+ build_command: "robot merge -i $< -o $@"
chiro:
url: http://purl.obolibrary.org/obo/chiro.owl
build_command: "robot relax -i $< merge -o $@"
@@ -43,6 +46,18 @@ ontologies:
- RO:0002202
prefixmap:
biolink: https://w3id.org/biolink/vocab/
+ phenio_test:
+ description: Monarch Phenomics Integrated Ontology (Test)
+ url: https://github.com/monarch-initiative/phenio/releases/latest/download/phenio-test.owl
+ relation_graph_settings:
+ properties:
+ - BFO:0000050
+ - BFO:0000051
+ - UPHENO:0000001
+ - UPHENO:0000003
+ - RO:0002202
+ prefixmap:
+ biolink: https://w3id.org/biolink/vocab/
comploinc:
url: https://github.com/loinc/comp-loinc/releases/download/v2022-11-05/merged_reasoned_loinc.owl
build_command: "robot relax -i $< merge -o $@"
@@ -63,6 +78,10 @@ ontologies:
url: https://github.com/monarch-initiative/mondo-ingest/releases/latest/download/icd10who.owl
prefixmap:
icd10who: https://icd.who.int/browse10/2019/en#/
+ #icd11f:
+ # url: https://github.com/monarch-initiative/icd11/releases/latest/download/icd11foundation.owl
+ # prefixmap:
+ # icd11f: http://id.who.int/icd/entity/
ordo:
url: https://github.com/monarch-initiative/mondo-ingest/releases/latest/download/ordo.owl
gard:
@@ -87,6 +106,11 @@ ontologies:
omop:
prefixmap:
omop: https://athena.ohdsi.org/search-terms/terms/
+ cco:
+ url: http://www.ontologyrepository.com/CommonCoreOntologies/Mid/AllCoreOntology
+ build_command: "robot merge -i $< relax -o $@"
+ prefixmap:
+ CCO: http://www.ontologyrepository.com/CommonCoreOntologies/
occo:
url: https://raw.githubusercontent.com/Occupation-Ontology/OccO/main/src/ontology/occo-merged.owl
prefixmap:
@@ -96,10 +120,18 @@ ontologies:
build_command: "robot relax -i $< merge -o $@"
prefixmap:
IOFcore: https://spec.industrialontologies.org/ontology/
+ upa:
+ url: http://purl.obolibrary.org/obo/upa.owl
+ prefixmap:
+ UPa: http://purl.obolibrary.org/obo/UPa_
go:
url: http://purl.obolibrary.org/obo/go/extensions/go-plus.owl
go-lego:
url: http://purl.obolibrary.org/obo/go/extensions/go-lego.owl
+ go-amigo:
+ url: http://purl.obolibrary.org/obo/go/extensions/go-amigo.owl
+ neo:
+ url: http://purl.obolibrary.org/obo/go/noctua/neo.owl
bao:
url: http://www.bioassayontology.org/bao/bao_complete.owl
has_imports: true
@@ -180,6 +212,10 @@ ontologies:
dbpedia: http://dbpedia.org/
uberoncm:
url: https://github.com/obophenotype/uberon/releases/latest/download/composite-metazoan.owl
+ icd10cm:
+ url: https://github.com/monarch-initiative/mondo-ingest/releases/latest/download/icd10cm.owl
+ prefixmap:
+ ICD10CM: http://purl.bioontology.org/ontology/ICD10CM/
#sdtm:
# url: https://evs.nci.nih.gov/ftp1/CDISC/SDTM/SDTM%20Terminology.OWL.zip
#empathi:
@@ -231,7 +267,7 @@ ontologies:
prefixmap:
hgnc.genegroup: http://purl.obolibrary.org/obo/dictybase_
eccode:
- url: https://github.com/biopragmatics/obo-db-ingest/raw/main/export/eccode/25-May-2022/eccode.owl.gz
+ url: https://w3id.org/biopragmatics/resources/eccode/eccode.owl.gz
compression: gzip
prefixmap:
EC: http://purl.obolibrary.org/obo/eccode_
@@ -242,8 +278,7 @@ ontologies:
prefixmap:
uniprot.obo: http://purl.obolibrary.org/obo/uniprot_
rhea:
- url: https://github.com/biopragmatics/obo-db-ingest/raw/main/export/rhea/122/rhea.owl.gz
- compression: gzip
+ url: https://w3id.org/biopragmatics/resources/rhea/rhea.owl
prefixmap:
RHEA: http://purl.obolibrary.org/obo/rhea_
uniprot.obo: http://purl.obolibrary.org/obo/uniprot_
@@ -268,6 +303,10 @@ ontologies:
compression: gzip
prefixmap:
complexportal: http://purl.obolibrary.org/obo/complexportal_
+ wikipathways:
+ url: https://w3id.org/biopragmatics/resources/wikipathways/wikipathways.owl
+ prefixmap:
+ complexportal: http://purl.obolibrary.org/obo/wikipathways_
drugmechdb:
prefixmap:
MESH: http://id.nlm.nih.gov/mesh/
@@ -280,7 +319,16 @@ ontologies:
url: "'https://data.agroportal.lirmm.fr/ontologies/ONTOBIOTOPE/download?apikey=1de0a270-29c5-4dda-b043-7c3580628cd5&download_format=rdf'"
prefixmap:
OBT: http://purl.obolibrary.org/obo/OBT_
+ nando:
+ url: "'https://data.bioontology.org/ontologies/NANDO/submissions/15/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb'"
+ prefixmap:
+ NANDO: http://nanbyodata.jp/ontology/NANDO_
+ ontie:
+ url: https://ontology.iedb.org/file/ontie.owl
+ prefixmap:
+ ONTIE: https://ontology.iedb.org/ontology/ONTIE_
ecosim:
+ url: "https://data.bioontology.org/ontologies/ECOSIM/submissions/1/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb"
prefixmap:
ECOSIM: http://purl.obolibrary.org/obo/ECOSIM_
ECOSIMCONCEPT: http://purl.obolibrary.org/obo/ECOSIMCONCEPT_
@@ -301,3 +349,19 @@ ontologies:
build_command: "robot merge -i $< reason -o $@.tmp.owl && perl -npe 's@_6_2_rc@@g;s@-6-2-rc@@g' $@.tmp.owl > $@"
prefixmap:
mixs: https://w3id.org/mixs/
+ fibo:
+ url: https://spec.edmcouncil.org/fibo/ontology/AboutFIBOProd/
+ build_command: "robot merge -i $< -o $@"
+ prefixmap:
+ fibo: https://spec.edmcouncil.org/fibo/ontology/
+ cmnsav: https://www.omg.org/spec/Commons/AnnotationVocabulary/
+
+ # BFO variant products
+ bfo2020:
+ url: http://purl.obolibrary.org/obo/bfo/2020/bfo.owl
+ bfo2020_core:
+ url: http://purl.obolibrary.org/obo/bfo/2020/bfo-core.owl
+ bfo2020_notime:
+ url: http://purl.obolibrary.org/obo/bfo/2020/notime/bfo.owl
+ bfo2020_time:
+ url: https://raw.githubusercontent.com/BFO-ontology/BFO-2020/master/src/owl/profiles/temporal%20extensions/temporalized%20relations/owl/bfo-temporalized-relations.owl
diff --git a/src/semsql/builder/sql_schema/obo.sql b/src/semsql/builder/sql_schema/obo.sql
index 0e74a4d..e4f55a0 100644
--- a/src/semsql/builder/sql_schema/obo.sql
+++ b/src/semsql/builder/sql_schema/obo.sql
@@ -1,11 +1,10 @@
-- # Class: "ontology_status_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "repair_action" Description: "Represents an action that needs to be taken to repair a problem"
-- * Slot: subject Description: The thing that is problematic
-- * Slot: description Description:
@@ -14,159 +13,170 @@
-- * Slot: predicate Description: The property of the thing that is problematic
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- # Class: "lexical_problem" Description: "a problem with the textual value of an annotation property"
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- # Class: "trailing_whitespace_problem" Description: ""
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- # Class: "property_used_with_datatype_values_and_objects" Description: "A problem in which the same property is used two two different ways, one in which the range is a literal value, the other where it is an object."
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- # Class: "node_with_two_labels_problem" Description: ""
-- * Slot: label1 Description:
-- * Slot: label2 Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- # Class: "all_problems" Description: ""
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- # Class: "has_text_definition_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- # Class: "prefix" Description: "Maps CURIEs to URIs"
+-- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
+-- * Slot: base Description: The base URI a prefix will expand to
+-- # Class: "statements" Description: "Represents an RDF triple"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_oio_synonym_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "node_to_node_statement" Description: "A statement where object is non-null and value is not populated"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_exact_synonym_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "node_to_value_statement" Description: "A statement where value is non-null and object is not populated"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_broad_synonym_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_type_statement" Description: "A statement that indicates the asserted type of the subject entity"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The entity type
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_narrow_synonym_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_subclass_of_statement" Description: ""
+-- * Slot: subject Description: The subclass element of the triple
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The superclass element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_related_synonym_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_subclass_of_named_statement" Description: ""
+-- * Slot: subject Description: The subclass element of the triple
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The superclass element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_synonym_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_subproperty_of_statement" Description: ""
+-- * Slot: subject Description: The subproperty element of the triple
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The superproperty element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_exact_match_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_label_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_broad_match_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: value Description: The label value
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_domain_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_narrow_match_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_range_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_related_match_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_list_statement" Description: "A statement that is used to represent aspects of RDF lists"
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_match_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_first_statement" Description: "A statement that connects a list to its first element. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_dbxref_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_rest_statement" Description: "A statement that connects a list to its remaining elements. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "has_mapping_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_rest_transitive_statement" Description: ""
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "axiom_dbxref_annotation" Description: ""
--- * Slot: annotation_subject Description:
--- * Slot: annotation_predicate Description:
--- * Slot: annotation_object Description:
--- * Slot: annotation_value Description:
--- * Slot: annotation_language Description:
--- * Slot: annotation_datatype Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: axiom_predicate Description:
--- * Slot: axiom_object Description:
--- * Slot: axiom_value Description:
--- * Slot: axiom_language Description:
--- * Slot: axiom_datatype Description:
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_list_member_statement" Description: ""
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "node" Description: "The basic unit of representation in an RDF or OWL graph"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "node_identifier" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
+-- * Slot: local_identifier Description: The part of a CURIE after the colon
+-- # Class: "blank_node" Description: "A node with an ID that is not preserved between databases"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "rdf_list_node" Description: "A node representing an RDF list. Note that you will not likely need to use this directly."
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "iri_node" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "class_node" Description: "A node that represents an RDFS/OWL class"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "property_node" Description: "Note this only directly classifies nodes asserted to be rdf:Properties"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "named_individual_node" Description: "A node that represents an OWL Named Individual"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "rdf_level_summary_statistic" Description: "Abstract grouping for views/classes that provide some kind of count summary about an individual element"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "count_of_predicates" Description: "Number of distinct usages of a predicate. NOTE MAY CHANGE: does not currently count existential usage in OWL"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "count_of_instantiated_classes" Description: "Number of distinct instantiations of a class. Note in many OBOs, classes are not directly instantiated"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "count_of_subclasses" Description: "Number of subclasses for a given class"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "node_trait" Description: "abstract groupings/properties for different aspects of the model"
+-- # Class: "class_trait" Description: ""
+-- # Class: "property_trait" Description: ""
+-- # Class: "individual_trait" Description: ""
+-- # Class: "is_report" Description: "Used to describe classes/views that have a reporting function"
-- # Class: "ontology_node" Description: "A node representing an ontology"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "object_property_node" Description: "A node representing an OWL object property"
@@ -186,71 +196,63 @@
-- # Class: "deprecated_node" Description: ""
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "owl_imports_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_inverse_of_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_complement_of_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_equivalent_class_statement" Description: "A statement that connects two class_nodes where both classes are equivalent"
--- * Slot: stanza Description:
-- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
--- * Slot: predicate Description:
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_same_as_statement" Description: "A statement that connects two individual nodes where both individual are equivalent"
--- * Slot: stanza Description:
-- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
--- * Slot: predicate Description:
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_disjoint_class_statement" Description: ""
--- * Slot: stanza Description:
-- * Slot: subject Description: One of the two classes that are disjoint. No significance to subject vs object
--- * Slot: predicate Description:
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: One of the two classes that are disjoint. No significance to subject vs object
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_reified_axiom" Description: "An OWL axiom that has been reified - i.e. it includes an [id](id) field that uniquely identifies that axiom and which can be the subject of additional statements"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_axiom" Description: ""
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_axiom_annotation" Description: ""
-- * Slot: annotation_subject Description:
-- * Slot: annotation_predicate Description:
@@ -259,18 +261,12 @@
-- * Slot: annotation_language Description:
-- * Slot: annotation_datatype Description:
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: axiom_predicate Description:
--- * Slot: axiom_object Description:
--- * Slot: axiom_value Description:
--- * Slot: axiom_language Description:
--- * Slot: axiom_datatype Description:
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "anonymous_expression" Description: "An OWL expression, such as a class expression. Expressions are "anonymous" as they are a composition of named elements rather than a named element themselves"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "anonymous_class_expression" Description: "An OWL anonymous class expression, such as for example `SomeValuesFrom(partOf Hand)`"
@@ -286,22 +282,22 @@
-- # Class: "owl_some_values_from" Description: "An OWL SomeValuesFrom restriction"
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_all_values_from" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_has_value" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_has_self" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description: This is Null for a self-restriction
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_complex_axiom" Description: "An axiom that is composed of two or more statements"
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- # Class: "owl_subclass_of_some_values_from" Description: "Composition of subClassOf and SomeValuesFrom"
-- * Slot: subject Description: the class C in the axiom C subClassOf P some D
@@ -310,164 +306,138 @@
-- # Class: "owl_equivalent_to_intersection_member" Description: "Composition of `OwlEquivalentClass`, `OwlIntersectionOf`, and `RdfListMember`; `C = X1 and ... and Xn`"
-- * Slot: subject Description: the defined class
-- * Slot: object Description: a class expression that forms the defining expression
--- * Slot: predicate Description:
--- # Class: "prefix" Description: "Maps CURIEs to URIs"
--- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
--- * Slot: base Description: The base URI a prefix will expand to
--- # Class: "statements" Description: "Represents an RDF triple"
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: predicate Description: The predicate of the statement
+-- # Class: "has_text_definition_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "node_to_node_statement" Description: "A statement where object is non-null and value is not populated"
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_oio_synonym_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "node_to_value_statement" Description: "A statement where value is non-null and object is not populated"
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_exact_synonym_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdf_type_statement" Description: "A statement that indicates the asserted type of the subject entity"
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
--- * Slot: object Description: The entity type
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_broad_synonym_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdfs_subclass_of_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description: The subclass element of the triple
--- * Slot: predicate Description:
--- * Slot: object Description: The superclass element of the triple
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_narrow_synonym_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdfs_subclass_of_named_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_related_synonym_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdfs_subproperty_of_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description: The subproperty element of the triple
--- * Slot: predicate Description:
--- * Slot: object Description: The superproperty element of the triple
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_synonym_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdfs_label_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_exact_match_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: The label value
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdfs_domain_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_broad_match_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdfs_range_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_narrow_match_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdf_list_statement" Description: "A statement that is used to represent aspects of RDF lists"
--- * Slot: stanza Description:
--- * Slot: subject Description: The rdf:List to which the statement applies
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_related_match_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdf_first_statement" Description: "A statement that connects a list to its first element. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_match_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdf_rest_statement" Description: "A statement that connects a list to its remaining elements. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_dbxref_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdf_rest_transitive_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "has_mapping_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "rdf_list_member_statement" Description: ""
--- * Slot: stanza Description:
--- * Slot: subject Description:
--- * Slot: predicate Description:
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "contributor" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description:
--- * Slot: language Description:
--- # Class: "node" Description: "The basic unit of representation in an RDF or OWL graph"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "blank_node" Description: "A node with an ID that is not preserved between databases"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "rdf_list_node" Description: "A node representing an RDF list. Note that you will not likely need to use this directly."
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "iri_node" Description: ""
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "class_node" Description: "A node that represents an RDFS/OWL class"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "property_node" Description: "Note this only directly classifies nodes asserted to be rdf:Properties"
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "creator" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "orcid" Description: ""
+-- * Slot: label Description: A label for an element
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "named_individual_node" Description: "A node that represents an OWL Named Individual"
+-- # Class: "axiom_dbxref_annotation" Description: ""
+-- * Slot: annotation_subject Description:
+-- * Slot: annotation_predicate Description:
+-- * Slot: annotation_object Description:
+-- * Slot: annotation_value Description:
+-- * Slot: annotation_language Description:
+-- * Slot: annotation_datatype Description:
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "rdf_level_summary_statistic" Description: "Abstract grouping for views/classes that provide some kind of count summary about an individual element"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "count_of_predicates" Description: "Number of distinct usages of a predicate. NOTE MAY CHANGE: does not currently count existential usage in OWL"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "count_of_instantiated_classes" Description: "Number of distinct instantiations of a class. Note in many OBOs, classes are not directly instantiated"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "count_of_subclasses" Description: "Number of subclasses for a given class"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "node_trait" Description: "abstract groupings/properties for different aspects of the model"
--- # Class: "class_trait" Description: ""
--- # Class: "property_trait" Description: ""
--- # Class: "individual_trait" Description: ""
--- # Class: "is_report" Description: "Used to describe classes/views that have a reporting function"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
CREATE TABLE ontology_status_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -511,26 +481,27 @@ CREATE TABLE all_problems (
predicate TEXT,
value TEXT
);
-CREATE TABLE has_text_definition_statement (
- stanza TEXT,
+CREATE TABLE prefix (
+ prefix TEXT,
+ base TEXT
+);
+CREATE TABLE statements (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_oio_synonym_statement (
- stanza TEXT,
+CREATE TABLE node_to_node_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_exact_synonym_statement (
- stanza TEXT,
+CREATE TABLE node_to_value_statement (
subject TEXT,
predicate TEXT,
object TEXT,
@@ -538,44 +509,39 @@ CREATE TABLE has_exact_synonym_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE has_broad_synonym_statement (
- stanza TEXT,
+CREATE TABLE rdf_type_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_narrow_synonym_statement (
- stanza TEXT,
+CREATE TABLE rdfs_subclass_of_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_related_synonym_statement (
- stanza TEXT,
+CREATE TABLE rdfs_subclass_of_named_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_synonym_statement (
- stanza TEXT,
+CREATE TABLE rdfs_subproperty_of_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_exact_match_statement (
- stanza TEXT,
+CREATE TABLE rdfs_label_statement (
subject TEXT,
predicate TEXT,
object TEXT,
@@ -583,120 +549,149 @@ CREATE TABLE has_exact_match_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE has_broad_match_statement (
- stanza TEXT,
+CREATE TABLE rdfs_domain_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_narrow_match_statement (
- stanza TEXT,
+CREATE TABLE rdfs_range_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_related_match_statement (
- stanza TEXT,
+CREATE TABLE rdf_list_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_match_statement (
- stanza TEXT,
+CREATE TABLE rdf_first_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_dbxref_statement (
- stanza TEXT,
+CREATE TABLE rdf_rest_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_mapping_statement (
- stanza TEXT,
+CREATE TABLE rdf_rest_transitive_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE axiom_dbxref_annotation (
- annotation_subject TEXT,
- annotation_predicate TEXT,
- annotation_object TEXT,
- annotation_value TEXT,
- annotation_language TEXT,
- annotation_datatype TEXT,
- id TEXT,
- axiom_predicate TEXT,
- axiom_object TEXT,
- axiom_value TEXT,
- axiom_language TEXT,
- axiom_datatype TEXT,
- stanza TEXT,
+CREATE TABLE rdf_list_member_statement (
subject TEXT,
predicate TEXT,
object TEXT,
value TEXT,
datatype TEXT,
- language TEXT,
+ language TEXT
+);
+CREATE TABLE node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE node_identifier (
+ id TEXT NOT NULL,
+ prefix TEXT,
+ local_identifier TEXT,
+ PRIMARY KEY (id)
+);
+CREATE TABLE blank_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE rdf_list_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE iri_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE class_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE property_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
+CREATE TABLE named_individual_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE rdf_level_summary_statistic (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_predicates (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_instantiated_classes (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_subclasses (
+ element TEXT,
+ count_value INTEGER
+);
CREATE TABLE ontology_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE object_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE transitive_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE symmetric_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE reflexive_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE irreflexive_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE asymmetric_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE annotation_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE deprecated_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_imports_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -705,7 +700,6 @@ CREATE TABLE owl_imports_statement (
language TEXT
);
CREATE TABLE owl_inverse_of_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -714,7 +708,6 @@ CREATE TABLE owl_inverse_of_statement (
language TEXT
);
CREATE TABLE owl_complement_of_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -723,7 +716,6 @@ CREATE TABLE owl_complement_of_statement (
language TEXT
);
CREATE TABLE owl_equivalent_class_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -732,7 +724,6 @@ CREATE TABLE owl_equivalent_class_statement (
language TEXT
);
CREATE TABLE owl_same_as_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -741,7 +732,6 @@ CREATE TABLE owl_same_as_statement (
language TEXT
);
CREATE TABLE owl_disjoint_class_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -750,8 +740,7 @@ CREATE TABLE owl_disjoint_class_statement (
language TEXT
);
CREATE TABLE owl_reified_axiom (
- id TEXT,
- stanza TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -761,8 +750,7 @@ CREATE TABLE owl_reified_axiom (
PRIMARY KEY (id)
);
CREATE TABLE owl_axiom (
- id TEXT,
- stanza TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -778,13 +766,7 @@ CREATE TABLE owl_axiom_annotation (
annotation_value TEXT,
annotation_language TEXT,
annotation_datatype TEXT,
- id TEXT,
- axiom_predicate TEXT,
- axiom_object TEXT,
- axiom_value TEXT,
- axiom_language TEXT,
- axiom_datatype TEXT,
- stanza TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -794,49 +776,49 @@ CREATE TABLE owl_axiom_annotation (
PRIMARY KEY (id)
);
CREATE TABLE anonymous_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE anonymous_class_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE anonymous_property_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE anonymous_individual_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_restriction (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_some_values_from (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_all_values_from (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_has_value (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_has_self (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_complex_axiom (
@@ -854,30 +836,23 @@ CREATE TABLE owl_equivalent_to_intersection_member (
object TEXT,
predicate TEXT
);
-CREATE TABLE prefix (
- prefix TEXT,
- base TEXT
-);
-CREATE TABLE statements (
- stanza TEXT,
+CREATE TABLE has_text_definition_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE node_to_node_statement (
- stanza TEXT,
+CREATE TABLE has_oio_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE node_to_value_statement (
- stanza TEXT,
+CREATE TABLE has_exact_synonym_statement (
subject TEXT,
predicate TEXT,
object TEXT,
@@ -885,44 +860,39 @@ CREATE TABLE node_to_value_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_type_statement (
- stanza TEXT,
+CREATE TABLE has_broad_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_subclass_of_statement (
- stanza TEXT,
+CREATE TABLE has_narrow_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_subclass_of_named_statement (
- stanza TEXT,
+CREATE TABLE has_related_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_subproperty_of_statement (
- stanza TEXT,
+CREATE TABLE has_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_label_statement (
- stanza TEXT,
+CREATE TABLE has_exact_match_statement (
subject TEXT,
predicate TEXT,
object TEXT,
@@ -930,115 +900,91 @@ CREATE TABLE rdfs_label_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_domain_statement (
- stanza TEXT,
+CREATE TABLE has_broad_match_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_range_statement (
- stanza TEXT,
+CREATE TABLE has_narrow_match_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_list_statement (
- stanza TEXT,
+CREATE TABLE has_related_match_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_first_statement (
- stanza TEXT,
+CREATE TABLE has_match_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_rest_statement (
- stanza TEXT,
+CREATE TABLE has_dbxref_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_rest_transitive_statement (
- stanza TEXT,
+CREATE TABLE has_mapping_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_list_member_statement (
- stanza TEXT,
+CREATE TABLE contributor (
subject TEXT,
predicate TEXT,
- object TEXT,
+ object TEXT NOT NULL,
value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE blank_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE rdf_list_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE iri_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE class_node (
- id TEXT,
- PRIMARY KEY (id)
+CREATE TABLE creator (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT NOT NULL,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
);
-CREATE TABLE property_node (
- id TEXT,
+CREATE TABLE orcid (
+ label TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE named_individual_node (
- id TEXT,
+CREATE TABLE axiom_dbxref_annotation (
+ annotation_subject TEXT,
+ annotation_predicate TEXT,
+ annotation_object TEXT,
+ annotation_value TEXT,
+ annotation_language TEXT,
+ annotation_datatype TEXT,
+ id TEXT NOT NULL,
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT,
+ datatype TEXT,
+ language TEXT,
PRIMARY KEY (id)
);
-CREATE TABLE rdf_level_summary_statistic (
- element TEXT,
- count_value INTEGER
-);
-CREATE TABLE count_of_predicates (
- element TEXT,
- count_value INTEGER
-);
-CREATE TABLE count_of_instantiated_classes (
- element TEXT,
- count_value INTEGER
-);
-CREATE TABLE count_of_subclasses (
- element TEXT,
- count_value INTEGER
-);
--- ** REWRITE TABLES AS VIEWS **
--- SCHEMA: https://w3id.org/semsql/obo
DROP TABLE ontology_status_statement;
CREATE VIEW ontology_status_statement AS SELECT * FROM statements WHERE predicate = '' UNION SELECT * FROM statements WHERE predicate = 'pav:status';
@@ -1070,6 +1016,9 @@ CREATE VIEW node_with_two_labels_problem AS SELECT
DROP TABLE all_problems;
CREATE VIEW all_problems AS SELECT * FROM node_with_two_labels_problem UNION SELECT * FROM trailing_whitespace_problem;
+DROP TABLE statements;
+CREATE TABLE statements (stanza TEXT,subject TEXT,predicate TEXT,object TEXT,value TEXT,datatype TEXT,language TEXT);
+
DROP TABLE node_to_node_statement;
CREATE VIEW node_to_node_statement AS SELECT * FROM statements WHERE object IS NOT NULL;
@@ -1131,6 +1080,13 @@ CREATE VIEW rdf_list_member_statement AS SELECT
DROP TABLE node;
CREATE VIEW node AS SELECT distinct(subject) AS id FROM statements UNION SELECT distinct(object) AS id FROM statements WHERE datatype IS NOT NULL;
+DROP TABLE node_identifier;
+CREATE VIEW node_identifier AS SELECT
+ id AS id,
+ substr(id,0, instr(id,':')) AS prefix,
+ substr(id,instr(id,':')+1) AS local_identifier
+ FROM node;
+
DROP TABLE blank_node;
CREATE VIEW blank_node AS SELECT * FROM node WHERE id LIKE '_:%';
@@ -1201,7 +1157,7 @@ DROP TABLE owl_same_as_statement;
CREATE VIEW owl_same_as_statement AS SELECT * FROM statements WHERE predicate='owl:sameAs';
DROP TABLE owl_disjoint_class_statement;
-CREATE VIEW owl_disjoint_class_statement AS SELECT * FROM statements WHERE predicate='owl:disjointClass';
+CREATE VIEW owl_disjoint_class_statement AS SELECT * FROM statements WHERE predicate='owl:disjointWith';
DROP TABLE owl_reified_axiom;
CREATE VIEW owl_reified_axiom AS SELECT axs.subject AS id, axs.stanza AS stanza, axs.object AS subject, axp.object AS predicate, axo.object AS object, axo.value AS value, axo.datatype AS datatype, axo.language AS language FROM statements AS axs, statements AS axp, statements AS axo WHERE axs.predicate = 'owl:annotatedSource' AND axp.predicate = 'owl:annotatedProperty' AND axo.predicate = 'owl:annotatedTarget' AND axs.subject = axp.subject AND axs.subject = axo.subject;
@@ -1349,5 +1305,19 @@ CREATE VIEW has_dbxref_statement AS SELECT * FROM statements WHERE predicate='oi
DROP TABLE has_mapping_statement;
CREATE VIEW has_mapping_statement AS SELECT * FROM has_match_statement UNION SELECT * FROM has_dbxref_statement;
+DROP TABLE contributor;
+CREATE VIEW contributor AS SELECT * FROM statements WHERE predicate='dcterms:contributor';
+
+DROP TABLE creator;
+CREATE VIEW creator AS SELECT * FROM statements WHERE predicate='dcterms:creator';
+
+DROP TABLE orcid;
+CREATE VIEW orcid AS SELECT
+ subject AS id,
+ value AS label
+ FROM
+ rdfs_label_statement
+ WHERE subject like 'orcid:%';
+
DROP TABLE axiom_dbxref_annotation;
CREATE VIEW axiom_dbxref_annotation AS SELECT * FROM owl_axiom_annotation WHERE annotation_predicate = 'oio:hasDbXref';
diff --git a/src/semsql/builder/sql_schema/omo.sql b/src/semsql/builder/sql_schema/omo.sql
index 43a1206..80a340f 100644
--- a/src/semsql/builder/sql_schema/omo.sql
+++ b/src/semsql/builder/sql_schema/omo.sql
@@ -1,131 +1,115 @@
-- # Class: "has_text_definition_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_oio_synonym_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_exact_synonym_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_broad_synonym_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_narrow_synonym_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_related_synonym_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_synonym_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_exact_match_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_broad_match_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_narrow_match_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_related_match_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_match_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_dbxref_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "has_mapping_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "contributor" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "creator" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "orcid" Description: ""
-- * Slot: label Description: A label for an element
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
@@ -137,15 +121,161 @@
-- * Slot: annotation_language Description:
-- * Slot: annotation_datatype Description:
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "prefix" Description: "Maps CURIEs to URIs"
+-- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
+-- * Slot: base Description: The base URI a prefix will expand to
+-- # Class: "statements" Description: "Represents an RDF triple"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "node_to_node_statement" Description: "A statement where object is non-null and value is not populated"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "node_to_value_statement" Description: "A statement where value is non-null and object is not populated"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_type_statement" Description: "A statement that indicates the asserted type of the subject entity"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The entity type
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_subclass_of_statement" Description: ""
+-- * Slot: subject Description: The subclass element of the triple
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The superclass element of the triple
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_subclass_of_named_statement" Description: ""
+-- * Slot: subject Description: The subclass element of the triple
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The superclass element of the triple
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_subproperty_of_statement" Description: ""
+-- * Slot: subject Description: The subproperty element of the triple
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The superproperty element of the triple
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_label_statement" Description: "A statement that connects a node to a human-readable label"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: The label value
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_domain_statement" Description: "A statement that connects a property to its domain class"
+-- * Slot: subject Description: The property to which the domain applies
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The domain of the property
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_range_statement" Description: "A statement that connects a property to its range class or literal type"
+-- * Slot: subject Description: The property to which the range applies
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The range of the property
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_list_statement" Description: "A statement that is used to represent aspects of RDF lists"
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_first_statement" Description: "A statement that connects a list to its first element. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_rest_statement" Description: "A statement that connects a list to its remaining elements. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_rest_transitive_statement" Description: ""
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdf_list_member_statement" Description: ""
+-- * Slot: subject Description: The rdf:List to which the statement applies
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "node" Description: "The basic unit of representation in an RDF or OWL graph"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "node_identifier" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
+-- * Slot: local_identifier Description: The part of a CURIE after the colon
+-- # Class: "blank_node" Description: "A node with an ID that is not preserved between databases"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "rdf_list_node" Description: "A node representing an RDF list. Note that you will not likely need to use this directly."
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "iri_node" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "class_node" Description: "A node that represents an RDFS/OWL class"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "property_node" Description: "Note this only directly classifies nodes asserted to be rdf:Properties"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "named_individual_node" Description: "A node that represents an OWL Named Individual"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "rdf_level_summary_statistic" Description: "Abstract grouping for views/classes that provide some kind of count summary about an individual element"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "count_of_predicates" Description: "Number of distinct usages of a predicate. NOTE MAY CHANGE: does not currently count existential usage in OWL"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "count_of_instantiated_classes" Description: "Number of distinct instantiations of a class. Note in many OBOs, classes are not directly instantiated"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "count_of_subclasses" Description: "Number of subclasses for a given class"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "node_trait" Description: "abstract groupings/properties for different aspects of the model"
+-- # Class: "class_trait" Description: ""
+-- # Class: "property_trait" Description: ""
+-- # Class: "individual_trait" Description: ""
+-- # Class: "is_report" Description: "Used to describe classes/views that have a reporting function"
+-- # Class: "typed_node" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "ontology_node" Description: "A node representing an ontology"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "typed_property_node" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "object_property_node" Description: "A node representing an OWL object property"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "transitive_property_node" Description: "A node representing an OWL transitive object property"
@@ -163,71 +293,63 @@
-- # Class: "deprecated_node" Description: ""
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "owl_imports_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_inverse_of_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_complement_of_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_equivalent_class_statement" Description: "A statement that connects two class_nodes where both classes are equivalent"
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_same_as_statement" Description: "A statement that connects two individual nodes where both individual are equivalent"
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_disjoint_class_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: One of the two classes that are disjoint. No significance to subject vs object
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: One of the two classes that are disjoint. No significance to subject vs object
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_reified_axiom" Description: "An OWL axiom that has been reified - i.e. it includes an [id](id) field that uniquely identifies that axiom and which can be the subject of additional statements"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_axiom" Description: ""
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_axiom_annotation" Description: ""
-- * Slot: annotation_subject Description:
-- * Slot: annotation_predicate Description:
@@ -236,13 +358,12 @@
-- * Slot: annotation_language Description:
-- * Slot: annotation_datatype Description:
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "anonymous_expression" Description: "An OWL expression, such as a class expression. Expressions are "anonymous" as they are a composition of named elements rather than a named element themselves"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "anonymous_class_expression" Description: "An OWL anonymous class expression, such as for example `SomeValuesFrom(partOf Hand)`"
@@ -258,19 +379,19 @@
-- # Class: "owl_some_values_from" Description: "An OWL SomeValuesFrom restriction"
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_all_values_from" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_has_value" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_has_self" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description: This is Null for a self-restriction
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_complex_axiom" Description: "An axiom that is composed of two or more statements"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
@@ -283,163 +404,8 @@
-- * Slot: subject Description: the defined class
-- * Slot: object Description: a class expression that forms the defining expression
-- * Slot: predicate Description: The predicate of the statement
--- # Class: "prefix" Description: "Maps CURIEs to URIs"
--- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
--- * Slot: base Description: The base URI a prefix will expand to
--- # Class: "statements" Description: "Represents an RDF triple"
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "node_to_node_statement" Description: "A statement where object is non-null and value is not populated"
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "node_to_value_statement" Description: "A statement where value is non-null and object is not populated"
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdf_type_statement" Description: "A statement that indicates the asserted type of the subject entity"
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: The entity type
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_subclass_of_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subclass element of the triple
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: The superclass element of the triple
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_subclass_of_named_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_subproperty_of_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subproperty element of the triple
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: The superproperty element of the triple
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_label_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: The label value
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_domain_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_range_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdf_list_statement" Description: "A statement that is used to represent aspects of RDF lists"
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The rdf:List to which the statement applies
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdf_first_statement" Description: "A statement that connects a list to its first element. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdf_rest_statement" Description: "A statement that connects a list to its remaining elements. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdf_rest_transitive_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdf_list_member_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "node" Description: "The basic unit of representation in an RDF or OWL graph"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "blank_node" Description: "A node with an ID that is not preserved between databases"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "rdf_list_node" Description: "A node representing an RDF list. Note that you will not likely need to use this directly."
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "iri_node" Description: ""
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "class_node" Description: "A node that represents an RDFS/OWL class"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "property_node" Description: "Note this only directly classifies nodes asserted to be rdf:Properties"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "named_individual_node" Description: "A node that represents an OWL Named Individual"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "rdf_level_summary_statistic" Description: "Abstract grouping for views/classes that provide some kind of count summary about an individual element"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "count_of_predicates" Description: "Number of distinct usages of a predicate. NOTE MAY CHANGE: does not currently count existential usage in OWL"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "count_of_instantiated_classes" Description: "Number of distinct instantiations of a class. Note in many OBOs, classes are not directly instantiated"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "count_of_subclasses" Description: "Number of subclasses for a given class"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "node_trait" Description: "abstract groupings/properties for different aspects of the model"
--- # Class: "class_trait" Description: ""
--- # Class: "property_trait" Description: ""
--- # Class: "individual_trait" Description: ""
--- # Class: "is_report" Description: "Used to describe classes/views that have a reporting function"
CREATE TABLE has_text_definition_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -448,7 +414,6 @@ CREATE TABLE has_text_definition_statement (
language TEXT
);
CREATE TABLE has_oio_synonym_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -457,7 +422,6 @@ CREATE TABLE has_oio_synonym_statement (
language TEXT
);
CREATE TABLE has_exact_synonym_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -466,7 +430,6 @@ CREATE TABLE has_exact_synonym_statement (
language TEXT
);
CREATE TABLE has_broad_synonym_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -475,7 +438,6 @@ CREATE TABLE has_broad_synonym_statement (
language TEXT
);
CREATE TABLE has_narrow_synonym_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -484,7 +446,6 @@ CREATE TABLE has_narrow_synonym_statement (
language TEXT
);
CREATE TABLE has_related_synonym_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -493,7 +454,6 @@ CREATE TABLE has_related_synonym_statement (
language TEXT
);
CREATE TABLE has_synonym_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -502,70 +462,62 @@ CREATE TABLE has_synonym_statement (
language TEXT
);
CREATE TABLE has_exact_match_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
CREATE TABLE has_broad_match_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
CREATE TABLE has_narrow_match_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
CREATE TABLE has_related_match_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
CREATE TABLE has_match_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
CREATE TABLE has_dbxref_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
CREATE TABLE has_mapping_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
CREATE TABLE contributor (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -574,7 +526,6 @@ CREATE TABLE contributor (
language TEXT
);
CREATE TABLE creator (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -584,7 +535,7 @@ CREATE TABLE creator (
);
CREATE TABLE orcid (
label TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE axiom_dbxref_annotation (
@@ -594,8 +545,7 @@ CREATE TABLE axiom_dbxref_annotation (
annotation_value TEXT,
annotation_language TEXT,
annotation_datatype TEXT,
- id TEXT,
- stanza TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -604,44 +554,35 @@ CREATE TABLE axiom_dbxref_annotation (
language TEXT,
PRIMARY KEY (id)
);
-CREATE TABLE ontology_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE object_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE transitive_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE symmetric_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE reflexive_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE irreflexive_property_node (
- id TEXT,
- PRIMARY KEY (id)
+CREATE TABLE prefix (
+ prefix TEXT,
+ base TEXT
);
-CREATE TABLE asymmetric_property_node (
- id TEXT,
- PRIMARY KEY (id)
+CREATE TABLE statements (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
);
-CREATE TABLE annotation_property_node (
- id TEXT,
- PRIMARY KEY (id)
+CREATE TABLE node_to_node_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT NOT NULL,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
);
-CREATE TABLE deprecated_node (
- id TEXT,
- PRIMARY KEY (id)
+CREATE TABLE node_to_value_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
+ datatype TEXT,
+ language TEXT
);
-CREATE TABLE owl_imports_statement (
- stanza TEXT,
+CREATE TABLE rdf_type_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -649,8 +590,7 @@ CREATE TABLE owl_imports_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE owl_inverse_of_statement (
- stanza TEXT,
+CREATE TABLE rdfs_subclass_of_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -658,8 +598,7 @@ CREATE TABLE owl_inverse_of_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE owl_complement_of_statement (
- stanza TEXT,
+CREATE TABLE rdfs_subclass_of_named_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -667,8 +606,7 @@ CREATE TABLE owl_complement_of_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE owl_equivalent_class_statement (
- stanza TEXT,
+CREATE TABLE rdfs_subproperty_of_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -676,8 +614,15 @@ CREATE TABLE owl_equivalent_class_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE owl_same_as_statement (
- stanza TEXT,
+CREATE TABLE rdfs_label_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
+ datatype TEXT,
+ language TEXT
+);
+CREATE TABLE rdfs_domain_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -685,8 +630,7 @@ CREATE TABLE owl_same_as_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE owl_disjoint_class_statement (
- stanza TEXT,
+CREATE TABLE rdfs_range_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -694,157 +638,141 @@ CREATE TABLE owl_disjoint_class_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE owl_reified_axiom (
- id TEXT,
- stanza TEXT,
+CREATE TABLE rdf_list_statement (
subject TEXT,
predicate TEXT,
object TEXT,
value TEXT,
datatype TEXT,
- language TEXT,
- PRIMARY KEY (id)
+ language TEXT
);
-CREATE TABLE owl_axiom (
- id TEXT,
- stanza TEXT,
+CREATE TABLE rdf_first_statement (
subject TEXT,
predicate TEXT,
object TEXT,
value TEXT,
datatype TEXT,
- language TEXT,
- PRIMARY KEY (id)
+ language TEXT
);
-CREATE TABLE owl_axiom_annotation (
- annotation_subject TEXT,
- annotation_predicate TEXT,
- annotation_object TEXT,
- annotation_value TEXT,
- annotation_language TEXT,
- annotation_datatype TEXT,
- id TEXT,
- stanza TEXT,
+CREATE TABLE rdf_rest_statement (
subject TEXT,
predicate TEXT,
object TEXT,
value TEXT,
datatype TEXT,
- language TEXT,
+ language TEXT
+);
+CREATE TABLE rdf_rest_transitive_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
+);
+CREATE TABLE rdf_list_member_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
+);
+CREATE TABLE node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE anonymous_expression (
- id TEXT,
+CREATE TABLE node_identifier (
+ id TEXT NOT NULL,
+ prefix TEXT,
+ local_identifier TEXT,
PRIMARY KEY (id)
);
-CREATE TABLE anonymous_class_expression (
- id TEXT,
+CREATE TABLE blank_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE anonymous_property_expression (
- id TEXT,
+CREATE TABLE rdf_list_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE anonymous_individual_expression (
- id TEXT,
+CREATE TABLE iri_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE owl_restriction (
- on_property TEXT,
- filler TEXT,
- id TEXT,
+CREATE TABLE class_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE owl_some_values_from (
- on_property TEXT,
- filler TEXT,
- id TEXT,
+CREATE TABLE property_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE owl_all_values_from (
- on_property TEXT,
- filler TEXT,
- id TEXT,
+CREATE TABLE named_individual_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE owl_has_value (
- on_property TEXT,
- filler TEXT,
- id TEXT,
+CREATE TABLE rdf_level_summary_statistic (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_predicates (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_instantiated_classes (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_subclasses (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE typed_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE owl_has_self (
- on_property TEXT,
- filler TEXT,
- id TEXT,
+CREATE TABLE ontology_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE owl_complex_axiom (
- subject TEXT,
- predicate TEXT,
- object TEXT
+CREATE TABLE typed_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE owl_subclass_of_some_values_from (
- subject TEXT,
- predicate TEXT,
- object TEXT
+CREATE TABLE object_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE owl_equivalent_to_intersection_member (
- subject TEXT,
- object TEXT,
- predicate TEXT
+CREATE TABLE transitive_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE prefix (
- prefix TEXT,
- base TEXT
+CREATE TABLE symmetric_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE statements (
- stanza TEXT,
- subject TEXT,
- predicate TEXT,
- object TEXT,
- value TEXT,
- datatype TEXT,
- language TEXT
+CREATE TABLE reflexive_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE node_to_node_statement (
- stanza TEXT,
- subject TEXT,
- predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
- datatype TEXT,
- language TEXT
+CREATE TABLE irreflexive_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE node_to_value_statement (
- stanza TEXT,
- subject TEXT,
- predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
- datatype TEXT,
- language TEXT
+CREATE TABLE asymmetric_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE rdf_type_statement (
- stanza TEXT,
- subject TEXT,
- predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
- datatype TEXT,
- language TEXT
+CREATE TABLE annotation_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE rdfs_subclass_of_statement (
- stanza TEXT,
- subject TEXT,
- predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
- datatype TEXT,
- language TEXT
+CREATE TABLE deprecated_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE rdfs_subclass_of_named_statement (
- stanza TEXT,
+CREATE TABLE owl_imports_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -852,8 +780,7 @@ CREATE TABLE rdfs_subclass_of_named_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_subproperty_of_statement (
- stanza TEXT,
+CREATE TABLE owl_inverse_of_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -861,17 +788,7 @@ CREATE TABLE rdfs_subproperty_of_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_label_statement (
- stanza TEXT,
- subject TEXT,
- predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
- datatype TEXT,
- language TEXT
-);
-CREATE TABLE rdfs_domain_statement (
- stanza TEXT,
+CREATE TABLE owl_complement_of_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -879,8 +796,7 @@ CREATE TABLE rdfs_domain_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_range_statement (
- stanza TEXT,
+CREATE TABLE owl_equivalent_class_statement (
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -888,99 +804,126 @@ CREATE TABLE rdfs_range_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_list_statement (
- stanza TEXT,
+CREATE TABLE owl_same_as_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
+ object TEXT NOT NULL,
value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_first_statement (
- stanza TEXT,
+CREATE TABLE owl_disjoint_class_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
+ object TEXT NOT NULL,
value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_rest_statement (
- stanza TEXT,
+CREATE TABLE owl_reified_axiom (
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
value TEXT,
datatype TEXT,
- language TEXT
+ language TEXT,
+ PRIMARY KEY (id)
);
-CREATE TABLE rdf_rest_transitive_statement (
- stanza TEXT,
+CREATE TABLE owl_axiom (
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
value TEXT,
datatype TEXT,
- language TEXT
+ language TEXT,
+ PRIMARY KEY (id)
);
-CREATE TABLE rdf_list_member_statement (
- stanza TEXT,
+CREATE TABLE owl_axiom_annotation (
+ annotation_subject TEXT,
+ annotation_predicate TEXT,
+ annotation_object TEXT,
+ annotation_value TEXT,
+ annotation_language TEXT,
+ annotation_datatype TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
value TEXT,
datatype TEXT,
- language TEXT
+ language TEXT,
+ PRIMARY KEY (id)
);
-CREATE TABLE node (
- id TEXT,
+CREATE TABLE anonymous_expression (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE blank_node (
- id TEXT,
+CREATE TABLE anonymous_class_expression (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE rdf_list_node (
- id TEXT,
+CREATE TABLE anonymous_property_expression (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE iri_node (
- id TEXT,
+CREATE TABLE anonymous_individual_expression (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE class_node (
- id TEXT,
+CREATE TABLE owl_restriction (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE property_node (
- id TEXT,
+CREATE TABLE owl_some_values_from (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE named_individual_node (
- id TEXT,
+CREATE TABLE owl_all_values_from (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE rdf_level_summary_statistic (
- element TEXT,
- count_value INTEGER
+CREATE TABLE owl_has_value (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE count_of_predicates (
- element TEXT,
- count_value INTEGER
+CREATE TABLE owl_has_self (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE count_of_instantiated_classes (
- element TEXT,
- count_value INTEGER
+CREATE TABLE owl_complex_axiom (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT
);
-CREATE TABLE count_of_subclasses (
- element TEXT,
- count_value INTEGER
+CREATE TABLE owl_subclass_of_some_values_from (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT
+);
+CREATE TABLE owl_equivalent_to_intersection_member (
+ subject TEXT,
+ object TEXT,
+ predicate TEXT
);
DROP TABLE has_text_definition_statement;
CREATE VIEW has_text_definition_statement AS SELECT * FROM statements WHERE predicate='IAO:0000115';
+DROP TABLE has_oio_synonym_statement;
+CREATE VIEW has_oio_synonym_statement AS SELECT * FROM has_exact_synonym_statement UNION SELECT * FROM has_broad_synonym_statement UNION SELECT * FROM has_narrow_synonym_statement UNION SELECT * FROM has_related_synonym_statement;
+
DROP TABLE has_exact_synonym_statement;
CREATE VIEW has_exact_synonym_statement AS SELECT * FROM statements WHERE predicate='oio:hasExactSynonym';
@@ -1034,29 +977,130 @@ CREATE VIEW orcid AS SELECT
DROP TABLE axiom_dbxref_annotation;
CREATE VIEW axiom_dbxref_annotation AS SELECT * FROM owl_axiom_annotation WHERE annotation_predicate = 'oio:hasDbXref';
+DROP TABLE statements;
+CREATE TABLE statements (stanza TEXT,subject TEXT,predicate TEXT,object TEXT,value TEXT,datatype TEXT,language TEXT);
+
+DROP TABLE node_to_node_statement;
+CREATE VIEW node_to_node_statement AS SELECT * FROM statements WHERE object IS NOT NULL;
+
+DROP TABLE node_to_value_statement;
+CREATE VIEW node_to_value_statement AS SELECT * FROM statements WHERE value IS NOT NULL;
+
+DROP TABLE rdf_type_statement;
+CREATE VIEW rdf_type_statement AS SELECT * FROM statements WHERE predicate='rdf:type';
+
+DROP TABLE rdfs_subclass_of_statement;
+CREATE VIEW rdfs_subclass_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subClassOf';
+
+DROP TABLE rdfs_subclass_of_named_statement;
+CREATE VIEW rdfs_subclass_of_named_statement AS SELECT * FROM rdfs_subclass_of_statement WHERE object NOT LIKE '_:%';
+
+DROP TABLE rdfs_subproperty_of_statement;
+CREATE VIEW rdfs_subproperty_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subPropertyOf';
+
+DROP TABLE rdfs_label_statement;
+CREATE VIEW rdfs_label_statement AS SELECT * FROM statements WHERE predicate='rdfs:label';
+
+DROP TABLE rdfs_domain_statement;
+CREATE VIEW rdfs_domain_statement AS SELECT * FROM statements WHERE predicate='rdfs:domain';
+
+DROP TABLE rdfs_range_statement;
+CREATE VIEW rdfs_range_statement AS SELECT * FROM statements WHERE predicate='rdfs:range';
+
+DROP TABLE rdf_first_statement;
+CREATE VIEW rdf_first_statement AS SELECT * FROM statements WHERE predicate='rdf:first';
+
+DROP TABLE rdf_rest_statement;
+CREATE VIEW rdf_rest_statement AS SELECT * FROM statements WHERE predicate='rdf:rest';
+
+DROP TABLE rdf_rest_transitive_statement;
+CREATE VIEW rdf_rest_transitive_statement AS WITH RECURSIVE rdf_rest_transitive_statement
+ (
+ subject, object
+ )
+ AS
+ (SELECT subject, object
+ FROM rdf_rest_statement
+ UNION ALL
+ SELECT
+ rest.subject, rest_t.object
+ FROM rdf_rest_statement AS rest
+ JOIN rdf_rest_transitive_statement AS rest_t
+ ON rest.object = rest_t.subject
+ )
+ SELECT * FROM rdf_rest_transitive_statement;
+
+DROP TABLE rdf_list_member_statement;
+CREATE VIEW rdf_list_member_statement AS SELECT
+ rest_t.subject,
+ f.object
+ FROM rdf_rest_transitive_statement AS rest_t JOIN rdf_first_statement AS f ON (rest_t.object = f.subject)
+ UNION
+ SELECT subject,object FROM rdf_first_statement;
+
+DROP TABLE node;
+CREATE VIEW node AS SELECT distinct(subject) AS id FROM statements UNION SELECT distinct(object) AS id FROM statements WHERE datatype IS NOT NULL;
+
+DROP TABLE node_identifier;
+CREATE VIEW node_identifier AS SELECT
+ id AS id,
+ substr(id,0, instr(id,':')) AS prefix,
+ substr(id,instr(id,':')+1) AS local_identifier
+ FROM node;
+
+DROP TABLE blank_node;
+CREATE VIEW blank_node AS SELECT * FROM node WHERE id LIKE '_:%';
+
+DROP TABLE rdf_list_node;
+CREATE VIEW rdf_list_node AS SELECT * FROM rdf_type_statement WHERE object='rdf:List';
+
+DROP TABLE iri_node;
+CREATE VIEW iri_node AS SELECT * FROM node WHERE id NOT LIKE '_:%';
+
+DROP TABLE class_node;
+CREATE VIEW class_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Class';
+
+DROP TABLE property_node;
+CREATE VIEW property_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Property';
+
+DROP TABLE named_individual_node;
+CREATE VIEW named_individual_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:NamedIndividual';
+
+DROP TABLE count_of_predicates;
+CREATE VIEW count_of_predicates AS SELECT predicate AS element, count(*) AS count_value FROM statements GROUP BY predicate ORDER BY count_value DESC;
+
+DROP TABLE count_of_instantiated_classes;
+CREATE VIEW count_of_instantiated_classes AS SELECT object AS element, count(*) AS count_value FROM rdf_type_statement GROUP BY element ORDER BY count_value DESC;
+
+DROP TABLE count_of_subclasses;
+CREATE VIEW count_of_subclasses AS SELECT sc.object AS element, count(distinct sc.subject) AS count_value FROM rdfs_subclass_of_statement AS sc GROUP BY sc.object ORDER BY count_value DESC;
+
+DROP TABLE typed_node;
+CREATE VIEW typed_node AS SELECT subject AS id, object AS node_type FROM rdf_type_statement;
+
DROP TABLE ontology_node;
-CREATE VIEW ontology_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:Ontology';
+CREATE VIEW ontology_node AS SELECT * FROM typed_node WHERE node_type='owl:Ontology';
DROP TABLE object_property_node;
-CREATE VIEW object_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:ObjectProperty';
+CREATE VIEW object_property_node AS SELECT * FROM typed_node WHERE node_type='owl:ObjectProperty';
DROP TABLE transitive_property_node;
-CREATE VIEW transitive_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:TransitiveProperty';
+CREATE VIEW transitive_property_node AS SELECT * FROM typed_node WHERE node_type='owl:TransitiveProperty';
DROP TABLE symmetric_property_node;
-CREATE VIEW symmetric_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:SymmetricProperty';
+CREATE VIEW symmetric_property_node AS SELECT * FROM typed_node WHERE node_type='owl:SymmetricProperty';
DROP TABLE reflexive_property_node;
-CREATE VIEW reflexive_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:IrreflexiveProperty';
+CREATE VIEW reflexive_property_node AS SELECT * FROM typed_node WHERE node_type='owl:ReflexiveProperty';
DROP TABLE irreflexive_property_node;
-CREATE VIEW irreflexive_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:ReflexiveProperty';
+CREATE VIEW irreflexive_property_node AS SELECT * FROM typed_node WHERE node_type='owl:IrreflexiveProperty';
DROP TABLE asymmetric_property_node;
-CREATE VIEW asymmetric_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:AsymmetricProperty';
+CREATE VIEW asymmetric_property_node AS SELECT * FROM typed_node WHERE node_type='owl:AsymmetricProperty';
DROP TABLE annotation_property_node;
-CREATE VIEW annotation_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:AnnotationProperty';
+CREATE VIEW annotation_property_node AS SELECT * FROM typed_node WHERE node_type='owl:AnnotationProperty';
DROP TABLE deprecated_node;
CREATE VIEW deprecated_node AS SELECT DISTINCT subject AS id FROM statements WHERE predicate='owl:deprecated' AND value='true';
@@ -1185,91 +1229,3 @@ CREATE VIEW owl_equivalent_to_intersection_member AS SELECT e.stanza,
rdf_list_member_statement AS m ON (i.object=m.subject)
WHERE
i.predicate = 'owl:intersectionOf';
-
-DROP TABLE node_to_node_statement;
-CREATE VIEW node_to_node_statement AS SELECT * FROM statements WHERE object IS NOT NULL;
-
-DROP TABLE node_to_value_statement;
-CREATE VIEW node_to_value_statement AS SELECT * FROM statements WHERE value IS NOT NULL;
-
-DROP TABLE rdf_type_statement;
-CREATE VIEW rdf_type_statement AS SELECT * FROM statements WHERE predicate='rdf:type';
-
-DROP TABLE rdfs_subclass_of_statement;
-CREATE VIEW rdfs_subclass_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subClassOf';
-
-DROP TABLE rdfs_subclass_of_named_statement;
-CREATE VIEW rdfs_subclass_of_named_statement AS SELECT * FROM rdfs_subclass_of_statement WHERE object NOT LIKE '_:%';
-
-DROP TABLE rdfs_subproperty_of_statement;
-CREATE VIEW rdfs_subproperty_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subPropertyOf';
-
-DROP TABLE rdfs_label_statement;
-CREATE VIEW rdfs_label_statement AS SELECT * FROM statements WHERE predicate='rdfs:label';
-
-DROP TABLE rdfs_domain_statement;
-CREATE VIEW rdfs_domain_statement AS SELECT * FROM statements WHERE predicate='rdfs:domain';
-
-DROP TABLE rdfs_range_statement;
-CREATE VIEW rdfs_range_statement AS SELECT * FROM statements WHERE predicate='rdfs:range';
-
-DROP TABLE rdf_first_statement;
-CREATE VIEW rdf_first_statement AS SELECT * FROM statements WHERE predicate='rdf:first';
-
-DROP TABLE rdf_rest_statement;
-CREATE VIEW rdf_rest_statement AS SELECT * FROM statements WHERE predicate='rdf:rest';
-
-DROP TABLE rdf_rest_transitive_statement;
-CREATE VIEW rdf_rest_transitive_statement AS WITH RECURSIVE rdf_rest_transitive_statement
- (
- subject, object
- )
- AS
- (SELECT subject, object
- FROM rdf_rest_statement
- UNION ALL
- SELECT
- rest.subject, rest_t.object
- FROM rdf_rest_statement AS rest
- JOIN rdf_rest_transitive_statement AS rest_t
- ON rest.object = rest_t.subject
- )
- SELECT * FROM rdf_rest_transitive_statement;
-
-DROP TABLE rdf_list_member_statement;
-CREATE VIEW rdf_list_member_statement AS SELECT
- rest_t.subject,
- f.object
- FROM rdf_rest_transitive_statement AS rest_t JOIN rdf_first_statement AS f ON (rest_t.object = f.subject)
- UNION
- SELECT subject,object FROM rdf_first_statement;
-
-DROP TABLE node;
-CREATE VIEW node AS SELECT distinct(subject) AS id FROM statements UNION SELECT distinct(object) AS id FROM statements WHERE datatype IS NOT NULL;
-
-DROP TABLE blank_node;
-CREATE VIEW blank_node AS SELECT * FROM node WHERE id LIKE '_:%';
-
-DROP TABLE rdf_list_node;
-CREATE VIEW rdf_list_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'rdf:List';
-
-DROP TABLE iri_node;
-CREATE VIEW iri_node AS SELECT * FROM node WHERE id NOT LIKE '_:%';
-
-DROP TABLE class_node;
-CREATE VIEW class_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Class';
-
-DROP TABLE property_node;
-CREATE VIEW property_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Property';
-
-DROP TABLE named_individual_node;
-CREATE VIEW named_individual_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:NamedIndividual';
-
-DROP TABLE count_of_predicates;
-CREATE VIEW count_of_predicates AS SELECT predicate AS element, count(*) AS count_value FROM statements GROUP BY predicate ORDER BY count_value DESC;
-
-DROP TABLE count_of_instantiated_classes;
-CREATE VIEW count_of_instantiated_classes AS SELECT object AS element, count(*) AS count_value FROM rdf_type_statement GROUP BY element ORDER BY count_value DESC;
-
-DROP TABLE count_of_subclasses;
-CREATE VIEW count_of_subclasses AS SELECT sc.object AS element, count(distinct sc.subject) AS count_value FROM rdfs_subclass_of_statement AS sc GROUP BY sc.object ORDER BY count_value DESC;
diff --git a/src/semsql/builder/sql_schema/owl.sql b/src/semsql/builder/sql_schema/owl.sql
index d24d5a3..70aabcf 100644
--- a/src/semsql/builder/sql_schema/owl.sql
+++ b/src/semsql/builder/sql_schema/owl.sql
@@ -1,5 +1,9 @@
+-- # Class: "typed_node" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "ontology_node" Description: "A node representing an ontology"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "typed_property_node" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "object_property_node" Description: "A node representing an OWL object property"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "transitive_property_node" Description: "A node representing an OWL transitive object property"
@@ -17,71 +21,63 @@
-- # Class: "deprecated_node" Description: ""
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "owl_imports_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_inverse_of_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_complement_of_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_equivalent_class_statement" Description: "A statement that connects two class_nodes where both classes are equivalent"
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_same_as_statement" Description: "A statement that connects two individual nodes where both individual are equivalent"
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_disjoint_class_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: One of the two classes that are disjoint. No significance to subject vs object
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: One of the two classes that are disjoint. No significance to subject vs object
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_reified_axiom" Description: "An OWL axiom that has been reified - i.e. it includes an [id](id) field that uniquely identifies that axiom and which can be the subject of additional statements"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_axiom" Description: ""
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "owl_axiom_annotation" Description: ""
-- * Slot: annotation_subject Description:
-- * Slot: annotation_predicate Description:
@@ -90,13 +86,12 @@
-- * Slot: annotation_language Description:
-- * Slot: annotation_datatype Description:
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "anonymous_expression" Description: "An OWL expression, such as a class expression. Expressions are "anonymous" as they are a composition of named elements rather than a named element themselves"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "anonymous_class_expression" Description: "An OWL anonymous class expression, such as for example `SomeValuesFrom(partOf Hand)`"
@@ -112,19 +107,19 @@
-- # Class: "owl_some_values_from" Description: "An OWL SomeValuesFrom restriction"
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_all_values_from" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_has_value" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_has_self" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description: This is Null for a self-restriction
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_complex_axiom" Description: "An axiom that is composed of two or more statements"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
@@ -141,127 +136,116 @@
-- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
-- * Slot: base Description: The base URI a prefix will expand to
-- # Class: "statements" Description: "Represents an RDF triple"
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "node_to_node_statement" Description: "A statement where object is non-null and value is not populated"
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "node_to_value_statement" Description: "A statement where value is non-null and object is not populated"
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_type_statement" Description: "A statement that indicates the asserted type of the subject entity"
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: The entity type
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdfs_subclass_of_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subclass element of the triple
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: The superclass element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdfs_subclass_of_named_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The subclass element of the triple
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The superclass element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdfs_subproperty_of_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The subproperty element of the triple
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: The superproperty element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_label_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_label_statement" Description: "A statement that connects a node to a human-readable label"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: The label value
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_domain_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_domain_statement" Description: "A statement that connects a property to its domain class"
+-- * Slot: subject Description: The property to which the domain applies
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The domain of the property
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_range_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_range_statement" Description: "A statement that connects a property to its range class or literal type"
+-- * Slot: subject Description: The property to which the range applies
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The range of the property
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_list_statement" Description: "A statement that is used to represent aspects of RDF lists"
--- * Slot: stanza Description: the term which this statement is about
-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_first_statement" Description: "A statement that connects a list to its first element. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_rest_statement" Description: "A statement that connects a list to its remaining elements. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_rest_transitive_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_list_member_statement" Description: ""
--- * Slot: stanza Description: the term which this statement is about
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "node" Description: "The basic unit of representation in an RDF or OWL graph"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "node_identifier" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
+-- * Slot: local_identifier Description: The part of a CURIE after the colon
-- # Class: "blank_node" Description: "A node with an ID that is not preserved between databases"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "rdf_list_node" Description: "A node representing an RDF list. Note that you will not likely need to use this directly."
@@ -292,44 +276,51 @@
-- # Class: "individual_trait" Description: ""
-- # Class: "is_report" Description: "Used to describe classes/views that have a reporting function"
+CREATE TABLE typed_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
CREATE TABLE ontology_node (
- id TEXT,
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE typed_property_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE object_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE transitive_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE symmetric_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE reflexive_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE irreflexive_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE asymmetric_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE annotation_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE deprecated_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_imports_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -338,7 +329,6 @@ CREATE TABLE owl_imports_statement (
language TEXT
);
CREATE TABLE owl_inverse_of_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -347,7 +337,6 @@ CREATE TABLE owl_inverse_of_statement (
language TEXT
);
CREATE TABLE owl_complement_of_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -356,7 +345,6 @@ CREATE TABLE owl_complement_of_statement (
language TEXT
);
CREATE TABLE owl_equivalent_class_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -365,7 +353,6 @@ CREATE TABLE owl_equivalent_class_statement (
language TEXT
);
CREATE TABLE owl_same_as_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -374,7 +361,6 @@ CREATE TABLE owl_same_as_statement (
language TEXT
);
CREATE TABLE owl_disjoint_class_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -383,8 +369,7 @@ CREATE TABLE owl_disjoint_class_statement (
language TEXT
);
CREATE TABLE owl_reified_axiom (
- id TEXT,
- stanza TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -394,8 +379,7 @@ CREATE TABLE owl_reified_axiom (
PRIMARY KEY (id)
);
CREATE TABLE owl_axiom (
- id TEXT,
- stanza TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -411,8 +395,7 @@ CREATE TABLE owl_axiom_annotation (
annotation_value TEXT,
annotation_language TEXT,
annotation_datatype TEXT,
- id TEXT,
- stanza TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -422,49 +405,49 @@ CREATE TABLE owl_axiom_annotation (
PRIMARY KEY (id)
);
CREATE TABLE anonymous_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE anonymous_class_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE anonymous_property_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE anonymous_individual_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_restriction (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_some_values_from (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_all_values_from (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_has_value (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_has_self (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_complex_axiom (
@@ -487,7 +470,6 @@ CREATE TABLE prefix (
base TEXT
);
CREATE TABLE statements (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -496,7 +478,6 @@ CREATE TABLE statements (
language TEXT
);
CREATE TABLE node_to_node_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -505,7 +486,6 @@ CREATE TABLE node_to_node_statement (
language TEXT
);
CREATE TABLE node_to_value_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -514,7 +494,6 @@ CREATE TABLE node_to_value_statement (
language TEXT
);
CREATE TABLE rdf_type_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -523,7 +502,6 @@ CREATE TABLE rdf_type_statement (
language TEXT
);
CREATE TABLE rdfs_subclass_of_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -532,7 +510,6 @@ CREATE TABLE rdfs_subclass_of_statement (
language TEXT
);
CREATE TABLE rdfs_subclass_of_named_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -541,7 +518,6 @@ CREATE TABLE rdfs_subclass_of_named_statement (
language TEXT
);
CREATE TABLE rdfs_subproperty_of_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -550,7 +526,6 @@ CREATE TABLE rdfs_subproperty_of_statement (
language TEXT
);
CREATE TABLE rdfs_label_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -559,7 +534,6 @@ CREATE TABLE rdfs_label_statement (
language TEXT
);
CREATE TABLE rdfs_domain_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -568,7 +542,6 @@ CREATE TABLE rdfs_domain_statement (
language TEXT
);
CREATE TABLE rdfs_range_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT NOT NULL,
@@ -577,7 +550,6 @@ CREATE TABLE rdfs_range_statement (
language TEXT
);
CREATE TABLE rdf_list_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -586,7 +558,6 @@ CREATE TABLE rdf_list_statement (
language TEXT
);
CREATE TABLE rdf_first_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -595,7 +566,6 @@ CREATE TABLE rdf_first_statement (
language TEXT
);
CREATE TABLE rdf_rest_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -604,7 +574,6 @@ CREATE TABLE rdf_rest_statement (
language TEXT
);
CREATE TABLE rdf_rest_transitive_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -613,7 +582,6 @@ CREATE TABLE rdf_rest_transitive_statement (
language TEXT
);
CREATE TABLE rdf_list_member_statement (
- stanza TEXT,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -622,31 +590,37 @@ CREATE TABLE rdf_list_member_statement (
language TEXT
);
CREATE TABLE node (
- id TEXT,
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE node_identifier (
+ id TEXT NOT NULL,
+ prefix TEXT,
+ local_identifier TEXT,
PRIMARY KEY (id)
);
CREATE TABLE blank_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE rdf_list_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE iri_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE class_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE named_individual_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE rdf_level_summary_statistic (
@@ -666,29 +640,32 @@ CREATE TABLE count_of_subclasses (
count_value INTEGER
);
+DROP TABLE typed_node;
+CREATE VIEW typed_node AS SELECT subject AS id, object AS node_type FROM rdf_type_statement;
+
DROP TABLE ontology_node;
-CREATE VIEW ontology_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:Ontology';
+CREATE VIEW ontology_node AS SELECT * FROM typed_node WHERE node_type='owl:Ontology';
DROP TABLE object_property_node;
-CREATE VIEW object_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:ObjectProperty';
+CREATE VIEW object_property_node AS SELECT * FROM typed_node WHERE node_type='owl:ObjectProperty';
DROP TABLE transitive_property_node;
-CREATE VIEW transitive_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:TransitiveProperty';
+CREATE VIEW transitive_property_node AS SELECT * FROM typed_node WHERE node_type='owl:TransitiveProperty';
DROP TABLE symmetric_property_node;
-CREATE VIEW symmetric_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:SymmetricProperty';
+CREATE VIEW symmetric_property_node AS SELECT * FROM typed_node WHERE node_type='owl:SymmetricProperty';
DROP TABLE reflexive_property_node;
-CREATE VIEW reflexive_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:IrreflexiveProperty';
+CREATE VIEW reflexive_property_node AS SELECT * FROM typed_node WHERE node_type='owl:ReflexiveProperty';
DROP TABLE irreflexive_property_node;
-CREATE VIEW irreflexive_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:ReflexiveProperty';
+CREATE VIEW irreflexive_property_node AS SELECT * FROM typed_node WHERE node_type='owl:IrreflexiveProperty';
DROP TABLE asymmetric_property_node;
-CREATE VIEW asymmetric_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:AsymmetricProperty';
+CREATE VIEW asymmetric_property_node AS SELECT * FROM typed_node WHERE node_type='owl:AsymmetricProperty';
DROP TABLE annotation_property_node;
-CREATE VIEW annotation_property_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:AnnotationProperty';
+CREATE VIEW annotation_property_node AS SELECT * FROM typed_node WHERE node_type='owl:AnnotationProperty';
DROP TABLE deprecated_node;
CREATE VIEW deprecated_node AS SELECT DISTINCT subject AS id FROM statements WHERE predicate='owl:deprecated' AND value='true';
@@ -818,6 +795,9 @@ CREATE VIEW owl_equivalent_to_intersection_member AS SELECT e.stanza,
WHERE
i.predicate = 'owl:intersectionOf';
+DROP TABLE statements;
+CREATE TABLE statements (stanza TEXT,subject TEXT,predicate TEXT,object TEXT,value TEXT,datatype TEXT,language TEXT);
+
DROP TABLE node_to_node_statement;
CREATE VIEW node_to_node_statement AS SELECT * FROM statements WHERE object IS NOT NULL;
@@ -879,11 +859,18 @@ CREATE VIEW rdf_list_member_statement AS SELECT
DROP TABLE node;
CREATE VIEW node AS SELECT distinct(subject) AS id FROM statements UNION SELECT distinct(object) AS id FROM statements WHERE datatype IS NOT NULL;
+DROP TABLE node_identifier;
+CREATE VIEW node_identifier AS SELECT
+ id AS id,
+ substr(id,0, instr(id,':')) AS prefix,
+ substr(id,instr(id,':')+1) AS local_identifier
+ FROM node;
+
DROP TABLE blank_node;
CREATE VIEW blank_node AS SELECT * FROM node WHERE id LIKE '_:%';
DROP TABLE rdf_list_node;
-CREATE VIEW rdf_list_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'rdf:List';
+CREATE VIEW rdf_list_node AS SELECT * FROM rdf_type_statement WHERE object='rdf:List';
DROP TABLE iri_node;
CREATE VIEW iri_node AS SELECT * FROM node WHERE id NOT LIKE '_:%';
diff --git a/src/semsql/builder/sql_schema/rdf.sql b/src/semsql/builder/sql_schema/rdf.sql
index 9e683c4..505370a 100644
--- a/src/semsql/builder/sql_schema/rdf.sql
+++ b/src/semsql/builder/sql_schema/rdf.sql
@@ -7,105 +7,105 @@
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "node_to_node_statement" Description: "A statement where object is non-null and value is not populated"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "node_to_value_statement" Description: "A statement where value is non-null and object is not populated"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_type_statement" Description: "A statement that indicates the asserted type of the subject entity"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: The entity type
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdfs_subclass_of_statement" Description: ""
-- * Slot: subject Description: The subclass element of the triple
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: The superclass element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdfs_subclass_of_named_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The subclass element of the triple
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The superclass element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdfs_subproperty_of_statement" Description: ""
-- * Slot: subject Description: The subproperty element of the triple
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: The superproperty element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_label_statement" Description: ""
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_label_statement" Description: "A statement that connects a node to a human-readable label"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: The label value
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_domain_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_domain_statement" Description: "A statement that connects a property to its domain class"
+-- * Slot: subject Description: The property to which the domain applies
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The domain of the property
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
--- # Class: "rdfs_range_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "rdfs_range_statement" Description: "A statement that connects a property to its range class or literal type"
+-- * Slot: subject Description: The property to which the range applies
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The range of the property
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_list_statement" Description: "A statement that is used to represent aspects of RDF lists"
-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_first_statement" Description: "A statement that connects a list to its first element. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_rest_statement" Description: "A statement that connects a list to its remaining elements. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_rest_transitive_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_list_member_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. en
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "node" Description: "The basic unit of representation in an RDF or OWL graph"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "node_identifier" Description: ""
@@ -267,37 +267,37 @@ CREATE TABLE rdf_list_member_statement (
language TEXT
);
CREATE TABLE node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE node_identifier (
- id TEXT,
+ id TEXT NOT NULL,
prefix TEXT,
local_identifier TEXT,
PRIMARY KEY (id)
);
CREATE TABLE blank_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE rdf_list_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE iri_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE class_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE named_individual_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE rdf_level_summary_statistic (
@@ -317,6 +317,9 @@ CREATE TABLE count_of_subclasses (
count_value INTEGER
);
+DROP TABLE statements;
+CREATE TABLE statements (stanza TEXT,subject TEXT,predicate TEXT,object TEXT,value TEXT,datatype TEXT,language TEXT);
+
DROP TABLE node_to_node_statement;
CREATE VIEW node_to_node_statement AS SELECT * FROM statements WHERE object IS NOT NULL;
@@ -389,7 +392,7 @@ DROP TABLE blank_node;
CREATE VIEW blank_node AS SELECT * FROM node WHERE id LIKE '_:%';
DROP TABLE rdf_list_node;
-CREATE VIEW rdf_list_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'rdf:List';
+CREATE VIEW rdf_list_node AS SELECT * FROM rdf_type_statement WHERE object='rdf:List';
DROP TABLE iri_node;
CREATE VIEW iri_node AS SELECT * FROM node WHERE id NOT LIKE '_:%';
diff --git a/src/semsql/builder/sql_schema/relation_graph.sql b/src/semsql/builder/sql_schema/relation_graph.sql
index 4957602..ce129bf 100644
--- a/src/semsql/builder/sql_schema/relation_graph.sql
+++ b/src/semsql/builder/sql_schema/relation_graph.sql
@@ -13,45 +13,53 @@
-- * Slot: anchor_object Description: The entity that is used to seed the graph. The seed entity will bear some relationship to each subgraph edge; E.g. with an ancestor subgraph query, all edges will have a subject that descends from the ancestor
-- * Slot: anchor_predicate Description: The predicate that is used to determine if an edge should be included based on relationship to the anchor_object.
-- # Class: "subgraph_edge_by_ancestor" Description: "An edge within a subgraph anchored around a set of ancestor terms"
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
-- * Slot: anchor_object Description: The ancestor term
-- * Slot: anchor_predicate Description: The entailed predicate that holds between each edge subject and the ancestor
-- # Class: "subgraph_edge_by_descendant" Description: "An edge within a subgraph anchored around a set of descendant terms"
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
-- * Slot: anchor_object Description: The descendant term
-- * Slot: anchor_predicate Description: The entailed predicate that holds between the descendant and each edge subject
-- # Class: "subgraph_edge_by_ancestor_or_descendant" Description: ""
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: anchor_object Description:
--- * Slot: anchor_predicate Description:
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
+-- * Slot: anchor_object Description: The entity that is used to seed the graph. The seed entity will bear some relationship to each subgraph edge; E.g. with an ancestor subgraph query, all edges will have a subject that descends from the ancestor
+-- * Slot: anchor_predicate Description: The predicate that is used to determine if an edge should be included based on relationship to the anchor_object.
-- # Class: "subgraph_edge_by_parent" Description: "An edge within a subgraph anchored around a set of parent terms"
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
-- * Slot: anchor_object Description: The parent term
-- * Slot: anchor_predicate Description: The entailed predicate that holds between each edge subject and the parent
-- # Class: "subgraph_edge_by_child" Description: "An edge within a subgraph anchored around a set of child terms"
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
-- * Slot: anchor_object Description: The child term
-- * Slot: anchor_predicate Description: The entailed predicate that holds between the child and each edge subject
-- # Class: "subgraph_edge_by_self" Description: "A special null form of a subgraph query where there is no expansion"
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
+-- * Slot: anchor_object Description: The entity that is used to seed the graph. The seed entity will bear some relationship to each subgraph edge; E.g. with an ancestor subgraph query, all edges will have a subject that descends from the ancestor
+-- * Slot: anchor_predicate Description: The predicate that is used to determine if an edge should be included based on relationship to the anchor_object.
+-- # Class: "entailed_edge" Description: "A relation graph edge that is inferred"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: anchor_object Description:
--- * Slot: anchor_predicate Description:
--- # Class: "entailed_edge" Description: "A relation graph edge that is inferred"
+-- # Class: "entailed_subclass_of_edge" Description: ""
+-- * Slot: subject Description: The subclass element of the triple
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The superclass element of the triple
+-- # Class: "entailed_type_edge" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The superclass element of the triple
-- # Class: "entailed_edge_cycle" Description: "An edge that composes with another edge to make a cycle"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
@@ -66,136 +74,6 @@
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- # Class: "ontology_node" Description: "A node representing an ontology"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "object_property_node" Description: "A node representing an OWL object property"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "transitive_property_node" Description: "A node representing an OWL transitive object property"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "symmetric_property_node" Description: "A node representing an OWL symmetric object property"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "reflexive_property_node" Description: "A node representing an OWL reflexive object property"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "irreflexive_property_node" Description: "A node representing an OWL irreflexive object property"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "asymmetric_property_node" Description: ""
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "annotation_property_node" Description: "A node representing an OWL annotation property"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "deprecated_node" Description: ""
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "owl_imports_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "owl_inverse_of_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "owl_complement_of_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "owl_equivalent_class_statement" Description: "A statement that connects two class_nodes where both classes are equivalent"
--- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "owl_same_as_statement" Description: "A statement that connects two individual nodes where both individual are equivalent"
--- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "owl_disjoint_class_statement" Description: ""
--- * Slot: subject Description: One of the two classes that are disjoint. No significance to subject vs object
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: One of the two classes that are disjoint. No significance to subject vs object
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "owl_reified_axiom" Description: "An OWL axiom that has been reified - i.e. it includes an [id](id) field that uniquely identifies that axiom and which can be the subject of additional statements"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "owl_axiom" Description: ""
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "owl_axiom_annotation" Description: ""
--- * Slot: annotation_subject Description:
--- * Slot: annotation_predicate Description:
--- * Slot: annotation_object Description:
--- * Slot: annotation_value Description:
--- * Slot: annotation_language Description:
--- * Slot: annotation_datatype Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "anonymous_expression" Description: "An OWL expression, such as a class expression. Expressions are "anonymous" as they are a composition of named elements rather than a named element themselves"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "anonymous_class_expression" Description: "An OWL anonymous class expression, such as for example `SomeValuesFrom(partOf Hand)`"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "anonymous_property_expression" Description: ""
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "anonymous_individual_expression" Description: ""
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "owl_restriction" Description: "An OWL restriction, such as `SomeValuesFrom(partOf Hand)`"
--- * Slot: on_property Description:
--- * Slot: filler Description:
--- * Slot: id Description: the id of the restriction
--- # Class: "owl_some_values_from" Description: "An OWL SomeValuesFrom restriction"
--- * Slot: on_property Description:
--- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "owl_all_values_from" Description: ""
--- * Slot: on_property Description:
--- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "owl_has_value" Description: ""
--- * Slot: on_property Description:
--- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "owl_has_self" Description: ""
--- * Slot: on_property Description:
--- * Slot: filler Description: This is Null for a self-restriction
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "owl_complex_axiom" Description: "An axiom that is composed of two or more statements"
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- # Class: "owl_subclass_of_some_values_from" Description: "Composition of subClassOf and SomeValuesFrom"
--- * Slot: subject Description: the class C in the axiom C subClassOf P some D
--- * Slot: predicate Description: the predicate P in the axiom C subClassOf P some D
--- * Slot: object Description: the class D in the axiom C subClassOf P some D
--- # Class: "owl_equivalent_to_intersection_member" Description: "Composition of `OwlEquivalentClass`, `OwlIntersectionOf`, and `RdfListMember`; `C = X1 and ... and Xn`"
--- * Slot: subject Description: the defined class
--- * Slot: object Description: a class expression that forms the defining expression
--- * Slot: predicate Description: The predicate of the statement
-- # Class: "prefix" Description: "Maps CURIEs to URIs"
-- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
-- * Slot: base Description: The base URI a prefix will expand to
@@ -235,9 +113,9 @@
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdfs_subclass_of_named_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The subclass element of the triple
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The superclass element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
@@ -277,28 +155,28 @@
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_first_statement" Description: "A statement that connects a list to its first element. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_rest_statement" Description: "A statement that connects a list to its remaining elements. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_rest_transitive_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
-- # Class: "rdf_list_member_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
@@ -339,268 +217,227 @@
-- # Class: "property_trait" Description: ""
-- # Class: "individual_trait" Description: ""
-- # Class: "is_report" Description: "Used to describe classes/views that have a reporting function"
-
-CREATE TABLE relation_graph_construct (
- subject TEXT,
- predicate TEXT,
- object TEXT
-);
-CREATE TABLE edge (
- subject TEXT,
- predicate TEXT,
- object TEXT
-);
-CREATE TABLE subgraph_query (
- subject TEXT,
- predicate TEXT,
- object TEXT,
- anchor_object TEXT,
- anchor_predicate TEXT
-);
-CREATE TABLE subgraph_edge_by_ancestor (
- subject TEXT,
- predicate TEXT,
- object TEXT,
- anchor_object TEXT,
- anchor_predicate TEXT
-);
-CREATE TABLE subgraph_edge_by_descendant (
- subject TEXT,
- predicate TEXT,
- object TEXT,
- anchor_object TEXT,
- anchor_predicate TEXT
-);
-CREATE TABLE subgraph_edge_by_ancestor_or_descendant (
- subject TEXT,
- predicate TEXT,
- object TEXT,
- anchor_object TEXT,
- anchor_predicate TEXT
-);
-CREATE TABLE subgraph_edge_by_parent (
- subject TEXT,
- predicate TEXT,
- object TEXT,
- anchor_object TEXT,
- anchor_predicate TEXT
-);
-CREATE TABLE subgraph_edge_by_child (
- subject TEXT,
- predicate TEXT,
- object TEXT,
- anchor_object TEXT,
- anchor_predicate TEXT
-);
-CREATE TABLE subgraph_edge_by_self (
- subject TEXT,
- predicate TEXT,
- object TEXT,
- anchor_object TEXT,
- anchor_predicate TEXT
-);
-CREATE TABLE entailed_edge (
- subject TEXT,
- predicate TEXT,
- object TEXT
-);
-CREATE TABLE entailed_edge_cycle (
- subject TEXT,
- predicate TEXT,
- object TEXT,
- secondary_predicate TEXT
-);
-CREATE TABLE entailed_edge_same_predicate_cycle (
+-- # Class: "ontology_node" Description: "A node representing an ontology"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "object_property_node" Description: "A node representing an OWL object property"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "transitive_property_node" Description: "A node representing an OWL transitive object property"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "symmetric_property_node" Description: "A node representing an OWL symmetric object property"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "reflexive_property_node" Description: "A node representing an OWL reflexive object property"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "irreflexive_property_node" Description: "A node representing an OWL irreflexive object property"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "asymmetric_property_node" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "annotation_property_node" Description: "A node representing an OWL annotation property"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "deprecated_node" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "owl_imports_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "owl_inverse_of_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "owl_complement_of_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "owl_equivalent_class_statement" Description: "A statement that connects two class_nodes where both classes are equivalent"
+-- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "owl_same_as_statement" Description: "A statement that connects two individual nodes where both individual are equivalent"
+-- * Slot: subject Description: One of the two classes that are equivalent. No significance to subject vs object
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: One of the two classes that are equivalent. No significance to subject vs object
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "owl_disjoint_class_statement" Description: ""
+-- * Slot: subject Description: One of the two classes that are disjoint. No significance to subject vs object
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: One of the two classes that are disjoint. No significance to subject vs object
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "owl_reified_axiom" Description: "An OWL axiom that has been reified - i.e. it includes an [id](id) field that uniquely identifies that axiom and which can be the subject of additional statements"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "owl_axiom" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "owl_axiom_annotation" Description: ""
+-- * Slot: annotation_subject Description:
+-- * Slot: annotation_predicate Description:
+-- * Slot: annotation_object Description:
+-- * Slot: annotation_value Description:
+-- * Slot: annotation_language Description:
+-- * Slot: annotation_datatype Description:
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "anonymous_expression" Description: "An OWL expression, such as a class expression. Expressions are "anonymous" as they are a composition of named elements rather than a named element themselves"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "anonymous_class_expression" Description: "An OWL anonymous class expression, such as for example `SomeValuesFrom(partOf Hand)`"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "anonymous_property_expression" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "anonymous_individual_expression" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "owl_restriction" Description: "An OWL restriction, such as `SomeValuesFrom(partOf Hand)`"
+-- * Slot: on_property Description:
+-- * Slot: filler Description:
+-- * Slot: id Description: the id of the restriction
+-- # Class: "owl_some_values_from" Description: "An OWL SomeValuesFrom restriction"
+-- * Slot: on_property Description:
+-- * Slot: filler Description:
+-- * Slot: id Description: the id of the restriction
+-- # Class: "owl_all_values_from" Description: ""
+-- * Slot: on_property Description:
+-- * Slot: filler Description:
+-- * Slot: id Description: the id of the restriction
+-- # Class: "owl_has_value" Description: ""
+-- * Slot: on_property Description:
+-- * Slot: filler Description:
+-- * Slot: id Description: the id of the restriction
+-- # Class: "owl_has_self" Description: ""
+-- * Slot: on_property Description:
+-- * Slot: filler Description: This is Null for a self-restriction
+-- * Slot: id Description: the id of the restriction
+-- # Class: "owl_complex_axiom" Description: "An axiom that is composed of two or more statements"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- # Class: "owl_subclass_of_some_values_from" Description: "Composition of subClassOf and SomeValuesFrom"
+-- * Slot: subject Description: the class C in the axiom C subClassOf P some D
+-- * Slot: predicate Description: the predicate P in the axiom C subClassOf P some D
+-- * Slot: object Description: the class D in the axiom C subClassOf P some D
+-- # Class: "owl_equivalent_to_intersection_member" Description: "Composition of `OwlEquivalentClass`, `OwlIntersectionOf`, and `RdfListMember`; `C = X1 and ... and Xn`"
+-- * Slot: subject Description: the defined class
+-- * Slot: object Description: a class expression that forms the defining expression
+-- * Slot: predicate Description: The predicate of the statement
+
+CREATE TABLE relation_graph_construct (
subject TEXT,
predicate TEXT,
- object TEXT,
- secondary_predicate TEXT
+ object TEXT
);
-CREATE TABLE transitive_edge (
+CREATE TABLE edge (
subject TEXT,
predicate TEXT,
object TEXT
);
-CREATE TABLE ontology_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE object_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE transitive_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE symmetric_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE reflexive_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE irreflexive_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE asymmetric_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE annotation_property_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE deprecated_node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE owl_imports_statement (
+CREATE TABLE subgraph_query (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
- datatype TEXT,
- language TEXT
+ object TEXT,
+ anchor_object TEXT,
+ anchor_predicate TEXT
);
-CREATE TABLE owl_inverse_of_statement (
+CREATE TABLE subgraph_edge_by_ancestor (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
- datatype TEXT,
- language TEXT
+ object TEXT,
+ anchor_object TEXT,
+ anchor_predicate TEXT
);
-CREATE TABLE owl_complement_of_statement (
+CREATE TABLE subgraph_edge_by_descendant (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
- datatype TEXT,
- language TEXT
+ object TEXT,
+ anchor_object TEXT,
+ anchor_predicate TEXT
);
-CREATE TABLE owl_equivalent_class_statement (
+CREATE TABLE subgraph_edge_by_ancestor_or_descendant (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
- datatype TEXT,
- language TEXT
+ object TEXT,
+ anchor_object TEXT,
+ anchor_predicate TEXT
);
-CREATE TABLE owl_same_as_statement (
+CREATE TABLE subgraph_edge_by_parent (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
- datatype TEXT,
- language TEXT
+ object TEXT,
+ anchor_object TEXT,
+ anchor_predicate TEXT
);
-CREATE TABLE owl_disjoint_class_statement (
+CREATE TABLE subgraph_edge_by_child (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
- datatype TEXT,
- language TEXT
+ object TEXT,
+ anchor_object TEXT,
+ anchor_predicate TEXT
);
-CREATE TABLE owl_reified_axiom (
- id TEXT,
+CREATE TABLE subgraph_edge_by_self (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
- datatype TEXT,
- language TEXT,
- PRIMARY KEY (id)
+ anchor_object TEXT,
+ anchor_predicate TEXT
);
-CREATE TABLE owl_axiom (
- id TEXT,
+CREATE TABLE entailed_edge (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT,
- datatype TEXT,
- language TEXT,
- PRIMARY KEY (id)
+ object TEXT
);
-CREATE TABLE owl_axiom_annotation (
- annotation_subject TEXT,
- annotation_predicate TEXT,
- annotation_object TEXT,
- annotation_value TEXT,
- annotation_language TEXT,
- annotation_datatype TEXT,
- id TEXT,
+CREATE TABLE entailed_subclass_of_edge (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT,
- datatype TEXT,
- language TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE anonymous_expression (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE anonymous_class_expression (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE anonymous_property_expression (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE anonymous_individual_expression (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE owl_restriction (
- on_property TEXT,
- filler TEXT,
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE owl_some_values_from (
- on_property TEXT,
- filler TEXT,
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE owl_all_values_from (
- on_property TEXT,
- filler TEXT,
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE owl_has_value (
- on_property TEXT,
- filler TEXT,
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE owl_has_self (
- on_property TEXT,
- filler TEXT,
- id TEXT,
- PRIMARY KEY (id)
+ object TEXT
);
-CREATE TABLE owl_complex_axiom (
+CREATE TABLE entailed_type_edge (
subject TEXT,
predicate TEXT,
object TEXT
);
-CREATE TABLE owl_subclass_of_some_values_from (
+CREATE TABLE entailed_edge_cycle (
subject TEXT,
predicate TEXT,
- object TEXT
+ object TEXT,
+ secondary_predicate TEXT
);
-CREATE TABLE owl_equivalent_to_intersection_member (
+CREATE TABLE entailed_edge_same_predicate_cycle (
subject TEXT,
+ predicate TEXT,
object TEXT,
- predicate TEXT
+ secondary_predicate TEXT
+);
+CREATE TABLE transitive_edge (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT
);
CREATE TABLE prefix (
prefix TEXT,
@@ -724,57 +561,238 @@ CREATE TABLE rdf_list_member_statement (
object TEXT,
value TEXT,
datatype TEXT,
- language TEXT
+ language TEXT
+);
+CREATE TABLE node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE node_identifier (
+ id TEXT NOT NULL,
+ prefix TEXT,
+ local_identifier TEXT,
+ PRIMARY KEY (id)
+);
+CREATE TABLE blank_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE rdf_list_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE iri_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE class_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE named_individual_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE rdf_level_summary_statistic (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_predicates (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_instantiated_classes (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_subclasses (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE ontology_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE object_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE transitive_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE symmetric_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE reflexive_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE irreflexive_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE asymmetric_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE annotation_property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE deprecated_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE owl_imports_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT NOT NULL,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
+);
+CREATE TABLE owl_inverse_of_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT NOT NULL,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
+);
+CREATE TABLE owl_complement_of_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT NOT NULL,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
+);
+CREATE TABLE owl_equivalent_class_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT NOT NULL,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
+);
+CREATE TABLE owl_same_as_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT NOT NULL,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
+);
+CREATE TABLE owl_disjoint_class_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT NOT NULL,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
+);
+CREATE TABLE owl_reified_axiom (
+ id TEXT NOT NULL,
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT,
+ datatype TEXT,
+ language TEXT,
+ PRIMARY KEY (id)
+);
+CREATE TABLE owl_axiom (
+ id TEXT NOT NULL,
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT,
+ datatype TEXT,
+ language TEXT,
+ PRIMARY KEY (id)
+);
+CREATE TABLE owl_axiom_annotation (
+ annotation_subject TEXT,
+ annotation_predicate TEXT,
+ annotation_object TEXT,
+ annotation_value TEXT,
+ annotation_language TEXT,
+ annotation_datatype TEXT,
+ id TEXT NOT NULL,
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT,
+ datatype TEXT,
+ language TEXT,
+ PRIMARY KEY (id)
);
-CREATE TABLE node (
- id TEXT,
+CREATE TABLE anonymous_expression (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE node_identifier (
- id TEXT,
- prefix TEXT,
- local_identifier TEXT,
+CREATE TABLE anonymous_class_expression (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE blank_node (
- id TEXT,
+CREATE TABLE anonymous_property_expression (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE rdf_list_node (
- id TEXT,
+CREATE TABLE anonymous_individual_expression (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE iri_node (
- id TEXT,
+CREATE TABLE owl_restriction (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE class_node (
- id TEXT,
+CREATE TABLE owl_some_values_from (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE property_node (
- id TEXT,
+CREATE TABLE owl_all_values_from (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE named_individual_node (
- id TEXT,
+CREATE TABLE owl_has_value (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE rdf_level_summary_statistic (
- element TEXT,
- count_value INTEGER
+CREATE TABLE owl_has_self (
+ on_property TEXT,
+ filler TEXT,
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
);
-CREATE TABLE count_of_predicates (
- element TEXT,
- count_value INTEGER
+CREATE TABLE owl_complex_axiom (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT
);
-CREATE TABLE count_of_instantiated_classes (
- element TEXT,
- count_value INTEGER
+CREATE TABLE owl_subclass_of_some_values_from (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT
);
-CREATE TABLE count_of_subclasses (
- element TEXT,
- count_value INTEGER
+CREATE TABLE owl_equivalent_to_intersection_member (
+ subject TEXT,
+ object TEXT,
+ predicate TEXT
);
DROP TABLE edge;
@@ -828,6 +846,12 @@ CREATE VIEW subgraph_edge_by_self AS SELECT
edge.subject AS anchor_object
FROM edge;
+DROP TABLE entailed_subclass_of_edge;
+CREATE VIEW entailed_subclass_of_edge AS SELECT * FROM entailed_edge WHERE predicate='rdfs:subClassOf';
+
+DROP TABLE entailed_type_edge;
+CREATE VIEW entailed_type_edge AS SELECT * FROM entailed_edge WHERE predicate='rdf:type';
+
DROP TABLE entailed_edge_cycle;
CREATE VIEW entailed_edge_cycle AS SELECT e.*, e2.predicate AS secondary_predicate
FROM entailed_edge AS e,
@@ -854,6 +878,104 @@ CREATE VIEW transitive_edge AS WITH RECURSIVE transitive_edge
)
SELECT * FROM transitive_edge;
+DROP TABLE statements;
+CREATE TABLE statements (stanza TEXT,subject TEXT,predicate TEXT,object TEXT,value TEXT,datatype TEXT,language TEXT);
+
+DROP TABLE node_to_node_statement;
+CREATE VIEW node_to_node_statement AS SELECT * FROM statements WHERE object IS NOT NULL;
+
+DROP TABLE node_to_value_statement;
+CREATE VIEW node_to_value_statement AS SELECT * FROM statements WHERE value IS NOT NULL;
+
+DROP TABLE rdf_type_statement;
+CREATE VIEW rdf_type_statement AS SELECT * FROM statements WHERE predicate='rdf:type';
+
+DROP TABLE rdfs_subclass_of_statement;
+CREATE VIEW rdfs_subclass_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subClassOf';
+
+DROP TABLE rdfs_subclass_of_named_statement;
+CREATE VIEW rdfs_subclass_of_named_statement AS SELECT * FROM rdfs_subclass_of_statement WHERE object NOT LIKE '_:%';
+
+DROP TABLE rdfs_subproperty_of_statement;
+CREATE VIEW rdfs_subproperty_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subPropertyOf';
+
+DROP TABLE rdfs_label_statement;
+CREATE VIEW rdfs_label_statement AS SELECT * FROM statements WHERE predicate='rdfs:label';
+
+DROP TABLE rdfs_domain_statement;
+CREATE VIEW rdfs_domain_statement AS SELECT * FROM statements WHERE predicate='rdfs:domain';
+
+DROP TABLE rdfs_range_statement;
+CREATE VIEW rdfs_range_statement AS SELECT * FROM statements WHERE predicate='rdfs:range';
+
+DROP TABLE rdf_first_statement;
+CREATE VIEW rdf_first_statement AS SELECT * FROM statements WHERE predicate='rdf:first';
+
+DROP TABLE rdf_rest_statement;
+CREATE VIEW rdf_rest_statement AS SELECT * FROM statements WHERE predicate='rdf:rest';
+
+DROP TABLE rdf_rest_transitive_statement;
+CREATE VIEW rdf_rest_transitive_statement AS WITH RECURSIVE rdf_rest_transitive_statement
+ (
+ subject, object
+ )
+ AS
+ (SELECT subject, object
+ FROM rdf_rest_statement
+ UNION ALL
+ SELECT
+ rest.subject, rest_t.object
+ FROM rdf_rest_statement AS rest
+ JOIN rdf_rest_transitive_statement AS rest_t
+ ON rest.object = rest_t.subject
+ )
+ SELECT * FROM rdf_rest_transitive_statement;
+
+DROP TABLE rdf_list_member_statement;
+CREATE VIEW rdf_list_member_statement AS SELECT
+ rest_t.subject,
+ f.object
+ FROM rdf_rest_transitive_statement AS rest_t JOIN rdf_first_statement AS f ON (rest_t.object = f.subject)
+ UNION
+ SELECT subject,object FROM rdf_first_statement;
+
+DROP TABLE node;
+CREATE VIEW node AS SELECT distinct(subject) AS id FROM statements UNION SELECT distinct(object) AS id FROM statements WHERE datatype IS NOT NULL;
+
+DROP TABLE node_identifier;
+CREATE VIEW node_identifier AS SELECT
+ id AS id,
+ substr(id,0, instr(id,':')) AS prefix,
+ substr(id,instr(id,':')+1) AS local_identifier
+ FROM node;
+
+DROP TABLE blank_node;
+CREATE VIEW blank_node AS SELECT * FROM node WHERE id LIKE '_:%';
+
+DROP TABLE rdf_list_node;
+CREATE VIEW rdf_list_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'rdf:List';
+
+DROP TABLE iri_node;
+CREATE VIEW iri_node AS SELECT * FROM node WHERE id NOT LIKE '_:%';
+
+DROP TABLE class_node;
+CREATE VIEW class_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Class';
+
+DROP TABLE property_node;
+CREATE VIEW property_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Property';
+
+DROP TABLE named_individual_node;
+CREATE VIEW named_individual_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:NamedIndividual';
+
+DROP TABLE count_of_predicates;
+CREATE VIEW count_of_predicates AS SELECT predicate AS element, count(*) AS count_value FROM statements GROUP BY predicate ORDER BY count_value DESC;
+
+DROP TABLE count_of_instantiated_classes;
+CREATE VIEW count_of_instantiated_classes AS SELECT object AS element, count(*) AS count_value FROM rdf_type_statement GROUP BY element ORDER BY count_value DESC;
+
+DROP TABLE count_of_subclasses;
+CREATE VIEW count_of_subclasses AS SELECT sc.object AS element, count(distinct sc.subject) AS count_value FROM rdfs_subclass_of_statement AS sc GROUP BY sc.object ORDER BY count_value DESC;
+
DROP TABLE ontology_node;
CREATE VIEW ontology_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:Ontology';
@@ -1005,101 +1127,3 @@ CREATE VIEW owl_equivalent_to_intersection_member AS SELECT e.stanza,
rdf_list_member_statement AS m ON (i.object=m.subject)
WHERE
i.predicate = 'owl:intersectionOf';
-
-DROP TABLE statements;
-CREATE TABLE statements (stanza TEXT,subject TEXT,predicate TEXT,object TEXT,value TEXT,datatype TEXT,language TEXT);
-
-DROP TABLE node_to_node_statement;
-CREATE VIEW node_to_node_statement AS SELECT * FROM statements WHERE object IS NOT NULL;
-
-DROP TABLE node_to_value_statement;
-CREATE VIEW node_to_value_statement AS SELECT * FROM statements WHERE value IS NOT NULL;
-
-DROP TABLE rdf_type_statement;
-CREATE VIEW rdf_type_statement AS SELECT * FROM statements WHERE predicate='rdf:type';
-
-DROP TABLE rdfs_subclass_of_statement;
-CREATE VIEW rdfs_subclass_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subClassOf';
-
-DROP TABLE rdfs_subclass_of_named_statement;
-CREATE VIEW rdfs_subclass_of_named_statement AS SELECT * FROM rdfs_subclass_of_statement WHERE object NOT LIKE '_:%';
-
-DROP TABLE rdfs_subproperty_of_statement;
-CREATE VIEW rdfs_subproperty_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subPropertyOf';
-
-DROP TABLE rdfs_label_statement;
-CREATE VIEW rdfs_label_statement AS SELECT * FROM statements WHERE predicate='rdfs:label';
-
-DROP TABLE rdfs_domain_statement;
-CREATE VIEW rdfs_domain_statement AS SELECT * FROM statements WHERE predicate='rdfs:domain';
-
-DROP TABLE rdfs_range_statement;
-CREATE VIEW rdfs_range_statement AS SELECT * FROM statements WHERE predicate='rdfs:range';
-
-DROP TABLE rdf_first_statement;
-CREATE VIEW rdf_first_statement AS SELECT * FROM statements WHERE predicate='rdf:first';
-
-DROP TABLE rdf_rest_statement;
-CREATE VIEW rdf_rest_statement AS SELECT * FROM statements WHERE predicate='rdf:rest';
-
-DROP TABLE rdf_rest_transitive_statement;
-CREATE VIEW rdf_rest_transitive_statement AS WITH RECURSIVE rdf_rest_transitive_statement
- (
- subject, object
- )
- AS
- (SELECT subject, object
- FROM rdf_rest_statement
- UNION ALL
- SELECT
- rest.subject, rest_t.object
- FROM rdf_rest_statement AS rest
- JOIN rdf_rest_transitive_statement AS rest_t
- ON rest.object = rest_t.subject
- )
- SELECT * FROM rdf_rest_transitive_statement;
-
-DROP TABLE rdf_list_member_statement;
-CREATE VIEW rdf_list_member_statement AS SELECT
- rest_t.subject,
- f.object
- FROM rdf_rest_transitive_statement AS rest_t JOIN rdf_first_statement AS f ON (rest_t.object = f.subject)
- UNION
- SELECT subject,object FROM rdf_first_statement;
-
-DROP TABLE node;
-CREATE VIEW node AS SELECT distinct(subject) AS id FROM statements UNION SELECT distinct(object) AS id FROM statements WHERE datatype IS NOT NULL;
-
-DROP TABLE node_identifier;
-CREATE VIEW node_identifier AS SELECT
- id AS id,
- substr(id,0, instr(id,':')) AS prefix,
- substr(id,instr(id,':')+1) AS local_identifier
- FROM node;
-
-DROP TABLE blank_node;
-CREATE VIEW blank_node AS SELECT * FROM node WHERE id LIKE '_:%';
-
-DROP TABLE rdf_list_node;
-CREATE VIEW rdf_list_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'rdf:List';
-
-DROP TABLE iri_node;
-CREATE VIEW iri_node AS SELECT * FROM node WHERE id NOT LIKE '_:%';
-
-DROP TABLE class_node;
-CREATE VIEW class_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Class';
-
-DROP TABLE property_node;
-CREATE VIEW property_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Property';
-
-DROP TABLE named_individual_node;
-CREATE VIEW named_individual_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:NamedIndividual';
-
-DROP TABLE count_of_predicates;
-CREATE VIEW count_of_predicates AS SELECT predicate AS element, count(*) AS count_value FROM statements GROUP BY predicate ORDER BY count_value DESC;
-
-DROP TABLE count_of_instantiated_classes;
-CREATE VIEW count_of_instantiated_classes AS SELECT object AS element, count(*) AS count_value FROM rdf_type_statement GROUP BY element ORDER BY count_value DESC;
-
-DROP TABLE count_of_subclasses;
-CREATE VIEW count_of_subclasses AS SELECT sc.object AS element, count(distinct sc.subject) AS count_value FROM rdfs_subclass_of_statement AS sc GROUP BY sc.object ORDER BY count_value DESC;
diff --git a/src/semsql/builder/sql_schema/semsql.sql b/src/semsql/builder/sql_schema/semsql.sql
index 20bd1f8..591b884 100644
--- a/src/semsql/builder/sql_schema/semsql.sql
+++ b/src/semsql/builder/sql_schema/semsql.sql
@@ -1,140 +1,146 @@
--- # Class: "term_association" Description: "A minimal datamodel for relating a subject entity to an object term"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: evidence_type Description:
--- * Slot: publication Description:
--- * Slot: source Description:
--- # Class: "has_text_definition_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_oio_synonym_statement" Description: ""
+-- # Class: "prefix" Description: "Maps CURIEs to URIs"
+-- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
+-- * Slot: base Description: The base URI a prefix will expand to
+-- # Class: "statements" Description: "Represents an RDF triple"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_exact_synonym_statement" Description: ""
+-- # Class: "node_to_node_statement" Description: "A statement where object is non-null and value is not populated"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_broad_synonym_statement" Description: ""
+-- # Class: "node_to_value_statement" Description: "A statement where value is non-null and object is not populated"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_narrow_synonym_statement" Description: ""
+-- # Class: "rdf_type_statement" Description: "A statement that indicates the asserted type of the subject entity"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The entity type
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_related_synonym_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- # Class: "rdfs_subclass_of_statement" Description: ""
+-- * Slot: subject Description: The subclass element of the triple
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The superclass element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_synonym_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- # Class: "rdfs_subclass_of_named_statement" Description: ""
+-- * Slot: subject Description: The subclass element of the triple
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The superclass element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_exact_match_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- # Class: "rdfs_subproperty_of_statement" Description: ""
+-- * Slot: subject Description: The subproperty element of the triple
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The superproperty element of the triple
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_broad_match_statement" Description: ""
+-- # Class: "rdfs_label_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: value Description: The label value
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_narrow_match_statement" Description: ""
+-- # Class: "rdfs_domain_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_related_match_statement" Description: ""
+-- # Class: "rdfs_range_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_match_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- # Class: "rdf_list_statement" Description: "A statement that is used to represent aspects of RDF lists"
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_dbxref_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- # Class: "rdf_first_statement" Description: "A statement that connects a list to its first element. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "has_mapping_statement" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- # Class: "rdf_rest_statement" Description: "A statement that connects a list to its remaining elements. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "contributor" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- # Class: "rdf_rest_transitive_statement" Description: ""
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "creator" Description: ""
--- * Slot: subject Description: The subject of the statement
+-- # Class: "rdf_list_member_statement" Description: ""
+-- * Slot: subject Description: The rdf:List to which the statement applies
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "orcid" Description: ""
--- * Slot: label Description: A label for an element
+-- # Class: "node" Description: "The basic unit of representation in an RDF or OWL graph"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "axiom_dbxref_annotation" Description: ""
--- * Slot: annotation_subject Description:
--- * Slot: annotation_predicate Description:
--- * Slot: annotation_object Description:
--- * Slot: annotation_value Description:
--- * Slot: annotation_language Description:
--- * Slot: annotation_datatype Description:
+-- # Class: "node_identifier" Description: ""
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
+-- * Slot: local_identifier Description: The part of a CURIE after the colon
+-- # Class: "blank_node" Description: "A node with an ID that is not preserved between databases"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "rdf_list_node" Description: "A node representing an RDF list. Note that you will not likely need to use this directly."
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "iri_node" Description: ""
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "class_node" Description: "A node that represents an RDFS/OWL class"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "property_node" Description: "Note this only directly classifies nodes asserted to be rdf:Properties"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "named_individual_node" Description: "A node that represents an OWL Named Individual"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "rdf_level_summary_statistic" Description: "Abstract grouping for views/classes that provide some kind of count summary about an individual element"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "count_of_predicates" Description: "Number of distinct usages of a predicate. NOTE MAY CHANGE: does not currently count existential usage in OWL"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "count_of_instantiated_classes" Description: "Number of distinct instantiations of a class. Note in many OBOs, classes are not directly instantiated"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "count_of_subclasses" Description: "Number of subclasses for a given class"
+-- * Slot: element Description:
+-- * Slot: count_value Description:
+-- # Class: "node_trait" Description: "abstract groupings/properties for different aspects of the model"
+-- # Class: "class_trait" Description: ""
+-- # Class: "property_trait" Description: ""
+-- # Class: "individual_trait" Description: ""
+-- # Class: "is_report" Description: "Used to describe classes/views that have a reporting function"
-- # Class: "ontology_node" Description: "A node representing an ontology"
-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- # Class: "object_property_node" Description: "A node representing an OWL object property"
@@ -240,19 +246,19 @@
-- # Class: "owl_some_values_from" Description: "An OWL SomeValuesFrom restriction"
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_all_values_from" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_has_value" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description:
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_has_self" Description: ""
-- * Slot: on_property Description:
-- * Slot: filler Description: This is Null for a self-restriction
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- * Slot: id Description: the id of the restriction
-- # Class: "owl_complex_axiom" Description: "An axiom that is composed of two or more statements"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
@@ -265,203 +271,233 @@
-- * Slot: subject Description: the defined class
-- * Slot: object Description: a class expression that forms the defining expression
-- * Slot: predicate Description: The predicate of the statement
--- # Class: "prefix" Description: "Maps CURIEs to URIs"
--- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
--- * Slot: base Description: The base URI a prefix will expand to
--- # Class: "statements" Description: "Represents an RDF triple"
+-- # Class: "has_text_definition_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "node_to_node_statement" Description: "A statement where object is non-null and value is not populated"
+-- # Class: "has_oio_synonym_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "node_to_value_statement" Description: "A statement where value is non-null and object is not populated"
+-- # Class: "has_exact_synonym_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdf_type_statement" Description: "A statement that indicates the asserted type of the subject entity"
+-- # Class: "has_broad_synonym_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: The entity type
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdfs_subclass_of_statement" Description: ""
--- * Slot: subject Description: The subclass element of the triple
+-- # Class: "has_narrow_synonym_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: The superclass element of the triple
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdfs_subclass_of_named_statement" Description: ""
+-- # Class: "has_related_synonym_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdfs_subproperty_of_statement" Description: ""
--- * Slot: subject Description: The subproperty element of the triple
+-- # Class: "has_synonym_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: The superproperty element of the triple
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdfs_label_statement" Description: ""
+-- # Class: "has_exact_match_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: The label value
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdfs_domain_statement" Description: ""
+-- # Class: "has_broad_match_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdfs_range_statement" Description: ""
+-- # Class: "has_narrow_match_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdf_list_statement" Description: "A statement that is used to represent aspects of RDF lists"
--- * Slot: subject Description: The rdf:List to which the statement applies
+-- # Class: "has_related_match_statement" Description: ""
+-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdf_first_statement" Description: "A statement that connects a list to its first element. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
+-- # Class: "has_match_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdf_rest_statement" Description: "A statement that connects a list to its remaining elements. This is a low-level triple, it is unlikely you need to use this directly. It is used to define rdf_list_member_statement, which is more useful"
+-- # Class: "has_dbxref_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdf_rest_transitive_statement" Description: ""
+-- # Class: "has_mapping_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "rdf_list_member_statement" Description: ""
+-- # Class: "contributor" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "node" Description: "The basic unit of representation in an RDF or OWL graph"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "node_identifier" Description: ""
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- * Slot: prefix Description: A standardized prefix such as 'GO' or 'rdf' or 'FlyBase'
--- * Slot: local_identifier Description: The part of a CURIE after the colon
--- # Class: "blank_node" Description: "A node with an ID that is not preserved between databases"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "rdf_list_node" Description: "A node representing an RDF list. Note that you will not likely need to use this directly."
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "iri_node" Description: ""
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "class_node" Description: "A node that represents an RDFS/OWL class"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "property_node" Description: "Note this only directly classifies nodes asserted to be rdf:Properties"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "named_individual_node" Description: "A node that represents an OWL Named Individual"
--- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
--- # Class: "rdf_level_summary_statistic" Description: "Abstract grouping for views/classes that provide some kind of count summary about an individual element"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "count_of_predicates" Description: "Number of distinct usages of a predicate. NOTE MAY CHANGE: does not currently count existential usage in OWL"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "count_of_instantiated_classes" Description: "Number of distinct instantiations of a class. Note in many OBOs, classes are not directly instantiated"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "count_of_subclasses" Description: "Number of subclasses for a given class"
--- * Slot: element Description:
--- * Slot: count_value Description:
--- # Class: "node_trait" Description: "abstract groupings/properties for different aspects of the model"
--- # Class: "class_trait" Description: ""
--- # Class: "property_trait" Description: ""
--- # Class: "individual_trait" Description: ""
--- # Class: "is_report" Description: "Used to describe classes/views that have a reporting function"
--- # Class: "relation_graph_construct" Description: "A construct used as part of a Relation Graph"
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- # Class: "edge" Description: "A relation graph edge that connects two entities by a predicate. Note an edge is distinct from a statement, in that an axiom such as A SubClassOf R some B is represented as multiple statements, but is a single relation graph edge"
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- # Class: "subgraph_query" Description: "A subgraph query encompasses as subgraph edge and a seed/anchor object and seed/anchor predicate"
--- * Slot: subject Description: subject of the subgraph edge
--- * Slot: predicate Description: predicate of the subgraph edge
--- * Slot: object Description: object of the subgraph edge
--- * Slot: anchor_object Description: The entity that is used to seed the graph. The seed entity will bear some relationship to each subgraph edge; E.g. with an ancestor subgraph query, all edges will have a subject that descends from the ancestor
--- * Slot: anchor_predicate Description: The predicate that is used to determine if an edge should be included based on relationship to the anchor_object.
--- # Class: "subgraph_edge_by_ancestor" Description: "An edge within a subgraph anchored around a set of ancestor terms"
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: anchor_object Description: The ancestor term
--- * Slot: anchor_predicate Description: The entailed predicate that holds between each edge subject and the ancestor
--- # Class: "subgraph_edge_by_descendant" Description: "An edge within a subgraph anchored around a set of descendant terms"
+-- # Class: "creator" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: anchor_object Description: The descendant term
--- * Slot: anchor_predicate Description: The entailed predicate that holds between the descendant and each edge subject
--- # Class: "subgraph_edge_by_ancestor_or_descendant" Description: ""
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "orcid" Description: ""
+-- * Slot: label Description: A label for an element
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
+-- # Class: "axiom_dbxref_annotation" Description: ""
+-- * Slot: annotation_subject Description:
+-- * Slot: annotation_predicate Description:
+-- * Slot: annotation_object Description:
+-- * Slot: annotation_value Description:
+-- * Slot: annotation_language Description:
+-- * Slot: annotation_datatype Description:
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: anchor_object Description:
--- * Slot: anchor_predicate Description:
--- # Class: "subgraph_edge_by_parent" Description: "An edge within a subgraph anchored around a set of parent terms"
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "ontology_status_statement" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: anchor_object Description: The parent term
--- * Slot: anchor_predicate Description: The entailed predicate that holds between each edge subject and the parent
--- # Class: "subgraph_edge_by_child" Description: "An edge within a subgraph anchored around a set of child terms"
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
+-- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
+-- # Class: "repair_action" Description: "Represents an action that needs to be taken to repair a problem"
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: description Description:
+-- # Class: "problem" Description: "Represents an instance of a problem pertaining to conformance to OBO guidelines"
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- # Class: "lexical_problem" Description: "a problem with the textual value of an annotation property"
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- # Class: "trailing_whitespace_problem" Description: ""
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- # Class: "property_used_with_datatype_values_and_objects" Description: "A problem in which the same property is used two two different ways, one in which the range is a literal value, the other where it is an object."
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- # Class: "node_with_two_labels_problem" Description: ""
+-- * Slot: label1 Description:
+-- * Slot: label2 Description:
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- # Class: "all_problems" Description: ""
+-- * Slot: subject Description: The thing that is problematic
+-- * Slot: predicate Description: The property of the thing that is problematic
+-- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- # Class: "relation_graph_construct" Description: "A construct used as part of a Relation Graph"
+-- * Slot: subject Description: The subject of the statement
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- # Class: "edge" Description: "A relation graph edge that connects two entities by a predicate. Note an edge is distinct from a statement, in that an axiom such as A SubClassOf R some B is represented as multiple statements, but is a single relation graph edge"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- # Class: "subgraph_query" Description: "A subgraph query encompasses as subgraph edge and a seed/anchor object and seed/anchor predicate"
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
+-- * Slot: anchor_object Description: The entity that is used to seed the graph. The seed entity will bear some relationship to each subgraph edge; E.g. with an ancestor subgraph query, all edges will have a subject that descends from the ancestor
+-- * Slot: anchor_predicate Description: The predicate that is used to determine if an edge should be included based on relationship to the anchor_object.
+-- # Class: "subgraph_edge_by_ancestor" Description: "An edge within a subgraph anchored around a set of ancestor terms"
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
+-- * Slot: anchor_object Description: The ancestor term
+-- * Slot: anchor_predicate Description: The entailed predicate that holds between each edge subject and the ancestor
+-- # Class: "subgraph_edge_by_descendant" Description: "An edge within a subgraph anchored around a set of descendant terms"
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
+-- * Slot: anchor_object Description: The descendant term
+-- * Slot: anchor_predicate Description: The entailed predicate that holds between the descendant and each edge subject
+-- # Class: "subgraph_edge_by_ancestor_or_descendant" Description: ""
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
+-- * Slot: anchor_object Description: The entity that is used to seed the graph. The seed entity will bear some relationship to each subgraph edge; E.g. with an ancestor subgraph query, all edges will have a subject that descends from the ancestor
+-- * Slot: anchor_predicate Description: The predicate that is used to determine if an edge should be included based on relationship to the anchor_object.
+-- # Class: "subgraph_edge_by_parent" Description: "An edge within a subgraph anchored around a set of parent terms"
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
+-- * Slot: anchor_object Description: The parent term
+-- * Slot: anchor_predicate Description: The entailed predicate that holds between each edge subject and the parent
+-- # Class: "subgraph_edge_by_child" Description: "An edge within a subgraph anchored around a set of child terms"
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
-- * Slot: anchor_object Description: The child term
-- * Slot: anchor_predicate Description: The entailed predicate that holds between the child and each edge subject
-- # Class: "subgraph_edge_by_self" Description: "A special null form of a subgraph query where there is no expansion"
+-- * Slot: subject Description: subject of the subgraph edge
+-- * Slot: predicate Description: predicate of the subgraph edge
+-- * Slot: object Description: object of the subgraph edge
+-- * Slot: anchor_object Description: The entity that is used to seed the graph. The seed entity will bear some relationship to each subgraph edge; E.g. with an ancestor subgraph query, all edges will have a subject that descends from the ancestor
+-- * Slot: anchor_predicate Description: The predicate that is used to determine if an edge should be included based on relationship to the anchor_object.
+-- # Class: "entailed_edge" Description: "A relation graph edge that is inferred"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: anchor_object Description:
--- * Slot: anchor_predicate Description:
--- # Class: "entailed_edge" Description: "A relation graph edge that is inferred"
+-- # Class: "entailed_subclass_of_edge" Description: ""
+-- * Slot: subject Description: The subclass element of the triple
+-- * Slot: predicate Description: The predicate of the statement
+-- * Slot: object Description: The superclass element of the triple
+-- # Class: "entailed_type_edge" Description: ""
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
--- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
+-- * Slot: object Description: The superclass element of the triple
-- # Class: "entailed_edge_cycle" Description: "An edge that composes with another edge to make a cycle"
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
@@ -476,70 +512,36 @@
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- # Class: "ontology_status_statement" Description: ""
+-- # Class: "term_association" Description: "A minimal datamodel for relating a subject entity to an object term"
+-- * Slot: id Description: An identifier for an element. Note blank node ids are not unique across databases
-- * Slot: subject Description: The subject of the statement
-- * Slot: predicate Description: The predicate of the statement
-- * Slot: object Description: Note the range of this slot is always a node. If the triple represents a literal, instead value will be populated
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- * Slot: datatype Description: the rdf datatype of the value, for example, xsd:string
--- * Slot: language Description: the human language in which the value is encoded, e.g. 'en'
--- # Class: "repair_action" Description: "Represents an action that needs to be taken to repair a problem"
--- * Slot: subject Description: The thing that is problematic
--- * Slot: description Description:
--- # Class: "problem" Description: "Represents an instance of a problem pertaining to conformance to OBO guidelines"
--- * Slot: subject Description: The thing that is problematic
--- * Slot: predicate Description: The property of the thing that is problematic
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- # Class: "lexical_problem" Description: "a problem with the textual value of an annotation property"
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- # Class: "trailing_whitespace_problem" Description: ""
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- # Class: "property_used_with_datatype_values_and_objects" Description: "A problem in which the same property is used two two different ways, one in which the range is a literal value, the other where it is an object."
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- # Class: "node_with_two_labels_problem" Description: ""
--- * Slot: label1 Description:
--- * Slot: label2 Description:
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
--- # Class: "all_problems" Description: ""
--- * Slot: subject Description: The subject of the statement
--- * Slot: predicate Description: The predicate of the statement
--- * Slot: value Description: Note the range of this slot is always a string. Only used the triple represents a literal assertion
+-- * Slot: evidence_type Description:
+-- * Slot: publication Description:
+-- * Slot: source Description:
-CREATE TABLE term_association (
- id TEXT,
- subject TEXT,
- predicate TEXT,
- object TEXT,
- evidence_type TEXT,
- publication TEXT,
- source TEXT,
- PRIMARY KEY (id)
+CREATE TABLE prefix (
+ prefix TEXT,
+ base TEXT
);
-CREATE TABLE has_text_definition_statement (
+CREATE TABLE statements (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_oio_synonym_statement (
+CREATE TABLE node_to_node_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_exact_synonym_statement (
+CREATE TABLE node_to_value_statement (
subject TEXT,
predicate TEXT,
object TEXT,
@@ -547,39 +549,39 @@ CREATE TABLE has_exact_synonym_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE has_broad_synonym_statement (
+CREATE TABLE rdf_type_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_narrow_synonym_statement (
+CREATE TABLE rdfs_subclass_of_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_related_synonym_statement (
+CREATE TABLE rdfs_subclass_of_named_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_synonym_statement (
+CREATE TABLE rdfs_subproperty_of_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_exact_match_statement (
+CREATE TABLE rdfs_label_statement (
subject TEXT,
predicate TEXT,
object TEXT,
@@ -587,125 +589,146 @@ CREATE TABLE has_exact_match_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE has_broad_match_statement (
+CREATE TABLE rdfs_domain_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_narrow_match_statement (
+CREATE TABLE rdfs_range_statement (
subject TEXT,
predicate TEXT,
- object TEXT,
- value TEXT NOT NULL,
+ object TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_related_match_statement (
+CREATE TABLE rdf_list_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_match_statement (
+CREATE TABLE rdf_first_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_dbxref_statement (
+CREATE TABLE rdf_rest_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
+ value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE has_mapping_statement (
+CREATE TABLE rdf_rest_transitive_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
- datatype TEXT,
- language TEXT
-);
-CREATE TABLE contributor (
- subject TEXT,
- predicate TEXT,
- object TEXT NOT NULL,
value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE creator (
+CREATE TABLE rdf_list_member_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
+ object TEXT,
value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE orcid (
- label TEXT,
- id TEXT,
+CREATE TABLE node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE axiom_dbxref_annotation (
- annotation_subject TEXT,
- annotation_predicate TEXT,
- annotation_object TEXT,
- annotation_value TEXT,
- annotation_language TEXT,
- annotation_datatype TEXT,
- id TEXT,
- subject TEXT,
- predicate TEXT,
- object TEXT,
- value TEXT,
- datatype TEXT,
- language TEXT,
+CREATE TABLE node_identifier (
+ id TEXT NOT NULL,
+ prefix TEXT,
+ local_identifier TEXT,
+ PRIMARY KEY (id)
+);
+CREATE TABLE blank_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE rdf_list_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE iri_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE class_node (
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
+CREATE TABLE property_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE named_individual_node (
+ id TEXT NOT NULL,
+ PRIMARY KEY (id)
+);
+CREATE TABLE rdf_level_summary_statistic (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_predicates (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_instantiated_classes (
+ element TEXT,
+ count_value INTEGER
+);
+CREATE TABLE count_of_subclasses (
+ element TEXT,
+ count_value INTEGER
+);
CREATE TABLE ontology_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE object_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE transitive_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE symmetric_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE reflexive_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE irreflexive_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE asymmetric_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE annotation_property_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE deprecated_node (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_imports_statement (
@@ -757,7 +780,7 @@ CREATE TABLE owl_disjoint_class_statement (
language TEXT
);
CREATE TABLE owl_reified_axiom (
- id TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -767,7 +790,7 @@ CREATE TABLE owl_reified_axiom (
PRIMARY KEY (id)
);
CREATE TABLE owl_axiom (
- id TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -783,7 +806,7 @@ CREATE TABLE owl_axiom_annotation (
annotation_value TEXT,
annotation_language TEXT,
annotation_datatype TEXT,
- id TEXT,
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
@@ -793,49 +816,49 @@ CREATE TABLE owl_axiom_annotation (
PRIMARY KEY (id)
);
CREATE TABLE anonymous_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE anonymous_class_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE anonymous_property_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE anonymous_individual_expression (
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_restriction (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_some_values_from (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_all_values_from (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_has_value (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_has_self (
on_property TEXT,
filler TEXT,
- id TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE owl_complex_axiom (
@@ -853,27 +876,23 @@ CREATE TABLE owl_equivalent_to_intersection_member (
object TEXT,
predicate TEXT
);
-CREATE TABLE prefix (
- prefix TEXT,
- base TEXT
-);
-CREATE TABLE statements (
+CREATE TABLE has_text_definition_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE node_to_node_statement (
+CREATE TABLE has_oio_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE node_to_value_statement (
+CREATE TABLE has_exact_synonym_statement (
subject TEXT,
predicate TEXT,
object TEXT,
@@ -881,39 +900,39 @@ CREATE TABLE node_to_value_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_type_statement (
+CREATE TABLE has_broad_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_subclass_of_statement (
+CREATE TABLE has_narrow_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_subclass_of_named_statement (
+CREATE TABLE has_related_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_subproperty_of_statement (
+CREATE TABLE has_synonym_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_label_statement (
+CREATE TABLE has_exact_match_statement (
subject TEXT,
predicate TEXT,
object TEXT,
@@ -921,111 +940,134 @@ CREATE TABLE rdfs_label_statement (
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_domain_statement (
+CREATE TABLE has_broad_match_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdfs_range_statement (
+CREATE TABLE has_narrow_match_statement (
subject TEXT,
predicate TEXT,
- object TEXT NOT NULL,
- value TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_list_statement (
+CREATE TABLE has_related_match_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_first_statement (
+CREATE TABLE has_match_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_rest_statement (
+CREATE TABLE has_dbxref_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_rest_transitive_statement (
+CREATE TABLE has_mapping_statement (
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT,
+ value TEXT NOT NULL,
datatype TEXT,
language TEXT
);
-CREATE TABLE rdf_list_member_statement (
+CREATE TABLE contributor (
subject TEXT,
predicate TEXT,
- object TEXT,
+ object TEXT NOT NULL,
value TEXT,
datatype TEXT,
language TEXT
);
-CREATE TABLE node (
- id TEXT,
- PRIMARY KEY (id)
-);
-CREATE TABLE node_identifier (
- id TEXT,
- prefix TEXT,
- local_identifier TEXT,
- PRIMARY KEY (id)
+CREATE TABLE creator (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT NOT NULL,
+ value TEXT,
+ datatype TEXT,
+ language TEXT
);
-CREATE TABLE blank_node (
- id TEXT,
+CREATE TABLE orcid (
+ label TEXT,
+ id TEXT NOT NULL,
PRIMARY KEY (id)
);
-CREATE TABLE rdf_list_node (
- id TEXT,
+CREATE TABLE axiom_dbxref_annotation (
+ annotation_subject TEXT,
+ annotation_predicate TEXT,
+ annotation_object TEXT,
+ annotation_value TEXT,
+ annotation_language TEXT,
+ annotation_datatype TEXT,
+ id TEXT NOT NULL,
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT,
+ datatype TEXT,
+ language TEXT,
PRIMARY KEY (id)
);
-CREATE TABLE iri_node (
- id TEXT,
- PRIMARY KEY (id)
+CREATE TABLE ontology_status_statement (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT,
+ value TEXT NOT NULL,
+ datatype TEXT,
+ language TEXT
);
-CREATE TABLE class_node (
- id TEXT,
- PRIMARY KEY (id)
+CREATE TABLE repair_action (
+ subject TEXT,
+ description TEXT
);
-CREATE TABLE property_node (
- id TEXT,
- PRIMARY KEY (id)
+CREATE TABLE problem (
+ subject TEXT,
+ predicate TEXT,
+ value TEXT
);
-CREATE TABLE named_individual_node (
- id TEXT,
- PRIMARY KEY (id)
+CREATE TABLE lexical_problem (
+ subject TEXT,
+ predicate TEXT,
+ value TEXT
);
-CREATE TABLE rdf_level_summary_statistic (
- element TEXT,
- count_value INTEGER
+CREATE TABLE trailing_whitespace_problem (
+ subject TEXT,
+ predicate TEXT,
+ value TEXT
);
-CREATE TABLE count_of_predicates (
- element TEXT,
- count_value INTEGER
+CREATE TABLE property_used_with_datatype_values_and_objects (
+ subject TEXT,
+ predicate TEXT,
+ value TEXT
);
-CREATE TABLE count_of_instantiated_classes (
- element TEXT,
- count_value INTEGER
+CREATE TABLE node_with_two_labels_problem (
+ label1 TEXT,
+ label2 TEXT,
+ subject TEXT,
+ predicate TEXT,
+ value TEXT
);
-CREATE TABLE count_of_subclasses (
- element TEXT,
- count_value INTEGER
+CREATE TABLE all_problems (
+ subject TEXT,
+ predicate TEXT,
+ value TEXT
);
CREATE TABLE relation_graph_construct (
subject TEXT,
@@ -1091,6 +1133,16 @@ CREATE TABLE entailed_edge (
predicate TEXT,
object TEXT
);
+CREATE TABLE entailed_subclass_of_edge (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT
+);
+CREATE TABLE entailed_type_edge (
+ subject TEXT,
+ predicate TEXT,
+ object TEXT
+);
CREATE TABLE entailed_edge_cycle (
subject TEXT,
predicate TEXT,
@@ -1108,106 +1160,114 @@ CREATE TABLE transitive_edge (
predicate TEXT,
object TEXT
);
-CREATE TABLE ontology_status_statement (
+CREATE TABLE term_association (
+ id TEXT NOT NULL,
subject TEXT,
predicate TEXT,
object TEXT,
- value TEXT NOT NULL,
- datatype TEXT,
- language TEXT
-);
-CREATE TABLE repair_action (
- subject TEXT,
- description TEXT
-);
-CREATE TABLE problem (
- subject TEXT,
- predicate TEXT,
- value TEXT
-);
-CREATE TABLE lexical_problem (
- subject TEXT,
- predicate TEXT,
- value TEXT
-);
-CREATE TABLE trailing_whitespace_problem (
- subject TEXT,
- predicate TEXT,
- value TEXT
-);
-CREATE TABLE property_used_with_datatype_values_and_objects (
- subject TEXT,
- predicate TEXT,
- value TEXT
-);
-CREATE TABLE node_with_two_labels_problem (
- label1 TEXT,
- label2 TEXT,
- subject TEXT,
- predicate TEXT,
- value TEXT
-);
-CREATE TABLE all_problems (
- subject TEXT,
- predicate TEXT,
- value TEXT
+ evidence_type TEXT,
+ publication TEXT,
+ source TEXT,
+ PRIMARY KEY (id)
);
-DROP TABLE has_text_definition_statement;
-CREATE VIEW has_text_definition_statement AS SELECT * FROM statements WHERE predicate='IAO:0000115';
+DROP TABLE statements;
+CREATE TABLE statements (stanza TEXT,subject TEXT,predicate TEXT,object TEXT,value TEXT,datatype TEXT,language TEXT);
-DROP TABLE has_exact_synonym_statement;
-CREATE VIEW has_exact_synonym_statement AS SELECT * FROM statements WHERE predicate='oio:hasExactSynonym';
+DROP TABLE node_to_node_statement;
+CREATE VIEW node_to_node_statement AS SELECT * FROM statements WHERE object IS NOT NULL;
-DROP TABLE has_broad_synonym_statement;
-CREATE VIEW has_broad_synonym_statement AS SELECT * FROM statements WHERE predicate='oio:hasBroadSynonym';
+DROP TABLE node_to_value_statement;
+CREATE VIEW node_to_value_statement AS SELECT * FROM statements WHERE value IS NOT NULL;
+
+DROP TABLE rdf_type_statement;
+CREATE VIEW rdf_type_statement AS SELECT * FROM statements WHERE predicate='rdf:type';
+
+DROP TABLE rdfs_subclass_of_statement;
+CREATE VIEW rdfs_subclass_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subClassOf';
+
+DROP TABLE rdfs_subclass_of_named_statement;
+CREATE VIEW rdfs_subclass_of_named_statement AS SELECT * FROM rdfs_subclass_of_statement WHERE object NOT LIKE '_:%';
+
+DROP TABLE rdfs_subproperty_of_statement;
+CREATE VIEW rdfs_subproperty_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subPropertyOf';
+
+DROP TABLE rdfs_label_statement;
+CREATE VIEW rdfs_label_statement AS SELECT * FROM statements WHERE predicate='rdfs:label';
+
+DROP TABLE rdfs_domain_statement;
+CREATE VIEW rdfs_domain_statement AS SELECT * FROM statements WHERE predicate='rdfs:domain';
+
+DROP TABLE rdfs_range_statement;
+CREATE VIEW rdfs_range_statement AS SELECT * FROM statements WHERE predicate='rdfs:range';
+
+DROP TABLE rdf_first_statement;
+CREATE VIEW rdf_first_statement AS SELECT * FROM statements WHERE predicate='rdf:first';
-DROP TABLE has_narrow_synonym_statement;
-CREATE VIEW has_narrow_synonym_statement AS SELECT * FROM statements WHERE predicate='oio:hasNarrowSynonym';
+DROP TABLE rdf_rest_statement;
+CREATE VIEW rdf_rest_statement AS SELECT * FROM statements WHERE predicate='rdf:rest';
-DROP TABLE has_related_synonym_statement;
-CREATE VIEW has_related_synonym_statement AS SELECT * FROM statements WHERE predicate='oio:hasRelatedSynonym';
+DROP TABLE rdf_rest_transitive_statement;
+CREATE VIEW rdf_rest_transitive_statement AS WITH RECURSIVE rdf_rest_transitive_statement
+ (
+ subject, object
+ )
+ AS
+ (SELECT subject, object
+ FROM rdf_rest_statement
+ UNION ALL
+ SELECT
+ rest.subject, rest_t.object
+ FROM rdf_rest_statement AS rest
+ JOIN rdf_rest_transitive_statement AS rest_t
+ ON rest.object = rest_t.subject
+ )
+ SELECT * FROM rdf_rest_transitive_statement;
-DROP TABLE has_synonym_statement;
-CREATE VIEW has_synonym_statement AS SELECT * FROM has_exact_synonym_statement UNION SELECT * FROM has_broad_synonym_statement UNION SELECT * FROM has_narrow_synonym_statement UNION SELECT * FROM has_related_synonym_statement;
+DROP TABLE rdf_list_member_statement;
+CREATE VIEW rdf_list_member_statement AS SELECT
+ rest_t.subject,
+ f.object
+ FROM rdf_rest_transitive_statement AS rest_t JOIN rdf_first_statement AS f ON (rest_t.object = f.subject)
+ UNION
+ SELECT subject,object FROM rdf_first_statement;
-DROP TABLE has_exact_match_statement;
-CREATE VIEW has_exact_match_statement AS SELECT * FROM statements WHERE predicate='skos:hasExactMatch';
+DROP TABLE node;
+CREATE VIEW node AS SELECT distinct(subject) AS id FROM statements UNION SELECT distinct(object) AS id FROM statements WHERE datatype IS NOT NULL;
-DROP TABLE has_broad_match_statement;
-CREATE VIEW has_broad_match_statement AS SELECT * FROM statements WHERE predicate='skos:hasBroadMatch';
+DROP TABLE node_identifier;
+CREATE VIEW node_identifier AS SELECT
+ id AS id,
+ substr(id,0, instr(id,':')) AS prefix,
+ substr(id,instr(id,':')+1) AS local_identifier
+ FROM node;
-DROP TABLE has_narrow_match_statement;
-CREATE VIEW has_narrow_match_statement AS SELECT * FROM statements WHERE predicate='skos:hasNarrowMatch';
+DROP TABLE blank_node;
+CREATE VIEW blank_node AS SELECT * FROM node WHERE id LIKE '_:%';
-DROP TABLE has_related_match_statement;
-CREATE VIEW has_related_match_statement AS SELECT * FROM statements WHERE predicate='skos:hasRelatedMatch';
+DROP TABLE rdf_list_node;
+CREATE VIEW rdf_list_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'rdf:List';
-DROP TABLE has_match_statement;
-CREATE VIEW has_match_statement AS SELECT * FROM has_exact_match_statement UNION SELECT * FROM has_broad_match_statement UNION SELECT * FROM has_narrow_match_statement UNION SELECT * FROM has_related_match_statement;
+DROP TABLE iri_node;
+CREATE VIEW iri_node AS SELECT * FROM node WHERE id NOT LIKE '_:%';
-DROP TABLE has_dbxref_statement;
-CREATE VIEW has_dbxref_statement AS SELECT * FROM statements WHERE predicate='oio:hasDbXref';
+DROP TABLE class_node;
+CREATE VIEW class_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Class';
-DROP TABLE has_mapping_statement;
-CREATE VIEW has_mapping_statement AS SELECT * FROM has_match_statement UNION SELECT * FROM has_dbxref_statement;
+DROP TABLE property_node;
+CREATE VIEW property_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Property';
-DROP TABLE contributor;
-CREATE VIEW contributor AS SELECT * FROM statements WHERE predicate='dcterms:contributor';
+DROP TABLE named_individual_node;
+CREATE VIEW named_individual_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:NamedIndividual';
-DROP TABLE creator;
-CREATE VIEW creator AS SELECT * FROM statements WHERE predicate='dcterms:creator';
+DROP TABLE count_of_predicates;
+CREATE VIEW count_of_predicates AS SELECT predicate AS element, count(*) AS count_value FROM statements GROUP BY predicate ORDER BY count_value DESC;
-DROP TABLE orcid;
-CREATE VIEW orcid AS SELECT
- subject AS id,
- value AS label
- FROM
- rdfs_label_statement
- WHERE subject like 'orcid:%';
+DROP TABLE count_of_instantiated_classes;
+CREATE VIEW count_of_instantiated_classes AS SELECT object AS element, count(*) AS count_value FROM rdf_type_statement GROUP BY element ORDER BY count_value DESC;
-DROP TABLE axiom_dbxref_annotation;
-CREATE VIEW axiom_dbxref_annotation AS SELECT * FROM owl_axiom_annotation WHERE annotation_predicate = 'oio:hasDbXref';
+DROP TABLE count_of_subclasses;
+CREATE VIEW count_of_subclasses AS SELECT sc.object AS element, count(distinct sc.subject) AS count_value FROM rdfs_subclass_of_statement AS sc GROUP BY sc.object ORDER BY count_value DESC;
DROP TABLE ontology_node;
CREATE VIEW ontology_node AS SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:Ontology';
@@ -1361,103 +1421,91 @@ CREATE VIEW owl_equivalent_to_intersection_member AS SELECT e.stanza,
WHERE
i.predicate = 'owl:intersectionOf';
-DROP TABLE statements;
-CREATE TABLE statements (stanza TEXT,subject TEXT,predicate TEXT,object TEXT,value TEXT,datatype TEXT,language TEXT);
-
-DROP TABLE node_to_node_statement;
-CREATE VIEW node_to_node_statement AS SELECT * FROM statements WHERE object IS NOT NULL;
-
-DROP TABLE node_to_value_statement;
-CREATE VIEW node_to_value_statement AS SELECT * FROM statements WHERE value IS NOT NULL;
-
-DROP TABLE rdf_type_statement;
-CREATE VIEW rdf_type_statement AS SELECT * FROM statements WHERE predicate='rdf:type';
+DROP TABLE has_text_definition_statement;
+CREATE VIEW has_text_definition_statement AS SELECT * FROM statements WHERE predicate='IAO:0000115';
-DROP TABLE rdfs_subclass_of_statement;
-CREATE VIEW rdfs_subclass_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subClassOf';
+DROP TABLE has_exact_synonym_statement;
+CREATE VIEW has_exact_synonym_statement AS SELECT * FROM statements WHERE predicate='oio:hasExactSynonym';
-DROP TABLE rdfs_subclass_of_named_statement;
-CREATE VIEW rdfs_subclass_of_named_statement AS SELECT * FROM rdfs_subclass_of_statement WHERE object NOT LIKE '_:%';
+DROP TABLE has_broad_synonym_statement;
+CREATE VIEW has_broad_synonym_statement AS SELECT * FROM statements WHERE predicate='oio:hasBroadSynonym';
-DROP TABLE rdfs_subproperty_of_statement;
-CREATE VIEW rdfs_subproperty_of_statement AS SELECT * FROM statements WHERE predicate='rdfs:subPropertyOf';
+DROP TABLE has_narrow_synonym_statement;
+CREATE VIEW has_narrow_synonym_statement AS SELECT * FROM statements WHERE predicate='oio:hasNarrowSynonym';
-DROP TABLE rdfs_label_statement;
-CREATE VIEW rdfs_label_statement AS SELECT * FROM statements WHERE predicate='rdfs:label';
+DROP TABLE has_related_synonym_statement;
+CREATE VIEW has_related_synonym_statement AS SELECT * FROM statements WHERE predicate='oio:hasRelatedSynonym';
-DROP TABLE rdfs_domain_statement;
-CREATE VIEW rdfs_domain_statement AS SELECT * FROM statements WHERE predicate='rdfs:domain';
+DROP TABLE has_synonym_statement;
+CREATE VIEW has_synonym_statement AS SELECT * FROM has_exact_synonym_statement UNION SELECT * FROM has_broad_synonym_statement UNION SELECT * FROM has_narrow_synonym_statement UNION SELECT * FROM has_related_synonym_statement;
-DROP TABLE rdfs_range_statement;
-CREATE VIEW rdfs_range_statement AS SELECT * FROM statements WHERE predicate='rdfs:range';
+DROP TABLE has_exact_match_statement;
+CREATE VIEW has_exact_match_statement AS SELECT * FROM statements WHERE predicate='skos:hasExactMatch';
-DROP TABLE rdf_first_statement;
-CREATE VIEW rdf_first_statement AS SELECT * FROM statements WHERE predicate='rdf:first';
+DROP TABLE has_broad_match_statement;
+CREATE VIEW has_broad_match_statement AS SELECT * FROM statements WHERE predicate='skos:hasBroadMatch';
-DROP TABLE rdf_rest_statement;
-CREATE VIEW rdf_rest_statement AS SELECT * FROM statements WHERE predicate='rdf:rest';
+DROP TABLE has_narrow_match_statement;
+CREATE VIEW has_narrow_match_statement AS SELECT * FROM statements WHERE predicate='skos:hasNarrowMatch';
-DROP TABLE rdf_rest_transitive_statement;
-CREATE VIEW rdf_rest_transitive_statement AS WITH RECURSIVE rdf_rest_transitive_statement
- (
- subject, object
- )
- AS
- (SELECT subject, object
- FROM rdf_rest_statement
- UNION ALL
- SELECT
- rest.subject, rest_t.object
- FROM rdf_rest_statement AS rest
- JOIN rdf_rest_transitive_statement AS rest_t
- ON rest.object = rest_t.subject
- )
- SELECT * FROM rdf_rest_transitive_statement;
+DROP TABLE has_related_match_statement;
+CREATE VIEW has_related_match_statement AS SELECT * FROM statements WHERE predicate='skos:hasRelatedMatch';
-DROP TABLE rdf_list_member_statement;
-CREATE VIEW rdf_list_member_statement AS SELECT
- rest_t.subject,
- f.object
- FROM rdf_rest_transitive_statement AS rest_t JOIN rdf_first_statement AS f ON (rest_t.object = f.subject)
- UNION
- SELECT subject,object FROM rdf_first_statement;
+DROP TABLE has_match_statement;
+CREATE VIEW has_match_statement AS SELECT * FROM has_exact_match_statement UNION SELECT * FROM has_broad_match_statement UNION SELECT * FROM has_narrow_match_statement UNION SELECT * FROM has_related_match_statement;
-DROP TABLE node;
-CREATE VIEW node AS SELECT distinct(subject) AS id FROM statements UNION SELECT distinct(object) AS id FROM statements WHERE datatype IS NOT NULL;
+DROP TABLE has_dbxref_statement;
+CREATE VIEW has_dbxref_statement AS SELECT * FROM statements WHERE predicate='oio:hasDbXref';
-DROP TABLE node_identifier;
-CREATE VIEW node_identifier AS SELECT
- id AS id,
- substr(id,0, instr(id,':')) AS prefix,
- substr(id,instr(id,':')+1) AS local_identifier
- FROM node;
+DROP TABLE has_mapping_statement;
+CREATE VIEW has_mapping_statement AS SELECT * FROM has_match_statement UNION SELECT * FROM has_dbxref_statement;
-DROP TABLE blank_node;
-CREATE VIEW blank_node AS SELECT * FROM node WHERE id LIKE '_:%';
+DROP TABLE contributor;
+CREATE VIEW contributor AS SELECT * FROM statements WHERE predicate='dcterms:contributor';
-DROP TABLE rdf_list_node;
-CREATE VIEW rdf_list_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'rdf:List';
+DROP TABLE creator;
+CREATE VIEW creator AS SELECT * FROM statements WHERE predicate='dcterms:creator';
-DROP TABLE iri_node;
-CREATE VIEW iri_node AS SELECT * FROM node WHERE id NOT LIKE '_:%';
+DROP TABLE orcid;
+CREATE VIEW orcid AS SELECT
+ subject AS id,
+ value AS label
+ FROM
+ rdfs_label_statement
+ WHERE subject like 'orcid:%';
-DROP TABLE class_node;
-CREATE VIEW class_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Class';
+DROP TABLE axiom_dbxref_annotation;
+CREATE VIEW axiom_dbxref_annotation AS SELECT * FROM owl_axiom_annotation WHERE annotation_predicate = 'oio:hasDbXref';
-DROP TABLE property_node;
-CREATE VIEW property_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:Property';
+DROP TABLE ontology_status_statement;
+CREATE VIEW ontology_status_statement AS SELECT * FROM statements WHERE predicate = '' UNION SELECT * FROM statements WHERE predicate = 'pav:status';
-DROP TABLE named_individual_node;
-CREATE VIEW named_individual_node AS SELECT distinct subject AS id from rdf_type_statement WHERE object = 'owl:NamedIndividual';
+DROP TABLE trailing_whitespace_problem;
+CREATE VIEW trailing_whitespace_problem AS SELECT
+ subject,
+ predicate,
+ value
+FROM statements WHERE VALUE like ' %' OR VALUE like '% ';
-DROP TABLE count_of_predicates;
-CREATE VIEW count_of_predicates AS SELECT predicate AS element, count(*) AS count_value FROM statements GROUP BY predicate ORDER BY count_value DESC;
+DROP TABLE property_used_with_datatype_values_and_objects;
+CREATE VIEW property_used_with_datatype_values_and_objects AS SELECT
+ DISTINCT
+ s1.predicate AS subject,
+ s1.predicate,
+ s1.datatype AS value
+ FROM statements AS s1, statements AS s2 ON (s1.predicate=s2.predicate)
+ WHERE s1.value IS NOT NULL and s2.object IS NOT NULL;
-DROP TABLE count_of_instantiated_classes;
-CREATE VIEW count_of_instantiated_classes AS SELECT object AS element, count(*) AS count_value FROM rdf_type_statement GROUP BY element ORDER BY count_value DESC;
+DROP TABLE node_with_two_labels_problem;
+CREATE VIEW node_with_two_labels_problem AS SELECT
+ s1.subject,
+ s1.predicate,
+ s1.value
+ FROM rdfs_label_statement AS s1, rdfs_label_statement AS s2
+ WHERE s1.subject=s2.subject AND s1.value != s2.value;
-DROP TABLE count_of_subclasses;
-CREATE VIEW count_of_subclasses AS SELECT sc.object AS element, count(distinct sc.subject) AS count_value FROM rdfs_subclass_of_statement AS sc GROUP BY sc.object ORDER BY count_value DESC;
+DROP TABLE all_problems;
+CREATE VIEW all_problems AS SELECT * FROM node_with_two_labels_problem UNION SELECT * FROM trailing_whitespace_problem;
DROP TABLE edge;
CREATE VIEW edge AS SELECT subject, predicate, object
@@ -1510,6 +1558,12 @@ CREATE VIEW subgraph_edge_by_self AS SELECT
edge.subject AS anchor_object
FROM edge;
+DROP TABLE entailed_subclass_of_edge;
+CREATE VIEW entailed_subclass_of_edge AS SELECT * FROM entailed_edge WHERE predicate='rdfs:subClassOf';
+
+DROP TABLE entailed_type_edge;
+CREATE VIEW entailed_type_edge AS SELECT * FROM entailed_edge WHERE predicate='rdf:type';
+
DROP TABLE entailed_edge_cycle;
CREATE VIEW entailed_edge_cycle AS SELECT e.*, e2.predicate AS secondary_predicate
FROM entailed_edge AS e,
@@ -1535,33 +1589,3 @@ CREATE VIEW transitive_edge AS WITH RECURSIVE transitive_edge
ON e.object = a.subject AND e.predicate = a.predicate
)
SELECT * FROM transitive_edge;
-
-DROP TABLE ontology_status_statement;
-CREATE VIEW ontology_status_statement AS SELECT * FROM statements WHERE predicate = '' UNION SELECT * FROM statements WHERE predicate = 'pav:status';
-
-DROP TABLE trailing_whitespace_problem;
-CREATE VIEW trailing_whitespace_problem AS SELECT
- subject,
- predicate,
- value
-FROM statements WHERE VALUE like ' %' OR VALUE like '% ';
-
-DROP TABLE property_used_with_datatype_values_and_objects;
-CREATE VIEW property_used_with_datatype_values_and_objects AS SELECT
- DISTINCT
- s1.predicate AS subject,
- s1.predicate,
- s1.datatype AS value
- FROM statements AS s1, statements AS s2 ON (s1.predicate=s2.predicate)
- WHERE s1.value IS NOT NULL and s2.object IS NOT NULL;
-
-DROP TABLE node_with_two_labels_problem;
-CREATE VIEW node_with_two_labels_problem AS SELECT
- s1.subject,
- s1.predicate,
- s1.value
- FROM rdfs_label_statement AS s1, rdfs_label_statement AS s2
- WHERE s1.subject=s2.subject AND s1.value != s2.value;
-
-DROP TABLE all_problems;
-CREATE VIEW all_problems AS SELECT * FROM node_with_two_labels_problem UNION SELECT * FROM trailing_whitespace_problem;
diff --git a/src/semsql/linkml/basics.yaml b/src/semsql/linkml/basics.yaml
index 5c9c676..8b4beb9 100644
--- a/src/semsql/linkml/basics.yaml
+++ b/src/semsql/linkml/basics.yaml
@@ -4,11 +4,11 @@ imports:
- linkml:types
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- basics: https://w3id.org/semsql/basics
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
default_curi_maps:
- semweb_context
-default_prefix: basics
+default_prefix: semsql
default_range: string
slots:
id:
diff --git a/src/semsql/linkml/chebi.yaml b/src/semsql/linkml/chebi.yaml
index 44c972f..6c69d1a 100644
--- a/src/semsql/linkml/chebi.yaml
+++ b/src/semsql/linkml/chebi.yaml
@@ -7,10 +7,11 @@ description: |-
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_ro: https://w3id.org/semsql/ro/
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
+ chebivocab: "http://purl.obolibrary.org/obo/chebi#"
-default_prefix: semsql_ro
+default_prefix: semsql
default_range: string
default_curi_maps:
@@ -23,19 +24,24 @@ imports:
classes:
- conjugate acid of edge:
- slot_uri: obochebi:is_conjugate_acid_of
+ conjugate_acid_of_edge:
+ slot_uri: chebivocab:is_conjugate_acid_of
is_a: edge
- comments:
- - sqlview>> SELECT * FROM edge WHERE predicate = 'obo:chebi#is_conjugate_acid_of';
- conjugate base of edge:
- slot_uri: obochebi:is_conjugate_baseof
+ classification_rules:
+ is_a: edge
+ slot_conditions:
+ predicate:
+ equals_string: "obo:chebi#is_conjugate_acid_of"
+ conjugate_base_of_edge:
+ slot_uri: chebivocab:is_conjugate_base_of
is_a: edge
- comments:
- - sqlview>> SELECT * FROM edge WHERE predicate = 'obo:chebi#is_conjugate_base_of';
-
- charge statement:
- slot_uri: obo:chebi/charge
+ classification_rules:
+ is_a: edge
+ slot_conditions:
+ predicate:
+ equals_string: "obo:chebi#is_conjugate_base_of"
+ charge_statement:
+ slot_uri: chebivocab:charge
is_a: edge
comments:
- sqlview>> SELECT subject, predicate, cast(value AS "int") AS value FROM statements WHERE predicate = 'obo:chebi/charge';
diff --git a/src/semsql/linkml/nlp.yaml b/src/semsql/linkml/nlp.yaml
index 09a58de..d4f144c 100644
--- a/src/semsql/linkml/nlp.yaml
+++ b/src/semsql/linkml/nlp.yaml
@@ -6,11 +6,11 @@ imports:
- rdf
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_nlp: https://w3id.org/semsql/nlp
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
default_curi_maps:
- semweb_context
-default_prefix: semsql_nlp
+default_prefix: semsql
default_range: string
slots:
transformation_predicate: {}
diff --git a/src/semsql/linkml/obo.yaml b/src/semsql/linkml/obo.yaml
index c262572..f3c11ec 100644
--- a/src/semsql/linkml/obo.yaml
+++ b/src/semsql/linkml/obo.yaml
@@ -9,11 +9,11 @@ imports:
- omo
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_obo: https://w3id.org/semsql/obo
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
default_curi_maps:
- semweb_context
-default_prefix: semsql_obo
+default_prefix: semsql
default_range: string
classes:
ontology_status_statement:
diff --git a/src/semsql/linkml/omo.yaml b/src/semsql/linkml/omo.yaml
index c66a0f8..58229fb 100644
--- a/src/semsql/linkml/omo.yaml
+++ b/src/semsql/linkml/omo.yaml
@@ -9,44 +9,68 @@ imports:
- owl
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_omo: https://w3id.org/semsql/omo
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
default_curi_maps:
- semweb_context
-default_prefix: semsql_omo
+default_prefix: semsql
default_range: string
classes:
has_text_definition_statement:
- comments:
- - sqlview>> SELECT * FROM statements WHERE predicate='IAO:0000115'
is_a: node_to_value_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "IAO:0000115"
has_oio_synonym_statement:
is_a: node_to_value_statement
abstract: true
+ union_of:
+ - has_exact_synonym_statement
+ - has_broad_synonym_statement
+ - has_narrow_synonym_statement
+ - has_related_synonym_statement
has_exact_synonym_statement:
exact_mappings:
- oio:hasExactSynonym
- comments:
- - sqlview>> SELECT * FROM statements WHERE predicate='oio:hasExactSynonym'
is_a: has_oio_synonym_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "oio:hasExactSynonym"
has_broad_synonym_statement:
exact_mappings:
- oio:hasBroadSynonym
- comments:
- - sqlview>> SELECT * FROM statements WHERE predicate='oio:hasBroadSynonym'
is_a: has_oio_synonym_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "oio:hasBroadSynonym"
has_narrow_synonym_statement:
exact_mappings:
- oio:hasNarrowSynonym
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='oio:hasNarrowSynonym'
is_a: has_oio_synonym_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "oio:hasNarrowSynonym"
has_related_synonym_statement:
exact_mappings:
- oio:hasRelatedSynonym
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='oio:hasRelatedSynonym'
is_a: has_oio_synonym_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "oio:hasRelatedSynonym"
has_synonym_statement:
is_a: node_to_value_statement
union_of:
@@ -60,26 +84,46 @@ classes:
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='skos:hasExactMatch'
is_a: has_match_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "skos:hasExactMatch"
has_broad_match_statement:
exact_mappings:
- skos:hasBroadMatch
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='skos:hasBroadMatch'
is_a: has_match_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "skos:hasBroadMatch"
has_narrow_match_statement:
exact_mappings:
- skos:hasNarrowMatch
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='skos:hasNarrowMatch'
is_a: has_match_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "skos:hasNarrowMatch"
has_related_match_statement:
exact_mappings:
- skos:hasRelatedMatch
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='skos:hasRelatedMatch'
is_a: has_match_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "skos:hasRelatedMatch"
has_match_statement:
- is_a: node_to_value_statement
+ is_a: has_mapping_statement
union_of:
- has_exact_match_statement
- has_broad_match_statement
@@ -89,8 +133,13 @@ classes:
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='oio:hasDbXref'
is_a: has_mapping_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "oio:hasDbXref"
has_mapping_statement:
- is_a: node_to_value_statement
+ is_a: statements
union_of:
- has_match_statement
- has_dbxref_statement
@@ -126,6 +175,11 @@ classes:
comments:
- sqlview>> SELECT * FROM owl_axiom_annotation WHERE annotation_predicate = 'oio:hasDbXref'
is_a: owl_axiom_annotation
+ classification_rules:
+ is_a: owl_axiom_annotation
+ slot_conditions:
+ annotation_predicate:
+ equals_string: "oio:hasDbXref"
slots:
evidence_type:
publication:
diff --git a/src/semsql/linkml/owl.yaml b/src/semsql/linkml/owl.yaml
index 3511804..5e07ff4 100644
--- a/src/semsql/linkml/owl.yaml
+++ b/src/semsql/linkml/owl.yaml
@@ -6,11 +6,11 @@ imports:
- rdf
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_owl: https://w3id.org/semsql/owl
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
default_curi_maps:
- semweb_context
-default_prefix: semsql_owl
+default_prefix: semsql
default_range: string
slots:
restriction:
@@ -42,49 +42,79 @@ slots:
axiom_datatype:
deprecated: use annotation_* instead
classes:
+ typed_node:
+ is_a: node
+ comments:
+ - sqlview>> SELECT subject AS id, object AS node_type FROM rdf_type_statement
ontology_node:
description: A node representing an ontology
- comments:
- - sqlview>> SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:Ontology'
see_also:
- https://www.w3.org/TR/owl2-syntax/#Ontologies
- is_a: node
+ is_a: typed_node
+ classification_rules:
+ is_a: typed_node
+ slot_conditions:
+ node_type:
+ equals_string: "owl:Ontology"
+ typed_property_node:
+ is_a: property_node
object_property_node:
description: A node representing an OWL object property
- comments:
- - sqlview>> SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:ObjectProperty'
see_also:
- https://www.w3.org/TR/owl2-syntax/#Object_Properties
- is_a: property_node
+ is_a: typed_property_node
+ classification_rules:
+ is_a: typed_node
+ slot_conditions:
+ node_type:
+ equals_string: "owl:ObjectProperty"
transitive_property_node:
description: A node representing an OWL transitive object property
- comments:
- - sqlview>> SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:TransitiveProperty'
is_a: object_property_node
+ classification_rules:
+ is_a: typed_node
+ slot_conditions:
+ node_type:
+ equals_string: "owl:TransitiveProperty"
symmetric_property_node:
description: A node representing an OWL symmetric object property
- comments:
- - sqlview>> SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:SymmetricProperty'
is_a: object_property_node
+ classification_rules:
+ is_a: typed_node
+ slot_conditions:
+ node_type:
+ equals_string: "owl:SymmetricProperty"
reflexive_property_node:
description: A node representing an OWL reflexive object property
- comments:
- - sqlview>> SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:IrreflexiveProperty'
is_a: object_property_node
+ classification_rules:
+ is_a: typed_node
+ slot_conditions:
+ node_type:
+ equals_string: "owl:ReflexiveProperty"
irreflexive_property_node:
description: A node representing an OWL irreflexive object property
- comments:
- - sqlview>> SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:ReflexiveProperty'
is_a: object_property_node
+ classification_rules:
+ is_a: typed_node
+ slot_conditions:
+ node_type:
+ equals_string: "owl:IrreflexiveProperty"
asymmetric_property_node:
- comments:
- - sqlview>> SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:AsymmetricProperty'
is_a: object_property_node
+ classification_rules:
+ is_a: typed_node
+ slot_conditions:
+ node_type:
+ equals_string: "owl:AsymmetricProperty"
annotation_property_node:
description: A node representing an OWL annotation property
- comments:
- - sqlview>> SELECT DISTINCT subject AS id FROM rdf_type_statement WHERE object='owl:AnnotationProperty'
- is_a: property_node
+ is_a: typed_property_node
+ classification_rules:
+ is_a: typed_node
+ slot_conditions:
+ node_type:
+ equals_string: "owl:AnnotationProperty"
deprecated_node:
aliases:
- deprecated IRI
@@ -96,14 +126,29 @@ classes:
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='owl:imports'
is_a: node_to_node_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "owl:imports"
owl_inverse_of_statement:
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='owl:inverseOf'
is_a: node_to_node_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "owl:inverseOf"
owl_complement_of_statement:
comments:
- sqlview>> SELECT * FROM statements WHERE predicate='owl:complementOf'
is_a: node_to_node_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "owl:complementOf"
owl_equivalent_class_statement:
description: A statement that connects two class_nodes where both classes are
equivalent
@@ -119,11 +164,14 @@ classes:
description: One of the two classes that are equivalent. No significance to
subject vs object
range: class_node
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "owl:equivalentClass"
owl_same_as_statement:
description: A statement that connects two individual nodes where both individual
are equivalent
- comments:
- - sqlview>> SELECT * FROM statements WHERE predicate='owl:sameAs'
is_a: node_to_node_statement
slot_usage:
subject:
@@ -134,9 +182,12 @@ classes:
description: One of the two classes that are equivalent. No significance to
subject vs object
range: named_individual_node
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "owl:sameAs"
owl_disjoint_class_statement:
- comments:
- - sqlview>> SELECT * FROM statements WHERE predicate='owl:disjointWith'
is_a: node_to_node_statement
slot_usage:
subject:
@@ -147,6 +198,11 @@ classes:
description: One of the two classes that are disjoint. No significance to
subject vs object
range: class_node
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "owl:disjointWith"
owl_reified_axiom:
description: An OWL axiom that has been reified - i.e. it includes an [id](id)
field that uniquely identifies that axiom and which can be the subject of additional
diff --git a/src/semsql/linkml/rdf.yaml b/src/semsql/linkml/rdf.yaml
index 9cd30f6..9846d80 100644
--- a/src/semsql/linkml/rdf.yaml
+++ b/src/semsql/linkml/rdf.yaml
@@ -6,12 +6,12 @@ imports:
- linkml:types
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_rdf: https://w3id.org/semsql/rdf
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
sh: http://www.w3.org/ns/shacl#
default_curi_maps:
- semweb_context
-default_prefix: semsql_rdf
+default_prefix: semsql
default_range: string
subsets:
export:
@@ -200,6 +200,7 @@ classes:
predicate:
equals_string: "rdfs:subPropertyOf"
rdfs_label_statement:
+ description: A statement that connects a node to a human-readable label
is_a: node_to_value_statement
slot_usage:
value:
@@ -211,13 +212,39 @@ classes:
predicate:
equals_string: "rdfs:label"
rdfs_domain_statement:
- comments:
- - sqlview>> SELECT * FROM statements WHERE predicate='rdfs:domain'
+ description: A statement that connects a property to its domain class
is_a: node_to_node_statement
+ slot_usage:
+ subject:
+ role: property
+ description: The property to which the domain applies
+ range: property_node
+ object:
+ role: domain
+ description: The domain of the property
+ range: class_node
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "rdfs:domain"
rdfs_range_statement:
- comments:
- - sqlview>> SELECT * FROM statements WHERE predicate='rdfs:range'
+ description: A statement that connects a property to its range class or literal type
is_a: node_to_node_statement
+ slot_usage:
+ subject:
+ role: property
+ description: The property to which the range applies
+ range: property_node
+ object:
+ role: range
+ description: The range of the property
+ range: class_node
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "rdfs:range"
rdf_list_statement:
description: A statement that is used to represent aspects of RDF lists
is_a: statements
@@ -230,16 +257,22 @@ classes:
description: A statement that connects a list to its first element. This is a
low-level triple, it is unlikely you need to use this directly. It is used to
define rdf_list_member_statement, which is more useful
- comments:
- - sqlview>> SELECT * FROM statements WHERE predicate='rdf:first'
is_a: rdf_list_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "rdf:first"
rdf_rest_statement:
description: A statement that connects a list to its remaining elements. This
is a low-level triple, it is unlikely you need to use this directly. It is used
to define rdf_list_member_statement, which is more useful
- comments:
- - sqlview>> SELECT * FROM statements WHERE predicate='rdf:rest'
is_a: rdf_list_statement
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "rdf:rest"
rdf_rest_transitive_statement:
comments:
- "sqlview>>\n WITH RECURSIVE rdf_rest_transitive_statement\n (\n\
@@ -289,10 +322,15 @@ classes:
rdf_list_node:
description: A node representing an RDF list. Note that you will not likely need
to use this directly.
- comments:
- - sqlview>> SELECT distinct subject AS id from rdf_type_statement WHERE object
- = 'rdf:List';
+# comments:
+# - sqlview>> SELECT distinct subject AS id from rdf_type_statement WHERE object
+# = 'rdf:List';
is_a: blank_node
+ classification_rules:
+ is_a: rdf_type_statement
+ slot_conditions:
+ object:
+ equals_string: "rdf:List"
iri_node:
aliases:
- IRI
diff --git a/src/semsql/linkml/relation_graph.yaml b/src/semsql/linkml/relation_graph.yaml
index 2de3bac..6ea65c9 100644
--- a/src/semsql/linkml/relation_graph.yaml
+++ b/src/semsql/linkml/relation_graph.yaml
@@ -12,11 +12,11 @@ imports:
- owl
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_rg: https://w3id.org/semsql/relation_graph
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
default_curi_maps:
- semweb_context
-default_prefix: semsql_rg
+default_prefix: semsql
default_range: string
slots:
anchor_object:
@@ -201,6 +201,31 @@ classes:
- subject
- predicate
- object
+ entailed_subclass_of_edge:
+ is_a: entailed_edge
+ slot_usage:
+ subject:
+ description: The subclass element of the triple
+ range: class_node
+ object:
+ description: The superclass element of the triple
+ range: class_node
+ classification_rules:
+ is_a: entailed_edge
+ slot_conditions:
+ predicate:
+ equals_string: "rdfs:subClassOf"
+ entailed_type_edge:
+ is_a: entailed_edge
+ slot_usage:
+ object:
+ description: The superclass element of the triple
+ range: class_node
+ classification_rules:
+ is_a: entailed_edge
+ slot_conditions:
+ predicate:
+ equals_string: "rdf:type"
entailed_edge_cycle:
description: An edge that composes with another edge to make a cycle
comments:
diff --git a/src/semsql/linkml/ro.yaml b/src/semsql/linkml/ro.yaml
index 195bb74..34790cb 100644
--- a/src/semsql/linkml/ro.yaml
+++ b/src/semsql/linkml/ro.yaml
@@ -7,10 +7,12 @@ description: |-
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_ro: https://w3id.org/semsql/ro/
+ RO: http://purl.obolibrary.org/obo/RO_
+ BFO: http://purl.obolibrary.org/obo/BFO_
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
-default_prefix: semsql_ro
+default_prefix: semsql
default_range: string
default_curi_maps:
@@ -23,8 +25,20 @@ imports:
classes:
- conjugate acid of edge:
- slot_uri: obo:chebi#is_conjugate_acid_of
+ part_of_edge:
+ slot_uri: BFO:0000050
is_a: edge
- comments:
- - sqlview>> SELECT * FROM edge WHERE predicate = 'obo:chebi#is_conjugate_acid_of';
+ classification_rules:
+ is_a: edge
+ slot_conditions:
+ predicate:
+ equals_string: "BFO:0000050"
+
+ has_part_edge:
+ slot_uri: BFO:0000051
+ is_a: edge
+ classification_rules:
+ is_a: edge
+ slot_conditions:
+ predicate:
+ equals_string: "BFO:0000051"
diff --git a/src/semsql/linkml/semsql.yaml b/src/semsql/linkml/semsql.yaml
index 6eafad8..a5efb8d 100644
--- a/src/semsql/linkml/semsql.yaml
+++ b/src/semsql/linkml/semsql.yaml
@@ -1,4 +1,4 @@
-id: https://w3id.org/kgcl/semsql
+id: https://w3id.org/semsql
name: semsql
title: Semantic SQL
description: |-
diff --git a/src/semsql/linkml/similarity.yaml b/src/semsql/linkml/similarity.yaml
index 98a9bd8..17bffe7 100644
--- a/src/semsql/linkml/similarity.yaml
+++ b/src/semsql/linkml/similarity.yaml
@@ -7,11 +7,11 @@ imports:
- relation_graph
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_similarity: https://w3id.org/semsql/similarity
+ semsql_similarity: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
default_curi_maps:
- semweb_context
-default_prefix: semsql_nlp
+default_prefix: semsql
default_range: string
classes:
diff --git a/src/semsql/linkml/taxon_constraints.yaml b/src/semsql/linkml/taxon_constraints.yaml
index 1e98e94..9a581cf 100644
--- a/src/semsql/linkml/taxon_constraints.yaml
+++ b/src/semsql/linkml/taxon_constraints.yaml
@@ -10,11 +10,11 @@ imports:
- relation_graph
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_rg: https://w3id.org/semsql/relation_graph
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
default_curi_maps:
- semweb_context
-default_prefix: semsql_rg
+default_prefix: semsql
default_range: string
slots:
query_taxon: {}
@@ -44,10 +44,12 @@ classes:
given taxon
todos:
- add a UNION to capture cases where no encoded as OWL TBox axiom
- comments:
- - "sqlview>>\n SELECT subject, predicate, object FROM statements WHERE predicate\
- \ = 'RO:0002161'"
is_a: direct_taxon_constraint
+ classification_rules:
+ is_a: statements
+ slot_conditions:
+ predicate:
+ equals_string: "RO:0002161"
direct_in_taxon:
description: A direct taxon constraint that asserts a node is ONLY found in the
given taxon
@@ -107,4 +109,3 @@ classes:
\ = msct.taxon_with_constraint\n AND sc.subject != sc.object\n AND\
\ msct.subject = ct.subject\n )"
is_a: inferred_taxon_constraint
-source_file: ../semantic-sql/src/linkml/taxon_constraints.yaml
diff --git a/src/semsql/linkml/term_associations.yaml b/src/semsql/linkml/term_associations.yaml
index 3c9b487..13148b5 100644
--- a/src/semsql/linkml/term_associations.yaml
+++ b/src/semsql/linkml/term_associations.yaml
@@ -9,11 +9,11 @@ imports:
- omo
license: https://creativecommons.org/publicdomain/zero/1.0/
prefixes:
- semsql_ta: https://w3id.org/semsql/term_associations
+ semsql: https://w3id.org/semsql/
linkml: https://w3id.org/linkml/
default_curi_maps:
- semweb_context
-default_prefix: semsql_ta
+default_prefix: semsql
default_range: string
classes:
term_association:
diff --git a/src/semsql/sqlutils/view2table.py b/src/semsql/sqlutils/view2table.py
index 76b5b8f..83d39a3 100644
--- a/src/semsql/sqlutils/view2table.py
+++ b/src/semsql/sqlutils/view2table.py
@@ -8,6 +8,7 @@
# DEPRECATED
+
@click.command()
@click.argument("inputs", nargs=-1)
@click.option("--index/--no-index", default=True, help="Create indexes on each column")
@@ -16,7 +17,7 @@
"-n",
help="Name of class/view to materialize. If blank, will perform for ALL",
)
-def cli(inputs, name: str, index: bool, combinatorial: bool=False):
+def cli(inputs, name: str, index: bool, combinatorial: bool = False):
"""
Generates a command that turns a view into a table
@@ -45,12 +46,15 @@ def cli(inputs, name: str, index: bool, combinatorial: bool=False):
raise ValueError("Cannot use combinatorial without index")
s = sv.class_slots(cn)
powerset = itertools.chain.from_iterable(
- itertools.combinations(s, r) for r in range(len(s) + 1))
+ itertools.combinations(s, r) for r in range(len(s) + 1)
+ )
for sns in powerset:
colnames = [underscore(sn) for sn in sns]
- colnames_str = '_'.join(colnames)
- colnames_commasep = ','.join(colnames)
- print(f"CREATE INDEX {tn}_{colnames_str} ON {tn}({colnames_commasep});")
+ colnames_str = "_".join(colnames)
+ colnames_commasep = ",".join(colnames)
+ print(
+ f"CREATE INDEX {tn}_{colnames_str} ON {tn}({colnames_commasep});"
+ )
if __name__ == "__main__":