Doknil is based on:
- hierarchical role
- optional hierarchical
- optional contexts specifying the time-frame, or the branch, or the transaction, etc..
- standard derivation rules according the context, and hieararchical role and parts
The scope of Doknil is not to be a complete graph database for representing all informations about objects. Doknil is used as an initial and quick way to store information. It is a sort of tag-system and directory classification system on steroids. The user search information quickly inside Doknil, and then he can use better queries later.
Doknil can be used for clasifying: emails; documents; files; part of code; relationship between a source code, its compiled file and so on;
A Transaction specify: who, when, what, why. They are hierarchical tasks.
Bulk off-line updates
Some Doknil classifications of documents can be completed in bulk, off-line from AG code analyzing documents.
Types vs Roles
Doknil uses the
subject isa role, but
isa links entities (i.e. type instances) with roles, and it is not used for types. So this is wrong
magnolia isa plant, because
magnolia is a type of
plant. Instead this is correct
ref12 isa plant/magnolia, because it specifies the type/role of a concrete entity.
Facts with multiple properties
Facts with multiple properties can be represented by entities with Dok properties.
$f1 isa flight set $f1.from: $London set $f1.to: $Paris
Facts can be stratified by meta levels.
These facts are at the metalevel of schema description:
plant isa type.
magnolia isa type.
magnolia isa subtype of plant.
This fact is at the level of entities:
$ref12 isa plant/magnolia
Fuzzy facts, if supported, are not managed as a context, but with an additional attribute.
The subject and role relationship is also a guideline for creating the schema.
$smith isa employee $b isa bank-account of $smith $actor1 isa actor of $film1
The inverse relationship is not feasible in Dokmelody
$film1 has-actor $actor1
The role enforces subject with an active role.
null can be used for identifying:
If one add a new
cntx to schema, he had to specify also the default value to associate to the new context, for all objects. It can be a
to-specify value, in case the value is mandatory and there is no known value to use.
We can tags films to watch and review.
$film1 isa film/to-review of task/$review2