The semantic web contains vast amounts of machine-readable RDF data, but this data is often difficult for humans to understand and navigate.
Iolanta is a tool that aims to provide a uniform way to make Linked Data human friendly,
which capability is underpinned by the Iolanta ontology described in this document.
Use cases we're going to focus on are as follows:
Visualize Linked Data
Different output formats require different visualization approaches. Iolanta's facet system adapts rendering based on output datatype, allowing the same data to be rendered as text, HTML, diagrams, or other formats.
Browse & Discover Linked Data
Iolanta implements text-based terminal interface to browse Linked Data on the Web.
Serialization: YAML-LD
The Iolanta ontology is implemented using YAML-LD, a human-friendly serialization format for JSON-LD that makes RDF data more readable and maintainable. Each class and property is defined in separate .yamlld files with a shared context, which is provided below.
context.yamlld
"@context":# Use $keywords instead of @keywords in the ontology & data files.# This will allow to avoid extra quotes."@import":https://json-ld.org/contexts/dollar-convenience.jsonld# Make well known ontologies usablerdfs:http://www.w3.org/2000/01/rdf-schema#owl:http://www.w3.org/2002/07/owl#foaf:http://xmlns.com/foaf/0.1/schema:https://schema.org/vann:http://purl.org/vocab/vann/rdfg:http://www.w3.org/2009/rdfg#xsd:http://www.w3.org/2001/XMLSchema#$:rdfs:label# I have a weakness for Unicode symbols and YAML-LD permits me an indulgence ☺⊆:"@type":"@id""@id":rdfs:subClassOfdomain:"@id":rdfs:domain"@type":"@id"range:"@id":rdfs:range"@type":"@id"→:"@id":iolanta:outputs"@type":"@id"↦:"@id":iolanta:matches
"@context":context.yamlld$id:iolanta:Facet$type:owl:Class$:Facetrdfs:comment:|A Facet is a visualization component that transforms RDF nodes into human-readable formats.Facets are the core mechanism by which Iolanta makes Linked Data accessible to users.Each facet is designed to handle specific types of RDF nodes and render them appropriatelyfor different output formats (terminal, web, etc.).
Graph rendering
One of the Facets that Iolanta implements is a Mermaid renderer, which was responsible for generation of the graph above. Below, we will look a bit deeper into how that works.
"@context":context.yamlld$id:iolanta:OutputDatatype$type:owl:Class$:Output Datatype⊆:rdfs:Datatyperdfs:comment:|Output format where visualization applications render their results.Examples: terminal text, HTML, Mermaid diagrams.
"@context":context.yamlld$id:iolanta:SPARQLText$type:owl:Class$:SPARQL Text⊆:rdfs:Datatypecomment:|Datatype for SPARQL query text.Must be valid SPARQL syntax.
"@context":context.yamlld$id:iolanta:matches$type:owl:DatatypeProperty$:matchesdomain:iolanta:Facetrange:iolanta:SPARQLTextcomment:|Maps a Facet instance to a SPARQL <code>ASK</code>query pattern that can use <code>$this</code>bound variable. If the query returns True,this Facet can visualize the node denoted as<code>$this</code> in the query.
"@context":context.yamlld$id:iolanta:outputs$type:owl:ObjectProperty$:outputsdomain:iolanta:Facetrange:iolanta:OutputDatatypecomment:|Links a facet to its supported output formats.Examples: terminal, HTML, Mermaid.
Identifier Strategy
We use slash-terminated URIs under https://iolanta.tech/ so every resource is dereferenceable to its own page.
`A Facet is a visualization component that transforms RDF nodes into human-readable formats.
Facets are the core mechanism by which Iolanta makes Linked Data accessible to users.
Each facet is designed to handle specific types of RDF nodes and render them appropriately
for different output formats (terminal, web, etc.).
`
These triples are formatted as Mermaid nodes and edges by the facet, producing the diagram, which:
Either gets printed in the console, and you can save it to a file or copy it,
Or embedded into software which Iolanta is working with.
Other examples
An ORCID profile
iolantahttps://orcid.org/0000-0002-1825-0097
RDFS label
iolantahttp://www.w3.org/2000/01/rdf-schema#label
OWL vocabulary terms
iolantahttps://www.w3.org/2002/07/owl#
While rendering Linked Data, Iolanta will try to fetch references from the Web to other pieces of Linked Data. Thus, we are trying to get the most complete visualization.
Conclusion
The Iolanta ontology provides a framework for Linked Data visualization and browsing with:
Clear domain focus on semantic web usability
Well-structured RDF/OWL implementation
Professional URI strategy following Linked Data best practices