from ontoenv import OntoEnv, version
from rdflib import Graph
print(version)
print("Make env. Fetching all ontologies in ../brick and their dependencies, and caching them locally. This may take a minute the first time, but will be fast on subsequent runs.")
env = OntoEnv(search_directories=["../brick"], strict=False, offline=False, create_or_use_cached=True)
print(env)
g, closure_names = env.get_closure("https://brickschema.org/schema/1.4/Brick")
print(f"Brick closure has {len(g)} triples and includes the following ontologies: {closure_names}")
print("Working with local Brick")
brick = Graph()
brick.parse("../brick/Brick.ttl", format="turtle")
env.import_dependencies(brick)
print(f"Brick graph has {len(brick)} triples after importing dependencies")
brick_name = env.add("https://brickschema.org/schema/1.4.4/Brick.ttl")
print(f"Added {brick_name} to env")
del env
env2 = OntoEnv(create_or_use_cached=True)
print(env2.store_path())
print("get brick again from URL")
brick = env2.copy_graph("https://brickschema.org/schema/1.4/Brick")
print(f"Brick graph has {len(brick)} triples")
print(brick)
print(type(brick))
print("brick closure", env2.list_closure("https://brickschema.org/schema/1.4/Brick"))
env2.import_graph(brick, "https://w3id.org/rec")
brick.serialize("test.ttl", format="turtle")
print("qudtqk deps", env2.get_importers("http://qudt.org/2.1/vocab/quantitykind"))
ds = env2.get_dataset()
for graph in list(ds.graphs()):
print(f"Graph {graph.identifier} has {len(graph)} triples")