"{\"id\" : 1,\"summary\" : \"test 1\",\"author\" : \"dharmatech\",\"mode\" : \"factor\",\"date\" : {\"year\" : 2008,\"month\" : 11,\"day\" : 12,\"hour\" : 8,\"minute\" : 3,\"second\" : 20,\"gmt_offset\" : {\"year\" : 0,\"month\" : 0,\"day\" : 0,\"hour\" : 0,\"minute\" : 0,\"second\" : 0}},\"contents\" : \"hello\",\"annotations\" : [{\"id\" : 1,\"summary\" : \"an annotation for test 2\",\"author\" : \"wayo\",\"mode\" : \"factor\",\"date\" : {\"year\" : 2008,\"month\" : 11,\"day\" : 12,\"hour\" : 17,\"minute\" : 47,\"second\" : 21,\"gmt_offset\" : {\"year\" : 0,\"month\" : 0,\"day\" : 0,\"hour\" : 0,\"minute\" : 0,\"second\" : 0}},\"contents\" : \"\\r\\nUSING: kernel lexer parser words namespaces sequences splitting\\r\\n classes.tuple\\r\\n accessors\\r\\n vocabs vocabs.loader\\r\\n prettyprint io io.files\\r\\n combinators.short-circuit\\r\\n store ;\\r\\n\\r\\nIN: vnav\\r\\n\\r\\n! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\r\\n\\r\\n: maybe-use ( name -- name ) dup find-vocab-root [ dup use+ ] when ;\\r\\n\\r\\n! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\r\\n\\r\\n! Used to switch to sub-vocabularies.\\r\\n! Should also allow for fully-qualified vocabulary names.\\r\\n\\r\\n: cd\\r\\n in get \\\".\\\" scan 3append\\r\\n maybe-use\\r\\n set-in ; parsing\\r\\n\\r\\n! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\r\\n\\r\\n: up ( -- )\\r\\n in get \\\"home.\\\" head?\\r\\n [ in get \\\".\\\" split but-last \\\".\\\" join maybe-use set-in ]\\r\\n [ \\\"home\\\" maybe-use set-in ]\\r\\n if ;\\r\\n\\r\\n! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\r\\n\\r\\n: directory-path? ( path -- ? ) file-info directory? ;\\r\\n\\r\\n: list-sub-vocabs ( -- )\\r\\n\\r\\n \\\"resource:store\\\" in get \\\".\\\" split \\\"/\\\" join append-path\\r\\n dup exists?\\r\\n [ [ [ directory-path? ] filter ] with-directory-files ]\\r\\n [ drop { } ]\\r\\n if\\r\\n \\r\\n dup empty? not\\r\\n [\\r\\n \\\"subvocabularies: \\\" print\\r\\n [ \\\" \\\" write print ] each\\r\\n nl\\r\\n ]\\r\\n [ drop ]\\r\\n if ;\\r\\n\\r\\n! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\r\\n\\r\\n: val? ( word -- ? ) def>> { [ length 1 = ] [ first word? not ] } 1&& ;\\r\\n\\r\\n: list-vals ( -- )\\r\\n in get words [ val? ] filter [ symbol? not ] filter\\r\\n dup empty? not\\r\\n [ \\\"vals: \\\" print [ \\\" \\\" write . ] each ]\\r\\n [ drop ]\\r\\n if ;\\r\\n\\r\\n! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\r\\n\\r\\n: list-words ( -- )\\r\\n in get words [ val? not ] filter [ \\\"predicating\\\" word-prop not ] filter\\r\\n dup empty? not\\r\\n [ \\\"words: \\\" print [ \\\" \\\" write . ] each ]\\r\\n [ drop ]\\r\\n if ;\\r\\n\\r\\n! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\r\\n\\r\\n: list-tuple-classes ( -- )\\r\\n in get words [ tuple-class? ] filter\\r\\n dup empty? not\\r\\n [ \\\"tuple classes: \\\" print [ \\\" \\\" write . ] each ]\\r\\n [ drop ]\\r\\n if ;\\r\\n\\r\\n! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\r\\n\\r\\n: ls ( -- )\\r\\n list-sub-vocabs\\r\\n list-tuple-classes\\r\\n list-words\\r\\n list-vals ;\",\"parent\" : 3}]}"