Hydra Ontology (Hydra)¶
Hydra is a lightweight vocabulary and ontology for creating hypermedia-driven Web APIs that are self-describing and machine-actionable through semantic web technologies [1] [2]. It enables developers to create generic API clients that can automatically discover and interact with APIs by interpreting hypermedia controls and semantic metadata embedded in API responses [1]. Hydra defines core concepts commonly used in Web APIs, such as API documentation, supported classes, supported properties, operations, links, collections, and entry points, providing a standardized way to describe API structure and functionality [1]. The vocabulary enables APIs to be more self-describing and interoperable, allowing clients to understand available state transitions and construct valid HTTP requests without relying only on hardcoded endpoint knowledge [1] [2]. Hydra supports Linked Data and REST principles, helping APIs contribute to broader linked data ecosystems while preserving loose coupling, maintainability, evolvability, and scalability [2].
Example Usage: Define a REST API endpoint for a resource collection using Hydra vocabulary terms to describe available operations such as GET, POST, and DELETE, supported classes, properties and their types, entry points, collections, and hypermedia links to related resources. This enables automated client discovery, interaction, and adaptation to API structure [1] [2].
Metrics & Statistics¶
Total Nodes |
154 |
Total Edges |
452 |
Root Nodes |
0 |
Leaf Nodes |
86 |
Classes |
2 |
Individuals |
14 |
Properties |
0 |
Maximum Depth |
0 |
Minimum Depth |
0 |
Average Depth |
0.00 |
Depth Variance |
0.00 |
Maximum Breadth |
0 |
Minimum Breadth |
0 |
Average Breadth |
0.00 |
Breadth Variance |
0.00 |
Term Types |
14 |
Taxonomic Relations |
15 |
Non-taxonomic Relations |
0 |
Average Terms per Type |
14.00 |
Usage Example¶
Use the following code to import this ontology programmatically:
from ontolearner.ontology import Hydra
ontology = Hydra()
ontology.load("path/to/Hydra-ontology.jsonld")
# Extract datasets
data = ontology.extract()
# Access specific relations
term_types = data.term_typings
taxonomic_relations = data.type_taxonomies
non_taxonomic_relations = data.type_non_taxonomic_relations