Charta Software
Back to the base
E-mail:
Wachtwoord:
Aangemaakt door op 2009-05-11 13:17:56
Laatst gewijzigd op 2009-05-11 16:38:02

WikiData

WikiData is a (web based) knowledge system which allows users to view and edit information or knowledge through a uniform interface. Charta Software developed WikiData in a project for Knewco.

Introduction

WikiData is a (web based) knowledge system which allows users to view and edit information or knowledge through a uniform interface. The information in the system is stored and edited in a highly structured way, greatly reducing information redundancy and enabling higher level applications to easily query, summarize and mine the knowledge present in the system.

WikiData has been designed to support the storage of knowledge in a very generic form thereby trying to avoid as much as possible the exclusion of potential valuable information sources. The current design allows information from various sources and of different structure to be tightly integrated within one system, thereby leveraging synergy and serendipity among information sources that are traditionally separated both on the basis of geographic location and underlying data structure.

Triple store

The most fundamental unit of information in WikiData is formed by an object. An object can be a concept or a triple and is assigned a unique object id. An information triple is the other fundamental unit of information that can be stored in the WikiData database. This means that the WikiData database in a sense can be viewed as a triple store. Using triples makes WikiData a very flexible store for knowledge and information. Because no upfront assumptions are made on the nature and structure of knowledge and information, in principle every interesting piece of knowledge should be able to find its way into WikiData.

Triples are represented by subject-predicate-object expressions. The subject refers to an object already present in the database. An object can be a concept or a triple and is assigned a unique object id. Because triples are assigned a unique object id it is possible to refer to them from other triples. A predicate is formed by a concept that is meant to describe the nature of the triple (for instance "has name"). Finally, the object (or target) part of a triple can be represented by a variety of values. For instance, one can use free text, links and concepts as the target of a triple. In the database triples with different object types are stored in different relational tables.

By using triples one can recursively annotate knowledge with knowledge which makes WikiData a rich annotation system. For instance, if one triple describes the function of a protein, other triples can provide references, evidence and discussions about that specific function of that specific protein. Finally it is possible to define the possible triples based on the tags a concept has.

Versioning

Because users are able to edit knowledge in the system one has to safeguard the knowledge from potentially being destroyed and one has to attribute changes to users that made them. To accomplish this a versioning system has been developed for the WikiData database. This versioning system is implemented within the database abstraction layer. This means that a layer has been implemented that translate SELECT, INSERT, UDPATE and DELETE queries to lower level queries that maintain a history of records in the underlying relational table. For instance, executing a DELETE query on the versioned database level does not really delete the record from the physical database, instead it flags the record as being removed. Also, SELECT queries are adjusted to return only records matching the restrictions which are not flagged as being removed.

Branching

WikiData features a method of branching knowledge based on certain criteria. For instance, by putting authoritative data into authority branches one can safeguard authoritative data. Just like versioning, branching is implemented within the database abstraction layer by translating queries that manipulate physical database records with the correct branching information.

Model/View/Controller

The data from the database is presented on a web page using a Model/View/Controller pattern. The data model used for holding the data for a page is stored in a hierarchical record set. This record set is then translated to HTML using correctly configured record set editors. These record set editors can be configured with appropriate update controllers to allow saving of user changes back to the database.

User interface manipulated through knowledge

The user interface of WikiData adjusts itself automatically based on knowledge in the system itself. For instance, based on semantic grouping tags attached to connection types (predicates), triples are filtered from the generic annotation section and distributed to individual sections that group similar connections. Also, labels for concepts are generated based on associated terms in the system. Finally, one can express possible connections for a concept having a specific tag. These possible connections are knowledge within the system itself but also controls which triples the user is able to add through the user interface.