Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: 🐛 Bug report
description: Report a problem with SERAMIS
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thanks for reporting a bug! Please fill in as much detail as possible.
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what the bug is.
validations:
required: true
- type: dropdown
id: component
attributes:
label: Affected component
options:
- Frontend (React UI)
- Backend (FastAPI)
- Reasoner service
- Forensic agent
- MCP SPARQL server
- Ontology / semantic resources
- Docker / deployment
- Other / not sure
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: How can we reproduce the behavior?
placeholder: |
1. Go to '...'
2. Run '...'
3. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs / screenshots
description: Paste relevant logs or attach screenshots.
render: shell
- type: input
id: version
attributes:
label: Version / commit
placeholder: "v1.0.0 or commit hash"
- type: textarea
id: environment
attributes:
label: Environment
placeholder: "OS, Docker version, browser, etc."
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: 💬 Questions & discussion
url: https://github.com/cartesiosson/ai_act_project/discussions
about: Ask questions or discuss ideas about SERAMIS here.
- name: 🔒 Report a security vulnerability
url: https://github.com/cartesiosson/ai_act_project/security/advisories/new
about: Please report vulnerabilities privately, not as public issues.
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: ✨ Feature request
description: Suggest an idea or enhancement for SERAMIS
title: "[Feature]: "
labels: ["enhancement", "triage"]
body:
- type: textarea
id: problem
attributes:
label: Problem / motivation
description: Is your feature request related to a problem? Please describe.
placeholder: "I'm always frustrated when..."
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed solution
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: dropdown
id: area
attributes:
label: Area
options:
- Frontend (React UI)
- Backend (FastAPI)
- Reasoner service
- Forensic agent
- MCP SPARQL server
- Ontology / semantic resources
- Documentation
- Other
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
- type: textarea
id: context
attributes:
label: Additional context
30 changes: 30 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!-- Thanks for contributing to SERAMIS! Please fill in the sections below. -->

## Description

<!-- What does this PR do? Why is it needed? -->

## Related issue

<!-- e.g. Closes #123 -->

## Type of change

- [ ] 🐛 Bug fix
- [ ] ✨ New feature
- [ ] 📝 Documentation
- [ ] 🧠 Ontology / semantic resources
- [ ] ♻️ Refactor
- [ ] 🔒 Security

## Checklist

- [ ] My code follows the project's [coding guidelines](../CONTRIBUTING.md)
- [ ] I built/ran the affected services locally
- [ ] I updated documentation / `CHANGELOG` where relevant
- [ ] I did **not** commit secrets (`.env` stays git-ignored)
- [ ] Ontology changes (if any) preserve backwards compatibility or are noted

## Screenshots / notes

<!-- Optional: UI screenshots, query examples, benchmark numbers, etc. -->
49 changes: 49 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
frontend-build:
name: Frontend build
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: frontend/package-lock.json
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build

python-checks:
name: Python syntax & lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Byte-compile all services (syntax check)
run: python -m compileall -q backend reasoner_service forensic_agent mcp-servers
- name: Lint with Ruff (advisory)
continue-on-error: true
run: |
python -m pip install --upgrade pip ruff
ruff check backend reasoner_service forensic_agent mcp-servers
32 changes: 32 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
cff-version: 1.2.0
message: "If you use SERAMIS in your research, please cite it as below."
title: "SERAMIS — Semantic Reasoning and AI Management Intelligent System"
abstract: >-
SERAMIS is an automated semantic assessment platform for compliance with the
European Union Artificial Intelligence Act (EU AI Act). It combines a formal
OWL ontology with SWRL/SHACL inference rules to automatically derive
compliance requirements, risk classifications and regulatory obligations,
with multi-framework mappings to ISO/IEC 42001, NIST AI RMF and W3C DPV.
type: software
version: 1.0.0
date-released: 2026-06-16
license: MIT
repository-code: "https://github.com/cartesiosson/ai_act_project"
url: "https://github.com/cartesiosson/ai_act_project"
keywords:
- EU AI Act
- ontology
- semantic reasoning
- SWRL
- SHACL
- regulatory compliance
- knowledge graph
- DPV
- ISO 42001
- NIST AI RMF
authors:
- family-names: "Fernández González"
given-names: "David"
- family-names: "Ortega de Mues"
given-names: "Mariano"
affiliation: "Universidad Internacional de La Rioja (UNIR)"
57 changes: 57 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment include:

- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes
- Focusing on what is best for the overall community

Examples of unacceptable behavior include:

- The use of sexualized language or imagery, and sexual attention or advances
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards and
will take appropriate and fair corrective action in response to any behavior
that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the project maintainers at **mariano.ortegademues@gmail.com**.
All complaints will be reviewed and investigated promptly and fairly.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
https://www.contributor-covenant.org/version/2/1/code_of_conduct.html

[homepage]: https://www.contributor-covenant.org
92 changes: 92 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Contributing to SERAMIS

First off, thank you for taking the time to contribute! 🎉

SERAMIS is an academic and open-source project. Contributions of all kinds are
welcome: bug reports, feature proposals, documentation improvements, ontology
refinements and code.

## Table of Contents

- [Code of Conduct](#code-of-conduct)
- [How can I contribute?](#how-can-i-contribute)
- [Development setup](#development-setup)
- [Branching and commits](#branching-and-commits)
- [Pull request process](#pull-request-process)
- [Coding guidelines](#coding-guidelines)
- [Reporting security issues](#reporting-security-issues)

## Code of Conduct

This project and everyone participating in it is governed by the
[Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to
uphold it.

## How can I contribute?

- **Reporting bugs** — open an issue using the *Bug report* template. Include
steps to reproduce, the affected service, and logs where possible.
- **Suggesting features** — open an issue using the *Feature request* template.
- **Improving the ontology** — changes under `ontologias/` should preserve
backwards compatibility where possible and update `ontologias/CHANGELOG.md`.
- **Code** — pick an open issue (or open one first to discuss) and submit a PR.

## Development setup

The full stack runs via Docker Compose:

```bash
cp .env.example .env # adjust values; never commit your .env
docker compose up --build
```

Services and ports:

| Service | Port | Description |
|------------------|-------|--------------------------------------|
| Frontend (Vite) | 5173 | React UI |
| Backend (FastAPI)| 8000 | Core derivation & requirements API |
| Reasoner | 8001 | SWRL/Pellet inference |
| Forensic agent | 8002 | LLM incident analysis (ReAct) |
| MCP SPARQL | 8080 | Model Context Protocol SPARQL server |
| Ontology docs | 80 | Static ontology documentation |
| Fuseki | 3030 | RDF triple store |
| MongoDB | 27017 | Document persistence |
| Ollama | 11434 | Local LLM provider |

For frontend-only work:

```bash
cd frontend
npm ci
npm run dev
```

## Branching and commits

- Branch from `main` using a descriptive prefix:
`feat/...`, `fix/...`, `docs/...`, `chore/...`, `refactor/...`.
- Write clear, imperative commit messages (e.g. `fix: escape IRIs in SPARQL delete`).
- Keep commits focused; avoid mixing unrelated changes.

## Pull request process

1. Ensure the project builds (`npm run build` in `frontend/`; services start
under `docker compose`).
2. Update documentation and `CHANGELOG` entries where relevant.
3. Fill in the PR template and link the related issue.
4. At least one maintainer review is required before merge.

## Coding guidelines

- **Python**: follow PEP 8. Prefer explicit error handling over bare `except`.
Validate and sanitize any user input that reaches a SPARQL or database query.
- **TypeScript/React**: keep `strict` mode clean; avoid `any`; prefer small,
composable components.
- Do not commit secrets. Use `.env` (git-ignored) and keep `.env.example`
populated with safe placeholder values only.

## Reporting security issues

Please do **not** open public issues for security vulnerabilities. See
[SECURITY.md](SECURITY.md) for responsible disclosure instructions.
Loading
Loading