From: Rich M. <rd...@cf...> - 2003-01-02 12:20:08
|
I am looking at encoding CycL (www.opencyc.org) code as YAML. CycL is a cross between Lisp and first-order predicate calculus; it looks like: ($#implies ($#and (isa ?TRANSFER #$TransferringPossession) (fromPossessor ?TRANSFER ?FROM)) (#$isa ?FROM #$SocialBeing)) In English, this says (I think :-) "Possessions can only be transferred from social beings". By eliminating the "#$" line noise, we get: (implies (and (isa ?TRANSFER TransferringPossession) (fromPossessor ?TRANSFER ?FROM)) (isa ?FROM SocialBeing)) In Perl, this would look something like: [ 'implies', [ 'and', [ 'isa', '?TRANSFER', 'TransferringPossession' ], [ 'fromPossessor', '?TRANSFER', '?FROM' ] ], [ 'isa', '?FROM', 'SocialBeing' ] ] I think this is the corresponding YAML: [ implies, [ and, [ isa, ?TRANSFER, TransferringPossession ], [ fromPossessor, ?TRANSFER, ?FROM ] ], [ isa, ?FROM, SocialBeing ] ] but I'd like to be able to encode it using only dashes and indentation (or even mixtures of dashes and brackets). As the following attempts show, I'm clearly missing a clue somewhere: - implies - and - isa - ?TRANSFER - TransferringPossession # Oops! - fromPossessor - ?TRANSFER - ?FROM # Oops, again! - isa - ?FROM - SocialBeing - implies - and [ isa, ?TRANSFER, TransferringPossession ] [ fromPossessor, ?TRANSFER, ?FROM ] [ isa, ?FROM, SocialBeing ] How _should_ these be written? -r -- email: rd...@cf...; phone: +1 650-873-7841 http://www.cfcl.com/rdm - my home page, resume, etc. http://www.cfcl.com/Meta - The FreeBSD Browser, Meta Project, etc. http://www.ptf.com/dossier - Prime Time Freeware's DOSSIER series http://www.ptf.com/tdc - Prime Time Freeware's Darwin Collection |
From: Brian I. <in...@tt...> - 2003-01-02 19:09:24
|
On 02/01/03 04:19 -0800, Rich Morin wrote: > In Perl, this would look something like: > > [ 'implies', > [ 'and', > [ 'isa', '?TRANSFER', 'TransferringPossession' ], > [ 'fromPossessor', '?TRANSFER', '?FROM' ] ], > [ 'isa', '?FROM', 'SocialBeing' ] ] > > but I'd like to be able to encode it using only dashes and indentation > > How _should_ these be written? Let the computer (read Dumper) do the work. If you know Perl, you probably have YAML.pm. If you have YAML.pm you must have ysh. (macingy) ingy /Users/ingy > ysh Welcome to the YAML Test Shell. Type ':help' for more information. ysh > ; perl> [ 'implies', perl> [ 'and', perl> [ 'isa', '?TRANSFER', 'TransferringPossession' ], perl> [ 'fromPossessor', '?TRANSFER', '?FROM' ] ], perl> [ 'isa', '?FROM', 'SocialBeing' ] ] perl> ; --- - implies - - and - - isa - ?TRANSFER - TransferringPossession - - fromPossessor - ?TRANSFER - ?FROM - - isa - ?FROM - SocialBeing ysh > Easy, no? Cheers, Brian |