Lojban as a declarative programming language
Lojban programming language
One step towards an artificial intelligence would be to use Lojban as a declarative programming language. I want to discuss with the computer how I want my program to work, and then the computer goes ahead and writes that program. This is quite similar to Prolog, except that you can express any conceivable concept (more or less) in Lojban.
Firstly, though, I need to learn Lojban. Skimming through the gimste, here are some useful gismu for use with computerdom:
klesi kle lei class x1 (mass/si'o) is a class/category/subgroup/subset within x2 with defining property x3 (ka) sucta suc abstract x1 (si'o) is abstracted/generalized/idealized from x2 [something concrete] by rules x3 (i.e. superclasses) steci tec te'i specific 'special' x1 (ka) is specific/particular/specialized/[special]/a defining property of x2 among x3 (set) (i.e. subclasses) sumti sum su'i argument x1 is a/the argument of predicate/function x2 filling place x3 (kind/number) sidbo sib si'o idea x1 (idea abstract) is an idea/concept/thought about x2 (object/abstract) by thinker x3 (I think that sidbo is a good gismu for the "Object" from OO programming. An "Object" isn't physical, so "dacti" isn't a good word to use.) tcini situation 'state' x1 [state/property] is a situation/condition/state/position/are conditions/circumstances of x2 liste ste list x1 (physical object) is a list/catalog/register of sequence/set x2 in order x3 in medium x4 datni data x1 (du'u) [fact/measurement] is data/information/statistic(s) about x2 gathered by method x3 djuno jun ju'o know x1 knows fact(s) x2 (du'u) about subject x3 by epistemology x4 (sedjuno might be useful to refer to a fact) fancu function x1 is a function/single-valued mapping from domain x2 to range x3 defined by expression/rule x4 lanli lal analyze x1 analyzes/examines-in-detail x2 by method/technique/system x3 [process/activity] logji loj logic x1 [rules/methods] is a logic for deducing/concluding/inferring/reasoning to/about x2 (du'u) tadji method x1 [process] is a method/technique/approach/means for doing x2 (event) under conditions x3 fendi fed divide x1 (agent) divides/partitions/separates x2 into sections/parts/ind. x3 by method/partition x4 jmina min add 'augment' x1 adds/combines x2 to/with x3, with result x4; x1 augments x2 by amount x3 (i.e. add to a liste, or add numbers?) vimcu vic vi'u remove x1 removes/subtracts/deducts/takes away x2 from x3 with/leaving result/remnant/remainder x4 pilji pi'i multiply 'multiply' x1 is the product/total/result of factors/multiplicands (x2 and x3) x2 multiplied by x3 cumki cum cu'i possible 'maybe' x1 (event/state/property) is possible under conditions x2; x1 may/might occur; x1 is a maybe dunli dun du'i equal x1 is equal/congruent to/as much as x2 in property/dimension/quantity x3 simsa smi similar x1 is similar/parallel to x2 in property/quantity x3 (ka/ni); x1 looks/appears like x2 frica fic differ x1 differs/is distinct from/contrasts with/is unlike x2 in property/dimension/quantity x3 mleca mec me'a less x1 is less than x2 in property/quantity x3 (ka/ni) by amount x4 girzu gir gri group x1 is group/cluster/team showing common property (ka) x2 due to set x3 linked by relations x4 (ordered set?) sisku sis seek x1 seeks/searches/looks for property x2 among set x3 (complete specification of set) jinzi jiz innate x1 (property - ka) is an innate/inherent/intrinsic/natural property/quality/aspect of x2 ka kam property abstract abstractor: property/quality abstractor (-ness); x1 is quality/property exhibited by [bridi] (ka - I'm trying to find the gismu that means "x1 is a property of x2)" kampu kau common x1 (property - ka) is common/general/universal among members of set x2 (complete set) ce'o ce'o in a sequence with non-logical connective: ordered sequence link; "and then", forming a sequence porsi por poi sequence x1 [ordered set] is sequenced/ordered/listed by comparison/rules x2 on unordered set x3 cmima mim cmi member x1 is a member/element of set x2; x1 belongs to group x2; x1 is amid/among/amongst group x2 lidne li'e precede 'leader' x1 precedes/leads x2 in sequence x3; x1 is former/preceding/previous; x2 is latter/following ciste ci'e system x1 (mass) system interrelated by structure x2 among components x3 (set) displaying x4 (ka) minde mid mi'e command x1 issues commands/orders to x2 for result x3 (event/state) to happen; x3 is commanded to occur minji mi'i machine x1 is a machine for use/function x2; [automated apparatus, without direct function control] notci not noi message 'note' x1 is a message/notice/memorandum about subject x2 from author x3 to intended audience x4 krefu ref ke'u recur x1 (event) is the x3'rd recurrence/repetition of x2 (abstract); x2 happens again in [form] x1 benji bej be'i transfer 'send' x1 transfers/sends/transmits x2 to receiver x3 from transmitter/origin x4 via means/medium x5 cabra ca'a apparatus x1 is apparatus/mechanism/device/equipment for function x2 controlled/[triggered] by x3 (agent) cfari cfa initiate x1 [state/event/process] commences/initiates/starts/begins to occur; (intransitive verb) fatne fat fa'e reverse x1 [sequence] is in reverse order from x2 [sequence]; x1 (object) is inverted from x2 (object) fatri fai distribute x1 is distributed/allotted/allocated/shared among x2 with shares/portions x3; (x2/x3 fa'u)
So now I'm able to describe classes, methods and properties of classes so I could describe an object-oriented system. I can create groups, sets, lists. I can describe properties of objects and define methods (selmidste?) on them.
I could also describe a logical system.