info

About the Project

WebDev Semantic Directory is a web development technology directory powered by the Semantic Web. The project uses an OWL/RDF ontology to represent knowledge about hundreds of technologies and the relationships between them.

Data is stored in the Turtle format (.ttl) and can be queried with SPARQL through Apache Jena Fuseki, or directly from the local ontology file using the N3.js parser.

category30+ Categories
hub20 Relation Types
devices100+ Technologies
codeSPARQL Ready
account_tree

Ontology Architecture

The ontology uses the namespace http://webdev.id/ontology#. All technology classes are subclasses of ex:Technology.

Class Hierarchy

ex:Technology
├── ex:Framework
│   ├── ex:MobileFramework
│   └── ex:DesktopFramework
├── ex:Library
│   ├── ex:UIComponentLib
│   ├── ex:CSSFramework
│   ├── ex:StateManagement
│   ├── ex:Animation
│   └── ex:ValidationLib
├── ex:Database
├── ex:ORM
├── ex:Language
├── ex:Runtime
├── ex:BuildTool
├── ex:TestingTool
├── ex:CloudProvider
├── ex:DeploymentTool
├── ex:CITool
└── ... (30+ categories)

Prefixes Used

PREFIX ex:   <http://webdev.id/ontology#>
PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd:  <http://www.w3.org/2001/XMLSchema#>

Example Technology Declaration (Turtle)

ex:NextJS a ex:Framework ;
    rdfs:label "Next.js" ;
    ex:description "React framework for production" ;
    ex:website "https://nextjs.org" ;
    ex:version "14.0" ;
    ex:githubStars "120000" ;
    ex:usesLanguage ex:JavaScript, ex:TypeScript ;
    ex:isBuiltOn ex:NodeJS ;
    ex:isFrameworkOf ex:React ;
    ex:deployedOn ex:Vercel .
category

Technology Categories

Framework

ex:Framework

Mobile Framework

ex:MobileFramework

Desktop Framework

ex:DesktopFramework

Library

ex:Library

UI Component Library

ex:UIComponentLib

CSS Framework

ex:CSSFramework

State Management

ex:StateManagement

Animation Library

ex:Animation

Validation Library

ex:ValidationLib

Search Engine

ex:SearchTool

ORM

ex:ORM

Database

ex:Database

Language

ex:Language

Runtime

ex:Runtime

Package Manager

ex:PackageManager

Build Tool

ex:BuildTool

Monorepo Tool

ex:Monorepo

Testing Tool

ex:TestingTool

API Tool

ex:APITool

Linter / Formatter

ex:Linter

Auth Tool

ex:AuthTool

Cloud Provider

ex:CloudProvider

Deployment Tool

ex:DeploymentTool

CI/CD Tool

ex:CITool

Version Control

ex:VersionControl

Container Tool

ex:ContainerTool

Monitoring Tool

ex:MonitoringTool

Message Broker

ex:MessageBroker

Storage Service

ex:StorageService

Design Tool

ex:DesignTool

Semantic Web Specification

ex:SemanticWebSpec

Triplestore

ex:Triplestore

swap_horiz

Predicates & Relations

The ontology defines 20 object property predicates that connect technologies to one another.

PredicateDomain → RangeDescription
isFrameworkOf
FrameworkLibrary / Runtime

Links a framework to the library/technology it is built upon.

isORMFor
ORMDatabase

Links an ORM to the databases it supports.

isBuiltOn
Framework / LibraryRuntime / Language

A technology built on top of a specific runtime or platform.

implementsSpec
Triplestore / ToolSemanticWebSpec

Implementation of a semantic web standard or specification.

usesLanguage
Framework / LibraryLanguage

The programming language used by a technology.

compatibleWith
TechnologyTechnology

Direct compatibility between two technologies.

alternativeTo
TechnologyTechnology

Technologies that can be used as alternatives to one another.

connectsTo
TechnologyTechnology

Technologies that connect directly within the ecosystem.

integratesWith
TechnologyTechnology

Official or common integration between two technologies.

testedWith
Framework / LibraryTestingTool

Recommended or commonly used testing tools.

deployedOn
Framework / RuntimeCloudProvider / DeploymentTool

Cloud platform or infrastructure where the technology is deployed.

managedBy
Library / FrameworkPackageManager

A technology managed by a particular package manager.

hostedBy
Database / StorageCloudProvider

The hosting service that provides the technology.

monitoredBy
TechnologyMonitoringTool

Monitoring tools used to track performance.

ciWith
Framework / RuntimeCITool

CI/CD pipeline used in the deployment process.

usesBroker
Framework / RuntimeMessageBroker

Message broker used for inter-service communication.

searchedWith
Database / FrameworkSearchTool

Search engine used for full-text search.

storedWith
Framework / RuntimeStorageService

Object or file storage service used.

designedWith
Framework / UILibDesignTool

Design tools used in the UI development workflow.

versionControlledBy
TechnologyVersionControl

Version control system used to manage the code.

terminal

SPARQL Endpoint

SPARQL queries are executed by the built-in engine (Comunica) on the server, directly over the local ontology file — no separate server required. Apache Jena Fuseki can still be used as an option.

offline_bolt

Built-in Engine (Default)

Comunica runs SPARQL 1.1 directly over the local ontology, server-side.

Comunica · ontology/webdev.ttl

Enabled automatically — no extra configuration.

cloud

Fuseki (Optional)

Apache Jena Fuseki triplestore for a full SPARQL server.

env: FUSEKI_ENDPOINT

Used when FUSEKI_ENDPOINT is set; otherwise the built-in engine is used.

tips_and_updates

For production, simply deploy to Vercel — the built-in engine runs without any extra server. To use Fuseki (locally: setup-fuseki.bat), set theFUSEKI_ENDPOINT env to its endpoint URL.

code

Example SPARQL Queries

All Technologies with Their Type

open_in_newTry in Lab
PREFIX ex:   <http://webdev.id/ontology#>
PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd:  <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?label ?typeLabel
WHERE {
  ?tech a ?type .
  ?type rdfs:subClassOf* ex:Technology .
  OPTIONAL { ?tech rdfs:label ?label }
  OPTIONAL { ?type rdfs:label ?typeLabel }
  FILTER(?type != ex:Technology)
}
ORDER BY ?typeLabel ?label

ORMs and Their Supported Databases

open_in_newTry in Lab
PREFIX ex:   <http://webdev.id/ontology#>
PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd:  <http://www.w3.org/2001/XMLSchema#>

SELECT ?ormLabel ?dbLabel
WHERE {
  ?orm a ex:ORM ;
       ex:isORMFor ?db .
  OPTIONAL { ?orm rdfs:label ?ormLabel }
  OPTIONAL { ?db rdfs:label ?dbLabel }
}
ORDER BY ?ormLabel

Frameworks by Programming Language

open_in_newTry in Lab
PREFIX ex:   <http://webdev.id/ontology#>
PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd:  <http://www.w3.org/2001/XMLSchema#>

SELECT ?fwLabel ?langLabel
WHERE {
  ?fw a ex:Framework ;
      ex:usesLanguage ?lang .
  OPTIONAL { ?fw rdfs:label ?fwLabel }
  OPTIONAL { ?lang rdfs:label ?langLabel }
}
ORDER BY ?langLabel ?fwLabel