Architecture
The SemDAV design establishes a client/server paradigm that clearly separates between different tasks that are performed, although of course it is possible that both the server and the client component are running on the same physical machine. This design covers the requirements of a multitude of applications. For personal use, a SemDAV server (repository) may be instantiated on a user's personal computer or her laptop. For shared collaborative work in small project-driven environments, a shared SemDAV repository may be set up that makes all information accessible to multiple users. Similarly, multiple SemDAV repositories may be set up and accessed simultaneously by one client in order to perform cross-server queries or updates.
The repository is able not only to persist data and associated metadata, but also to perform tasks that can be applied to large data amounts, like feature extraction, backup, indexing, and so forth. Moreover, third party systems may be integrated into server instances and be exposed to clients using the SemDAV protocol (see below). Also, the well-established client/server architecture allows for strong, centralized security and access control, a requirement most often found in enterprises of all sizes.
On the other hand, the client component acts as mediator between the user or applications, and SemDAV repositories. The entire functionality of SemDAV repositories, which is exposed via the SemDAV protocol, is wrapped into a well-defined Application Programming Interface. Usually, an application will have neither the need to directly issue protocol requests and process server replies, nor the need to formulate queries for search and retrieval and programmatically parse results returned from the repository. To hide these details, SemDAV functionality is wrapped into a set of interfaces and appropriate implementations. For special requirements, like non-standard queries, or performance-critical requests, this high-level API may be bypassed, and applications may directly communicate with a repository.
As the first application of SemDAV, the Semplorer constitutes a generic user interface for content stored within a SemDAV repository. The Semplorer exposes all core features of the system's semantic model to the user, allowing to browse and to navigate across repositories, to read and write binary content, and to manipulate metadata like annotations, attributes, and relations. The Semplorer demonstrates a strategy how next generation work with unstructured content could look like: Instead of using non-machinereadable, strong hierarchical trees of directories, users store content and annotate them with semantic features, tags, and relations.
