Semantic Web/Ontology Visualizer
Ontology Visualizer
Upload Turtle, RDF/XML, N-Triples or JSON-LD files and explore the class hierarchy as an interactive graph. Load every file the ontology needs — imports, schema and data — and they're merged into one graph. Nothing leaves your browser.
Turtle, RDF/XML, N-Triples and JSON-LD. Files are read in your browser and never uploaded. Add every file the ontology needs (imported ontologies, schema and data files, JSON-LD contexts): they are merged into one graph.
Legend
- Blue · class
- Purple · SKOS concept
- Green · individual (instance)
- Dashed grey · referenced but not in any loaded file
- subclass of (parent → child)
- additional parent
- property link, labelled with the property (domain → range)
- Coloured dot: the file that declares it
- + / − : click to expand or collapse
- 3 sub · 2 inst: subclasses · individuals
What this does?
An ontology file is hard to hold in your head as raw Turtle or XML. This tool parses it and draws the class hierarchy as a graph: subclasses branch out from their parent, object and datatype properties are drawn as labeled links between classes, and individuals (instances) can be shown or hidden. Click a node to see its full details — IRI, comment, subclasses, property links and instance count — or to expand and collapse its children.
Most real ontologies are split across several files, so this tool merges every file you add into one graph rather than showing each in isolation. Load a modular ontology together with its owl:imports, a schema alongside its instance data, or a JSON-LD document with its external context — each declaring file gets its own colored marker on every node it defines, and a missing import is called out rather than silently ignored.
It's handy for getting your bearings in an unfamiliar ontology, reviewing a schema change before merging it, or explaining a data model to someone who'd rather see a picture than read Turtle.
FAQ
Is my ontology uploaded anywhere?
No. Files are read and parsed with your browser and drawn locally. Nothing you upload or paste is sent to a server, logged, or stored on one — this includes JSON-LD @context URLs, which are only resolved from files you have also loaded, never fetched. The sample files that load automatically are static files served with the site.
Why do I need more than one file?
Real ontologies are often split across files: a modular ontology that uses owl:imports, a schema kept separate from its instance data, SHACL shapes kept apart from the model they constrain, or a JSON-LD document with an external @context. Add every file the ontology needs and this tool merges them into one graph, showing which file declares each class with a colored dot.
What happens if an imported ontology is missing?
owl:imports references are never fetched for you, both for privacy and because most import URLs aren't reachable from a browser anyway. If you load a file that imports an ontology you haven't added, it's listed as an unresolved import and any classes it references appear as dashed, grey "not loaded" nodes. Add the missing file to resolve it.
What do the node colors mean?
Blue nodes are OWL or RDFS classes. Purple nodes are SKOS concepts. Green nodes are individuals (instances). Dashed grey nodes are referenced by a subclass, property or restriction but not declared in any loaded file. The colored dot in the corner of a node shows which loaded file declares it.
What formats are supported?
Turtle (.ttl), RDF/XML (.rdf, .owl, .xml), N-Triples (.nt) and JSON-LD (.jsonld, .json). OWL/XML and OWL Functional Syntax are not supported; in Protégé use File → Save as… and choose RDF/XML or Turtle instead.
How do I read the arrows?
A plain line is a subclass (or broader/narrower, for SKOS) link from parent to child. A dotted line is an additional parent when a class has more than one (multiple inheritance). A dashed line labelled with a property name is an object or datatype property, drawn from its domain to its range, including someValuesFrom and allValuesFrom restrictions.
Is there a size limit?
Each file can be up to 10MB. The enabled files together can hold up to 400,000 triples and 20,000 classes, concepts and individuals. Expand all draws at most 1,500 nodes at a time so panning stays smooth; open the remaining branches by clicking the + on a node.
Want to explore plain JSON data instead? Try the JSON to Graph Visualizer →