Symphony Resource Catalogue


Symphony Resource Catalogue is used for storing the description of all objects and mapping between objects to endpoints. Also, it leverages on REST API based on SPARQL for searching.

Symphony Resource Catalogue Figure 1: Symphony Resource Catalogue

Symphony Resource Catalogue is composed of two separate components:

Object Catalog:

Contains the list of all the “objects” existing in a given installation of a system. Each object is univocally identified by an ID, and has further properties which include: the services it provides, the “space” it is located in, the physical properties it affects (e.g. temperature) and in which “space”, the relations with other objects, and so on. This ontology has been originally derived from SAREF and SAREF4BLDG, with additions made to include Nextworks previous proprietary information model, and is completely flexible. The “services” are the interfaces that each specific object provides.

Object Locator:

Contains a map of the object IDs (as specified in Object Catalog) to the protocol-specific endpoints that a client application needs to use to access that particular object. Object Locator also contains endpoints for platform-level services which are not referred to by using an object ID (e.g. storage service, configuration service, orchestration service). Endpoints can be provided (and looked for) for multiple protocols, i.e. REST endpoints, gRPC endpoints, CORBA IORs, raw sockets. A specific object will be accessible by using one or more endpoints, depending on the type and version of the Symphony HAL which is controlling it. Object Catalog contains static information (what the object is, what it can do, how it relates to other objects), whereas Object Locator contains dynamic information to reach an object at runtime (which might change, e.g. if another node takes control of a physical object in a high availability setup). Object Catalog is implemented as an ontology in Apache Jena Fuseki , plus a wrapper to provide higher level methods to SparQL. Object Locator is implemented as an API wrapper to etcd which is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines


Since the component is part of the Symphony Platform and it is not decoupled yet, the configuration is possible through Symphony Platform. It is possible to view list of objects with ID, Type, Description and other characteristics. Also user can create Objects based on supported type of sensors and actuators.


Symphony Resource Catalogue is a part of Symphony Platform and as mentioned before it still has dependencies to other Symphony components. After deploying the platform, the Resource Catalogue is up and ready to use.


Symphony Resource Catalogue is Nextworks’ commercial product and is not free. Nextworks will provide free research license and full support exclusively for duration of the experimentation up to the end of the EFPF project. After the license expiration if the users are still interested in using Symphony Resource Catalogue, Nextworks is open for negotiation.


  1. Is Symphony Resource Catalogue Free and Open-Source?
    no, it is enterprise product of Nextworks S.r.l and users need to acquire License.
  2. How Can I Install Symphony Resource Catalogue?
    we kindly ask you to contact and share with us your requirement so we can provide you best options based your needs.
  3. After acquiring Symphony Resource Catalogue’s license, for how long it will be valid?
    It will be valid until end of the EFPF project plus four months.
  4. What are the deployment methods?
    It could be deployed on Dedicated Minicomputer such as Intel NUC, Bare Metal Deployment os Single VM for Specific Cases.
  5. How can I interact with Symphony Resource Catalogue?
    It can be interacted via REST API.
  6. Where is the repository/registry and how can I access it?
    Software is not publicly accessible and after acquiring the license, Nextworks will guide you on the best deployment method of the software based on your needs