├── .gitignore ├── CLAUDE.md ├── README.md ├── examples.md ├── examples ├── ancient-philosophers-fixed.json ├── ancient-philosophers.json ├── classical-composers.json ├── european-monarchs.json ├── extract-classes.json ├── extract-ontology-simple.json ├── extract-ontology.json ├── extract-properties.json ├── fastest-growing-cities.json ├── film-directors.json ├── generate-portal.json ├── jsonld-nested-operations.json ├── jsonld-with-foreach-data.json ├── nobel-physics-laureates.json ├── scientific-discoveries.json └── united-kingdom-cities.json ├── formal-semantics.md ├── poetry.lock ├── prompts ├── system.md └── user.template.txt ├── pyproject.toml ├── src └── web_algebra │ ├── __init__.py │ ├── __main__.py │ ├── client.py │ ├── json_result.py │ ├── logging.conf │ ├── main.py │ ├── mcp_tool.py │ ├── operation.py │ ├── operations │ ├── __init__.py │ ├── bindings.py │ ├── current.py │ ├── execute.py │ ├── filter.py │ ├── for_each.py │ ├── linked_data │ │ ├── __init__.py │ │ ├── get.py │ │ ├── patch.py │ │ ├── post.py │ │ └── put.py │ ├── linkeddatahub │ │ ├── __init__.py │ │ ├── add_generic_service.py │ │ ├── add_result_set_chart.py │ │ ├── add_select.py │ │ ├── add_view.py │ │ ├── content │ │ │ ├── __init__.py │ │ │ ├── add_object_block.py │ │ │ ├── add_xhtml_block.py │ │ │ ├── generate_class_containers.py │ │ │ ├── generate_ontology_views.py │ │ │ ├── generate_portal.py │ │ │ └── remove_block.py │ │ ├── create_container.py │ │ ├── create_item.py │ │ └── list.py │ ├── merge.py │ ├── resolve_uri.py │ ├── schema │ │ ├── __init__.py │ │ ├── extract_classes.py │ │ ├── extract_datatype_properties.py │ │ ├── extract_object_properties.py │ │ └── extract_ontology.py │ ├── sparql │ │ ├── __init__.py │ │ ├── construct.py │ │ ├── describe.py │ │ ├── select.py │ │ └── substitute.py │ ├── sparql_string.py │ ├── str.py │ ├── string │ │ ├── __init__.py │ │ ├── concat.py │ │ ├── encode_for_uri.py │ │ └── replace.py │ ├── struuid.py │ ├── uri.py │ ├── value.py │ └── variable.py │ └── server.py ├── tests ├── negative │ └── error-case-type-mismatch-uri-to-string.json ├── positive │ ├── complex-operation.json │ ├── composition-nested-operations-deep.json │ ├── ldh-composition-create-container-add-select.json │ ├── linkeddatahub-put-test.json │ ├── simple-composition-working.json │ ├── simple-operation.json │ └── simple-recursive.json └── test_web_algebra.py └── uv.lock /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/.gitignore -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/README.md -------------------------------------------------------------------------------- /examples.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples.md -------------------------------------------------------------------------------- /examples/ancient-philosophers-fixed.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/ancient-philosophers-fixed.json -------------------------------------------------------------------------------- /examples/ancient-philosophers.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/ancient-philosophers.json -------------------------------------------------------------------------------- /examples/classical-composers.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/classical-composers.json -------------------------------------------------------------------------------- /examples/european-monarchs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/european-monarchs.json -------------------------------------------------------------------------------- /examples/extract-classes.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/extract-classes.json -------------------------------------------------------------------------------- /examples/extract-ontology-simple.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/extract-ontology-simple.json -------------------------------------------------------------------------------- /examples/extract-ontology.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/extract-ontology.json -------------------------------------------------------------------------------- /examples/extract-properties.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/extract-properties.json -------------------------------------------------------------------------------- /examples/fastest-growing-cities.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/fastest-growing-cities.json -------------------------------------------------------------------------------- /examples/film-directors.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/film-directors.json -------------------------------------------------------------------------------- /examples/generate-portal.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/generate-portal.json -------------------------------------------------------------------------------- /examples/jsonld-nested-operations.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/jsonld-nested-operations.json -------------------------------------------------------------------------------- /examples/jsonld-with-foreach-data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/jsonld-with-foreach-data.json -------------------------------------------------------------------------------- /examples/nobel-physics-laureates.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/nobel-physics-laureates.json -------------------------------------------------------------------------------- /examples/scientific-discoveries.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/scientific-discoveries.json -------------------------------------------------------------------------------- /examples/united-kingdom-cities.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/examples/united-kingdom-cities.json -------------------------------------------------------------------------------- /formal-semantics.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/formal-semantics.md -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/poetry.lock -------------------------------------------------------------------------------- /prompts/system.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/prompts/system.md -------------------------------------------------------------------------------- /prompts/user.template.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/prompts/user.template.txt -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/pyproject.toml -------------------------------------------------------------------------------- /src/web_algebra/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/web_algebra/__main__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/__main__.py -------------------------------------------------------------------------------- /src/web_algebra/client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/client.py -------------------------------------------------------------------------------- /src/web_algebra/json_result.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/json_result.py -------------------------------------------------------------------------------- /src/web_algebra/logging.conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/web_algebra/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/main.py -------------------------------------------------------------------------------- /src/web_algebra/mcp_tool.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/mcp_tool.py -------------------------------------------------------------------------------- /src/web_algebra/operation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operation.py -------------------------------------------------------------------------------- /src/web_algebra/operations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/web_algebra/operations/bindings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/bindings.py -------------------------------------------------------------------------------- /src/web_algebra/operations/current.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/current.py -------------------------------------------------------------------------------- /src/web_algebra/operations/execute.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/execute.py -------------------------------------------------------------------------------- /src/web_algebra/operations/filter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/filter.py -------------------------------------------------------------------------------- /src/web_algebra/operations/for_each.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/for_each.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linked_data/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/web_algebra/operations/linked_data/get.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linked_data/get.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linked_data/patch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linked_data/patch.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linked_data/post.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linked_data/post.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linked_data/put.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linked_data/put.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/add_generic_service.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/add_generic_service.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/add_result_set_chart.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/add_result_set_chart.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/add_select.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/add_select.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/add_view.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/add_view.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/content/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/content/add_object_block.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/content/add_object_block.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/content/add_xhtml_block.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/content/add_xhtml_block.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/content/generate_class_containers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/content/generate_class_containers.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/content/generate_ontology_views.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/content/generate_ontology_views.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/content/generate_portal.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/content/generate_portal.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/content/remove_block.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/content/remove_block.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/create_container.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/create_container.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/create_item.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/create_item.py -------------------------------------------------------------------------------- /src/web_algebra/operations/linkeddatahub/list.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/linkeddatahub/list.py -------------------------------------------------------------------------------- /src/web_algebra/operations/merge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/merge.py -------------------------------------------------------------------------------- /src/web_algebra/operations/resolve_uri.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/resolve_uri.py -------------------------------------------------------------------------------- /src/web_algebra/operations/schema/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/web_algebra/operations/schema/extract_classes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/schema/extract_classes.py -------------------------------------------------------------------------------- /src/web_algebra/operations/schema/extract_datatype_properties.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/schema/extract_datatype_properties.py -------------------------------------------------------------------------------- /src/web_algebra/operations/schema/extract_object_properties.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/schema/extract_object_properties.py -------------------------------------------------------------------------------- /src/web_algebra/operations/schema/extract_ontology.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/schema/extract_ontology.py -------------------------------------------------------------------------------- /src/web_algebra/operations/sparql/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/web_algebra/operations/sparql/construct.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/sparql/construct.py -------------------------------------------------------------------------------- /src/web_algebra/operations/sparql/describe.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/sparql/describe.py -------------------------------------------------------------------------------- /src/web_algebra/operations/sparql/select.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/sparql/select.py -------------------------------------------------------------------------------- /src/web_algebra/operations/sparql/substitute.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/sparql/substitute.py -------------------------------------------------------------------------------- /src/web_algebra/operations/sparql_string.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/sparql_string.py -------------------------------------------------------------------------------- /src/web_algebra/operations/str.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/str.py -------------------------------------------------------------------------------- /src/web_algebra/operations/string/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/web_algebra/operations/string/concat.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/string/concat.py -------------------------------------------------------------------------------- /src/web_algebra/operations/string/encode_for_uri.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/string/encode_for_uri.py -------------------------------------------------------------------------------- /src/web_algebra/operations/string/replace.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/string/replace.py -------------------------------------------------------------------------------- /src/web_algebra/operations/struuid.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/struuid.py -------------------------------------------------------------------------------- /src/web_algebra/operations/uri.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/uri.py -------------------------------------------------------------------------------- /src/web_algebra/operations/value.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/value.py -------------------------------------------------------------------------------- /src/web_algebra/operations/variable.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/operations/variable.py -------------------------------------------------------------------------------- /src/web_algebra/server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/src/web_algebra/server.py -------------------------------------------------------------------------------- /tests/negative/error-case-type-mismatch-uri-to-string.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/tests/negative/error-case-type-mismatch-uri-to-string.json -------------------------------------------------------------------------------- /tests/positive/complex-operation.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/tests/positive/complex-operation.json -------------------------------------------------------------------------------- /tests/positive/composition-nested-operations-deep.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/tests/positive/composition-nested-operations-deep.json -------------------------------------------------------------------------------- /tests/positive/ldh-composition-create-container-add-select.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/tests/positive/ldh-composition-create-container-add-select.json -------------------------------------------------------------------------------- /tests/positive/linkeddatahub-put-test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/tests/positive/linkeddatahub-put-test.json -------------------------------------------------------------------------------- /tests/positive/simple-composition-working.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/tests/positive/simple-composition-working.json -------------------------------------------------------------------------------- /tests/positive/simple-operation.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/tests/positive/simple-operation.json -------------------------------------------------------------------------------- /tests/positive/simple-recursive.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/tests/positive/simple-recursive.json -------------------------------------------------------------------------------- /tests/test_web_algebra.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/tests/test_web_algebra.py -------------------------------------------------------------------------------- /uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtomGraph/Web-Algebra/HEAD/uv.lock --------------------------------------------------------------------------------