Skip to content

Instantly share code, notes, and snippets.

@capitancook
Created December 30, 2014 09:24
Show Gist options
  • Save capitancook/d2f0b1d9e69a6497cbcd to your computer and use it in GitHub Desktop.
Save capitancook/d2f0b1d9e69a6497cbcd to your computer and use it in GitHub Desktop.
Knowledge base for my simple example of Frame based human esources management system described in this blog post
;-------------------------------------------Knowledge Base start------------------------------------------------
[
;------ Frame Language
{:frame {:value "frame"}
:description {:value "A frame is composed of one or more slots. Each frame represent a concept or a class of object or an object"}}
{:frame {:value "slot"}
:description {:value "One or more slots form a frame. Each slot represent a property or a feature of the frame"}}
{:frame {:value "facet"}
:description {:value "One or more facet form a slot. Each facet represent the content or the rule governing the content of a slot"}}
;------ AKO frames
{:frame {:value "person"}
:description {:value "A human being"}}
{:frame {:value "structure"}
:description {:value "A social structure of human beings aimed at reaching some target"}}
{:frame {:value "level"}
:description {:value "A natural, social or conceptual level. In this example is a hierarchical level for people working in the organization "}}
;------ ISA frames
;; Structures
{:frame {:value "organization"}
:ako {:value "structure"}}
{:frame {:value "dg"}
:ako {:value "structure"}}
{:frame {:value "department"}
:ako {:value "structure"}}
{:frame {:value "unit"}
:ako {:value "structure"}}
;; Persons
{:frame {:value "male"}
:ako {:value "person"}
:height{:default 1.80}}
{:frame {:value "female"}
:ako {:value "person"}
:height{:default 1.70}}
;; {:frame {:value "employee"}
;; :ako {:value "person"}}
;; levels
{:frame {:value "AST1"}
:salary {:value 2000.00}
:ako {:value "level"}} ; Assistants (AST);
{:frame {:value "AST2"}
:salary {:value 2100.00}
:ako {:value "level"}}
{:frame {:value "AST3"}
:salary {:value 2200.00}
:ako {:value "level"}}
{:frame {:value "AST4"}
:salary {:value 2200.00}
:ako {:value "level"}}
{:frame {:value "AST5"}
:salary {:value 2300.00}
:ako {:value "level"}}
{:frame {:value "AST-SC1"}
:salary {:value 3000.00}
:ako {:value "level"}} ;Secretaries/clerks (AST/SC)
{:frame {:value "AST-SC2"}
:salary {:value 3100.00}
:ako {:value "level"}}
{:frame {:value "AST-SC3"}
:salary {:value 3200.00}
:ako {:value "level"}}
{:frame {:value "AST-SC4"}
:salary {:value 3300.00}
:ako {:value "level"}}
{:frame {:value "AST-SC5"}
:salary {:value 3400.00}
:ako {:value "level"}}
{:frame {:value "AD5"}
:salary {:value 4000.00}
:ako {:value "level"}} ; Administrators (AD)
{:frame {:value "AD6"}
:salary {:value 4500.00}
:ako {:value "level"}}
{:frame {:value "AD7"}
:salary {:value 5000.00}
:ako {:value "level"}}
{:frame {:value "AD8"}
:salary {:value 5500.00}
:ako {:value "level"}}
{:frame {:value "AD9"}
:salary {:value 6000.00}
:ako {:value "level"}}
{:frame {:value "AD10"}
:salary {:value 6500.00}
:ako {:value "level"}}
{:frame {:value "AD11"}
:salary {:value 7000.00}
:ako {:value "level"}}
{:frame {:value "AD12"}
:salary {:value 7500.00}
:ako {:value "level"}}
{:frame {:value "AD13"}
:salary {:value 8000.00}
:ako {:value "level"}}
{:frame {:value "AD14"}
:salary {:value 8500.00}
:ako {:value "level"}}
{:frame {:value "AD15"}
:salary {:value 9000.00}
:ako {:value "level"}}
{:frame {:value "AD16"}
:salary {:value 10000.00}
:ako {:value "level"}}
;; Job titles
{:frame {:value "Assistant"}
:ako {:value "person"}
:perks {:value 0.1}
:bonus {:default 3000.00}}
{:frame {:value "Secretary"}
:ako {:value "person"}
:perks {:value 0.1}
:bonus {:default 3000.00}}
{:frame {:value "Administrator"}
:ako {:value "person"}
:perks {:value 0.2}
:bonus {:default 10000.00}}
{:frame {:value "Unit-head"}
:ako {:value "person"}
:perks {:value 0.3}
:bonus {:value 25000.00}}
{:frame {:value "Department-head"}
:ako {:value "person"}
:perks {:value 0.4}
:bonus {:default 45000.00}}
{:frame {:value "Dg-head"}
:ako {:value "person"}
:perks {:value 0.5}
:bonus {:default 60000.00}}
{:frame {:value "Org-head"}
:ako {:value "person"}
:perks {:value 0.65}
:bonus {:default 100000.00}}
;------ object frames
;; Structures
{:frame {:value "OrgAlfa"}
:name {:value "Organisation Alfa"}
:cof {:value ("DGA" "DGB" "E16" "E17" "E18")}
:isa {:value "organization"}
:status {:value "active"}}
{:frame {:value "DGA"}
:name {:value "General Directorate A"}
:cof {:value ("D1" "D2")}
:isi {:value "OrgAlfa"}
:isa {:value "dg"}
:status {:value "active"}}
{:frame {:value "DGB"}
:name {:value "General Directorate B"}
:cof {:value ("D3")}
:isi {:value "OrgAlfa"}
:isa {:value "dg"}
:status {:value "active"}}
{:frame {:value "D1"}
:name {:value "Department 1"}
:cof {:value ("U1" "U2")}
:isi {:value "DGA"}
:isa {:value "department"}
:status {:value "active"}}
{:frame {:value "D2"}
:name {:value "Department 2"}
:cof {:value ("U3")}
:isi {:value "DGA"}
:isa {:value "department"}
:status {:value "active"}}
{:frame {:value "D3"}
:name {:value "Department 3"}
:cof {:value ("U4")}
:isi {:value "DGB"}
:isa {:value "department"}
:status {:value "active"}}
{:frame {:value "U1"}
:name {:value "Unit 1"}
:cof {:value ("E1" "E2" "E3" "E4")}
:isi {:value "D1"}
:isa {:value "unit"}
:status {:value "active"}}
{:frame {:value "U2"}
:name {:value "Unit 2"}
:cof {:value ("E5" "E6" "E7")}
:isi {:value "D1"}
:isa {:value "unit"}
:status {:value "active"}}
{:frame {:value "U3"}
:name {:value "Unit 3"}
:cof {:value ("E8" "E9" "E10" "E11" "E12")}
:isi {:value "D2"}
:isa {:value "unit"}
:status {:value "active"}}
{:frame {:value "U4"}
:name {:value "Unit 4"}
:cof {:value ("E13" "E14" "E15")}
:isi {:value "D3"}
:isa {:value "unit"}
:status {:value "active"}}
;; Persons
{:frame {:value "E1"}
:id {:value 1}
:recruitment-date {:value "19991102"}
:surname {:value "Rossi"}
:name {:value "Paolo"}
:address {:value {:street "Via del Sudario, 8" :city "Rome" :postalcode 00100}}
:isi {:value "U1"}
;; :isa {:value ("male" "Unit-head")}
:isa {:value ("male")}
:status {:value "active"}
:level {:value "AD8"}}
{:frame {:value "E2"}
:id {:value 2}
:recruitment-date {:value "20000104"}
:surname {:value "Doe"}
:name {:value "John"}
:address {:value {:street "Brown street, 345" :city "London" :postalcode 00330}}
:isi {:value "U1"}
:isa {:value ("male" "Secretary")}
:status {:value "active"}
:level {:value "AST-SC2"}}
{:frame {:value "E3"}
:id {:value 3}
:recruitment-date {:value "20010213"}
:surname {:value "Dupont"}
:name {:value "Arthur "}
:address {:value {:street "Rue du Temple, 68" :city "Paris" :postalcode 00440}}
:isi {:value "U1"}
:isa {:value ("male" "Administrator")}
:status {:value "active"}
:level {:value "AD6"}}
{:frame {:value "E4"}
:id {:value 4}
:recruitment-date {:value "19991102"}
:surname {:value "Verdi"}
:name {:value "Maria"}
:isi {:value "U1"}
:isa {:value ("female" "Administrator")}
:status {:value "active"}
:level {:value "AD5"}}
{:frame {:value "E5"}
:id {:value 5}
:recruitment-date {:value "19991102"}
:surname {:value "Bianchi"}
:name {:value "Giulia"}
:isi {:value "U2"}
:isa {:value ("female" "Unit-head")}
:status {:value "active"}
:level {:value "AD10"}}
{:frame {:value "E6"}
:id {:value 6}
:recruitment-date {:value "19991102"}
:surname {:value "Mussi"}
:name {:value "Loredana"}
:isi {:value "U2"}
:isa {:value ("female" "Secretary")}
:status {:value "active"}
:level {:value "AST-SC3"}}
{:frame {:value "E7"}
:id {:value 7}
:recruitment-date {:value "19991102"}
:surname {:value "Schubert"}
:name {:value "Franz"}
:isi {:value "U2"}
:isa {:value ("male" "Assistant")}
:status {:value "active"}
:level {:value "AST3"}}
{:frame {:value "E8"}
:id {:value 8}
:recruitment-date {:value "19991102"}
:surname {:value "Pellet"}
:name {:value "Anne"}
:isi {:value "U3"}
:isa {:value ("female" "Unit-head")}
:status {:value "active"}
:level {:value "A10"}}
{:frame {:value "E9"}
:id {:value 9}
:recruitment-date {:value "19991102"}
:surname {:value "García"}
:name {:value "Adoracion"}
:isi {:value "U3"}
:isa {:value ("female" "Secretary")}
:status {:value "active"}
:level {:value "AST-SC3"}}
{:frame {:value "E10"}
:id {:value 10}
:recruitment-date {:value "19991102"}
:surname {:value "Smith"}
:name {:value "Robert"}
:isi {:value "U3"}
:isa {:value ("male" "Secretary")}
:status {:value "active"}
:level {:value "AST-SC2"}}
{:frame {:value "E11"}
:id {:value 11}
:recruitment-date {:value "19991102"}
:surname {:value "Poe"}
:name {:value "Edgar Allan"}
:isi {:value "U3"}
:isa {:value ("male" "Administrator")}
:status {:value "active"}
:level {:value "AD6"}}
{:frame {:value "E12"}
:id {:value 12}
:recruitment-date {:value "19991102"}
:surname {:value "Peck"}
:name {:value "Gregory"}
:isi {:value "U3"}
:isa {:value ("male" "administrator")}
:status {:value "active"}
:level {:value "AD5"}}
{:frame {:value "E13"}
:id {:value 13}
:recruitment-date {:value "19991102"}
:surname {:value "Errante"}
:name {:value "Anna"}
:isi {:value "U4"}
:isa {:value ("female" "Unit-head")}
:status {:value "active"}
:level {:value "AD11"}}
{:frame {:value "E14"}
:id {:value 14}
:recruitment-date {:value "19991102"}
:surname {:value "Müller"}
:name {:value "Karen"}
:isi {:value "U4"}
:isa {:value ("female" "Secretary")}
:status {:value "active"}
:level {:value "AST-SC3"}}
{:frame {:value "E15"}
:id {:value 15}
:recruitment-date {:value "19991102"}
:surname {:value "Schmidt"}
:name {:value "Franz"}
:isi {:value "U4"}
:isa {:value ("male" "Administrator")}
:status {:value "active"}
:level {:value "AD7"}}
{:frame {:value "E16"}
:id {:value 16}
:recruitment-date {:value "19991102"}
:surname {:value "Winston"}
:name {:value "Henry Patrick"}
:isi {:value 'OrgAlfa}
:isa {:value ("male" "Org-head")}
:status {:value "active"}
:level {:value "AD16"}}
{:frame {:value "E17"}
:id {:value 17}
:recruitment-date {:value "19991102"}
:surname {:value "Kramer"}
:name {:value "Edward"}
:isi {:value "OrgAlfa"}
:isa {:value ("male" "Secretary")}
:status {:value "active"}
:level {:value "AST-SC5"}}
{:frame {:value "E18"}
:id {:value 18}
:recruitment-date {:value "19991102"}
:surname {:value "Shnaider"}
:name {:value "Helbert"}
:isi {:value "OrgAlfa"}
:isa {:value ("male" "Administrator")}
:status {:value "active"}
:level {:value "AD9"}}
;-------------------------------------------Knowledge Base end--------------------------------------------------
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment