That is interesting; thank you! I'm working on a visual frontend where people can fill in a simple form and it creates Atomese statements on the backend, where the probabilities are implemented as voting and prediction market institutions and where the first person who creates a statement is the market maker (if it is a market). I'm just going to encode a bunch of logical relationships, each once in Scheme. Then saying that predicate p is symmetric is enough, because it then routes the term "symmetric" to the chunk of Scheme code that encodes the meaning of predicate p being symmetric in Atomese and automatically creates that Scheme code. I've set up the work; now I just must start encoding these sorts of things manually each once. People thus will not have to encode Atomese at all; they just have to make logical statements and if they want to be reminded of what symmetric means, there will be a definition of it available for that.
Johannes On Friday, January 18, 2019 at 6:15:16 PM UTC, linas wrote: > > Two short, perhaps useless comments: > > On Fri, Jan 18, 2019 at 7:13 AM Johannes Castner <[email protected] > <javascript:>> wrote: > >> 3) writing scheme Atom Space representations onto a file >> > > The long-term vision is that you wouldn't use files; you would just poke > stuff into the atomspace, and it would still be there tomorrow and they day > after, even after turning the power on and off. > > At the current time, you have to be a rocket surgeon to do this: configure > postgresql, figure out how to use it from the atomspace, type in the magic > incantation to make it go. We haven't yet figured out how to make this > trivial and fun-to-use. > > >> >> ;; Friendship is symmetric >> (ImplicationScope (stv 1 1) >> (VariableList >> (TypedVariable >> > > >> Do you know of a simpler way than to hand-code those Axioms individually? >> > > This is a different problem we have not yet figured out how to solve. > Atomese was designed to make it easy for algos, such as PLN, to manipulate > it. As a result, it can be very verbose and hard to read. Kind-of-like > hand-writing postscript to draw a pretty picture. Postscript is great for > printers and PDF's, just not for people. > > If you are a rocket-surgeon, you can roll-your-own tools. Which is hard. > But let me give an example: > > ; First, some gobbldey-gook cryptic boilerplate: > (define (var name) (TypedVariable (Variable name) (Type "ConceptNode"))) > (define (relation pname va vb) (Evaluation (Predicate pname) (List va > vb))) > (define (axiom va vb p q) (ImplicationLink (VariableList va vb) p q)) > > ; Now for the human-readable stuff: > > (axiom (var "X") (var "Y") > (relation "will be friends" (var "X") (var "Y")) > (relation "will be friends" (var "Y") (var "X")) ) > > which is a whole lot more readable. If you are a clever programmer, you > can make "relation" take a variable number of arguments. If you are a > clever programmer, you can get rid of the need for the variable > declarations. It makes the gobbldey-gook boilerplate wayyy more > complicated, harder to read and understand, but it makes writing the axioms > a lot easier. > > One of the early opencog chatbots used perl to translate from axioms, > written in a super-easy markup language, into the verbose atomese that the > atomspace needed. I know people love to hate perl, but for tasks like > this, it makes them incredibly easy, easier than any other programming > language I know. > > -- Linas > > -- > cassette tapes - analog TV - film cameras - you > -- You received this message because you are subscribed to the Google Groups "opencog" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/opencog. To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/4e9b59dd-d664-46b5-b6fe-99ea34fe8397%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
