ols4

作者 EBISPOT已验证

The EMBL-EBI Ontology Lookup Service (OLS)

100
Stars
46
Forks
Java
语言
2026/8/24
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/EBISPOT/ols4

快速入门

使用 ols4 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

The Ontology Lookup Service (OLS) is a repository for biomedical ontologies that aims to provide a single point of access to the latest ontology versions. It provides a website, REST API, and MCP server.

See also:

If you use OLS in your work, please cite our recent publication in Bioinformatics.


This repository contains three projects:

  • The dataloader (dataload directory)
  • The API server (backend directory)
  • The React frontend (frontend directory)

Deploying OLS4

First run the OLS dataload (requires Docker):

OLS4_CONFIG=./dataload/configs/efo.json ./dataload.sh

This will create a PostgreSQL database in the out directory. Now start the OLS stack:

HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose up

You should now be able to access the OLS4 frontend at http://localhost:8081.

If you want to test it with your own ontology, copy the OWL or RDFS ontology file into this repository folder. Then make a new config file for your ontology; you can use efo.json from dataload/configs as a template. For the ontology_purl property in the config, use the relative path in this repository to your ontology e.g. ./myontology.owl. Then follow the above steps for efo with the config filename you created.

Deployment: Using Kubernetes with GitHub Packages

To deploy OLS4 using Kubernetes, Docker images built and uploaded to this repository (using GitHub Packages) are utilized. Software requirements are as follows:

  1. Kubernetes command-line tool, kubectl
  2. Kubernetes package manager, helm

Create data archives for PostgreSQL

First run the OLS dataload (requires Docker):

OLS4_CONFIG=./dataload/configs/efo.json ./dataload.sh

This will create a PostgreSQL database in the out directory.

Startup OLS4 deployment

Uninstall existing ols4 deployments, if any, before installing a new one. Do not forget to set KUBECONFIG environment variable.

IMPORTANT: The use of imageTag is to specify the Docker image (uploaded to this repository) that will be used in the deployment. If not familiar, simply use either the dev or stable image.

export KUBECONFIG=<K8S_CONFIG>
helm install ols4 <OLS4_DIR>/k8chart/ols4 --set imageTag=dev

Developing OLS4

OLS is different to most webapps in that its API provides both full text search and recursive graph queries. It uses PostgreSQL with pgvector, for storing entities, hierarchies, embedding vectors, and full-text search.

  • The dataload directory contains the code which turns ontologies from RDF (specified using OWL and/or RDFS) into JSON and TSV datasets which can be loaded into PostgreSQL; and some minimal bash scripts which help with loading them.
  • The backend directory contains a Spring Boot application which hosts the OLS API over the above PostgreSQL instance
  • The frontend directory contains the React frontend built upon the backend above.

OLS4 overview

Running OLS4 components using Docker

You can run OLS4, or any combination of its consistuent parts (dataload, backend, frontend) in Docker. When developing, it is often useful to run, for example, just PostgreSQL in Docker, while running the API server locally; or to run PostgreSQL and the backend API server in Docker while running the frontend locally.

First install the latest version of Docker Desktop (or compatible, such as Rancher Desktop) if you are on Mac or Windows. This now includes the docker compose command. If you are on Linux, make sure you have the docker compose plugin installed (apt install docker.io docker-compose-plugin on Ubuntu).

Then, start up the components you would like to run. For example, PostgreSQL only (to develop the backend API server and/or frontend):

docker compose up --force-recreate --build --always-recreate-deps --attach-dependencies ols4-postgres

This will start up PostgreSQL with your new dataset on port 5432. To start PostgreSQL AND the backend API server (to develop the frontend):

docker compose up --force-recreate --build --always-recreate-deps --attach-dependencies ols4-postgres ols4-backend

To start everything, including the frontend:

docker compose up --force-recreate --build --always-recreate-deps --attach-dependencies ols4-postgres ols4-backend ols4-frontend

Making the tests pass

OLS has a comprehensive suite of automated CI tests for the dataload and API. If code changes change the output such that it no longer matches testcases_expected_output (mock dataload) and/or testcases_expected_output_api (full Nextflow dataload and API) the CI will fail, and you will need to update the expected output.

Before running your testcases, ensure that your work is already committed. Create a new branch based on the branch you worked on but with a -testcases suffix. I.e., if your branch is called "fix-xyz", the new branch for the testcases will be fix-xyz-testcases. We commit testcases to a separate branch due to the large number of files updated when testcases are run.

Testing the mock dataload

First, build an up to date Docker image for the dataload:

docker build -t ols4-dataload:local -f ./dataload/Dockerfile . --no-cache

Remove the old testcases_expected_output contents from your local working tree:

rm -rf testcases_expected_output/*

Re-populate testcases_expected_output directory with updated test output:

docker run \
    -v $(pwd)/testcases_expected_output:/opt/ols/testcases_output \
    ols4-dataload:local \
    bash -c "cd /opt/ols && ./test_dataload.sh"

Now you can inspect any changes to the files in testcases_expected_output and make sure they are intentional, e.g. using git diff or from VS Code. When you are happy, stage and commit the updated testcases_expected_output.

git add -A testcases_expected_output
git commit -m "Update testcase output"

Testing the full Nextflow dataload and API

First follow the instructions above for testing the mock dataload. Then build up to date Docker images for remainder of the OLS stack:

For backend use following docker command:

docker build -t ols4-backend:local -f ./backend/Dockerfile . --no-cache

For frontend use following docker command:

docker build -t ols4-frontend:local -f ./frontend/Dockerfile ./frontend --no-cache

For apitester use following docker command:

docker build -t ols4-apitester4:local -f ./apitester4/Dockerfile ./apitester4 --no-cache

and then run the API tests with the new images:

export OLS4_BACKEND_IMAGE=ols4-backend:local
export OLS4_FRONTEND_IMAGE=ols4-frontend:local  
export OLS4_APITESTER_IMAGE=ols4-apitester4:local
HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose --profile run-api-tests build --no-cache

Run the test script to produce a testcases_output_api directory:

OLS4_DATALOAD_IMAGE=ols4-dataload:local ./test_api.sh

The log file testcases_output_api/apitester4.log contains diff information. You can also manually compare the files in testcases_output_api with the files in testcases_expected_output_api. Once you are happy the changes are intentional, replace the old test outputs with the new ones:

rm -rf testcases_expected_output_api
mv testcases_output_api testcases_expected_output_api

Stage and commit the updated testcases_expected_output_api:

git add -A testcases_expected_output_api
git commit -m "Update API testcase output"

Running OLS locally

OLS is intended to be run as a containerised application. However, for some debugging scenarios it may be useful to run OLS non-containerised (i.e. outside of Docker). Best effort instructions are provided in RUNNING_LOCALLY.md, though these may not be suitable for all platforms.

Reasoning

OLS does not do any OWL reasoning on ontologies at all. The assumption is that ontologies loaded into OLS are pre-reasoned.

常见问题

What is ols4?

ols4 is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by EBISPOT. The EMBL-EBI Ontology Lookup Service (OLS). It has 100 GitHub stars.

Is ols4 safe to use?

Yes. ols4 passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install ols4?

Clone the repository with "git clone https://github.com/EBISPOT/ols4" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is ols4 written in?

ols4 is primarily written in Java. It is open-source under EBISPOT on GitHub, so you can review or fork the full source.

Are there alternatives to ols4?

Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh ols4 against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

Scrapling

by D4Vinci

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

75,9137,581Python
MCP 服务器
查看详情

TrendRadar

by sansan0

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。

61,65224,883Python
MCP 服务器
查看详情

context7

by upstash

Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

61,0602,938TypeScript
MCP 服务器
查看详情

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

39,9393,219C
MCP 服务器
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情