In this subsection, there is a description of the Hypercat ontology (Tachmazidis et al, 2016), which captures the above-mentioned Hypercat structure, thus providing a translation mechanism from a JSON-based to a JSON-LD based catalogue. The proposed Hypercat ontology is available with the uri:
and captures the core properties that would enable the development of JSON-LD based catalogues. Namespaces for the Hypercat ontology can be written prefixing concepts and properties with “hypercat:”, which corresponds to the uri “http://portal.bt-hypercat.com/ontologies/hypercat”.
Currently, it is part of an IoT Data Hub https://portal.bt-hypercat.com/, while as a next step it will be proposed to the Hypercat community for standardization. Providing catalogues in JSON-LD, based on a well-defined ontology, its believed that it would further increase interoperability and offer intelligent reasoning capabilities. The Hypercat ontology consists of a class hierarchy that is depicted in Figure 1, a range of properties that are included in Table 1. The core hierarchy is rich enough to capture the corresponding constructs of the JSON-based catalogue while providing the flexibility for further extensions. The Hypercat ontology consist of class MetadataAnnotator (having two subclasses, Catalogue and Items) and class Search. As described above, a Metadata Object is applicable to both the catalogue itself and each catalogue item. Hence the class MetadataAnnotator, which captures metadata properties that are applicable to both Catalogue Objects and Item Objects. Note that the Hypercat 3.00 specification defines certain properties as applicable to either Catalogue Objects or Item Objects, but not both, as such properties cannot be included in the definition of class MetadataAnnotator.
Subsequently, class MetadataAnnotator has two subclasses, namely class Catalogue and class Item. In essence, class Catalogue models a Catalogue Object defining properties that are applicable only to the catalogue’s metadata, while class Item models an Item Object defining properties that are applicable only to an item’s metadata. In order to build a semantically enriched catalogue, class Catalogue is related to class Item through property hasItem, which means that a given Catalogue may contain a collection of Items. Class Search models the various types of searches that are supported by a given Catalogue, with the two classes being related through property supportsSearch. The set of currently supported searches is defined through individuals of class Search. Note that the details of supported search types will be covered below.