A-Ready数据管理和集成平台。 LinkML商店在多个不同的后端(包括DuckDB,MongoDB,Neo4J和本地文件系统)提供了一个抽象层,允许进行常见的查询,索引和存储操作。
有关完整文档,请参见https://linkml.io/linkml-store/
请参阅这些幻灯片以获取高级概述。
警告LinkMl商店仍在进行更改和重构,API和命令行选项可能会更改!
安装,添加数据,查询它:
pip install linkml-store[all]
linkml-store -d duckdb:///db/my.db -c persons insert data/*.json
linkml-store -d duckdb:///db/my.db -c persons query -w "occupation: Bricklayer"
索引,搜索它:
linkml-store -d duckdb:///db/my.db -c persons index -t llm
linkml-store -d duckdb:///db/my.db -c persons search "all persons employed in construction"
验证它:
linkml-store -d duckdb:///db/my.db -c persons validate
大多数数据库API实现了CRUD模式:创建,读取,更新,删除。 linkML商店将搜索和推断添加到此模式中,使其成为crudsi 。
“搜索”和“推论”的概念旨在灵活和扩展,包括:
LinkML商店旨在与多个后端一起使用,提供了一个常见的抽象层
mongodb
DuckdB
索尔
neo4j
文件系统
即将推出:任何RDBMS,任何三重三级,Neo4J,基于HDF5的商店,Chromadb/vector DBS ...
目的是将每个后端的所有特征结合在一起。例如,为所有后端提供了分析性的查询,而不仅仅是Solr。
许多后端都带有自己的索引和搜索方案。从经典上讲,这是基于Lucene的索引,现在是使用LLM嵌入的语义搜索。
linkMl商店将索引视为正交问题 - 您可以组成不同后端的不同索引方案。您无需拥有矢量数据库即可运行嵌入搜索!
查看如何使用语义搜索
托多 - 文档
LinkMl商店得到了LinkML的支持,LinkML允许具有强大的表达性结构和语义约束。
请参阅索引JSON
和参考完整性
在使用FastAPI实施的Hateoas原则之后,有一个初步的API。
要开始,您应该首先创建一个配置文件,例如db/conf.yaml :
然后运行:
export LINKML_STORE_CONFIG=./db/conf.yaml
make api
API返回链接以及数据对象,建议使用Chrome插件进行JSON查看以探索API。托多:在这里添加文档。
主要终点是:
http://localhost:8000/ - API的根http://localhost:8000/pages/ - 通过html浏览APIhttp://localhost:8000/docs -Swagger UI make app
请参阅这些幻灯片以获取更多细节