Chapter 5: Realizing a Metadata Framework 173 Figure 5-7. Components of S60 Metadata Engine. other components once you know how we model the metadata and how it is manipulated in the Metadata Engine. Metadata Engine (MdE) implements client/server architecture where the server stores both the ontology and instances of the ontology (the actual metadata) in its own permanent storage. When a client applica- tion connects to the MdE server, all stored schemas (the ontology) is read from the database and transformed from a relational database structure to object-based API classes provided in a DLL. The client application needs to link its code with this DLL. Therefore, MdE pro- vides its clients with the same data model described in previous sec- tions. It also has interfaces for searching, browsing, and manipulating both the ontology and metadata. Figure 5-7 shows the components of MdE for Symbian OS. The DLL makes all client/server communications and data model transformations opaque to the application developer, so that the devel- oper does not need know what kind of models are used inside the engine. It also allows modifying the models in the engine later if, for instance, we develop more effi cient ways to store and manage ontolo- gies. We do hope to be able to use RDF databases natively. However, currently there are no usable mobile implementations available. Since our fi rst implementation runs on the Symbian operating system, it was natural to choose C++ as the programming language for the fi rst implementation. A problem with C++ in Symbian is that it is diffi cult to start and experiment with new ideas for applications. Sym- bianOS C++ is not in any way standard, and there is a high threshold before a developer is able to create anything more complicated than a simple “Hello world” application. For this reason we also decided to create a Python API for developers.
Personal Content Experience Page 196 Page 198