diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e35ce8257..0d0ce4ad7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: - name: Setup Rust uses: ./.github/actions/setup-rust with: - rust-version: nightly + rust-version: stable targets: x86_64-unknown-linux-gnu components: clippy, rustfmt cache-context: style @@ -44,9 +44,11 @@ jobs: # architectures - { os: ubuntu-22.04, rust-version: stable, target: 'x86_64-unknown-linux-gnu', publish: true } - { os: ubuntu-22.04, rust-version: stable, target: 'i686-unknown-linux-gnu', publish: true } - - { os: ubuntu-22.04, rust-version: nightly, target: 'wasm32-unknown-unknown', publish: true, args: '--no-default-features' } + # FIXME(issue #2138): run wasm tests, failing to run since https://github.com/mthom/scryer-prolog/pull/2137 removed wasm-pack + - { os: ubuntu-22.04, rust-version: nightly, target: 'wasm32-unknown-unknown', publish: true, args: '--no-default-features' , test-args: '--no-run --no-default-features', use_swap: true } + # Cargo.toml rust-version + - { os: ubuntu-22.04, rust-version: "1.77", target: 'x86_64-unknown-linux-gnu'} # rust versions - - { os: ubuntu-22.04, rust-version: "1.70", target: 'x86_64-unknown-linux-gnu'} - { os: ubuntu-22.04, rust-version: beta, target: 'x86_64-unknown-linux-gnu'} - { os: ubuntu-22.04, rust-version: nightly, target: 'x86_64-unknown-linux-gnu'} defaults: @@ -54,6 +56,10 @@ jobs: shell: bash steps: - uses: actions/checkout@v3 + - uses: actionhippie/swap-space@v1 + if: matrix.use_swap + with: + size: 10G - name: Setup Rust uses: ./.github/actions/setup-rust with: @@ -63,11 +69,9 @@ jobs: # Build and test. - name: Build library - continue-on-error: ${{ contains(matrix.target,'wasm32') }} # allow wasm builds to fail tests for now run: cargo build --all-targets --target ${{ matrix.target }} ${{ matrix.args }} --verbose - name: Test - continue-on-error: ${{ contains(matrix.target,'wasm32') }} # allow wasm builds to fail tests for now - run: cargo test --target ${{ matrix.target }} ${{ matrix.args }} --all + run: cargo test --target ${{ matrix.target }} ${{ matrix.test-args }} --all # On stable rust builds, build a binary and publish as a github actions # artifact. These binaries could be useful for testing the pipeline but @@ -138,13 +142,15 @@ jobs: - name: Setup Rust uses: ./.github/actions/setup-rust with: - rust-version: nightly + rust-version: stable targets: x86_64-unknown-linux-gnu cache-context: report - - run: | + - name: Install CLI tools + run: | cargo install cargo2junit --force - # cargo install iai-callgrind-runner --force --version `cargo metadata --format-version 1 | jq -r '.resolve.nodes[].id|split(" ")|select(.[0]=="iai-callgrind")|.[1]'` - cargo install iai-callgrind-runner --force --git https://github.com/iai-callgrind/iai-callgrind --rev c77bc3c83d7f4e976cc42d4597236a8db259e772 + version=`yq -ptoml -oy -r '.target.*.dev-dependencies.iai-callgrind|select(.)' Cargo.toml` + echo installing iai-callgrind "$version" + cargo install iai-callgrind-runner --force --version "$version" sudo apt install valgrind -y - name: Test and report diff --git a/Cargo.lock b/Cargo.lock index 553cbcb6e..d5217c040 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1236,9 +1236,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "h2" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -1442,8 +1442,9 @@ dependencies = [ [[package]] name = "iai-callgrind" -version = "0.8.0" -source = "git+https://github.com/iai-callgrind/iai-callgrind.git?rev=c77bc3c83d7f4e976cc42d4597236a8db259e772#c77bc3c83d7f4e976cc42d4597236a8db259e772" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebd67b0ae963bb8b800829320c264fcf71f821e3aed0c004ee252c99dbff3f7" dependencies = [ "bincode", "iai-callgrind-macros", @@ -1453,7 +1454,8 @@ dependencies = [ [[package]] name = "iai-callgrind-macros" version = "0.1.0" -source = "git+https://github.com/iai-callgrind/iai-callgrind.git?rev=c77bc3c83d7f4e976cc42d4597236a8db259e772#c77bc3c83d7f4e976cc42d4597236a8db259e772" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af5af66b85e350097b8c0f6329c6347d3323d010443475741c29a1a167f116fb" dependencies = [ "proc-macro-error", "proc-macro2", @@ -1463,9 +1465,11 @@ dependencies = [ [[package]] name = "iai-callgrind-runner" -version = "0.8.0" -source = "git+https://github.com/iai-callgrind/iai-callgrind.git?rev=c77bc3c83d7f4e976cc42d4597236a8db259e772#c77bc3c83d7f4e976cc42d4597236a8db259e772" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a465e75ad1dfe0fbbb3ee22f5f7d5c077401e412059edb5f3856b1734668bee" dependencies = [ + "lazy_static", "serde", ] @@ -1822,25 +1826,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "git+https://github.com/mthom/modular-bitfield#213535c684af277563678179d8496f11b84a283f" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "git+https://github.com/mthom/modular-bitfield#213535c684af277563678179d8496f11b84a283f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "multer" version = "2.1.0" @@ -2751,9 +2736,30 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "scryer-modular-bitfield" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1f26c70c56d2c94a02545d86384b91994532c2be928c974784b603c2b1f76ac" +dependencies = [ + "scryer-modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "scryer-modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212164841808ccfccf1b0471d91f8cfe675eeb60dbb96e4ca7a1f37b22570a29" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "scryer-prolog" -version = "0.9.3" +version = "0.9.4" dependencies = [ "assert_cmd", "base64 0.12.3", @@ -2790,7 +2796,6 @@ dependencies = [ "libffi", "libloading", "maplit", - "modular-bitfield", "native-tls", "num-order", "ordered-float", @@ -2808,8 +2813,11 @@ dependencies = [ "roxmltree", "rustyline", "ryu", + "scryer-modular-bitfield", "select", + "serde", "serde-wasm-bindgen", + "serde_json", "serial_test", "sha3 0.8.2", "smallvec", diff --git a/Cargo.toml b/Cargo.toml index a4320bd37..820d61a0c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "scryer-prolog" -version = "0.9.3" +version = "0.9.4" authors = ["Mark Thom "] edition = "2021" description = "A modern Prolog implementation written mostly in Rust." @@ -10,7 +10,7 @@ license = "BSD-3-Clause" keywords = ["prolog", "prolog-interpreter", "prolog-system"] categories = ["command-line-utilities"] build = "build/main.rs" -rust-version = "1.70" +rust-version = "1.77" [lib] crate-type = ["cdylib", "rlib", "staticlib"] @@ -38,56 +38,59 @@ to-syn-value_derive = "0.1.1" walkdir = "2" [dependencies] +base64 = "0.12.3" bit-set = "0.5.3" bitvec = "1" +blake2 = "0.8.1" +bytes = "1" +chrono = "0.4.11" cpu-time = "1.0.0" +crrl = "0.6.0" +dashu = "0.4.0" +derive_deref = "1.1.1" dirs-next = "2.0.0" divrem = "0.1.0" +futures = "0.3" fxhash = "0.2.1" git-version = "0.3.4" indexmap = "1.0.2" lazy_static = "1.4.0" lexical = "5.2.2" libc = "0.2.62" -modular-bitfield = "0.11.2" +libloading = "0.7" +scryer-modular-bitfield = "0.11.4" +num-order = { version = "1.2.0" } ordered-float = "2.6.0" phf = { version = "0.9", features = ["macros"] } +rand = "0.8.5" ref_thread_local = "0.0.0" +regex = "1.9.1" +ring = { version = "0.17.5", features = ["wasm32_unknown_unknown_js"] } ripemd160 = "0.8.0" -sha3 = "0.8.2" -blake2 = "0.8.1" -crrl = "0.6.0" -chrono = "0.4.11" -select = "0.6.0" roxmltree = "0.11.0" -base64 = "0.12.3" +ryu = "1.0.9" +select = "0.6.0" +sha3 = "0.8.2" smallvec = "1.8.0" static_assertions = "1.1.0" -ryu = "1.0.9" -futures = "0.3" -regex = "1.9.1" -libloading = "0.7" -derive_deref = "1.1.1" -bytes = "1" -dashu = "0.4.0" -num-order = { version = "1.2.0" } -rand = "0.8.5" -ring = { version = "0.17.5", features = ["wasm32_unknown_unknown_js"] } + +serde_json = "1.0.95" +serde = "1.0.159" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -libffi = { version = "3.2.0", optional = true } -hostname = { version = "0.3.1", optional = true } crossterm = { version = "0.20.0", optional = true } ctrlc = { version = "3.2.2", optional = true } -rustyline = { version = "12.0.0", optional = true } +hostname = { version = "0.3.1", optional = true } +libffi = { version = "3.2.0", optional = true } native-tls = { version = "0.2.4", optional = true } -warp = { version = "=0.3.5", features = ["tls"], optional = true } reqwest = { version = "0.11.18", optional = true } +rustyline = { version = "12.0.0", optional = true } tokio = { version = "1.28.2", features = ["full"] } cranelift = { version = "0.108.1", optional = true } cranelift-jit = { version = "0.108.1", optional = true } cranelift-module = { version = "0.108.1", optional = true } cranelift-codegen = { version = "0.108.1", optional = true } +warp = { version = "=0.3.5", features = ["tls"], optional = true } [target.'cfg(target_arch = "wasm32")'.dependencies] getrandom = { version = "0.2.10", features = ["js"] } @@ -104,24 +107,28 @@ console_error_panic_hook = "0.1" wasm-bindgen = "0.2.87" wasm-bindgen-futures = "0.4" serde-wasm-bindgen = "0.5" -web-sys = { version = "0.3", features = ["Document", "Window", "Element", "Performance"] } +web-sys = { version = "0.3", features = [ + "Document", + "Window", + "Element", + "Performance", +] } js-sys = "0.3" [dev-dependencies] -assert_cmd = "1.0.3" -predicates-core = "1.0.2" maplit = "1.0.2" +predicates-core = "1.0.2" serial_test = "2.0.0" -iai-callgrind = { git = "https://github.com/iai-callgrind/iai-callgrind.git", rev = "c77bc3c83d7f4e976cc42d4597236a8db259e772" } + +[target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dev-dependencies] +assert_cmd = "1.0.3" criterion = "0.5.1" +iai-callgrind = "0.9.0" trycmd = "0.14.19" -[target.'cfg(not(target_os = "windows"))'.dev-dependencies] +[target.'cfg(not(any(target_os = "windows", all(target_arch = "wasm32", target_os = "unknown"))))'.dev-dependencies] pprof = { version = "0.13.0", features = ["criterion", "flamegraph"] } -[patch.crates-io] -modular-bitfield = { git = "https://github.com/mthom/modular-bitfield" } - [profile.bench] lto = true opt-level = 3 diff --git a/INDEX.dj b/INDEX.dj index fbf131251..112f55958 100644 --- a/INDEX.dj +++ b/INDEX.dj @@ -5,6 +5,13 @@ X = "Scryer Prolog!". ``` +``` =html +
+

Scryer Prolog Meetup 2024

+

The second annual Scryer Prolog meetup is going to happen in Vienna (Austria) on the 7th and 8th of November 2024. Join us to discover the present and future of Scryer Prolog! Participation is free, registration is required. More details here.

+
+``` + ![scryer](scryer.png){width=128 style=float:right;} [Scryer Prolog](https://github.com/mthom/scryer-prolog) is a free software ISO Prolog system intended to be an industrial strength production environment *and* a testbed for bleeding edge research in logic and constraint programming. @@ -55,11 +62,14 @@ the builtin Prolog modules and libraries in Scryer, check the documentation site ## Downloads -The latest version of Scryer Prolog is *0.9.3*. And it's already useful for lots of tasks. +The latest version of Scryer Prolog is *0.9.4*. And it's already useful for lots of tasks. -| Windows | [Download](https://github.com/mthom/scryer-prolog/releases/download/v0.9.3/scryer-prolog_windows-latest.zip) | -| macOS (Intel) | [Download](https://github.com/mthom/scryer-prolog/releases/download/v0.9.3/scryer-prolog_macos-11.zip) | -| Linux | [Download](https://github.com/mthom/scryer-prolog/releases/download/v0.9.3/scryer-prolog_ubuntu-20.04.zip) | +| Windows (64 bits) | [Download](https://scryerprologrelease.blob.core.windows.net/release-094/scryer-prolog_windows-latest_x86_64-pc-windows-msvc.zip) | +| macOS (Intel) | [Download](https://scryerprologrelease.blob.core.windows.net/release-094/scryer-prolog_macos-11_x86_64-apple-darwin.zip) | +| macOS (ARM) | [Download](https://scryerprologrelease.blob.core.windows.net/release-094/scryer-prolog-macos-arm.zip) | +| Linux (Ubuntu 20.04, 64 bits) | [Download](https://scryerprologrelease.blob.core.windows.net/release-094/scryer-prolog_ubuntu-20.04_x86_64-unknown-linux-gnu.zip) | +| Linux (Ubuntu 22.04, 64 bits) | [Download](https://scryerprologrelease.blob.core.windows.net/release-094/scryer-prolog_ubuntu-22.04_x86_64-unknown-linux-gnu.zip) | +| Linux (Ubuntu 22.04, 32 bits) | [Download](https://scryerprologrelease.blob.core.windows.net/release-094/scryer-prolog_ubuntu-22.04_i686-unknown-linux-gnu.zip) | Scryer Prolog can also be compiled from source, instructions are on the [GitHub README](https://github.com/mthom/scryer-prolog). It runs on Linux, macOS and Windows. Other operating systems may work but they're not regularly tested. diff --git a/README.md b/README.md index 712382050..190c61649 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,12 @@ +# Announcing the Scryer Prolog Meetup 2024 + +This year we will meet at the Hotel Stefanie in Vienna to discuss +present and future developments in the Scryer Prolog system. + +Details here: [https://www.digitalaustria.gv.at/eng/insights/Digital-Austria-Events-EN/Scryer-Prolog-Meetup-2024.html](https://www.digitalaustria.gv.at/eng/insights/Digital-Austria-Events-EN/Scryer-Prolog-Meetup-2024.html). + +Many thanks to the Austrian Federal Ministry of Finance for hosting +the event! # Scryer Prolog diff --git a/benches/run_criterion.rs b/benches/run_criterion.rs index dfbcd1ce7..4622e039e 100644 --- a/benches/run_criterion.rs +++ b/benches/run_criterion.rs @@ -1,10 +1,14 @@ +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] use criterion::{criterion_group, criterion_main, BatchSize, Criterion}; +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] #[cfg(not(target_os = "windows"))] use pprof::criterion::{Output, PProfProfiler}; +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] mod setup; +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] fn bench_criterion(c: &mut Criterion) { for (&name, bench) in setup::prolog_benches().iter() { match bench.strategy { @@ -15,7 +19,7 @@ fn bench_criterion(c: &mut Criterion) { }; } } - +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] #[cfg(not(target_os = "windows"))] fn config() -> Criterion { Criterion::default() @@ -28,9 +32,15 @@ fn config() -> Criterion { Criterion::default().sample_size(20) } +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] criterion_group!( name = benches; config = config(); targets = bench_criterion ); + +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] criterion_main!(benches); + +#[cfg(all(target_arch = "wasm32", target_os = "unknown"))] +fn main() {} diff --git a/benches/run_iai.rs b/benches/run_iai.rs index a897ad86b..4af8115a0 100644 --- a/benches/run_iai.rs +++ b/benches/run_iai.rs @@ -1,18 +1,38 @@ -use iai_callgrind::{library_benchmark, library_benchmark_group, main}; -use scryer_prolog::machine::parsed_results::QueryResolution; - +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] mod setup; -#[library_benchmark] -#[bench::count_edges(setup::prolog_benches()["count_edges"].setup())] -#[bench::numlist(setup::prolog_benches()["numlist"].setup())] -#[bench::csv_codename(setup::prolog_benches()["csv_codename"].setup())] -fn bench(mut run: impl FnMut() -> QueryResolution) -> QueryResolution { - run() +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] +mod iai { + use iai_callgrind::{library_benchmark, library_benchmark_group, main}; + + use scryer_prolog::machine::parsed_results::QueryResolution; + + use super::setup; + + #[library_benchmark] + #[bench::count_edges(setup::prolog_benches()["count_edges"].setup())] + #[bench::numlist(setup::prolog_benches()["numlist"].setup())] + #[bench::csv_codename(setup::prolog_benches()["csv_codename"].setup())] + fn bench(mut run: impl FnMut() -> QueryResolution) -> QueryResolution { + run() + } + + library_benchmark_group!( + name = benches; + benchmarks = bench + ); + + main!(library_benchmark_groups = benches); + + pub fn call_main() { + main() + } +} + +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] +fn main() { + iai::call_main(); } -library_benchmark_group!( - name = benches; - benchmarks = bench -); -main!(library_benchmark_groups = benches); +#[cfg(all(target_arch = "wasm32", target_os = "unknown"))] +fn main() {} diff --git a/benches/setup.rs b/benches/setup.rs index 5e1fea7cb..b9c95c740 100644 --- a/benches/setup.rs +++ b/benches/setup.rs @@ -71,6 +71,7 @@ impl PrologBenchmark { machine } + #[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] pub fn setup(&self) -> impl FnMut() -> QueryResolution { let mut machine = self.make_machine(); let query = self.query; diff --git a/build/instructions_template.rs b/build/instructions_template.rs index 604ad4f06..2b227beec 100644 --- a/build/instructions_template.rs +++ b/build/instructions_template.rs @@ -497,6 +497,8 @@ enum SystemClauseType { CryptoRandomByte, #[strum_discriminants(strum(props(Arity = "4", Name = "$crypto_data_hash")))] CryptoDataHash, + #[strum_discriminants(strum(props(Arity = "5", Name = "$crypto_hmac")))] + CryptoHMAC, #[strum_discriminants(strum(props(Arity = "7", Name = "$crypto_data_hkdf")))] CryptoDataHKDF, #[strum_discriminants(strum(props(Arity = "4", Name = "$crypto_password_hash")))] @@ -1017,6 +1019,13 @@ fn generate_instruction_preface() -> TokenStream { }, } } + + pub fn is_external(&self) -> bool { + matches!( + self, + IndexingCodePtr::External(_) | IndexingCodePtr::DynamicExternal(_) + ) + } } impl IndexingInstruction { @@ -1157,27 +1166,27 @@ fn generate_instruction_preface() -> TokenStream { impl Instruction { #[inline] pub fn registers(&self) -> Vec { - match self { - &Instruction::GetConstant(_, _, r) => vec![r], - &Instruction::GetList(_, r) => vec![r], - &Instruction::GetPartialString(_, _, r, _) => vec![r], - &Instruction::GetStructure(_, _, _, r) => vec![r], - &Instruction::GetVariable(r, t) => vec![r, temp_v!(t)], - &Instruction::GetValue(r, t) => vec![r, temp_v!(t)], - &Instruction::UnifyLocalValue(r) => vec![r], - &Instruction::UnifyVariable(r) => vec![r], - &Instruction::PutConstant(_, _, r) => vec![r], - &Instruction::PutList(_, r) => vec![r], - &Instruction::PutPartialString(_, _, r, _) => vec![r], - &Instruction::PutStructure(_, _, r) => vec![r], - &Instruction::PutValue(r, t) => vec![r, temp_v!(t)], - &Instruction::PutVariable(r, t) => vec![r, temp_v!(t)], - &Instruction::SetLocalValue(r) => vec![r], - &Instruction::SetVariable(r) => vec![r], - &Instruction::SetValue(r) => vec![r], - &Instruction::GetLevel(r) => vec![r], - &Instruction::GetPrevLevel(r) => vec![r], - &Instruction::GetCutPoint(r) => vec![r], + match *self { + Instruction::GetConstant(_, _, r) => vec![r], + Instruction::GetList(_, r) => vec![r], + Instruction::GetPartialString(_, _, r, _) => vec![r], + Instruction::GetStructure(_, _, _, r) => vec![r], + Instruction::GetVariable(r, t) => vec![r, temp_v!(t)], + Instruction::GetValue(r, t) => vec![r, temp_v!(t)], + Instruction::UnifyLocalValue(r) => vec![r], + Instruction::UnifyVariable(r) => vec![r], + Instruction::PutConstant(_, _, r) => vec![r], + Instruction::PutList(_, r) => vec![r], + Instruction::PutPartialString(_, _, r, _) => vec![r], + Instruction::PutStructure(_, _, r) => vec![r], + Instruction::PutValue(r, t) => vec![r, temp_v!(t)], + Instruction::PutVariable(r, t) => vec![r, temp_v!(t)], + Instruction::SetLocalValue(r) => vec![r], + Instruction::SetVariable(r) => vec![r], + Instruction::SetValue(r) => vec![r], + Instruction::GetLevel(r) => vec![r], + Instruction::GetPrevLevel(r) => vec![r], + Instruction::GetCutPoint(r) => vec![r], _ => vec![], } } @@ -1848,6 +1857,7 @@ fn generate_instruction_preface() -> TokenStream { &Instruction::CallScryerPrologVersion | &Instruction::CallCryptoRandomByte | &Instruction::CallCryptoDataHash | + &Instruction::CallCryptoHMAC | &Instruction::CallCryptoDataHKDF | &Instruction::CallCryptoPasswordHash | &Instruction::CallCryptoCurveScalarMult | @@ -2085,6 +2095,7 @@ fn generate_instruction_preface() -> TokenStream { &Instruction::ExecuteScryerPrologVersion | &Instruction::ExecuteCryptoRandomByte | &Instruction::ExecuteCryptoDataHash | + &Instruction::ExecuteCryptoHMAC | &Instruction::ExecuteCryptoDataHKDF | &Instruction::ExecuteCryptoPasswordHash | &Instruction::ExecuteCryptoCurveScalarMult | diff --git a/src/arena.rs b/src/arena.rs index 172e6e9d5..7bae991cf 100644 --- a/src/arena.rs +++ b/src/arena.rs @@ -11,7 +11,6 @@ use crate::read::*; use crate::parser::dashu::{Integer, Rational}; use ordered_float::OrderedFloat; -use std::alloc; use std::cell::UnsafeCell; use std::fmt; use std::hash::{Hash, Hasher}; @@ -25,10 +24,7 @@ use std::sync::RwLock; macro_rules! arena_alloc { ($e:expr, $arena:expr) => {{ let result = $e; - #[allow(unused_unsafe)] - unsafe { - ArenaAllocated::alloc($arena, result) - } + ArenaAllocated::alloc($arena, result) }}; } @@ -36,13 +32,33 @@ macro_rules! arena_alloc { macro_rules! float_alloc { ($e:expr, $arena:expr) => {{ let result = $e; - #[allow(unused_unsafe)] - unsafe { - $arena.f64_tbl.build_with(result).as_ptr() - } + unsafe { $arena.f64_tbl.build_with(result).as_ptr() } }}; } +pub fn header_offset_from_payload() -> usize { + let payload_offset = mem::offset_of!(TypedAllocSlab, payload); + let slab_offset = mem::offset_of!(TypedAllocSlab, slab); + let header_offset = slab_offset + mem::offset_of!(AllocSlab, header); + + debug_assert!(payload_offset > header_offset); + payload_offset - header_offset +} + +pub fn ptr_to_allocated(slab: &mut AllocSlab) -> TypedArenaPtr { + let typed_slab: &mut TypedAllocSlab = unsafe { mem::transmute(slab) }; + typed_slab.to_typed_arena_ptr() +} + +#[macro_export] +macro_rules! gen_ptr_to_allocated { + ($payload: ty) => { + fn ptr_to_allocated(slab: &mut AllocSlab) -> TypedArenaPtr<$payload> { + ptr_to_allocated::<$payload>(slab) + } + }; +} + use std::sync::Arc; use std::sync::Mutex; use std::sync::Weak; @@ -196,6 +212,7 @@ pub enum ArenaHeaderTag { #[bitfield] #[derive(Copy, Clone, Debug)] pub struct ArenaHeader { + #[allow(dead_code)] size: B56, m: bool, tag: ArenaHeaderTag, @@ -291,16 +308,12 @@ impl TypedArenaPtr { #[inline] pub fn header_ptr(&self) -> *const ArenaHeader { - let mut ptr = self.as_ptr() as *const u8 as usize; - ptr -= T::header_offset_from_payload(); // mem::size_of::<*const ArenaHeader>(); - ptr as *const ArenaHeader + unsafe { self.as_ptr().byte_sub(T::header_offset_from_payload()) as *const _ } } #[inline] fn header_ptr_mut(&mut self) -> *mut ArenaHeader { - let mut ptr = self.as_ptr() as *const u8 as usize; - ptr -= T::header_offset_from_payload(); // mem::size_of::<*const ArenaHeader>(); - ptr as *mut ArenaHeader + unsafe { self.as_ptr().byte_sub(T::header_offset_from_payload()) as *mut _ } } #[inline] @@ -339,35 +352,31 @@ pub trait ArenaAllocated: Sized { type PtrToAllocated; fn tag() -> ArenaHeaderTag; - fn size(&self) -> usize; - fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated; + fn ptr_to_allocated(slab: &mut AllocSlab) -> Self::PtrToAllocated; fn header_offset_from_payload() -> usize { - mem::size_of::() + header_offset_from_payload::() } #[allow(clippy::missing_safety_doc)] - unsafe fn alloc(arena: &mut Arena, value: Self) -> Self::PtrToAllocated { - let size = value.size() + mem::size_of::(); + fn alloc(arena: &mut Arena, value: Self) -> Self::PtrToAllocated { + let size = mem::size_of::>(); + let slab = Box::new(TypedAllocSlab { + slab: AllocSlab { + next: arena.base.take(), + #[cfg(target_pointer_width = "32")] + _padding: 0, + header: ArenaHeader::build_with(size as u64, Self::tag()), + }, + payload: value, + }); - #[cfg(target_pointer_width = "32")] - let align = mem::align_of::() * 2; + let mut untyped_slab = unsafe { Box::from_raw(Box::into_raw(slab) as *mut AllocSlab) }; + let allocated_ptr = Self::ptr_to_allocated(untyped_slab.as_mut()); - #[cfg(target_pointer_width = "64")] - let align = mem::align_of::(); - let layout = alloc::Layout::from_size_align_unchecked(size, align); + arena.base = Some(untyped_slab); - let slab = alloc::alloc(layout) as *mut AllocSlab; - - (*slab).next = arena.base; - (*slab).header = ArenaHeader::build_with(value.size() as u64, Self::tag()); - - let offset = (*slab).payload_offset(); - let result = value.copy_to_arena(offset); - - arena.base = slab; - - result + allocated_ptr } } @@ -505,141 +514,69 @@ impl fmt::Display for F64Offset { impl ArenaAllocated for Integer { type PtrToAllocated = TypedArenaPtr; + gen_ptr_to_allocated!(Integer); + #[inline] fn tag() -> ArenaHeaderTag { ArenaHeaderTag::Integer } - - #[inline] - fn size(&self) -> usize { - mem::size_of::() - } - - #[allow(clippy::not_unsafe_ptr_arg_deref)] - #[inline] - fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated { - unsafe { - ptr::write(dst, self); - TypedArenaPtr::new(dst) - } - } } impl ArenaAllocated for Rational { type PtrToAllocated = TypedArenaPtr; + gen_ptr_to_allocated!(Rational); + #[inline] fn tag() -> ArenaHeaderTag { ArenaHeaderTag::Rational } - - #[inline] - fn size(&self) -> usize { - mem::size_of::() - } - - #[allow(clippy::not_unsafe_ptr_arg_deref)] - #[inline] - fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated { - unsafe { - ptr::write(dst, self); - TypedArenaPtr::new(dst) - } - } } impl ArenaAllocated for LiveLoadState { type PtrToAllocated = TypedArenaPtr; + gen_ptr_to_allocated!(LiveLoadState); + #[inline] fn tag() -> ArenaHeaderTag { ArenaHeaderTag::LiveLoadState } - - #[inline] - fn size(&self) -> usize { - mem::size_of::() - } - - #[allow(clippy::not_unsafe_ptr_arg_deref)] - #[inline] - fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated { - unsafe { - ptr::write(dst, self); - TypedArenaPtr::new(dst) - } - } } impl ArenaAllocated for TcpListener { type PtrToAllocated = TypedArenaPtr; + gen_ptr_to_allocated!(TcpListener); + #[inline] fn tag() -> ArenaHeaderTag { ArenaHeaderTag::TcpListener } - - #[inline] - fn size(&self) -> usize { - mem::size_of::() - } - - #[allow(clippy::not_unsafe_ptr_arg_deref)] - #[inline] - fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated { - unsafe { - ptr::write(dst, self); - TypedArenaPtr::new(dst) - } - } } #[cfg(feature = "http")] impl ArenaAllocated for HttpListener { type PtrToAllocated = TypedArenaPtr; + gen_ptr_to_allocated!(HttpListener); + #[inline] fn tag() -> ArenaHeaderTag { ArenaHeaderTag::HttpListener } - - #[inline] - fn size(&self) -> usize { - mem::size_of::() - } - - #[allow(clippy::not_unsafe_ptr_arg_deref)] - #[inline] - fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated { - unsafe { - ptr::write(dst, self); - TypedArenaPtr::new(dst) - } - } } #[cfg(feature = "http")] impl ArenaAllocated for HttpResponse { type PtrToAllocated = TypedArenaPtr; + gen_ptr_to_allocated!(HttpResponse); + #[inline] fn tag() -> ArenaHeaderTag { ArenaHeaderTag::HttpResponse } - - #[inline] - fn size(&self) -> usize { - mem::size_of::() - } - - #[allow(clippy::not_unsafe_ptr_arg_deref)] - #[inline] - fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated { - unsafe { - ptr::write(dst, self); - TypedArenaPtr::new(dst) - } - } } impl ArenaAllocated for IndexPtr { @@ -651,17 +588,8 @@ impl ArenaAllocated for IndexPtr { } #[inline] - fn size(&self) -> usize { - mem::size_of::() - } - - #[allow(clippy::not_unsafe_ptr_arg_deref)] - #[inline] - fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated { - unsafe { - ptr::write(dst, self); - TypedArenaPtr::new(dst) - } + fn ptr_to_allocated(slab: &mut AllocSlab) -> Self::PtrToAllocated { + TypedArenaPtr::new(ptr::addr_of_mut!(slab.header) as *mut _) } #[inline] @@ -669,38 +597,48 @@ impl ArenaAllocated for IndexPtr { 0 } - unsafe fn alloc(arena: &mut Arena, value: Self) -> Self::PtrToAllocated { - let size = mem::size_of::(); - - let align = mem::align_of::(); - let layout = alloc::Layout::from_size_align_unchecked(size, align); - - let slab = alloc::alloc(layout) as *mut AllocSlab; - - (*slab).next = arena.base; - - let result = value.copy_to_arena( - &(*slab).header as *const crate::arena::ArenaHeader - as *mut crate::machine::machine_indices::IndexPtr, - ); - arena.base = slab; - - result + #[inline] + fn alloc(arena: &mut Arena, value: Self) -> Self::PtrToAllocated { + let mut slab = Box::new(AllocSlab { + next: arena.base.take(), + #[cfg(target_pointer_width = "32")] + _padding: 0, + header: unsafe { mem::transmute(value) }, + }); + + let allocated_ptr = + TypedArenaPtr::new(unsafe { mem::transmute(ptr::addr_of_mut!(slab.header)) }); + arena.base = Some(slab); + allocated_ptr } } #[repr(C)] -#[derive(Clone, Copy, Debug)] -struct AllocSlab { - next: *mut AllocSlab, +#[derive(Clone, Debug)] +pub struct AllocSlab { + next: Option>, #[cfg(target_pointer_width = "32")] _padding: u32, header: ArenaHeader, } +#[repr(C)] +#[derive(Clone, Debug)] +pub struct TypedAllocSlab { + slab: AllocSlab, + payload: Payload, +} + +impl TypedAllocSlab { + #[inline] + pub fn to_typed_arena_ptr(&mut self) -> TypedArenaPtr { + TypedArenaPtr::new(&mut self.payload as *mut _) + } +} + #[derive(Debug)] pub struct Arena { - base: *mut AllocSlab, + base: Option>, pub f64_tbl: Arc, } @@ -712,72 +650,77 @@ impl Arena { #[inline] pub fn new() -> Self { Arena { - base: ptr::null_mut(), + base: None, f64_tbl: F64Table::new(), } } } unsafe fn drop_slab_in_place(value: &mut AllocSlab) { - use crate::parser::char_reader::CharReader; + macro_rules! drop_typed_slab_in_place { + ($payload: ty, $value: expr) => { + let slab: &mut TypedAllocSlab<$payload> = mem::transmute($value); + ptr::drop_in_place(&mut slab.payload); + }; + } match value.header.tag() { ArenaHeaderTag::Integer => { - ptr::drop_in_place(value.payload_offset::()); + drop_typed_slab_in_place!(Integer, value); } ArenaHeaderTag::Rational => { - ptr::drop_in_place(value.payload_offset::()); + drop_typed_slab_in_place!(Rational, value); } ArenaHeaderTag::InputFileStream => { - ptr::drop_in_place(value.payload_offset::>>()); + drop_typed_slab_in_place!(InputFileStream, value); } ArenaHeaderTag::OutputFileStream => { - ptr::drop_in_place(value.payload_offset::>()); + drop_typed_slab_in_place!(OutputFileStream, value); } ArenaHeaderTag::NamedTcpStream => { - ptr::drop_in_place(value.payload_offset::>>()); + drop_typed_slab_in_place!(NamedTcpStream, value); } ArenaHeaderTag::NamedTlsStream => { #[cfg(feature = "tls")] - ptr::drop_in_place(value.payload_offset::>>()); + drop_typed_slab_in_place!(NamedTlsStream, value); } ArenaHeaderTag::HttpReadStream => { #[cfg(feature = "http")] - ptr::drop_in_place(value.payload_offset::>>()); + drop_typed_slab_in_place!(HttpReadStream, value); } ArenaHeaderTag::HttpWriteStream => { #[cfg(feature = "http")] - ptr::drop_in_place(value.payload_offset::>>()); + drop_typed_slab_in_place!(HttpWriteStream, value); } ArenaHeaderTag::ReadlineStream => { - ptr::drop_in_place(value.payload_offset::>()); + drop_typed_slab_in_place!(ReadlineStream, value); } ArenaHeaderTag::StaticStringStream => { - ptr::drop_in_place(value.payload_offset::>()); + drop_typed_slab_in_place!(StaticStringStream, value); } ArenaHeaderTag::ByteStream => { - ptr::drop_in_place(value.payload_offset::>>()); + drop_typed_slab_in_place!(ByteStream, value); } ArenaHeaderTag::LiveLoadState | ArenaHeaderTag::InactiveLoadState => { - ptr::drop_in_place(value.payload_offset::()); + drop_typed_slab_in_place!(LiveLoadState, value); } ArenaHeaderTag::Dropped => {} ArenaHeaderTag::TcpListener => { - ptr::drop_in_place(value.payload_offset::()); + drop_typed_slab_in_place!(TcpListener, value); } ArenaHeaderTag::HttpListener => { #[cfg(feature = "http")] - ptr::drop_in_place(value.payload_offset::()); + drop_typed_slab_in_place!(HttpListener, value); } ArenaHeaderTag::HttpResponse => { #[cfg(feature = "http")] - ptr::drop_in_place(value.payload_offset::()); + drop_typed_slab_in_place!(HttpResponse, value); } ArenaHeaderTag::StandardOutputStream => { - ptr::drop_in_place(value.payload_offset::>()); + drop_typed_slab_in_place!(StandardOutputStream, value); } ArenaHeaderTag::StandardErrorStream => { - ptr::drop_in_place(value.payload_offset::>()); + drop_typed_slab_in_place!(StandardErrorStream, value); } ArenaHeaderTag::NullStream | ArenaHeaderTag::IndexPtrUndefined @@ -789,44 +732,18 @@ unsafe fn drop_slab_in_place(value: &mut AllocSlab) { impl Drop for Arena { fn drop(&mut self) { - let mut ptr = self.base; + let mut ptr = self.base.take(); - while !ptr.is_null() { + while let Some(mut slab) = ptr { unsafe { - let ptr_r = &*ptr; - - let layout = alloc::Layout::from_size_align_unchecked( - ptr_r.slab_size(), - mem::align_of::(), - ); - - drop_slab_in_place(&mut *ptr); - - let next_ptr = ptr_r.next; - alloc::dealloc(ptr as *mut u8, layout); - ptr = next_ptr; + drop_slab_in_place(&mut slab); + ptr = slab.next; } } - - self.base = ptr::null_mut(); } } const_assert!(mem::size_of::() == 16); - -impl AllocSlab { - #[inline] - fn slab_size(&self) -> usize { - self.header.size() as usize + mem::size_of::() - } - - fn payload_offset(&self) -> *mut T { - // This looks really scary, should this method be marked as unsafe? - // Also, this seems to cause UB. - unsafe { (self as *const AllocSlab).add(1) as *mut T } - } -} - const_assert!(mem::size_of::>() == 8); #[cfg(test)] diff --git a/src/atom_table.rs b/src/atom_table.rs index 3f60eca69..6de8f5f9a 100644 --- a/src/atom_table.rs +++ b/src/atom_table.rs @@ -17,7 +17,7 @@ use std::sync::Weak; use indexmap::IndexSet; -use modular_bitfield::prelude::*; +use scryer_modular_bitfield::prelude::*; #[derive(Copy, Clone, Debug, PartialEq, Eq)] pub struct Atom { diff --git a/src/bin/scryer-prolog.rs b/src/bin/scryer-prolog.rs index 9ae807731..b1af916d3 100644 --- a/src/bin/scryer-prolog.rs +++ b/src/bin/scryer-prolog.rs @@ -1,11 +1,10 @@ fn main() -> std::process::ExitCode { use scryer_prolog::atom_table::Atom; use scryer_prolog::*; - use std::sync::atomic::Ordering; #[cfg(feature = "repl")] ctrlc::set_handler(move || { - scryer_prolog::machine::INTERRUPT.store(true, Ordering::Relaxed); + scryer_prolog::machine::INTERRUPT.store(true, std::sync::atomic::Ordering::Relaxed); }) .unwrap(); diff --git a/src/ffi.rs b/src/ffi.rs index 64879e58a..418accced 100644 --- a/src/ffi.rs +++ b/src/ffi.rs @@ -27,6 +27,7 @@ use std::collections::HashMap; use std::convert::TryFrom; use std::error::Error; use std::ffi::{c_void, CString}; +use std::ptr::addr_of_mut; use libffi::low::type_tag::STRUCT; use libffi::low::{ffi_abi_FFI_DEFAULT_ABI, ffi_cif, ffi_type, prep_cif, types, CodePtr}; @@ -90,20 +91,20 @@ impl ForeignFunctionTable { fn map_type_ffi(&mut self, source: &Atom) -> *mut ffi_type { unsafe { match source { - atom!("sint64") => &mut types::sint64, - atom!("sint32") => &mut types::sint32, - atom!("sint16") => &mut types::sint16, - atom!("sint8") => &mut types::sint8, - atom!("uint64") => &mut types::uint64, - atom!("uint32") => &mut types::uint32, - atom!("uint16") => &mut types::uint16, - atom!("uint8") => &mut types::uint8, - atom!("bool") => &mut types::sint8, - atom!("void") => &mut types::void, - atom!("cstr") => &mut types::pointer, - atom!("ptr") => &mut types::pointer, - atom!("f32") => &mut types::float, - atom!("f64") => &mut types::double, + atom!("sint64") => addr_of_mut!(types::sint64), + atom!("sint32") => addr_of_mut!(types::sint32), + atom!("sint16") => addr_of_mut!(types::sint16), + atom!("sint8") => addr_of_mut!(types::sint8), + atom!("uint64") => addr_of_mut!(types::uint64), + atom!("uint32") => addr_of_mut!(types::uint32), + atom!("uint16") => addr_of_mut!(types::uint16), + atom!("uint8") => addr_of_mut!(types::uint8), + atom!("bool") => addr_of_mut!(types::sint8), + atom!("void") => addr_of_mut!(types::void), + atom!("cstr") => addr_of_mut!(types::pointer), + atom!("ptr") => addr_of_mut!(types::pointer), + atom!("f32") => addr_of_mut!(types::float), + atom!("f64") => addr_of_mut!(types::double), struct_name => match self.structs.get_mut(&*struct_name.as_str()) { Some(ref mut struct_type) => &mut struct_type.ffi_type, None => unreachable!(), @@ -161,7 +162,7 @@ impl ForeignFunctionTable { } fn build_pointer_args( - args: &mut Vec, + args: &mut [Value], type_args: &[*mut ffi_type], structs_table: &mut HashMap, ) -> Result { @@ -435,6 +436,18 @@ impl ForeignFunctionTable { } libffi::raw::FFI_TYPE_SINT64 => read_and_push_int!(i64), libffi::raw::FFI_TYPE_POINTER => read_and_push_int!(i64), + libffi::raw::FFI_TYPE_FLOAT => { + field_ptr = field_ptr.add(field_ptr.align_offset(std::mem::align_of::())); + let n = std::ptr::read(field_ptr as *mut f32); + returns.push(Value::Float(f32::from(n).into())); + field_ptr = field_ptr.add(std::mem::size_of::()); + } + libffi::raw::FFI_TYPE_DOUBLE => { + field_ptr = field_ptr.add(field_ptr.align_offset(std::mem::align_of::())); + let n = std::ptr::read(field_ptr as *mut f64); + returns.push(Value::Float(f64::from(n))); + field_ptr = field_ptr.add(std::mem::size_of::()); + } libffi::raw::FFI_TYPE_STRUCT => { let substruct = struct_type.atom_fields[i].as_str(); let struct_type = self diff --git a/src/heap_iter.rs b/src/heap_iter.rs index cada66cfa..024262f6a 100644 --- a/src/heap_iter.rs +++ b/src/heap_iter.rs @@ -8,7 +8,7 @@ use crate::machine::stack::*; use crate::types::*; use core::marker::PhantomData; -use modular_bitfield::prelude::*; +use scryer_modular_bitfield::prelude::*; use std::ops::Deref; use std::vec::Vec; diff --git a/src/heap_print.rs b/src/heap_print.rs index 515ebef6f..c844aedea 100644 --- a/src/heap_print.rs +++ b/src/heap_print.rs @@ -1221,7 +1221,12 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { let focus = self.iter.focus(); let mut heap_pstr_iter = HeapPStrIter::new(self.iter.heap, focus.value() as usize); + let next_h; + let next_hare; + if heap_pstr_iter.next().is_some() { + next_h = heap_pstr_iter.focus; + next_hare = heap_pstr_iter.focus(); for _ in heap_pstr_iter.by_ref() {} } else { return self.push_list(max_depth); @@ -1283,7 +1288,8 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { // print an extraneous number. pstr offset value cells are never // used by the iterator to mark cyclic terms so the removal is safe. self.iter.pop_stack(); - Some(end_h) + Some(next_hare) + // Some(end_h) } else { None }; @@ -1291,7 +1297,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { if !self.max_depth_exhausted(max_depth) { let pstr = cell_as_string!(self.iter.heap[h]); self.state_stack.push(TokenOrRedirect::CommaSeparatedCharList(CommaSeparatedCharList { - pstr, offset, max_depth, end_cell, end_h, + pstr, offset, max_depth, end_cell: next_h, end_h, })); } else { self.state_stack.push(TokenOrRedirect::Atom(atom!("..."))); @@ -1727,7 +1733,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { self.print_stream(stream, max_depth); } (ArenaHeaderTag::TcpListener, listener) => { - self.print_tcp_listener(&*listener, max_depth); + self.print_tcp_listener(&listener, max_depth); } (ArenaHeaderTag::Dropped, _value) => { self.print_impromptu_atom(atom!("$dropped_value")); diff --git a/src/indexing.rs b/src/indexing.rs index 5956dcfc9..2df055308 100644 --- a/src/indexing.rs +++ b/src/indexing.rs @@ -114,13 +114,13 @@ impl<'a> IndexingCodeMergingPtr<'a> { Some(OptArgIndexKey::Literal(_, _, constant, _)) => { constants.insert(*constant, constant_ptr); } + _ if constant_ptr.is_external() => { + // this must be a defunct clause, because it's been deleted + // from the skeleton. + debug_assert!(constant_key.is_none()); + } _ => { - if let IndexingCodePtr::DynamicExternal(_) = constant_ptr { - // this must be a defunct clause, because it's been deleted - // from the skeleton. - } else { - unreachable!() - } + unreachable!() } } @@ -1113,16 +1113,10 @@ pub(crate) fn constant_key_alternatives( constants.push(Literal::Atom(atom)); } /* + // constant_to_literal takes care of the downward conversion from Integer to Fixnum + // if possible. Literal::Fixnum(ref n) => { - constants.push(Literal::Integer(arena_alloc!(n, arena))); //Rc::new(Integer::from(*n)))); - - /* - if *n >= 0 { - if let Ok(n) = usize::try_from(*n) { - constants.push(Literal::Usize(n)); - } - } - */ + constants.push(Literal::Integer(arena_alloc!(n, arena))); } */ Literal::Integer(ref n) => { diff --git a/src/lib/crypto.pl b/src/lib/crypto.pl index bcd2bb9d4..1df4a411e 100644 --- a/src/lib/crypto.pl +++ b/src/lib/crypto.pl @@ -1,5 +1,5 @@ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Written 2020-2023 by Markus Triska (triska@metalevel.at) + Written 2020-2024 by Markus Triska (triska@metalevel.at) Part of Scryer Prolog. /** Predicates for cryptographic applications. @@ -10,10 +10,6 @@ Especially for cryptographic applications, it is an advantage that using strings leaves little trace of what was processed in the system. - - For predicates that accept an `encoding/1` option to specify the encoding - of the input data, if `encoding(octet)` is used, then the input can also - be specified as a list of _bytes_, i.e., integers between 0 and 255. */ :- module(crypto, @@ -91,9 +87,36 @@ }, bytes_hex(Bs). +char_hexval(C, H) :- + integer(H), + !, + hexval_char(H, C). char_hexval(C, H) :- nth0(H, "0123456789abcdef", C), !. char_hexval(C, H) :- nth0(H, "0123456789ABCDEF", C), !. +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + We specialize char_hexval/2 for use if the value is given, + so that it works in constant time in this case. + + The security of HMAC verification depends on this property. +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +hexval_char(0, '0'). +hexval_char(1, '1'). +hexval_char(2, '2'). +hexval_char(3, '3'). +hexval_char(4, '4'). +hexval_char(5, '5'). +hexval_char(6, '6'). +hexval_char(7, '7'). +hexval_char(8, '8'). +hexval_char(9, '9'). +hexval_char(0xa, a). +hexval_char(0xb, b). +hexval_char(0xc, c). +hexval_char(0xd, d). +hexval_char(0xe, e). +hexval_char(0xf, f). must_be_bytes(Bytes, Context) :- must_be(list, Bytes), @@ -190,7 +213,19 @@ % % - `encoding(+Encoding)` % The default encoding is `utf8`. The alternative is `octet`, to -% treat the input as a list of raw bytes. +% use the character code of each character in Data as a byte +% value. +% +% - `hmac(+Key)` +% Compute a hash-based message authentication code (HMAC) using +% Key, a list of bytes. This option is currently supported for +% algorithms `sha256`, `sha384` and `sha512`. If `Hash` is +% instantiated, then it is compared with the computed HMAC +% in such a way that no information about the expected HMAC +% is revealed, using a comparison of strings that always takes +% the same time independent of whether and where the strings +% differ. This option can therefore also be used to safely +% _verify_ a given HMAC. % % Example: % @@ -214,8 +249,33 @@ ( hash_algorithm(A) -> true ; domain_error(hash_algorithm, A, crypto_data_hash/3) ), - '$crypto_data_hash'(Data, Encoding, HashBytes, A), - hex_bytes(Hash, HashBytes). + ( member(HMAC, Options0), nonvar(HMAC), HMAC = hmac(Ks) -> + must_be_bytes(Ks, crypto_data_hash/3), + hmac_algorithm(A), + '$crypto_hmac'(Data, Encoding, Ks, HashBytes, A), + ( var(Hash) -> + hex_bytes(Hash, HashBytes) + ; must_be(chars, Hash), + hex_bytes(HashMAC, HashBytes), + chars_equal_constant_time(Hash, HashMAC) + ) + ; '$crypto_data_hash'(Data, Encoding, HashBytes, A), + hex_bytes(Hash, HashBytes) + ). + +chars_equal_constant_time(As, Bs) :- + maplist(chars_xor, As, Bs, Xs), + sum_list(Xs, Sum), + Sum =:= 0. + +chars_xor(A, B, Xor) :- + char_code(A, CA), + char_code(B, CB), + Xor is xor(CA,CB). + +hmac_algorithm(sha256). +hmac_algorithm(sha384). +hmac_algorithm(sha512). options_data_chars(Options, Data, Chars, Encoding) :- option(encoding(Encoding), Options, utf8), @@ -271,7 +331,8 @@ % default is all zeroes. % - `encoding(+Encoding)` % The default encoding is `utf8`. The alternative is `octet`, -% to treat the input as a list of raw bytes. +% to use the character code of each character in Data as a byte +% value. % % The `info/1` option can be used to generate multiple keys from a % single master key, using for example values such as "key" and @@ -477,8 +538,9 @@ % Options: % % - `encoding(+Encoding)` -% Encoding to use for PlainText. Default is utf8. The alternative -% is octet to treat PlainText as raw bytes. +% Encoding to use for PlainText. The default is `utf8`. The +% alternative is `octet`, to use the character code of each +% character in PlainText as a byte value. % % - `tag(-List)` % For authenticated encryption schemes, List is unified with a @@ -564,8 +626,9 @@ % Options is a list of: % % - `encoding(+Encoding)` -% Encoding to use for PlainText. The default is utf8. The -% alternative is octet, which is used if the data are raw bytes. +% Encoding to use for PlainText. The default is `utf8`. The +% alternative is `octet`, to obtain a list of characters where each +% character code corresponds to a decrypted octet of CipherText. % % - `tag(+Tag)` % For authenticated encryption schemes, the tag must be specified as @@ -601,6 +664,8 @@ encoding_chars(octet, Bs, Cs) :- must_be(list, Bs), ( maplist(integer, Bs) -> + % the ability to use integers is deprecated and a + % candidate for removal in the future! maplist(char_code, Cs, Bs) ; Bs = Cs ), @@ -687,6 +752,146 @@ % PKCS#8 v2 format as generated by `ed25519_new_keypair/1`. Sign Data % with Key, yielding Signature as a list of hexadecimal characters. +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Side-channel attacks on Ed25519 predicates + ========================================== + + Ed25519 predicates where the private key occurs as part of the + arguments are potentially subject to side-channel attacks, since + key pairs are represented as strings in the context of Ed25519. + + The compact string representation used by Scryer Prolog means that + different characters may occupy different numbers of bytes: Due + to UTF-8 encoding, characters with codes 1..127 occupy exactly 1 byte, + characters with codes 128..2047 occupy exactly 2 bytes, and '0' + is represented as a list element occupying an entire cell and + dedicated list constructor in addition to string termination and + possibly padding. + + This difference is located at the level of the Rust engine. To + Prolog code, any two characters look conceptually the same (i.e., + they are both atoms of length 1), and the internal difference in + representation cannot be observed at all. + + Very precise timing information or other measurements about + operations that reason about such strings may yield information + that is meant to stay secret. For example, if Ks is a secret key + stored as a list of characters, then the time it takes to run + phrase(..., Ks) may reveal the number of bytes in Ks that are 0 or + greater than 127. + + To test whether it is possible to detect such differences, I use + exp(N) which succeeds exactly 2^N times: + + exp(E) :- + N is 2^E, + between(1, N, _). + + Here is an example query that uses partial_string/1 to traverse + various strings consisting uniformly of characters with the same + code, such as 0, 32, 255 and others, in the hope to detect + differences in timing if only in such extreme cases: + + ?- length(Ls, 256), + member(Code, [12,0,55,0,0,32,255,10,0,127,64]), + portray_clause(byte=Code), + maplist(=(Code), Ls), + atom_codes(A, Ls), + atom_chars(A, Cs), + time((exp(21),partial_string(Cs),false)). + %@ byte=12. + %@ % CPU time: 1.537s, 14_680_107 inferences + %@ byte=0. + %@ % CPU time: 1.526s, 14_680_107 inferences + %@ byte=55. + %@ % CPU time: 1.534s, 14_680_107 inferences + %@ byte=0. + %@ % CPU time: 1.556s, 14_680_107 inferences + %@ byte=0. + %@ % CPU time: 1.520s, 14_680_107 inferences + %@ byte=32. + %@ % CPU time: 1.524s, 14_680_107 inferences + %@ byte=255. + %@ % CPU time: 1.522s, 14_680_107 inferences + %@ byte=10. + %@ % CPU time: 1.526s, 14_680_107 inferences + %@ byte=0. + %@ % CPU time: 1.522s, 14_680_107 inferences + %@ byte=127. + %@ % CPU time: 1.522s, 14_680_107 inferences + %@ byte=64. + %@ % CPU time: 1.517s, 14_680_107 inferences + %@ false. + + This shows that there is enough variety between runs that + traversing a list with 256 elements that are all '\x0\' may even, + and unexpectedly, be faster than traversing a list consisting + entirely of characters with character code 32, which in turn may be + slower than processing a list with 256 characters that all have + code 255 and thus occupy twice as much space. This holds even over + millions of runs. Reasons for such variety can include CPU power + saving mechanisms, dynamic optimizations, prefetching heuristics, + branch prediction algorithms, varying system loads etc. + + This gives rise to the suspicion that any such timing differences + would be extremely hard to exploit, at least on the architecture I + tested it on, also since partial_string/1 is a very low-level + operation and any actual processing (using phrase/2 etc.) would + introduce additional overheads that in all likelihood far outweigh + any differences that can be measured with partial_string/1. + + Any resulting differences in timing and resource use, if they are + measurable at all in any way, can at most reveal one bit per byte. + Note also that Ed25519 private keys are chosen randomly, and hence + half of their bytes are expected to be in 128..255. The predicates + remain completely safe to use in all scenarios where no information + about the private key can be gathered by unauthorized parties. + + Still, the concern remains: We know that different keys may occupy + different numbers of bytes in the internal compact representation + of strings used by Scryer Prolog, and it may be possible to exploit + these differences to obtain information that is meant to be kept + secret. We must therefore keep an eye on this issue. For example, + it may become a concern on very slow devices such as ID-cards where + Scryer Prolog may be deployed in the future and where such timing + differences may be detectable, or if Scryer Prolog itself becomes + so fast that the relative overhead of such low-level operations + becomes greater and thus more easily measurable. + + Possible mitigations in such situations would be to: + + 1. use lists of integers to represent Ed25519 key pairs, resulting + in a 24-fold space increase. This may be prohibitive in + applications that manage a great number of keys. The Rust code + would not be affected by this change, since it already operates + on bytes. A Prolog application may implement this privately, and + also encourage an API change of this library. + 2. introduce a compact internal representation for lists of bytes, + which appear to Prolog programs as lists of characters. + + (2) seems to be the better solution despite the implementation + overhead: In addition to the improved security properties due to + the elimination of side-channel attacks when reasoning about keys, + all applications that reason about binary data would benefit from a + more compact representation of binary data. Such an additional + compact representation should only be attempted if the amount of + Rust code it impacts is kept to the absolute minimum, certainly + much smaller than what the compact string representation as it is + currently implemented affects. + + *No* solution would be to: + + - eliminate the compact string representation from the engine and + use plain lists of characters to represent Ed25519 key pairs, + - continue to use lists of characters for Ed25519 key pairs, + and ensure that they are never coalesced into compact strings + (a future GC compaction step may need to be adapted for this) + + This is because atom names are still represented in UTF-8 encoding, + and are hence also susceptible to side-channel attacks due to their + using different numbers of bytes for different codes. +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + ed25519_sign(KeyPair, Data0, Signature, Options) :- must_be_octet_chars(KeyPair, ed25519_sign/4), length(Prefix, 16), @@ -708,7 +913,8 @@ % % - `encoding(+Encoding)` % The default encoding of Data is `utf8`. The alternative is `octet`, -% which treats Data as a list of raw bytes. +% to use the character code of each character in Data as a byte +% value. ed25519_verify(Key, Data0, Signature0, Options) :- must_be_octet_chars(Key, ed25519_verify/4), @@ -814,9 +1020,26 @@ curve_b(curve(_,_,_,B,_,_,_,_), B). curve_field_length(curve(_,_,_,_,_,_,FieldLength,_), FieldLength). +%% crypto_curve_generator(+Curve, -G) +% +% Yields the generator point G of Curve. + crypto_curve_generator(curve(_,_,_,_,G,_,_,_), G). + +%% crypto_curve_order(+Curve, -Order) +% +% Yields the order of Curve. + crypto_curve_order(curve(_,_,_,_,_,Order,_,_), Order). +%% crypto_curve_scalar_mult(+Curve, +Scalar, +Point, -Result) +% +% Computes the point _Result = Scalar*Point_. Scalar must be an +% integer, and Point must be a point on Curve. This operation can be +% used to negotiate a shared secret over a public channel. Consider +% using `curve25519_scalar_mult/3` instead for more desirable +% security properties. + crypto_curve_scalar_mult(Curve, Scalar, point(X,Y), point(RX, RY)) :- must_be(integer, Scalar), must_be_on_curve(Curve, point(X,Y)), @@ -883,6 +1106,12 @@ fitting_exponent(N, E1, E) ). +%% crypto_name_curve(+Name, -Curve) +% +% Yields a representation of the elliptic curve with name Name. +% Currently, the only supported name is `secp256k1`, a Koblitz curve +% regarded as secure. + crypto_name_curve(secp256k1, curve(secp256k1, 0x00fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f, diff --git a/src/lib/dcgs.pl b/src/lib/dcgs.pl index 4ee763f0f..200e57a8e 100644 --- a/src/lib/dcgs.pl +++ b/src/lib/dcgs.pl @@ -33,6 +33,10 @@ :- meta_predicate phrase(2, ?, ?, ?, ?). +:- meta_predicate(','(2, 2, ?, ?)). + +:- meta_predicate(;(2, 2, ?, ?)). + %% phrase(+Body, ?Ls). % % True iff Body describes the list Ls. Body must be a DCG body. @@ -242,6 +246,9 @@ Cs0 = Cs. ... --> [] | [_], ... . +% defer instantiation errors until runtime. instantiations may be made +% then. +error_goal(error(instantiation_error, _Context), _). error_goal(error(E, must_be/2), error(E, must_be/2)). error_goal(error(E, (=..)/2), error(E, (=..)/2)). error_goal(error(representation_error(dcg_body), Context), @@ -255,7 +262,11 @@ E, dcgs:error_goal(E, GRBody1) ), - ( GRBody = (_:_) -> + ( E = error(instantiation_error, _), + GRBody0 = [T|Ts] -> + GRBody2 = (error:must_be(list, [T|Ts]), + lists:append([T|Ts], S0, S)) + ; GRBody = (_:_) -> GRBody2 = M:GRBody1 ; GRBody2 = GRBody1 ). diff --git a/src/lib/debug.pl b/src/lib/debug.pl index e237d8e19..702947fa1 100644 --- a/src/lib/debug.pl +++ b/src/lib/debug.pl @@ -53,5 +53,4 @@ % % Generalize away Goal. - *(_). diff --git a/src/lib/format.pl b/src/lib/format.pl index 3b3d1dc4b..d1fe1f61d 100644 --- a/src/lib/format.pl +++ b/src/lib/format.pl @@ -84,12 +84,66 @@ % ``` format_(Fs, Args) --> - { must_be(list, Fs), - must_be(list, Args), - unique_variable_names(Args, VNs), - phrase(cells(Fs,Args,0,[],VNs), Cells) }, + { format_args_cells(Fs, Args, Cells) }, format_cells(Cells). +format_args_cells(Fs, Args, Cells) :- + must_be(chars, Fs), + must_be(list, Args), + unique_variable_names(Args, VNs), + phrase(cells(Fs,Args,0,[],VNs), Cells). + +unique_variable_names(Term, VNs) :- + term_variables(Term, Vs), + foldl(var_name, Vs, VNs, 0, _). + +var_name(V, Name=V, Num0, Num) :- + charsio:fabricate_var_name(numbervars, Name, Num0), + Num is Num0 + 1. + +user:goal_expansion(format_(Fs,Args,Cs0,Cs), + format:format_cells(Cells, Cs0, Cs)) :- + catch(format_args_cells(Fs,Args,Cells), + E, + % no partial evaluation for uses of format_//2 that + % cannot be compiled statically, for example those where + % the argument list is a variable, or where ~*n occurs + % in the format string, or a domain error occurs + ( ( E = error(instantiation_error,_) + ; E = error(domain_error(_,_), _) + ) -> + false + ; throw(E) + )). + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Partial evaluation of goals involving conditions that can be + checked at compilation time. This is especially useful for the + common case of conditions that test a numeric argument against 0. + It is currently used for the goals of ~d. +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +goal_pe(G0, G) :- var(G0), !, G = G0. +goal_pe((A0,B0), (A,B)) :- !, goal_pe(A0, A), goal_pe(B0, B). +goal_pe((Body0 ; Else0), Body) :- + nonvar(Body0), + Body0 = ( If -> Then0 ), + !, + ( ground(If) -> + ( If -> + goal_pe(Then0, Body) + ; goal_pe(Else0, Body) + ) + ; goal_pe(Then0, Then), + goal_pe(Else0, Else), + Body = ( If -> Then ; Else ) + ). +goal_pe(Goal, Goal). + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + format_cells//1 is an interpreter for cells, describing a string. +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + format_cells([]) --> []. format_cells([Cell|Cells]) --> format_cell(Cell), @@ -125,6 +179,7 @@ { length(Ls, Num), maplist(=(Fill), Ls) }, seq(Ls). +format_element(goal(_)) --> []. elements_gluevars([], N, N) --> []. elements_gluevars([E|Es], N0, N) --> @@ -135,6 +190,7 @@ { length(Cs, L), N is N0 + L }. element_gluevar(glue(_,V), N, N) --> [V]. +element_gluevar(goal(G), N, N) --> { G }. /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Our key datastructure is a list of cells and newlines. @@ -142,12 +198,16 @@ From and To denote the positions of surrounding tab stops. Elements is a list of elements that occur in a cell, - namely terms of the form chars(Cs) and glue(Char, Var). + namely terms of the form chars(Cs), glue(Char, Var) + and goal(G). + "glue" elements (TeX terminology) are evenly stretched to fill the remaining whitespace in the cell. For each glue element, the character Char is used for filling, and Var is a free variable that is used when the - available space is distributed. + available space is distributed. Goals are dynamically + executed to obtain characters. In this way, format strings + can be parsed and compiled statically when possible. newline is used if ~n occurs in a format string. It is used because a newline character does not @@ -161,54 +221,55 @@ cells([~,~|Fs], Args, Tab, Es, VNs) --> !, cells(Fs, Args, Tab, [chars("~")|Es], VNs). cells([~,w|Fs], [Arg|Args], Tab, Es, VNs) --> !, - { write_term_to_chars(Arg, [numbervars(true),variable_names(VNs)], Chars) }, - cells(Fs, Args, Tab, [chars(Chars)|Es], VNs). + { G = write_term_to_chars(Arg, [numbervars(true),variable_names(VNs)], Chars) }, + cells(Fs, Args, Tab, [chars(Chars),goal(G)|Es], VNs). cells([~,q|Fs], [Arg|Args], Tab, Es, VNs) --> !, - { write_term_to_chars(Arg, [quoted(true),numbervars(true),variable_names(VNs)], Chars) }, - cells(Fs, Args, Tab, [chars(Chars)|Es], VNs). + { G = write_term_to_chars(Arg, [quoted(true),numbervars(true),variable_names(VNs)], Chars) }, + cells(Fs, Args, Tab, [chars(Chars),goal(G)|Es], VNs). cells([~,a|Fs], [Arg|Args], Tab, Es, VNs) --> !, - { atom_chars(Arg, Chars) }, - cells(Fs, Args, Tab, [chars(Chars)|Es], VNs). + { G = atom_chars(Arg, Chars) }, + cells(Fs, Args, Tab, [chars(Chars),goal(G)|Es], VNs). cells([~|Fs0], Args0, Tab, Es, VNs) --> { numeric_argument(Fs0, Num, [d|Fs], Args0, [Arg0|Args]) }, !, - { Arg is Arg0, % evaluate compound expression - must_be(integer, Arg), - number_chars(Arg, Cs0) }, - ( { Num =:= 0 } -> { Cs = Cs0 } - ; { length(Cs0, L), - ( L =< Num -> - Delta is Num - L, - length(Zs, Delta), - maplist(=('0'), Zs), - phrase(("0.",seq(Zs),seq(Cs0)), Cs) - ; BeforeComma is L - Num, - length(Bs, BeforeComma), - append(Bs, Ds, Cs0), - phrase((seq(Bs),".",seq(Ds)), Cs) - ) } - ), - cells(Fs, Args, Tab, [chars(Cs)|Es], VNs). + { G0 = ( Arg is Arg0, % evaluate compound expression + must_be(integer, Arg), + number_chars(Arg, Cs0), + ( Num =:= 0 -> Cs = Cs0 + ; length(Cs0, L), + ( L =< Num -> + Delta is Num - L, + length(Zs, Delta), + maplist(=('0'), Zs), + phrase(("0.",seq(Zs),seq(Cs0)), Cs) + ; BeforeComma is L - Num, + length(Bs, BeforeComma), + append(Bs, Ds, Cs0), + phrase((seq(Bs),".",seq(Ds)), Cs) + ) + )), + goal_pe(G0, G) }, + cells(Fs, Args, Tab, [chars(Cs),goal(G)|Es], VNs). cells([~|Fs0], Args0, Tab, Es, VNs) --> { numeric_argument(Fs0, Num, ['D'|Fs], Args0, [Arg|Args]) }, !, - { separate_digits_fractional(Arg, ',', Num, Cs) }, - cells(Fs, Args, Tab, [chars(Cs)|Es], VNs). + { G = separate_digits_fractional(Arg, ',', Num, Cs) }, + cells(Fs, Args, Tab, [chars(Cs),goal(G)|Es], VNs). cells([~|Fs0], Args0, Tab, Es, VNs) --> { numeric_argument(Fs0, Num, ['U'|Fs], Args0, [Arg|Args]) }, !, - { separate_digits_fractional(Arg, '_', Num, Cs) }, - cells(Fs, Args, Tab, [chars(Cs)|Es], VNs). + { G = separate_digits_fractional(Arg, '_', Num, Cs) }, + cells(Fs, Args, Tab, [chars(Cs),goal(G)|Es], VNs). cells([~|Fs0], Args0, Tab, Es, VNs) --> { numeric_argument(Fs0, Num0, ['L'|Fs], Args0, [Arg|Args]) }, !, - { ( Num0 =:= 0 -> - Num = 72 - ; Num = Num0 - ), - phrase(format_("~d", [Arg]), Cs0), - phrase(split_lines_width(Cs0, Num), Cs) }, - cells(Fs, Args, Tab, [chars(Cs)|Es], VNs). + { G = (( Num0 =:= 0 -> + Num = 72 + ; Num = Num0 + ), + phrase(format_("~d", [Arg]), Cs0), + phrase(split_lines_width(Cs0, Num), Cs) ) }, + cells(Fs, Args, Tab, [chars(Cs),goal(G)|Es], VNs). cells([~,i|Fs], [_|Args], Tab, Es, VNs) --> !, cells(Fs, Args, Tab, Es, VNs). cells([~,n|Fs], Args, Tab, Es, VNs) --> !, @@ -224,58 +285,63 @@ cells([~,s|Fs], [Arg|Args], Tab, Es, VNs) --> !, cells(Fs, Args, Tab, [chars(Arg)|Es], VNs). cells([~,f|Fs], [Arg|Args], Tab, Es, VNs) --> !, - { format_number_chars(Arg, Chars) }, - cells(Fs, Args, Tab, [chars(Chars)|Es], VNs). + { G = format_number_chars(Arg, Chars) }, + cells(Fs, Args, Tab, [chars(Chars),goal(G)|Es], VNs). cells([~|Fs0], Args0, Tab, Es, VNs) --> { numeric_argument(Fs0, Num, [f|Fs], Args0, [Arg|Args]) }, !, - { format_number_chars(Arg, Cs0), - phrase(upto_what(Bs, .), Cs0, Cs), - ( Num =:= 0 -> Chars = Bs - ; ( Cs = ['.'|Rest] -> - length(Rest, L), - ( Num < L -> - length(Ds, Num), - append(Ds, _, Rest) - ; Num =:= L -> - Ds = Rest - ; Num > L, - Delta is Num - L, - % we should look into the float with - % greater accuracy here, and use the - % actual digits instead of 0. - length(Zs, Delta), - maplist(=('0'), Zs), - append(Rest, Zs, Ds) - ) - ; length(Ds, Num), - maplist(=('0'), Ds) - ), - append(Bs, ['.'|Ds], Chars) - ) }, - cells(Fs, Args, Tab, [chars(Chars)|Es], VNs). + { G = (format_number_chars(Arg, Cs0), + phrase(upto_what(Bs, .), Cs0, Cs), + ( Num =:= 0 -> Chars = Bs + ; ( Cs = ['.'|Rest] -> + length(Rest, L), + ( Num < L -> + length(Ds, Num), + append(Ds, _, Rest) + ; Num =:= L -> + Ds = Rest + ; Num > L, + Delta is Num - L, + % we should look into the float with + % greater accuracy here, and use the + % actual digits instead of 0. + length(Zs, Delta), + maplist(=('0'), Zs), + append(Rest, Zs, Ds) + ) + ; length(Ds, Num), + maplist(=('0'), Ds) + ), + append(Bs, ['.'|Ds], Chars) + )) }, + cells(Fs, Args, Tab, [chars(Chars),goal(G)|Es], VNs). cells([~,r|Fs], Args, Tab, Es, VNs) --> !, cells([~,'8',r|Fs], Args, Tab, Es, VNs). cells([~|Fs0], Args0, Tab, Es, VNs) --> { numeric_argument(Fs0, Num, [r|Fs], Args0, [Arg|Args]) }, !, - { integer_to_radix(Arg, Num, lowercase, Cs) }, - cells(Fs, Args, Tab, [chars(Cs)|Es], VNs). + { G = integer_to_radix(Arg, Num, lowercase, Cs) }, + cells(Fs, Args, Tab, [chars(Cs),goal(G)|Es], VNs). cells([~,'R'|Fs], Args, Tab, Es, VNs) --> !, cells([~,'8','R'|Fs], Args, Tab, Es, VNs). cells([~|Fs0], Args0, Tab, Es, VNs) --> { numeric_argument(Fs0, Num, ['R'|Fs], Args0, [Arg|Args]) }, !, - { integer_to_radix(Arg, Num, uppercase, Cs) }, - cells(Fs, Args, Tab, [chars(Cs)|Es], VNs). + { G = integer_to_radix(Arg, Num, uppercase, Cs) }, + cells(Fs, Args, Tab, [chars(Cs),goal(G)|Es], VNs). cells([~,'`',Char,t|Fs], Args, Tab, Es, VNs) --> !, cells(Fs, Args, Tab, [glue(Char,_)|Es], VNs). cells([~,t|Fs], Args, Tab, Es, VNs) --> !, cells(Fs, Args, Tab, [glue(' ',_)|Es], VNs). cells([~,'|'|Fs], Args, Tab0, Es, VNs) --> !, - { phrase(elements_gluevars(Es, 0, Width), _), - Tab is Tab0 + Width }, - cell(Tab0, Tab, Es), + ( { ground(Tab0), Es = [chars(Cs)], ground(Cs) } -> + { length(Cs, Width), + Tab is Tab0 + Width }, + cell(Tab0, Tab, Es) + ; { G = (phrase(elements_gluevars(Es, 0, Width), _), + Tab is Tab0 + Width) }, + cell(Tab0, Tab, [goal(G)|Es]) + ), cells(Fs, Args, Tab, [], VNs). cells([~|Fs0], Args0, Tab, Es, VNs) --> { numeric_argument(Fs0, Num, ['|'|Fs], Args0, Args) }, @@ -285,8 +351,12 @@ cells([~|Fs0], Args0, Tab0, Es, VNs) --> { numeric_argument(Fs0, Num, [+|Fs], Args0, Args) }, !, - { Tab is Tab0 + Num }, - cell(Tab0, Tab, Es), + ( { ground(Tab0+Num) } -> + { Tab is Tab0 + Num }, + cell(Tab0, Tab, Es) + ; { G = (Tab is Tab0 + Num) }, + cell(Tab0, Tab, [goal(G)|Es]) + ), cells(Fs, Args, Tab, [], VNs). cells([~|Cs], Args, _, _, _) --> ( { Args == [] } -> @@ -419,9 +489,11 @@ % advantage of this is that an ideal implementation writes the % characters as they become known, without manifesting the list. -format(Fs, Args) :- - current_output(Stream), - format(Stream, Fs, Args). +format(_, _) :- not_used. + +user:goal_expansion(format(Fs, Args), + ( current_output(Stream), + format(Stream, Fs, Args))). %% format(Stream, FormatString, Arguments) % @@ -429,9 +501,11 @@ % binary stream, then the code of each emitted character must be in % 0..255. -format(Stream, Fs, Args) :- - phrase_to_stream(format_(Fs, Args), Stream), - flush_output(Stream). +format(_, _, _) :- not_used. + +user:goal_expansion(format(Stream, Fs, Args), + ( pio:phrase_to_stream(format:format_(Fs, Args), Stream), + flush_output(Stream))). /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ?- phrase(format:cells("hello", [], 0, [], []), Cs). @@ -517,14 +591,6 @@ { unique_variable_names(Term, VNs) }, portray_(Term, VNs), ".\n". -unique_variable_names(Term, VNs) :- - term_variables(Term, Vs), - foldl(var_name, Vs, VNs, 0, _). - -var_name(V, Name=V, Num0, Num) :- - charsio:fabricate_var_name(numbervars, Name, Num0), - Num is Num0 + 1. - literal(Lit, VNs) --> { write_term_to_chars(Lit, [quoted(true),variable_names(VNs),double_quotes(true)], Ls) }, seq(Ls). diff --git a/src/loader.pl b/src/loader.pl index c282301cf..0998182d1 100644 --- a/src/loader.pl +++ b/src/loader.pl @@ -223,8 +223,8 @@ ( var(Terms) -> instantiation_error(load/1) ; Terms = [_|_] -> - compile_dispatch_or_clause_on_list(Terms, Evacuable) - ; compile_dispatch_or_clause(Terms, Evacuable) + compile_dispatch_or_clause_on_list(list(Term), Terms, Evacuable) + ; compile_dispatch_or_clause(term(Term), Terms, Evacuable) ). complete_partial_goal(N, HeadArg, InnerHeadArgs, SuppArgs, CompleteHeadArg) :- @@ -330,18 +330,18 @@ ). -compile_dispatch_or_clause_on_list([], Evacuable). -compile_dispatch_or_clause_on_list([Term | Terms], Evacuable) :- - compile_dispatch_or_clause(Term, Evacuable), - compile_dispatch_or_clause_on_list(Terms, Evacuable). +compile_dispatch_or_clause_on_list(OrigTerm, [], Evacuable). +compile_dispatch_or_clause_on_list(OrigTerm, [Term | Terms], Evacuable) :- + compile_dispatch_or_clause(OrigTerm, Term, Evacuable), + compile_dispatch_or_clause_on_list(OrigTerm, Terms, Evacuable). -compile_dispatch_or_clause(Term, Evacuable) :- +compile_dispatch_or_clause(OrigTerm, Term, Evacuable) :- ( var(Term) -> instantiation_error(load/1) ; compile_dispatch(Term, Evacuable) -> '$flush_term_queue'(Evacuable) - ; compile_clause(Term, Evacuable) + ; compile_clause(OrigTerm, Term, Evacuable) ). @@ -467,39 +467,46 @@ ; domain_error(not_less_than_zero, Arity, load/1) ). +recompile_term(list(OrigTerm), Term, Evacuable) :- + % since OrigTerm expanded to a list, its contents are considered a + % unit to be compiled simultaneously, and so its clauses are not + % re-expanded when their predecessors are compiled. + compile_clause(list(OrigTerm), Term, Evacuable). +recompile_term(term(OrigTerm), _Term, Evacuable) :- + compile_term(OrigTerm, Evacuable). -compile_clause((Target:Head :- Body), Evacuable) :- +compile_clause(OrigTerm, (Target:Head :- Body), Evacuable) :- !, functor(Head, Name, Arity), ( '$is_consistent_with_term_queue'(Target, Name, Arity, Evacuable) -> '$scoped_clause_to_evacuable'(Target, (Head :- Body), Evacuable) ; '$flush_term_queue'(Evacuable), - compile_term((Target:Head :- Body), Evacuable) + recompile_term(OrigTerm, (Target:Head :- Body), Evacuable) ). -compile_clause(Target:Head, Evacuable) :- +compile_clause(OrigTerm, Target:Head, Evacuable) :- !, functor(Head, Name, Arity), ( '$is_consistent_with_term_queue'(Target, Name, Arity, Evacuable) -> '$scoped_clause_to_evacuable'(Target, Head, Evacuable) ; '$flush_term_queue'(Evacuable), - compile_term(Target:Head, Evacuable) + recompile_term(OrigTerm, Target:Head, Evacuable) ). -compile_clause((Head :- Body), Evacuable) :- +compile_clause(OrigTerm, (Head :- Body), Evacuable) :- !, prolog_load_context(module, Target), functor(Head, Name, Arity), ( '$is_consistent_with_term_queue'(Target, Name, Arity, Evacuable) -> '$clause_to_evacuable'((Head :- Body), Evacuable) ; '$flush_term_queue'(Evacuable), - compile_term((Head :- Body), Evacuable) + recompile_term(OrigTerm, (Head :- Body), Evacuable) ). -compile_clause(Head, Evacuable) :- +compile_clause(OrigTerm, Head, Evacuable) :- prolog_load_context(module, Target), functor(Head, Name, Arity), ( '$is_consistent_with_term_queue'(Target, Name, Arity, Evacuable) -> '$clause_to_evacuable'(Head, Evacuable) ; '$flush_term_queue'(Evacuable), - compile_term(Head, Evacuable) + recompile_term(OrigTerm, Head, Evacuable) ). @@ -880,7 +887,12 @@ UnexpandedGoals = ExpandedGoals ; goal_expansion(UnexpandedGoals, Module, UnexpandedGoals1), ( Module \== user -> - goal_expansion(UnexpandedGoals1, user, ExpandedGoals) + goal_expansion(UnexpandedGoals1, user, Goals), + ( predicate_property(Module:Goals, meta_predicate(MetaSpecs0)), + MetaSpecs0 =.. [_ | MetaSpecs] -> + expand_module_names(Goals, MetaSpecs, Module, ExpandedGoals, [], []) + ; ExpandedGoals = Goals + ) ; ExpandedGoals = UnexpandedGoals1 ) ). diff --git a/src/machine/arithmetic_ops.rs b/src/machine/arithmetic_ops.rs index 959bb67e3..7057ba930 100644 --- a/src/machine/arithmetic_ops.rs +++ b/src/machine/arithmetic_ops.rs @@ -646,12 +646,10 @@ pub(crate) fn shr(n1: Number, n2: Number, arena: &mut Arena) -> Result> n2, arena)) + Ok(Number::arena_from(n1_i >> n2, arena)) } else { - Ok(Number::arena_from(n1 >> usize::max_value(), arena)) + Ok(Number::arena_from(n1_i >> usize::max_value(), arena)) } } (Number::Fixnum(n1), Number::Integer(n2)) => { @@ -703,11 +701,10 @@ pub(crate) fn shl(n1: Number, n2: Number, arena: &mut Arena) -> Result { - Literal::Integer(n) + let result = (&*n).try_into(); + + match result { + Ok(fixnum) => if let Ok(n) = Fixnum::build_with_checked(fixnum) { + Literal::Fixnum(n) + } else { + Literal::Integer(n) + }, + Err(_) => Literal::Integer(n) + } } _ => { unreachable!() @@ -4485,6 +4494,14 @@ impl Machine { self.crypto_data_hash(); step_or_fail!(self, self.machine_st.p = self.machine_st.cp); } + &Instruction::CallCryptoHMAC => { + self.crypto_hmac(); + step_or_fail!(self, self.machine_st.p += 1); + } + &Instruction::ExecuteCryptoHMAC => { + self.crypto_hmac(); + step_or_fail!(self, self.machine_st.p = self.machine_st.cp); + } &Instruction::CallCryptoDataHKDF => { self.crypto_data_hkdf(); step_or_fail!(self, self.machine_st.p += 1); diff --git a/src/machine/lib_integration_test_commands.txt b/src/machine/lib_integration_test_commands.txt index faf40938c..153964705 100644 --- a/src/machine/lib_integration_test_commands.txt +++ b/src/machine/lib_integration_test_commands.txt @@ -1,13 +1,21 @@ =====consult :- discontiguous(triple/3). :- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). :- discontiguous(reachable/2). reachable(A,B) :- triple(A,_,B). reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(hiddenExpression/1). :- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). :- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). :- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). :- discontiguous(register_sdna_flow/2). :- discontiguous(flowable/2). :- discontiguous(flow_state/3). @@ -31,41 +39,32 @@ reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(p3_class_icon/2). :- discontiguous(p3_class_color/2). :- discontiguous(p3_instance_color/3). -=====query -subject_class(X, _). -=====consult -:- discontiguous(triple/3). -:- discontiguous(link/5). -:- discontiguous(reachable/2). -reachable(A,B) :- triple(A,_,B). -reachable(A,B) :- triple(A,_,X), reachable(X,B). -:- discontiguous(hiddenExpression/1). -:- discontiguous(languageAddress/2). -:- discontiguous(languageName/2). -:- discontiguous(expressionAddress/2). -:- discontiguous(register_sdna_flow/2). -:- discontiguous(flowable/2). -:- discontiguous(flow_state/3). -:- discontiguous(start_action/2). -:- discontiguous(action/4). -:- discontiguous(subject_class/2). -:- discontiguous(constructor/2). -:- discontiguous(destructor/2). -:- discontiguous(instance/2). -:- discontiguous(property/2). -:- discontiguous(property_getter/4). -:- discontiguous(property_setter/3). -:- discontiguous(property_resolve/2). -:- discontiguous(property_resolve_language/3). -:- discontiguous(property_named_option/4). -:- discontiguous(collection/2). -:- discontiguous(collection_getter/4). -:- discontiguous(collection_setter/3). -:- discontiguous(collection_remover/3). -:- discontiguous(collection_adder/3). -:- discontiguous(p3_class_icon/2). -:- discontiguous(p3_class_color/2). -:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + subject_class("Todo", c). constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). @@ -111,22 +110,34 @@ collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "t =====query subject_class(X, _). +=====result +[{"X":"Todo"}] =====query subject_class("Todo", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}] =====consult :- discontiguous(triple/3). :- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). triple("literal://string:construct%20test", "todo://state", "todo://ready"). -link("literal://string:construct%20test", "todo://state", "todo://ready", 1691084130581, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://ready", 1706790526903, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). :- discontiguous(reachable/2). reachable(A,B) :- triple(A,_,B). reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(hiddenExpression/1). :- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageAddress("literal://string:construct%20test", "literal"). :- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageName("literal://string:construct%20test", "literal"). :- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). expressionAddress("literal://string:construct%20test", "string:construct%20test"). :- discontiguous(register_sdna_flow/2). :- discontiguous(flowable/2). @@ -151,6 +162,32 @@ expressionAddress("literal://string:construct%20test", "string:construct%20test" :- discontiguous(p3_class_icon/2). :- discontiguous(p3_class_color/2). :- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + subject_class("Todo", c). constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). @@ -196,56 +233,90 @@ collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "t =====query subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"}] =====query subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"}] =====query subject_class("Todo", C), property(C, Property). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] =====query subject_class("Todo", C), property_resolve(C, "state"). +=====result +false =====query subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false =====query subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] =====query subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false =====query subject_class("Todo", C), property_resolve_language(C, "title", Language). -=====query -subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] =====query subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] =====query subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] =====query subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] =====query subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] =====query subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"}] =====query subject_class("Todo", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}] =====consult :- discontiguous(triple/3). :- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). triple("literal://string:construct%20test", "todo://state", "todo://ready"). triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). -link("literal://string:construct%20test", "todo://state", "todo://ready", 1691084130581, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1691084130761, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://ready", 1706790526903, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). :- discontiguous(reachable/2). reachable(A,B) :- triple(A,_,B). reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(hiddenExpression/1). :- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageAddress("literal://string:construct%20test", "literal"). languageAddress("literal://string:get%20proxy%20test", "literal"). :- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageName("literal://string:construct%20test", "literal"). languageName("literal://string:get%20proxy%20test", "literal"). :- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). expressionAddress("literal://string:construct%20test", "string:construct%20test"). expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). :- discontiguous(register_sdna_flow/2). @@ -271,6 +342,32 @@ expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20t :- discontiguous(p3_class_icon/2). :- discontiguous(p3_class_color/2). :- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + subject_class("Todo", c). constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). @@ -316,90 +413,148 @@ collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "t =====query subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] =====query subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] =====query subject_class("Todo", C), property(C, Property). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] =====query subject_class("Todo", C), property_resolve(C, "state"). +=====result +false =====query subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false =====query subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] =====query subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false =====query subject_class("Todo", C), property_resolve_language(C, "title", Language). -=====query -subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] =====query subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] =====query subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] =====query subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] =====query subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] =====query subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] =====query subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] =====query subject_class("Todo", C), property(C, Property). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] =====query subject_class("Todo", C), property_resolve(C, "state"). +=====result +false =====query subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false =====query subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] =====query subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false =====query subject_class("Todo", C), property_resolve_language(C, "title", Language). -=====query -subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] =====query subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] =====query subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] =====query subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] =====query subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] =====query subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "state", Value). +=====result +[{"C":"c","Value":"todo://ready"}] =====query subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "title", Value). +=====result +false =====query subject_class("Todo", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}] =====consult :- discontiguous(triple/3). :- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). triple("literal://string:construct%20test", "todo://state", "todo://ready"). triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). triple("literal://string:construct%20test", "todo://state", "todo://ready"). -link("literal://string:construct%20test", "todo://state", "todo://ready", 1691084130581, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1691084130761, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://state", "todo://ready", 1691084131145, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://ready", 1706790526903, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://ready", 1706790527417, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). :- discontiguous(reachable/2). reachable(A,B) :- triple(A,_,B). reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(hiddenExpression/1). :- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageAddress("literal://string:construct%20test", "literal"). languageAddress("literal://string:get%20proxy%20test", "literal"). :- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageName("literal://string:construct%20test", "literal"). languageName("literal://string:get%20proxy%20test", "literal"). :- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). expressionAddress("literal://string:construct%20test", "string:construct%20test"). expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). :- discontiguous(register_sdna_flow/2). @@ -425,6 +580,32 @@ expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20t :- discontiguous(p3_class_icon/2). :- discontiguous(p3_class_color/2). :- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + subject_class("Todo", c). constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). @@ -470,54 +651,86 @@ collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "t =====query subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"},{"C":"c"}] =====query subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"},{"C":"c"}] =====query subject_class("Todo", C), property(C, Property). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] =====query subject_class("Todo", C), property_resolve(C, "state"). +=====result +false =====query subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false =====query subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] =====query subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false =====query subject_class("Todo", C), property_resolve_language(C, "title", Language). -=====query -subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] =====query subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] =====query subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] =====query subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] =====query subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] =====query subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value). +=====result +[{"C":"c","Value":"todo://ready"},{"C":"c","Value":"todo://ready"}] =====consult :- discontiguous(triple/3). :- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). triple("literal://string:construct%20test", "todo://state", "todo://done"). -link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1691084130761, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://state", "todo://done", 1691084131359, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). :- discontiguous(reachable/2). reachable(A,B) :- triple(A,_,B). reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(hiddenExpression/1). :- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageAddress("literal://string:get%20proxy%20test", "literal"). languageAddress("literal://string:construct%20test", "literal"). :- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageName("literal://string:get%20proxy%20test", "literal"). languageName("literal://string:construct%20test", "literal"). :- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). expressionAddress("literal://string:construct%20test", "string:construct%20test"). :- discontiguous(register_sdna_flow/2). @@ -543,6 +756,32 @@ expressionAddress("literal://string:construct%20test", "string:construct%20test" :- discontiguous(p3_class_icon/2). :- discontiguous(p3_class_color/2). :- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + subject_class("Todo", c). constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). @@ -588,33 +827,45 @@ collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "t =====query subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value). +=====result +[{"C":"c","Value":"todo://done"}] =====query subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "title", Value). +=====result +false =====consult :- discontiguous(triple/3). :- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). triple("literal://string:construct%20test", "todo://state", "todo://done"). -triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). -link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1691084130761, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://state", "todo://done", 1691084131359, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1691084131416, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). :- discontiguous(reachable/2). reachable(A,B) :- triple(A,_,B). reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(hiddenExpression/1). :- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageAddress("literal://string:get%20proxy%20test", "literal"). languageAddress("literal://string:construct%20test", "literal"). -languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). :- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageName("literal://string:get%20proxy%20test", "literal"). languageName("literal://string:construct%20test", "literal"). -languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). :- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). expressionAddress("literal://string:construct%20test", "string:construct%20test"). -expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). :- discontiguous(register_sdna_flow/2). :- discontiguous(flowable/2). :- discontiguous(flow_state/3). @@ -638,6 +889,32 @@ expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5 :- discontiguous(p3_class_icon/2). :- discontiguous(p3_class_color/2). :- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + subject_class("Todo", c). constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). @@ -683,40 +960,193 @@ collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "t =====query subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "title", Value). +=====result +[{"C":"c","Value":"literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"}] +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value). +=====result +[{"C":"c","Value":[""]}] =====query subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value). +=====result +[{"C":"c","Value":[""]}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:comment%201"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:comment%201", 1706790527721, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:comment%201", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:comment%201", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:comment%201", "string:comment%201"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + =====query subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value). +=====result +[{"C":"c","Value":["literal://string:comment%201"]}] =====consult :- discontiguous(triple/3). :- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). triple("literal://string:construct%20test", "todo://state", "todo://done"). -triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). triple("literal://string:construct%20test", "todo://comment", "literal://string:comment%201"). -link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1691084130761, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://state", "todo://done", 1691084131359, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1691084131416, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://comment", "literal://string:comment%201", 1691084131473, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:comment%202"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:comment%201", 1706790527721, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:comment%202", 1706790527762, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). :- discontiguous(reachable/2). reachable(A,B) :- triple(A,_,B). reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(hiddenExpression/1). :- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageAddress("literal://string:get%20proxy%20test", "literal"). languageAddress("literal://string:construct%20test", "literal"). -languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). languageAddress("literal://string:comment%201", "literal"). +languageAddress("literal://string:comment%202", "literal"). :- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageName("literal://string:get%20proxy%20test", "literal"). languageName("literal://string:construct%20test", "literal"). -languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). languageName("literal://string:comment%201", "literal"). +languageName("literal://string:comment%202", "literal"). :- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). expressionAddress("literal://string:construct%20test", "string:construct%20test"). -expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). expressionAddress("literal://string:comment%201", "string:comment%201"). +expressionAddress("literal://string:comment%202", "string:comment%202"). :- discontiguous(register_sdna_flow/2). :- discontiguous(flowable/2). :- discontiguous(flow_state/3). @@ -740,6 +1170,32 @@ expressionAddress("literal://string:comment%201", "string:comment%201"). :- discontiguous(p3_class_icon/2). :- discontiguous(p3_class_color/2). :- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + subject_class("Todo", c). constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). @@ -785,31 +1241,41 @@ collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "t =====query subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value). +=====result +[{"C":"c","Value":["literal://string:comment%201","literal://string:comment%202"]}] =====consult :- discontiguous(triple/3). :- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). triple("literal://string:construct%20test", "todo://state", "todo://done"). -triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). -link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1691084130761, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://state", "todo://done", 1691084131359, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1691084131416, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). :- discontiguous(reachable/2). reachable(A,B) :- triple(A,_,B). reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(hiddenExpression/1). :- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageAddress("literal://string:get%20proxy%20test", "literal"). languageAddress("literal://string:construct%20test", "literal"). -languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). :- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageName("literal://string:get%20proxy%20test", "literal"). languageName("literal://string:construct%20test", "literal"). -languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). :- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). expressionAddress("literal://string:construct%20test", "string:construct%20test"). -expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). :- discontiguous(register_sdna_flow/2). :- discontiguous(flowable/2). :- discontiguous(flow_state/3). @@ -833,6 +1299,32 @@ expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5 :- discontiguous(p3_class_icon/2). :- discontiguous(p3_class_color/2). :- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + subject_class("Todo", c). constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). @@ -878,35 +1370,45 @@ collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "t =====query subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value). +=====result +[{"C":"c","Value":[""]}] =====consult :- discontiguous(triple/3). :- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). triple("literal://string:construct%20test", "todo://state", "todo://done"). -triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). -link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1691084130761, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://state", "todo://done", 1691084131359, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1691084131416, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). -link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1691084131557, "did:key:z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). :- discontiguous(reachable/2). reachable(A,B) :- triple(A,_,B). reachable(A,B) :- triple(A,_,X), reachable(X,B). :- discontiguous(hiddenExpression/1). :- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageAddress("literal://string:get%20proxy%20test", "literal"). languageAddress("literal://string:construct%20test", "literal"). -languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). languageAddress("literal://string:new%20comment%201", "literal"). :- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). languageName("literal://string:get%20proxy%20test", "literal"). languageName("literal://string:construct%20test", "literal"). -languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). languageName("literal://string:new%20comment%201", "literal"). :- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). expressionAddress("literal://string:construct%20test", "string:construct%20test"). -expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22timestamp%22%3A%222023-08-03T17%3A35%3A31.405Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%23z6MkfMZgoaZc5CRUSMxrugjiJLufgkAmRZ72gctjRY4LfxRa%22%2C%22signature%22%3A%2253a6d498d7c19fed24000efe3339526b564d779f0906b71304c96b1016a09f0288b1f2c5718505f4e23933c95b7a7e68466330a824e01a80c6275d922030860c%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). :- discontiguous(register_sdna_flow/2). :- discontiguous(flowable/2). @@ -931,6 +1433,32 @@ expressionAddress("literal://string:new%20comment%201", "string:new%20comment%20 :- discontiguous(p3_class_icon/2). :- discontiguous(p3_class_color/2). :- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + subject_class("Todo", c). constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). @@ -976,43 +1504,11603 @@ collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "t =====query subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value). -=====query -subject_class("Todo", C), instance(C, X). -=====query -subject_class("Todo", C), instance(C, "literal://string:construct%20test"). -=====query -subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). -=====query -subject_class("Todo", C), instance(C, "literal://string:construct%20test"). -=====query -subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). -=====query -subject_class("Todo", C), property(C, Property). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). -=====query -subject_class("Todo", C), property_resolve(C, "isLiked"). -=====query -subject_class("Todo", C), property_resolve(C, "state"). -=====query -subject_class("Todo", C), property_resolve(C, "title"). -=====query -subject_class("Todo", C), property_setter(C, Property, Setter). -=====query -subject_class("Todo", C), property_resolve_language(C, "state", Language). -=====query -subject_class("Todo", C), property_resolve_language(C, "title", Language). -=====query -subject_class("Todo", C), property_resolve_language(C, "title", Language). -=====query -subject_class("Todo", C), collection(C, Collection). -=====query -subject_class("Todo", C), collection_adder(C, Collection, Adder). -=====query -subject_class("Todo", C), collection_remover(C, Collection, Remover). -=====query -subject_class("Todo", C), collection_setter(C, Collection, Setter). -=====query -subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "state", Value). -=====query -subject_class(Class, C), property(C, "state"), property(C, "title"), collection(C, "comments"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"c","Value":["literal://string:new%20comment%201"]}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:construct%20test", "comments", Value). +=====result +[{"C":"c","Value":["literal://string:new%20comment%201","literal://string:new%20comment%202"]}] +=====query +subject_class("Todo", C), instance(C, X). +=====result +[{"C":"c","X":"literal://string:get%20proxy%20test"},{"C":"c","X":"literal://string:construct%20test"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====query +subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"}] +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====query +subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value). +=====result +[{"C":"c","Value":"todo://done"}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), collection(C, "comments"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class(Class, C), property(C, "name"), property(C, "x"), property_setter(C, "top", _). +=====result +false +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), collection(C, "comments"), property_setter(C, "state", _), property_setter(C, "title", _), property_setter(C, "top", _), collection_adder(C, "comments", _). +=====result +false +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), collection(C, "comments"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, X). +=====result +[{"C":"c","X":"literal://string:get%20proxy%20test"},{"C":"c","X":"literal://string:construct%20test"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====query +subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"}] +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====query +subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value). +=====result +[{"C":"c","Value":"todo://done"}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://ready"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://ready", 1706790528552, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test"). +=====result +[{"C":"c"}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test"). +=====result +[{"C":"c"}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test"). +=====result +[{"C":"c"}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_getter(C, "literal://string:Decorated%20class%20construction%20test", "state", Value). +=====result +[{"C":"c","Value":"todo://ready"}] +=====query +subject_class("Todo", C), property_getter(C, "literal://string:Decorated%20class%20construction%20test", "title", Value). +=====result +false +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:Decorated%20class%20construction%20test", "comments", Value). +=====result +[{"C":"c","Value":[""]}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +=====query +subject_class("Todo", C), property_getter(C, "literal://string:Decorated%20class%20construction%20test", "state", Value). +=====result +[{"C":"c","Value":"todo://review"}] +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:Decorated%20class%20construction%20test", "comments", Value). +=====result +[{"C":"c","Value":[""]}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:Decorated%20class%20construction%20test", "comments", Value). +=====result +[{"C":"c","Value":["literal://string:new%20comment"]}] +=====query +subject_class("Todo", C), instance(C, Instance). +=====result +[{"C":"c","Instance":"literal://string:get%20proxy%20test"},{"C":"c","Instance":"literal://string:construct%20test"},{"C":"c","Instance":"literal://string:Decorated%20class%20construction%20test"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), instance(C, Instance), property_getter(C, Instance, "state", "todo://ready"). +=====result +[{"C":"c","Instance":"literal://string:get%20proxy%20test"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "state", Value). +=====result +[{"C":"c","Value":"todo://ready"}] +=====query +subject_class("Todo", C), instance(C, Instance), property_getter(C, Instance, "state", "todo://done"). +=====result +[{"C":"c","Instance":"literal://string:construct%20test"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_getter(C, "literal://string:construct%20test", "state", Value). +=====result +[{"C":"c","Value":"todo://done"}] +=====query +subject_class("Todo", C), instance(C, Instance), triple("ad4m://self", _, Instance). +=====result +false +=====query +subject_class("Todo", C), instance(C, Instance). +=====result +[{"C":"c","Instance":"literal://string:get%20proxy%20test"},{"C":"c","Instance":"literal://string:construct%20test"},{"C":"c","Instance":"literal://string:Decorated%20class%20construction%20test"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +=====query +subject_class("Todo", C), instance(C, Instance), triple("ad4m://self", _, Instance). +=====result +[{"C":"c","Instance":"literal://string:get%20proxy%20test"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), instance(C, Instance). +=====result +[{"C":"c","Instance":"literal://string:get%20proxy%20test"},{"C":"c","Instance":"literal://string:construct%20test"},{"C":"c","Instance":"literal://string:Decorated%20class%20construction%20test"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:get%20proxy%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:construct%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Decorated%20class%20construction%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "title", Value). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +=====query +subject_class("Todo", C), property_getter(C, "literal://string:get%20proxy%20test", "title", Value). +=====result +[{"C":"c","Value":"literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"}] +=====query +subject_class(Class, C), property(C, "number"). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition"). +=====result +[{"C":"c"}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition", "entries", Value). +=====result +[{"C":"c","Value":["literal://string:test%20message"]}] +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition", "likedMessages", Value). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test%20with%20prolog%20condition", "likedMessages", Value). +=====result +[{"C":"c","Value":["literal://string:test%20message"]}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Custom%20getter%20test"). +=====result +[{"C":"c"}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Custom%20getter%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_getter(C, "literal://string:Custom%20getter%20test", "isLiked", Value). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +=====query +subject_class("Todo", C), property_getter(C, "literal://string:Custom%20getter%20test", "isLiked", Value). +=====result +[{"C":"c","Value":true}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +=====query +subject_class("Message", C), instance(C, Instance). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +=====query +subject_class("Message", C), instance(C, Instance). +=====result +[{"C":"mqvvfluy","Instance":"test://message"}] +=====query +subject_class("Message", C), instance(C, "test://message"). +=====result +[{"C":"mqvvfluy"}] +=====query +subject_class("Message", C), property(C, Property). +=====result +[{"C":"mqvvfluy","Property":"type"},{"C":"mqvvfluy","Property":"body"}] +=====query +subject_class("Message", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Message", C), property_resolve(C, "body"). +=====result +false +=====query +subject_class("Message", C), property_setter(C, Property, Setter). +=====result +[{"C":"mqvvfluy","Property":"body","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"}] +=====query +subject_class("Message", C), property_resolve_language(C, "body", Language). +=====result +false +=====query +subject_class("Message", C), collection(C, Collection). +=====result +false +=====query +subject_class("Message", C), collection_adder(C, Collection, Adder). +=====result +false +=====query +subject_class("Message", C), collection_remover(C, Collection, Remover). +=====result +false +=====query +subject_class("Message", C), collection_setter(C, Collection, Setter). +=====result +false +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"c"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Collection%20where%20test"). +=====result +[{"C":"c"}] +=====query +subject_class(Class, C), property(C, "state"), property(C, "title"), property(C, "isLiked"), property_setter(C, "state", _), property_setter(C, "title", _), collection_adder(C, "commentss", _), collection_adder(C, "entriess", _), collection_adder(C, "messagess", _), collection_adder(C, "likedMessagess", _), collection_remover(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "messagess", _), collection_remover(C, "likedMessagess", _), collection_setter(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "messagess", _), collection_setter(C, "likedMessagess", _). +=====result +[{"C":"c","Class":"Todo"}] +=====query +subject_class("Todo", C), instance(C, "literal://string:Collection%20where%20test"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property(C, Property). +=====result +[{"C":"c","Property":"state"},{"C":"c","Property":"title"},{"C":"c","Property":"isLiked"}] +=====query +subject_class("Todo", C), property_resolve(C, "state"). +=====result +false +=====query +subject_class("Todo", C), property_resolve(C, "title"). +=====result +[{"C":"c"}] +=====query +subject_class("Todo", C), property_resolve(C, "isLiked"). +=====result +false +=====query +subject_class("Todo", C), property_setter(C, Property, Setter). +=====result +[{"C":"c","Property":"state","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"},{"C":"c","Property":"title","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://has_title\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), property_resolve_language(C, "state", Language). +=====result +false +=====query +subject_class("Todo", C), property_resolve_language(C, "title", Language). +=====result +[{"C":"c","Language":"literal"}] +=====query +subject_class("Todo", C), collection(C, Collection). +=====result +[{"C":"c","Collection":"comments"},{"C":"c","Collection":"entries"},{"C":"c","Collection":"messages"},{"C":"c","Collection":"likedMessages"}] +=====query +subject_class("Todo", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]","C":"c","Collection":"commentss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"messagess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]","C":"c","Collection":"likedMessagess"}] +=====query +subject_class("Todo", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"c","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====query +subject_class("Todo", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"c","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"todo://comment\", target: \"value\"}]"},{"C":"c","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"messagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"},{"C":"c","Collection":"likedMessagess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"flux://entry_type\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test", "entries", Value). +=====result +[{"C":"c","Value":["literal://string:test%20message"]}] +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test", "messages", Value). +=====result +false +=====query +subject_class(Class, C), property(C, "type"), property(C, "body"), property_setter(C, "body", _). +=====result +[{"C":"mqvvfluy","Class":"Message"}] +=====query +subject_class("Message", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://message\"}, {action: \"addLink\", source: \"this\", predicate: \"todo://state\", target: \"todo://ready\"}]","C":"mqvvfluy"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +=====query +subject_class(Class, C), property(C, "type"), property(C, "body"), property_setter(C, "body", _). +=====result +[{"C":"mqvvfluy","Class":"Message"}] +=====query +subject_class("Message", C), instance(C, "literal://string:test%20message"). +=====result +[{"C":"mqvvfluy"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "body"), property_setter(C, "body", _). +=====result +[{"C":"mqvvfluy","Class":"Message"}] +=====query +subject_class("Message", C), instance(C, "literal://string:test%20message"). +=====result +[{"C":"mqvvfluy"}] +=====query +subject_class("Message", C), property(C, Property). +=====result +[{"C":"mqvvfluy","Property":"type"},{"C":"mqvvfluy","Property":"body"}] +=====query +subject_class("Message", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Message", C), property_resolve(C, "body"). +=====result +false +=====query +subject_class("Message", C), property_setter(C, Property, Setter). +=====result +[{"C":"mqvvfluy","Property":"body","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"todo://state\", target: \"value\"}]"}] +=====query +subject_class("Message", C), property_resolve_language(C, "body", Language). +=====result +false +=====query +subject_class("Message", C), collection(C, Collection). +=====result +false +=====query +subject_class("Message", C), collection_adder(C, Collection, Adder). +=====result +false +=====query +subject_class("Message", C), collection_remover(C, Collection, Remover). +=====result +false +=====query +subject_class("Message", C), collection_setter(C, Collection, Setter). +=====result +false +=====query +subject_class("Todo", C), collection_getter(C, "literal://string:Collection%20where%20test", "messages", Value). +=====result +[{"C":"c","Value":["literal://string:test%20message"]}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_setter(C, Property, Setter). +=====result +[{"C":"nzkpcwbu","Property":"name","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"},{"C":"nzkpcwbu","Property":"local","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "name", Language). +=====result +false +=====query +subject_class("Recipe", C), property_resolve_language(C, "local", Language). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"ingredientss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]","C":"nzkpcwbu","Collection":"commentss"}] +=====query +subject_class("Recipe", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"nzkpcwbu","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====query +subject_class("Recipe", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"nzkpcwbu","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), property_setter(C, "name", Setter). +=====result +[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "name", Language). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test", 1706790532505, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class("Recipe", C), property_setter(C, "entries", Setter). +=====result +false +=====query +subject_class("Recipe", C), property_setter(C, "comments", Setter). +=====result +false +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), property_setter(C, "name", Setter). +=====result +[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "name", Language). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class("Recipe", C), property_setter(C, "entries", Setter). +=====result +false +=====query +subject_class("Recipe", C), property_setter(C, "comments", Setter). +=====result +false +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test1"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test1"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "className"), property(C, "generateSDNA"). +=====result +false +=====query +subject_class("Recipe", C), instance(C, X). +=====result +[{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20test"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test1"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_setter(C, Property, Setter). +=====result +[{"C":"nzkpcwbu","Property":"name","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"},{"C":"nzkpcwbu","Property":"local","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "name", Language). +=====result +false +=====query +subject_class("Recipe", C), property_resolve_language(C, "local", Language). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"ingredientss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]","C":"nzkpcwbu","Collection":"commentss"}] +=====query +subject_class("Recipe", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"nzkpcwbu","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====query +subject_class("Recipe", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"nzkpcwbu","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), property_setter(C, "name", Setter). +=====result +[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "name", Language). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class("Recipe", C), property_setter(C, "entries", Setter). +=====result +false +=====query +subject_class("Recipe", C), collection_setter(C, "commentss", Setter). +=====result +[{"C":"nzkpcwbu","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://collection_test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://collection_test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_setter(C, Property, Setter). +=====result +[{"C":"nzkpcwbu","Property":"name","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"},{"C":"nzkpcwbu","Property":"local","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "name", Language). +=====result +false +=====query +subject_class("Recipe", C), property_resolve_language(C, "local", Language). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"ingredientss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]","C":"nzkpcwbu","Collection":"commentss"}] +=====query +subject_class("Recipe", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"nzkpcwbu","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====query +subject_class("Recipe", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"nzkpcwbu","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), property_setter(C, "name", Setter). +=====result +[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "name", Language). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class("Recipe", C), property_setter(C, "entries", Setter). +=====result +false +=====query +subject_class("Recipe", C), property_setter(C, "comments", Setter). +=====result +false +=====query +subject_class("Recipe", C), property_setter(C, "local", Setter). +=====result +[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "local", Language). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "ad4m://type", "ad4m://recipe", 1706790532212, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://locallink"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test"}] +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://locallink"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test"}] +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "className"), property(C, "generateSDNA"). +=====result +false +=====query +findall([Timestamp, Base], (subject_class("Recipe", C), instance(C, Base), link("ad4m://self", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), length(SortedData, DataLength). +=====result +[{"AllData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]],"DataLength":3,"SortedData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]]}] +=====query +findall([Timestamp, Base], (subject_class("Recipe", C), instance(C, Base), link("ad4m://self", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), reverse(SortedData, ReverseSortedData), paginate(ReverseSortedData, 1, 2, PageData). +=====result +[{"AllData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]],"PageData":[[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"]],"ReverseSortedData":[[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790532420,"literal://string:Active%20record%20implementation%20test"]],"SortedData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link"). +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value). +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://locallink"}] +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://collection_test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test"}] +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value). +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value). +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value). +=====result +false +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "className"), property(C, "generateSDNA"). +=====result +false +=====query +findall([Timestamp, Base], (subject_class("Recipe", C), instance(C, Base), link("ad4m://self", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), length(SortedData, DataLength). +=====result +[{"AllData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]],"DataLength":3,"SortedData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]]}] +=====query +findall([Timestamp, Base], (subject_class("Recipe", C), instance(C, Base), link("ad4m://self", Predicate, Base, Timestamp, Author)), AllData), sort(AllData, SortedData), reverse(SortedData, ReverseSortedData), paginate(ReverseSortedData, 2, 1, PageData). +=====result +[{"AllData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]],"PageData":[[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"]],"ReverseSortedData":[[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790532420,"literal://string:Active%20record%20implementation%20test"]],"SortedData":[[1706790532420,"literal://string:Active%20record%20implementation%20test"],[1706790533626,"literal://string:Active%20record%20implementation%20collection%20test"],[1706790534369,"literal://string:Active%20record%20implementation%20test%20local%20link"]]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://collection_test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}] +=====query +subject_class(Class, C), property(C, "className"), property(C, "generateSDNA"). +=====result +false +=====query +subject_class("Recipe", C), instance(C, X). +=====result +[{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20test"},{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20collection%20test"},{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20test%20local%20link"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test1"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://collection_test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://locallink"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test"}] +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), destructor(C, Actions). +=====result +[{"Actions":"[{action: \"removeLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "className"), property(C, "generateSDNA"). +=====result +false +=====query +subject_class("Recipe", C), instance(C, X). +=====result +[{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20collection%20test"},{"C":"nzkpcwbu","X":"literal://string:Active%20record%20implementation%20test%20local%20link"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://collection_test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20test%20local%20link"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://locallink"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "local", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://test"}] +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20test%20local%20link", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":[""]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), constructor(C, Actions). +=====result +[{"Actions":"[{action: \"addLink\", source: \"this\", predicate: \"ad4m://type\", target: \"ad4m://recipe\"}]","C":"nzkpcwbu"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_setter(C, Property, Setter). +=====result +[{"C":"nzkpcwbu","Property":"name","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"},{"C":"nzkpcwbu","Property":"local","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://local\", target: \"value\", local: true}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "name", Language). +=====result +false +=====query +subject_class("Recipe", C), property_resolve_language(C, "local", Language). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_adder(C, Collection, Adder). +=====result +[{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"entriess"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]","C":"nzkpcwbu","Collection":"ingredientss"},{"Adder":"[{action: \"addLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]","C":"nzkpcwbu","Collection":"commentss"}] +=====query +subject_class("Recipe", C), collection_remover(C, Collection, Remover). +=====result +[{"C":"nzkpcwbu","Collection":"entriess","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Remover":"[{action: \"removeLink\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====query +subject_class("Recipe", C), collection_setter(C, Collection, Setter). +=====result +[{"C":"nzkpcwbu","Collection":"entriess","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"ingredientss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"},{"C":"nzkpcwbu","Collection":"commentss","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), property_setter(C, "name", Setter). +=====result +[{"C":"nzkpcwbu","Setter":"[{action: \"setSingleTarget\", source: \"this\", predicate: \"recipe://name\", target: \"value\"}]"}] +=====query +subject_class("Recipe", C), property_resolve_language(C, "name", Language). +=====result +false +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test", 1706790536453, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class("Recipe", C), collection_setter(C, "entriess", Setter). +=====result +[{"C":"nzkpcwbu","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://entries\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test", 1706790536453, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes", 1706790536538, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +languageAddress("literal://string:test%20recipes", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +languageName("literal://string:test%20recipes", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where"). +expressionAddress("literal://string:test%20recipes", "string:test%20recipes"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class("Recipe", C), collection_setter(C, "commentss", Setter). +=====result +[{"C":"nzkpcwbu","Setter":"[{action: \"collectionSetter\", source: \"this\", predicate: \"recipe://comment\", target: \"value\"}]"}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test1"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test", 1706790536453, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes", 1706790536538, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test", 1706790536620, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test1", 1706790536620, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +languageAddress("literal://string:test%20recipes", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +languageName("literal://string:test%20recipes", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where"). +expressionAddress("literal://string:test%20recipes", "string:test%20recipes"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://collection_test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ingredients", Value). +=====result +false +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}] +=====consult +:- discontiguous(triple/3). +:- discontiguous(link/5). +triple("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("literal://string:get%20proxy%20test", "todo://state", "todo://ready"). +triple("literal://string:construct%20test", "todo://state", "todo://done"). +triple("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201"). +triple("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review"). +triple("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment"). +triple("ad4m://self", "", "literal://string:get%20proxy%20test"). +triple("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +triple("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Custom%20getter%20test", "todo://state", "todo://ready"). +triple("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup"). +triple("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +triple("test://message", "ad4m://type", "ad4m://undefined"). +triple("test://message", "ad4m://type", "ad4m://message"). +triple("literal://string:Collection%20where%20test", "todo://state", "todo://ready"). +triple("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message"). +triple("literal://string:test%20message", "ad4m://type", "ad4m://message"). +triple("literal://string:test%20message", "todo://state", "todo://ready"). +triple("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test"). +triple("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink"). +triple("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe"). +triple("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test"). +triple("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test1"). +triple("literal://string:test%20recipes", "recipe://has_ingredient", "recipe://test"). +link("literal://string:Todo", "ad4m://sdna", "literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790526857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://state", "todo://ready", 1706790527083, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://state", "todo://done", 1706790527598, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790527659, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%201", 1706790527843, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:construct%20test", "todo://comment", "literal://string:new%20comment%202", 1706790527987, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://state", "todo://review", 1706790528951, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Decorated%20class%20construction%20test", "todo://comment", "literal://string:new%20comment", 1706790529000, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "", "literal://string:get%20proxy%20test", 1706790530132, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:get%20proxy%20test", "todo://has_title", "literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", 1706790530728, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Test", "ad4m://sdna", "literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", 1706790530798, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "todo://state", "todo://ready", 1706790530857, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test%20with%20prolog%20condition", "flux://entry_type", "literal://string:test%20message", 1706790531057, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "flux://has_reaction", "flux://thumbsup", 1706790531106, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "todo://state", "todo://ready", 1706790531172, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Custom%20getter%20test", "flux://has_reaction", "flux://thumbsup", 1706790531381, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Message", "ad4m://sdna", "literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", 1706790531428, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://undefined", 1706790531432, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("test://message", "ad4m://type", "ad4m://message", 1706790531482, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "todo://state", "todo://ready", 1706790531655, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Collection%20where%20test", "flux://entry_type", "literal://string:test%20message", 1706790531855, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "ad4m://type", "ad4m://message", 1706790531938, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20message", "todo://state", "todo://ready", 1706790531946, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Recipe", "ad4m://sdna", "literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", 1706790532143, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test", 1706790532420, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test", "recipe://name", "recipe://test1", 1706790532891, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "ad4m://type", "ad4m://recipe", 1706790533421, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test", 1706790533626, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://name", "recipe://collection_test", 1706790533710, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test", "recipe://comment", "recipe://test1", 1706790533799, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "ad4m://type", "ad4m://recipe", 1706790534160, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20test%20local%20link", 1706790534369, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://name", "recipe://locallink", 1706790534459, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20test%20local%20link", "recipe://local", "recipe://test", 1706790534565, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ad4m://type", "ad4m://recipe", 1706790536140, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("ad4m://self", "ad4m://has_child", "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", 1706790536360, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://name", "recipe://collection_test", 1706790536453, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://entries", "literal://string:test%20recipes", 1706790536538, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test", 1706790536620, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "recipe://comment", "recipe://test1", 1706790536620, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +link("literal://string:test%20recipes", "recipe://has_ingredient", "recipe://test", 1706790536809, "did:key:z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp"). +:- discontiguous(reachable/2). +reachable(A,B) :- triple(A,_,B). +reachable(A,B) :- triple(A,_,X), reachable(X,B). +:- discontiguous(hiddenExpression/1). +:- discontiguous(languageAddress/2). +languageAddress("literal://string:Todo", "literal"). +languageAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:get%20proxy%20test", "literal"). +languageAddress("literal://string:construct%20test", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:new%20comment%201", "literal"). +languageAddress("literal://string:new%20comment%202", "literal"). +languageAddress("literal://string:Decorated%20class%20construction%20test", "literal"). +languageAddress("literal://string:new%20comment", "literal"). +languageAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageAddress("literal://string:Test", "literal"). +languageAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageAddress("literal://string:test%20message", "literal"). +languageAddress("literal://string:Custom%20getter%20test", "literal"). +languageAddress("literal://string:Message", "literal"). +languageAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageAddress("literal://string:Collection%20where%20test", "literal"). +languageAddress("literal://string:Recipe", "literal"). +languageAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +languageAddress("literal://string:test%20recipes", "literal"). +:- discontiguous(languageName/2). +languageName("literal://string:Todo", "literal"). +languageName("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:get%20proxy%20test", "literal"). +languageName("literal://string:construct%20test", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:new%20comment%201", "literal"). +languageName("literal://string:new%20comment%202", "literal"). +languageName("literal://string:Decorated%20class%20construction%20test", "literal"). +languageName("literal://string:new%20comment", "literal"). +languageName("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "literal"). +languageName("literal://string:Test", "literal"). +languageName("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test%20with%20prolog%20condition", "literal"). +languageName("literal://string:test%20message", "literal"). +languageName("literal://string:Custom%20getter%20test", "literal"). +languageName("literal://string:Message", "literal"). +languageName("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "literal"). +languageName("literal://string:Collection%20where%20test", "literal"). +languageName("literal://string:Recipe", "literal"). +languageName("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "literal"). +languageName("literal://string:Active%20record%20implementation%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test", "literal"). +languageName("literal://string:Active%20record%20implementation%20test%20local%20link", "literal"). +languageName("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "literal"). +languageName("literal://string:test%20recipes", "literal"). +:- discontiguous(expressionAddress/2). +expressionAddress("literal://string:Todo", "string:Todo"). +expressionAddress("literal://string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Todo%22%2C%20c%29.%0Aconstructor%28c%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28c%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20_%29.%0A%0Adestructor%28c%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22state%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22state%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22state%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22title%22%29.%0Aproperty_resolve%28c%2C%20%22title%22%29.%0Aproperty_resolve_language%28c%2C%20%22title%22%2C%20%22literal%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22title%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fhas_title%22%2C%20Value%29.%0Aproperty_setter%28c%2C%20%22title%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fhas_title%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28c%2C%20%22isLiked%22%29.%0Aproperty_getter%28c%2C%20Base%2C%20%22isLiked%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%2C%20Value%20%3D%20true.%0A%0Acollection%28c%2C%20%22comments%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22todo%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22entries%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22messages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22messages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20instance%28OtherClass%2C%20Target%29%2C%20subject_class%28%22Message%22%2C%20OtherClass%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22messagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28c%2C%20%22likedMessages%22%29.%0Acollection_getter%28c%2C%20Base%2C%20%22likedMessages%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22flux%3A%2F%2Fentry_type%22%2C%20Target%29%2C%20triple%28Target%2C%20%22flux%3A%2F%2Fhas_reaction%22%2C%20%22flux%3A%2F%2Fthumbsup%22%29%29%2C%20List%29.%0Acollection_adder%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28c%2C%20%22likedMessagess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22flux%3A%2F%2Fentry_type%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:get%20proxy%20test", "string:get%20proxy%20test"). +expressionAddress("literal://string:construct%20test", "string:construct%20test"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A47.641Z%22%2C%22data%22%3A%22test%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%2210841c13759dcf7f36f291d3231782cfcb6455cb977ad59fc99301569f454924b03400167835f5ad5dc39ff64e193648b88645b965525f0fb66aaa73572ba602%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:new%20comment%201", "string:new%20comment%201"). +expressionAddress("literal://string:new%20comment%202", "string:new%20comment%202"). +expressionAddress("literal://string:Decorated%20class%20construction%20test", "string:Decorated%20class%20construction%20test"). +expressionAddress("literal://string:new%20comment", "string:new%20comment"). +expressionAddress("literal://json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D", "json:%7B%22author%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22timestamp%22%3A%222024-02-01T12%3A28%3A50.709Z%22%2C%22data%22%3A%22new%20title%22%2C%22proof%22%3A%7B%22key%22%3A%22did%3Akey%3Az6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%23z6MkfCr9Wg3J5EdakDEJQM3VdSRn6nDTSwtEd1AC8V7E4Qpp%22%2C%22signature%22%3A%228b38bc97dfc170aba49f2b5c085051194887b1f2b12a9636f2c7442c61c1509006deeed9017701d5e3705b353e5dc5ef318497c16f2018bc3aa7e0882acff502%22%2C%22valid%22%3Atrue%2C%22invalid%22%3Afalse%7D%7D"). +expressionAddress("literal://string:Test", "string:Test"). +expressionAddress("literal://string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A", "string:subject_class%28%22Test%22%2C%20srksdbln%29.%0Aconstructor%28srksdbln%2C%20%27%5B%5D%27%29.%0Adestructor%28srksdbln%2C%20%27%5B%5D%27%29.%0A%0Aproperty%28srksdbln%2C%20%22number%22%29.%0Aproperty_getter%28srksdbln%2C%20Base%2C%20%22number%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22test%3A%2F%2Ftest_numer%22%2C%20Value%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test%20with%20prolog%20condition", "string:Collection%20where%20test%20with%20prolog%20condition"). +expressionAddress("literal://string:test%20message", "string:test%20message"). +expressionAddress("literal://string:Custom%20getter%20test", "string:Custom%20getter%20test"). +expressionAddress("literal://string:Message", "string:Message"). +expressionAddress("literal://string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A", "string:subject_class%28%22Message%22%2C%20mqvvfluy%29.%0Aconstructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0Ainstance%28mqvvfluy%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Fmessage%22%29.%0A%0Adestructor%28mqvvfluy%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Fmessage%22%7D%2C%20%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22todo%3A%2F%2Fready%22%7D%5D%27%29.%0A%0Aproperty%28mqvvfluy%2C%20%22type%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28mqvvfluy%2C%20%22body%22%29.%0Aproperty_getter%28mqvvfluy%2C%20Base%2C%20%22body%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22todo%3A%2F%2Fstate%22%2C%20Value%29.%0Aproperty_setter%28mqvvfluy%2C%20%22body%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22todo%3A%2F%2Fstate%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0A"). +expressionAddress("literal://string:Collection%20where%20test", "string:Collection%20where%20test"). +expressionAddress("literal://string:Recipe", "string:Recipe"). +expressionAddress("literal://string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A", "string:subject_class%28%22Recipe%22%2C%20nzkpcwbu%29.%0Aconstructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0Ainstance%28nzkpcwbu%2C%20Base%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20%22ad4m%3A%2F%2Frecipe%22%29.%0A%0Adestructor%28nzkpcwbu%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22ad4m%3A%2F%2Ftype%22%2C%20target%3A%20%22ad4m%3A%2F%2Frecipe%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22type%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22type%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22ad4m%3A%2F%2Ftype%22%2C%20Value%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22name%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22name%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Fname%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22name%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fname%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Aproperty%28nzkpcwbu%2C%20%22local%22%29.%0Aproperty_getter%28nzkpcwbu%2C%20Base%2C%20%22local%22%2C%20Value%29%20%3A-%20triple%28Base%2C%20%22recipe%3A%2F%2Flocal%22%2C%20Value%29.%0Aproperty_setter%28nzkpcwbu%2C%20%22local%22%2C%20%27%5B%7Baction%3A%20%22setSingleTarget%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Flocal%22%2C%20target%3A%20%22value%22%2C%20local%3A%20true%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22entries%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22entries%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22entriess%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22ingredients%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22ingredients%22%2C%20List%29%20%3A-%20setof%28Target%2C%20%28triple%28Base%2C%20%22recipe%3A%2F%2Fentries%22%2C%20Target%29%2C%20triple%28Target%2C%20%22recipe%3A%2F%2Fhas_ingredient%22%2C%20%22recipe%3A%2F%2Ftest%22%29%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22ingredientss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fentries%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A%0Acollection%28nzkpcwbu%2C%20%22comments%22%29.%0Acollection_getter%28nzkpcwbu%2C%20Base%2C%20%22comments%22%2C%20List%29%20%3A-%20findall%28C%2C%20triple%28Base%2C%20%22recipe%3A%2F%2Fcomment%22%2C%20C%29%2C%20List%29.%0Acollection_adder%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22addLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_remover%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22removeLink%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0Acollection_setter%28nzkpcwbu%2C%20%22commentss%22%2C%20%27%5B%7Baction%3A%20%22collectionSetter%22%2C%20source%3A%20%22this%22%2C%20predicate%3A%20%22recipe%3A%2F%2Fcomment%22%2C%20target%3A%20%22value%22%7D%5D%27%29.%0A"). +expressionAddress("literal://string:Active%20record%20implementation%20test", "string:Active%20record%20implementation%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test", "string:Active%20record%20implementation%20collection%20test"). +expressionAddress("literal://string:Active%20record%20implementation%20test%20local%20link", "string:Active%20record%20implementation%20test%20local%20link"). +expressionAddress("literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "string:Active%20record%20implementation%20collection%20test%20with%20where"). +expressionAddress("literal://string:test%20recipes", "string:test%20recipes"). +:- discontiguous(register_sdna_flow/2). +:- discontiguous(flowable/2). +:- discontiguous(flow_state/3). +:- discontiguous(start_action/2). +:- discontiguous(action/4). +:- discontiguous(subject_class/2). +:- discontiguous(constructor/2). +:- discontiguous(destructor/2). +:- discontiguous(instance/2). +:- discontiguous(property/2). +:- discontiguous(property_getter/4). +:- discontiguous(property_setter/3). +:- discontiguous(property_resolve/2). +:- discontiguous(property_resolve_language/3). +:- discontiguous(property_named_option/4). +:- discontiguous(collection/2). +:- discontiguous(collection_getter/4). +:- discontiguous(collection_setter/3). +:- discontiguous(collection_remover/3). +:- discontiguous(collection_adder/3). +:- discontiguous(p3_class_icon/2). +:- discontiguous(p3_class_color/2). +:- discontiguous(p3_instance_color/3). +:- use_module(library(lists)). + +:- discontiguous(paginate/4). +paginate(Data, PageNumber, PageSize, PageData) :- + PageNumber > 0, + PageSize > 0, + length(Data, DataLength), + MaxSkip is max(0, DataLength - PageSize), + SkipCount is min((PageNumber - 1) * PageSize, MaxSkip), + skipN(Data, SkipCount, SkippedData), + takeN(SkippedData, PageSize, PageData). + +:- discontiguous(skipN/3). +skipN(Data, 0, Data). +skipN([_|Rest], N, SkippedData) :- + N > 0, + NextN is N - 1, + skipN(Rest, NextN, SkippedData). + +:- discontiguous(takeN/3). +takeN(_, 0, []). +takeN([Item|Rest], N, [Item|PageRest]) :- + N > 0, + NextN is N - 1, + takeN(Rest, NextN, PageRest). + +subject_class("Todo", c). +constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(c, Base) :- triple(Base, "todo://state", _). + +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(c, "state"). +property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). +property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + +property(c, "title"). +property_resolve(c, "title"). +property_resolve_language(c, "title", "literal"). +property_getter(c, Base, "title", Value) :- triple(Base, "todo://has_title", Value). +property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "todo://has_title", target: "value"}]'). + +property(c, "isLiked"). +property_getter(c, Base, "isLiked", Value) :- triple(Base, "flux://has_reaction", "flux://thumbsup"), Value = true. + +collection(c, "comments"). +collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). +collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). + +collection(c, "entries"). +collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). +collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "messages"). +collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). +collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +collection(c, "likedMessages"). +collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). +collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). + +subject_class("Test", srksdbln). +constructor(srksdbln, '[]'). +destructor(srksdbln, '[]'). + +property(srksdbln, "number"). +property_getter(srksdbln, Base, "number", Value) :- triple(Base, "test://test_numer", Value). + + +subject_class("Message", mqvvfluy). +constructor(mqvvfluy, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). +instance(mqvvfluy, Base) :- triple(Base, "ad4m://type", "ad4m://message"). + +destructor(mqvvfluy, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://message"}, {action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + +property(mqvvfluy, "type"). +property_getter(mqvvfluy, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(mqvvfluy, "body"). +property_getter(mqvvfluy, Base, "body", Value) :- triple(Base, "todo://state", Value). +property_setter(mqvvfluy, "body", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). + + +subject_class("Recipe", nzkpcwbu). +constructor(nzkpcwbu, '[{action: "addLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). +instance(nzkpcwbu, Base) :- triple(Base, "ad4m://type", "ad4m://recipe"). + +destructor(nzkpcwbu, '[{action: "removeLink", source: "this", predicate: "ad4m://type", target: "ad4m://recipe"}]'). + +property(nzkpcwbu, "type"). +property_getter(nzkpcwbu, Base, "type", Value) :- triple(Base, "ad4m://type", Value). + +property(nzkpcwbu, "name"). +property_getter(nzkpcwbu, Base, "name", Value) :- triple(Base, "recipe://name", Value). +property_setter(nzkpcwbu, "name", '[{action: "setSingleTarget", source: "this", predicate: "recipe://name", target: "value"}]'). + +property(nzkpcwbu, "local"). +property_getter(nzkpcwbu, Base, "local", Value) :- triple(Base, "recipe://local", Value). +property_setter(nzkpcwbu, "local", '[{action: "setSingleTarget", source: "this", predicate: "recipe://local", target: "value", local: true}]'). + +collection(nzkpcwbu, "entries"). +collection_getter(nzkpcwbu, Base, "entries", List) :- findall(C, triple(Base, "recipe://entries", C), List). +collection_adder(nzkpcwbu, "entriess", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "entriess", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "entriess", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "ingredients"). +collection_getter(nzkpcwbu, Base, "ingredients", List) :- setof(Target, (triple(Base, "recipe://entries", Target), triple(Target, "recipe://has_ingredient", "recipe://test")), List). +collection_adder(nzkpcwbu, "ingredientss", '[{action: "addLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_remover(nzkpcwbu, "ingredientss", '[{action: "removeLink", source: "this", predicate: "recipe://entries", target: "value"}]'). +collection_setter(nzkpcwbu, "ingredientss", '[{action: "collectionSetter", source: "this", predicate: "recipe://entries", target: "value"}]'). + +collection(nzkpcwbu, "comments"). +collection_getter(nzkpcwbu, Base, "comments", List) :- findall(C, triple(Base, "recipe://comment", C), List). +collection_adder(nzkpcwbu, "commentss", '[{action: "addLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_remover(nzkpcwbu, "commentss", '[{action: "removeLink", source: "this", predicate: "recipe://comment", target: "value"}]'). +collection_setter(nzkpcwbu, "commentss", '[{action: "collectionSetter", source: "this", predicate: "recipe://comment", target: "value"}]'). + +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://collection_test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ingredients", Value). +=====result +[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}] +=====query +subject_class(Class, C), property(C, "type"), property(C, "name"), property(C, "local"), property_setter(C, "name", _), property_setter(C, "local", _), collection_adder(C, "entriess", _), collection_adder(C, "ingredientss", _), collection_adder(C, "commentss", _), collection_remover(C, "entriess", _), collection_remover(C, "ingredientss", _), collection_remover(C, "commentss", _), collection_setter(C, "entriess", _), collection_setter(C, "ingredientss", _), collection_setter(C, "commentss", _). +=====result +[{"C":"nzkpcwbu","Class":"Recipe"}] +=====query +subject_class("Recipe", C), instance(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where"). +=====result +[{"C":"nzkpcwbu"}] +=====query +subject_class("Recipe", C), property(C, Property). +=====result +[{"C":"nzkpcwbu","Property":"type"},{"C":"nzkpcwbu","Property":"name"},{"C":"nzkpcwbu","Property":"local"}] +=====query +subject_class("Recipe", C), property_resolve(C, "type"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "type", Value). +=====result +[{"C":"nzkpcwbu","Value":"ad4m://recipe"}] +=====query +subject_class("Recipe", C), property_resolve(C, "name"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "name", Value). +=====result +[{"C":"nzkpcwbu","Value":"recipe://collection_test"}] +=====query +subject_class("Recipe", C), property_resolve(C, "local"). +=====result +false +=====query +subject_class("Recipe", C), property_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "local", Value). +=====result +false +=====query +subject_class("Recipe", C), collection(C, Collection). +=====result +[{"C":"nzkpcwbu","Collection":"entries"},{"C":"nzkpcwbu","Collection":"ingredients"},{"C":"nzkpcwbu","Collection":"comments"}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "entries", Value). +=====result +[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "ingredients", Value). +=====result +[{"C":"nzkpcwbu","Value":["literal://string:test%20recipes"]}] +=====query +subject_class("Recipe", C), collection_getter(C, "literal://string:Active%20record%20implementation%20collection%20test%20with%20where", "comments", Value). +=====result +[{"C":"nzkpcwbu","Value":["recipe://test","recipe://test1"]}] diff --git a/src/machine/lib_machine.rs b/src/machine/lib_machine.rs index f644be314..d65fc5393 100644 --- a/src/machine/lib_machine.rs +++ b/src/machine/lib_machine.rs @@ -39,10 +39,10 @@ impl Machine { fn allocate_stub_choice_point(&mut self) { // NOTE: create a choice point to terminate the dispatch_loop - // if an exception is thrown. since the and/or stack is presumed empty, + // if an exception is thrown. let stub_b = self.machine_st.stack.allocate_or_frame(0); - let or_frame = self.machine_st.stack.index_or_frame_mut(0); + let or_frame = self.machine_st.stack.index_or_frame_mut(stub_b); or_frame.prelude.num_cells = 0; or_frame.prelude.e = 0; @@ -58,6 +58,7 @@ impl Machine { self.machine_st.b = stub_b; self.machine_st.hb = self.machine_st.heap.len(); + self.machine_st.block = stub_b; } pub fn run_query(&mut self, query: String) -> QueryResult { @@ -72,24 +73,13 @@ impl Machine { .read_term(&op_dir, Tokens::Default) .expect("Failed to parse query"); + self.allocate_stub_choice_point(); + // Write parsed term to heap let term_write_result = write_term_to_heap(&term, &mut self.machine_st.heap, &self.machine_st.atom_tbl) .expect("couldn't write term to heap"); - // Write term to heap - self.machine_st.registers[1] = self.machine_st.heap[term_write_result.heap_loc]; - - self.machine_st.cp = LIB_QUERY_SUCCESS; // BREAK_FROM_DISPATCH_LOOP_LOC; - self.machine_st.p = self - .indices - .code_dir - .get(&(atom!("call"), 1)) - .expect("couldn't get code index") - .local() - .unwrap(); - self.machine_st.b0 = self.machine_st.b; - let var_names: IndexMap<_, _> = term_write_result .var_dict .iter() @@ -102,7 +92,19 @@ impl Machine { }) .collect(); - self.allocate_stub_choice_point(); + // Write term to heap + self.machine_st.registers[1] = self.machine_st.heap[term_write_result.heap_loc]; + + self.machine_st.cp = LIB_QUERY_SUCCESS; // BREAK_FROM_DISPATCH_LOOP_LOC; + let call_index_p = self + .indices + .code_dir + .get(&(atom!("call"), 1)) + .expect("couldn't get code index") + .local() + .unwrap(); + + self.machine_st.execute_at_index(1, call_index_p); let stub_b = self.machine_st.b; @@ -156,17 +158,17 @@ impl Machine { }; */ - if term_write_result.var_dict.is_empty() { - if self.machine_st.p == LIB_QUERY_SUCCESS { + if self.machine_st.p == LIB_QUERY_SUCCESS { + if term_write_result.var_dict.is_empty() { matches.push(QueryResolutionLine::True); break; - } else if self.machine_st.p == BREAK_FROM_DISPATCH_LOOP_LOC { - // NOTE: only print results on success - // self.machine_st.fail = false; - // println!("b == stub_b"); - matches.push(QueryResolutionLine::False); - break; } + } else if self.machine_st.p == BREAK_FROM_DISPATCH_LOOP_LOC { + // NOTE: only print results on success + // self.machine_st.fail = false; + // println!("b == stub_b"); + matches.push(QueryResolutionLine::False); + break; } let mut bindings: BTreeMap = BTreeMap::new(); @@ -462,6 +464,7 @@ mod tests { let blocks = code.split("====="); let mut i = 0; + let mut last_result: Option<_> = None; // Iterate over the blocks for block in blocks { // Trim the block to remove any leading or trailing whitespace @@ -474,20 +477,24 @@ mod tests { // Check if the block is a query if let Some(query) = block.strip_prefix("query") { - i += 1; - println!("query #{}: {}", i, query); // Parse and execute the query let result = machine.run_query(query.to_string()); - assert!(result.is_ok()); - // Print the result - println!("{:?}", result); + last_result = Some(result); } else if let Some(code) = block.strip_prefix("consult") { - println!("load code: {}", code); - // Load the code into the machine machine.consult_module_string("facts", code.to_string()); + } else if let Some(result) = block.strip_prefix("result") { + i += 1; + if let Some(Ok(ref last_result)) = last_result { + println!( + "\n\n=====Result No. {}=======\n{}\n===============", + i, + last_result.to_string().trim() + ); + assert_eq!(last_result.to_string().trim(), result.to_string().trim(),) + } } } } @@ -524,4 +531,103 @@ mod tests { ),])) ); } + + #[test] + fn dont_return_partial_matches() { + let mut machine = Machine::new_lib(); + + machine.consult_module_string( + "facts", + String::from( + r#" + :- discontiguous(property_resolve/2). + subject_class("Todo", c). + "#, + ), + ); + + let query = String::from(r#"property_resolve(C, "isLiked"), subject_class("Todo", C)."#); + let output = machine.run_query(query); + assert_eq!(output, Ok(QueryResolution::False)); + + let query = String::from(r#"subject_class("Todo", C), property_resolve(C, "isLiked")."#); + let output = machine.run_query(query); + assert_eq!(output, Ok(QueryResolution::False)); + } + + #[test] + fn dont_return_partial_matches_without_discountiguous() { + let mut machine = Machine::new_lib(); + + machine.consult_module_string( + "facts", + String::from( + r#" + a("true for a"). + b("true for b"). + "#, + ), + ); + + let query = String::from(r#"a("true for a")."#); + let output = machine.run_query(query); + assert_eq!(output, Ok(QueryResolution::True)); + + let query = String::from(r#"a("true for a"), b("true for b")."#); + let output = machine.run_query(query); + assert_eq!(output, Ok(QueryResolution::True)); + + let query = String::from(r#"a("true for b"), b("true for b")."#); + let output = machine.run_query(query); + assert_eq!(output, Ok(QueryResolution::False)); + + let query = String::from(r#"a("true for a"), b("true for a")."#); + let output = machine.run_query(query); + assert_eq!(output, Ok(QueryResolution::False)); + } + + #[test] + fn non_existent_predicate_should_not_cause_panic_when_other_predicates_are_defined() { + let mut machine = Machine::new_lib(); + + machine.consult_module_string( + "facts", + String::from( + r#" + triple("a", "p1", "b"). + triple("a", "p2", "b"). + "#, + ), + ); + + let query = String::from("non_existent_predicate(\"a\",\"p1\",\"b\")."); + + let result = machine.run_query(query); + + assert_eq!( + result, + Err(String::from("error existence_error procedure / non_existent_predicate 3 / non_existent_predicate 3")) + ); + } + + #[test] + fn issue_2341() { + let mut machine = Machine::new_lib(); + + machine.load_module_string( + "facts", + String::from( + r#" + male(stephen). + parent(albert,edward). + father(F,C):-parent(F,C),male(F). + "#, + ), + ); + + let query = String::from(r#"father(F,C)."#); + let output = machine.run_query(query); + + assert_eq!(output, Ok(QueryResolution::False)); + } } diff --git a/src/machine/machine_errors.rs b/src/machine/machine_errors.rs index c2cbb4053..5860fb5d7 100644 --- a/src/machine/machine_errors.rs +++ b/src/machine/machine_errors.rs @@ -1022,19 +1022,6 @@ pub enum SessionError { QueryCannotBeDefinedAsFact, } -#[derive(Debug)] -pub(crate) enum EvalSession { - // EntrySuccess, - Error(SessionError), -} - -impl From for EvalSession { - #[inline] - fn from(err: SessionError) -> Self { - EvalSession::Error(err) - } -} - impl From for SessionError { #[inline] fn from(err: std::io::Error) -> SessionError { @@ -1055,10 +1042,3 @@ impl From for SessionError { SessionError::CompilationError(err) } } - -impl From for EvalSession { - #[inline] - fn from(err: ParserError) -> Self { - EvalSession::from(SessionError::from(err)) - } -} diff --git a/src/machine/machine_indices.rs b/src/machine/machine_indices.rs index e5fdc9558..856c7766b 100644 --- a/src/machine/machine_indices.rs +++ b/src/machine/machine_indices.rs @@ -10,16 +10,14 @@ use crate::machine::ClauseType; use fxhash::FxBuildHasher; use indexmap::{IndexMap, IndexSet}; -use modular_bitfield::specifiers::*; -use modular_bitfield::{bitfield, BitfieldSpecifier}; +use scryer_modular_bitfield::specifiers::*; +use scryer_modular_bitfield::{bitfield, BitfieldSpecifier}; use std::cmp::Ordering; use std::collections::BTreeSet; use std::ops::{Deref, DerefMut}; use crate::types::*; -#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] -pub(crate) struct OrderedOpDirKey(pub(crate) Atom, pub(crate) Fixity); // 7.2 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] @@ -287,8 +285,27 @@ impl IndexStore { } #[inline(always)] - pub(crate) fn goal_expansion_defined(&self, key: PredicateKey) -> bool { - self.goal_expansion_indices.contains(&key) + pub(crate) fn goal_expansion_defined(&self, key: PredicateKey, module_name: Atom) -> bool { + let compilation_target = match module_name { + atom!("user") => CompilationTarget::User, + _ => CompilationTarget::Module(module_name), + }; + + match key { + _ if self.goal_expansion_indices.contains(&key) => true, + _ => self + .get_meta_predicate_spec(key.0, key.1, &compilation_target) + .map(|meta_specs| { + meta_specs.iter().find(|meta_spec| { + matches!( + meta_spec, + MetaSpec::Colon | MetaSpec::RequiresExpansionWithArgument(_) + ) + }) + }) + .map(|meta_spec_opt| meta_spec_opt.is_some()) + .unwrap_or(false), + } } pub(crate) fn get_predicate_skeleton_mut( diff --git a/src/machine/parsed_results.rs b/src/machine/parsed_results.rs index bbc9b0912..9c635f055 100644 --- a/src/machine/parsed_results.rs +++ b/src/machine/parsed_results.rs @@ -13,6 +13,84 @@ pub enum QueryResolution { Matches(Vec), } +pub fn prolog_value_to_json_string(value: Value) -> String { + match value { + Value::Integer(i) => format!("{}", i), + Value::Float(f) => format!("{}", f), + Value::Rational(r) => format!("{}", r), + Value::Atom(a) => format!("{}", a.as_str()), + Value::String(s) => { + if let Err(_e) = serde_json::from_str::(s.as_str()) { + //treat as string literal + //escape double quotes + format!( + "\"{}\"", + s.replace('\"', "\\\"") + .replace('\n', "\\n") + .replace('\t', "\\t") + .replace('\r', "\\r") + ) + } else { + //return valid json string + s + } + } + Value::List(l) => { + let mut string_result = "[".to_string(); + for (i, v) in l.iter().enumerate() { + if i > 0 { + string_result.push(','); + } + string_result.push_str(&prolog_value_to_json_string(v.clone())); + } + string_result.push(']'); + string_result + } + Value::Structure(s, l) => { + let mut string_result = format!("\"{}\":[", s.as_str()); + for (i, v) in l.iter().enumerate() { + if i > 0 { + string_result.push(','); + } + string_result.push_str(&prolog_value_to_json_string(v.clone())); + } + string_result.push(']'); + string_result + } + _ => "null".to_string(), + } +} + +fn prolog_match_to_json_string(query_match: &QueryMatch) -> String { + let mut string_result = "{".to_string(); + for (i, (k, v)) in query_match.bindings.iter().enumerate() { + if i > 0 { + string_result.push(','); + } + string_result.push_str(&format!( + "\"{}\":{}", + k, + prolog_value_to_json_string(v.clone()) + )); + } + string_result.push('}'); + string_result +} + +impl ToString for QueryResolution { + fn to_string(&self) -> String { + match self { + QueryResolution::True => "true".to_string(), + QueryResolution::False => "false".to_string(), + QueryResolution::Matches(matches) => { + let matches_json: Vec = + matches.iter().map(prolog_match_to_json_string).collect(); + format!("[{}]", matches_json.join(",")) + } + } + } +} + #[derive(Debug, Clone, PartialEq, Eq)] pub struct QueryMatch { pub bindings: BTreeMap, diff --git a/src/machine/streams.rs b/src/machine/streams.rs index e05ad9837..be5591cf1 100644 --- a/src/machine/streams.rs +++ b/src/machine/streams.rs @@ -12,7 +12,7 @@ use crate::machine::machine_indices::*; use crate::machine::machine_state::*; use crate::types::*; -pub use modular_bitfield::prelude::*; +pub use scryer_modular_bitfield::prelude::*; use std::cmp::Ordering; use std::error::Error; @@ -24,7 +24,6 @@ use std::io; #[cfg(feature = "http")] use std::io::BufRead; use std::io::{Cursor, ErrorKind, Read, Seek, SeekFrom, Write}; -use std::mem; use std::net::{Shutdown, TcpStream}; use std::ops::{Deref, DerefMut}; use std::path::PathBuf; @@ -296,9 +295,9 @@ impl Read for HttpReadStream { #[cfg(feature = "http")] pub struct HttpWriteStream { status_code: u16, - headers: mem::ManuallyDrop, + headers: std::mem::ManuallyDrop, response: TypedArenaPtr, - buffer: mem::ManuallyDrop>, + buffer: std::mem::ManuallyDrop>, } #[cfg(feature = "http")] @@ -325,8 +324,8 @@ impl Write for HttpWriteStream { #[cfg(feature = "http")] impl HttpWriteStream { fn drop(&mut self) { - let headers = unsafe { mem::ManuallyDrop::take(&mut self.headers) }; - let buffer = unsafe { mem::ManuallyDrop::take(&mut self.buffer) }; + let headers = unsafe { std::mem::ManuallyDrop::take(&mut self.headers) }; + let buffer = unsafe { std::mem::ManuallyDrop::take(&mut self.buffer) }; let (ready, response, cvar) = &**self.response; @@ -455,25 +454,12 @@ macro_rules! arena_allocated_impl_for_stream { impl ArenaAllocated for StreamLayout<$stream_type> { type PtrToAllocated = TypedArenaPtr>; + gen_ptr_to_allocated!(StreamLayout<$stream_type>); + #[inline] fn tag() -> ArenaHeaderTag { ArenaHeaderTag::$stream_tag } - - #[inline] - fn size(&self) -> usize { - mem::size_of::>() - } - - #[allow(clippy::not_unsafe_ptr_arg_deref)] - #[inline] - fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated { - unsafe { - // Miri seems to hit this a lot - ptr::write(dst, self); - TypedArenaPtr::new(dst as *mut Self) - } - } } }; } @@ -1241,8 +1227,8 @@ impl Stream { StreamLayout::new(CharReader::new(HttpWriteStream { response, status_code, - headers: mem::ManuallyDrop::new(headers), - buffer: mem::ManuallyDrop::new(Vec::new()), + headers: std::mem::ManuallyDrop::new(headers), + buffer: std::mem::ManuallyDrop::new(Vec::new()), })), arena )) diff --git a/src/machine/system_calls.rs b/src/machine/system_calls.rs index 7ff5353af..9b78b9450 100644 --- a/src/machine/system_calls.rs +++ b/src/machine/system_calls.rs @@ -80,7 +80,7 @@ use crossterm::terminal::{disable_raw_mode, enable_raw_mode}; use blake2::{Blake2b, Blake2s}; use ring::rand::{SecureRandom, SystemRandom}; -use ring::{digest, hkdf, pbkdf2}; +use ring::{digest, hkdf, hmac, pbkdf2}; #[cfg(feature = "crypto-full")] use ring::aead; @@ -249,9 +249,9 @@ impl BrentAlgState { self.pstr_chars += num_chars; Some(CycleSearchResult::ProperList(self.num_steps())) } else { - let offset = self.num_steps() + num_chars - self.max_steps as usize; - self.pstr_chars += offset; - Some(CycleSearchResult::PStrLocation(self.max_steps as usize, h, offset)) + let char_offset = self.max_steps as usize - self.num_steps(); + self.pstr_chars += char_offset; + Some(CycleSearchResult::PStrLocation(self.max_steps as usize, h, char_offset + offset)) } } (HeapCellValueTag::PStr, pstr_atom) => { @@ -262,9 +262,9 @@ impl BrentAlgState { self.pstr_chars += num_chars - 1; self.step(h+1) } else { - let offset = self.num_steps() + num_chars - self.max_steps as usize; - self.pstr_chars += offset; - Some(CycleSearchResult::PStrLocation(self.max_steps as usize, h, offset)) + let char_offset = self.max_steps as usize - self.num_steps(); + self.pstr_chars += char_offset; + Some(CycleSearchResult::PStrLocation(self.max_steps as usize, h, char_offset + offset)) } } _ => { @@ -280,7 +280,8 @@ impl BrentAlgState { ) -> Option { read_heap_cell!(heap[h], (HeapCellValueTag::PStrOffset, l) => { - let (pstr_loc, offset) = pstr_loc_and_offset(heap, l); + let (pstr_loc, _) = pstr_loc_and_offset(heap, l); + let offset = cell_as_fixnum!(heap[h+1]); self.add_pstr_offset_chars(heap, pstr_loc, offset.get_num() as usize) } _ => { @@ -429,15 +430,12 @@ impl BrentAlgState { pstr_chars = pstr.as_str_from(n).chars().count() - 1; - if heap[h].get_tag() == HeapCellValueTag::PStrOffset { - debug_assert!(heap[h].get_tag() == HeapCellValueTag::PStrOffset); - - if heap[h_offset].get_tag() == HeapCellValueTag::CStr { - return if pstr_chars < max_steps { - CycleSearchResult::ProperList(pstr_chars + 1) - } else { - CycleSearchResult::UntouchedCStr(pstr.into(), max_steps) - }; + if heap[h].get_tag() == HeapCellValueTag::PStrOffset && heap[h_offset].get_tag() == HeapCellValueTag::CStr { + return if pstr_chars < max_steps { + CycleSearchResult::ProperList(pstr_chars + 1) + } else { + let offset = max_steps + n; + CycleSearchResult::PStrLocation(max_steps, h_offset, offset) } } @@ -690,6 +688,7 @@ impl MachineState { let cell = if offset > 0 { let h = self.heap.len(); + let (pstr_loc, _) = pstr_loc_and_offset(&self.heap, pstr_loc); self.heap.push(pstr_offset_as_cell!(pstr_loc)); self.heap @@ -748,11 +747,7 @@ impl MachineState { let max_steps_n = match max_steps { Ok(Number::Fixnum(n)) => Some(n.get_num()), - Ok(Number::Integer(n)) => { - let value: i64 = (&*n).try_into().unwrap(); - - Some(value) - } + Ok(Number::Integer(n)) => (&*n).try_into().ok(), _ => None, }; @@ -1341,38 +1336,49 @@ impl Machine { let index_cell = index_cell_opt.or_else(|| { let is_internal_call = name == atom!("$call") && goal_arity > 0; - if !is_internal_call && self.indices.goal_expansion_defined((name, arity)) { - None - } else { - if is_internal_call { - debug_assert_eq!(goal.get_tag(), HeapCellValueTag::Str); - goal = self.machine_st.heap[goal.get_value() as usize + 1]; - (module_name, goal) = self.machine_st.strip_module(goal, module_name); + if !is_internal_call { + let module_name = if module_name.get_tag() == HeapCellValueTag::Atom { + cell_as_atom!(module_name) + } else { + atom!("user") + }; - if let Some((inner_name, inner_arity)) = - self.machine_st.name_and_arity_from_heap(goal) - { - arity -= goal_arity; - (name, goal_arity) = (inner_name, inner_arity); - arity += goal_arity; - } else { - return None; - } + if self + .indices + .goal_expansion_defined((name, arity), module_name) + { + return None; } + } - let module_name = if module_name.get_tag() != HeapCellValueTag::Atom { - if let Some(load_context) = self.load_contexts.last() { - load_context.module - } else { - atom!("user") - } - } else { - cell_as_atom!(module_name) - }; + if is_internal_call { + debug_assert_eq!(goal.get_tag(), HeapCellValueTag::Str); + goal = self.machine_st.heap[goal.get_value() as usize + 1]; + (module_name, goal) = self.machine_st.strip_module(goal, module_name); - self.indices - .get_predicate_code_index(name, arity, module_name) + if let Some((inner_name, inner_arity)) = + self.machine_st.name_and_arity_from_heap(goal) + { + arity -= goal_arity; + (name, goal_arity) = (inner_name, inner_arity); + arity += goal_arity; + } else { + return None; + } } + + let module_name = if module_name.get_tag() != HeapCellValueTag::Atom { + if let Some(load_context) = self.load_contexts.last() { + load_context.module + } else { + atom!("user") + } + } else { + cell_as_atom!(module_name) + }; + + self.indices + .get_predicate_code_index(name, arity, module_name) }); if let Some(code_index) = index_cell { @@ -1695,7 +1701,13 @@ impl Machine { } } _ => { - unreachable!() + let h = self.machine_st.heap.len(); + let call_form = functor!(atom!(":"), [cell(module_name), cell(self.machine_st.registers[2])]); + self.machine_st.heap.extend(call_form); + + let stub = functor_stub(atom!("call"), narity + 1); + let err = self.machine_st.type_error(ValidType::Callable, str_loc_as_cell!(h)); + return Err(self.machine_st.error_form(err, stub)); } ); @@ -7475,6 +7487,40 @@ impl Machine { unify!(self.machine_st, self.machine_st.registers[3], ints_list); } + #[inline(always)] + pub(crate) fn crypto_hmac(&mut self) { + let encoding = cell_as_atom!(self.deref_register(2)); + let data = self.string_encoding_bytes(self.machine_st.registers[1], encoding); + + let stub_gen = || functor_stub(atom!("crypto_data_hash"), 3); + + let key = self + .machine_st + .integers_to_bytevec(self.machine_st.registers[3], stub_gen); + + let algorithm = cell_as_atom!(self.deref_register(5)); + let ralg = match algorithm { + atom!("sha256") => hmac::HMAC_SHA256, + atom!("sha384") => hmac::HMAC_SHA384, + atom!("sha512") => hmac::HMAC_SHA512, + _ => { + unreachable!() + } + }; + + let rkey = hmac::Key::new(ralg, key.as_ref()); + let tag = hmac::sign(&rkey, &data); + + let ints_list = heap_loc_as_cell!(iter_to_heap_list( + &mut self.machine_st.heap, + tag.as_ref() + .iter() + .map(|b| fixnum_as_cell!(Fixnum::build_with(*b as i64))), + )); + + unify!(self.machine_st, self.machine_st.registers[4], ints_list); + } + #[inline(always)] pub(crate) fn crypto_data_hkdf(&mut self) { let encoding = cell_as_atom!(self.deref_register(2)); diff --git a/src/machine/unify.rs b/src/machine/unify.rs index b045552b8..7cd3df06f 100644 --- a/src/machine/unify.rs +++ b/src/machine/unify.rs @@ -453,30 +453,6 @@ pub(crate) trait Unifier: DerefMut { } } - fn unify_big_num(&mut self, n1: TypedArenaPtr, value: HeapCellValue) - where - N: PartialEq + PartialEq + PartialEq + ArenaAllocated, - { - if let Some(r) = value.as_var() { - Self::bind(self, r, typed_arena_ptr_as_cell!(n1)); - return; - } - - match Number::try_from(value) { - Ok(n2) => match n2 { - Number::Fixnum(n2) if *n1 == n2.get_num() => {} - Number::Integer(n2) if *n1 == *n2 => {} - Number::Rational(n2) if *n1 == *n2 => {} - _ => { - self.fail = true; - } - }, - Err(_) => { - self.fail = true; - } - } - } - fn unify_big_integer(&mut self, n1: TypedArenaPtr, value: HeapCellValue) { if let Some(r) = value.as_var() { Self::bind(self, r, typed_arena_ptr_as_cell!(n1)); diff --git a/src/parser/ast.rs b/src/parser/ast.rs index 04d6fc99c..7b3022eab 100644 --- a/src/parser/ast.rs +++ b/src/parser/ast.rs @@ -17,8 +17,8 @@ use crate::parser::dashu::{Integer, Rational}; use fxhash::FxBuildHasher; use indexmap::IndexMap; -use modular_bitfield::error::OutOfBounds; -use modular_bitfield::prelude::*; +use scryer_modular_bitfield::error::OutOfBounds; +use scryer_modular_bitfield::prelude::*; pub type Specifier = u32; @@ -49,13 +49,13 @@ macro_rules! fixnum { macro_rules! is_term { ($x:expr) => { - ($x as u32 & $crate::parser::ast::TERM) != 0 + ($x as u32 & $crate::parser::ast::TERM) != 0 || is_negate!($x) }; } macro_rules! is_lterm { ($x:expr) => { - ($x as u32 & $crate::parser::ast::LTERM) != 0 + ($x as u32 & $crate::parser::ast::LTERM) != 0 || is_negate!($x) }; } @@ -537,7 +537,7 @@ impl Fixnum { #[inline] pub fn get_tag(&self) -> HeapCellValueTag { - use modular_bitfield::Specifier; + use scryer_modular_bitfield::Specifier; HeapCellValueTag::from_bytes(self.tag()).unwrap() } diff --git a/src/parser/char_reader.rs b/src/parser/char_reader.rs index aa1813a9d..bc9c16010 100644 --- a/src/parser/char_reader.rs +++ b/src/parser/char_reader.rs @@ -192,7 +192,7 @@ impl CharRead for CharReader { } else if self.pos >= self.buf.len() { return None; } else if self.buf.len() - self.pos >= 4 && self.pos < e.valid_up_to() { - return match str::from_utf8(&self.buf[self.pos..e.valid_up_to()]) { + return match str::from_utf8(&self.buf[self.pos..self.pos + e.valid_up_to()]) { Ok(s) => { let mut chars = s.chars(); let c = chars.next().unwrap(); @@ -200,7 +200,7 @@ impl CharRead for CharReader { Some(Ok(c)) } Err(e) => { - let badbytes = self.buf[self.pos..e.valid_up_to()].to_vec(); + let badbytes = self.buf[self.pos..self.pos + e.valid_up_to()].to_vec(); Some(Err(io::Error::new( io::ErrorKind::InvalidData, @@ -229,7 +229,7 @@ impl CharRead for CharReader { match self.inner.read(word_slice) { Err(e) => return Some(Err(e)), - Ok(nread) if nread == 0 => return Some(Err(bad_bytes_error(&self.buf))), + Ok(0) => return Some(Err(bad_bytes_error(&self.buf))), Ok(nread) => { self.buf.extend_from_slice(&word_slice[0..nread]); } @@ -327,12 +327,11 @@ impl Read for CharReader { return self.inner.read_vectored(bufs); } - let nread = { - self.refresh_buffer()?; - (&self.buf[self.pos..]).read_vectored(bufs)? - }; + self.refresh_buffer()?; + let nread = (&self.buf[self.pos..]).read_vectored(bufs)?; self.consume(nread); + Ok(nread) } } diff --git a/src/parser/parser.rs b/src/parser/parser.rs index 3637df24f..c4d509b4e 100644 --- a/src/parser/parser.rs +++ b/src/parser/parser.rs @@ -109,7 +109,7 @@ pub(crate) fn as_partial_string( tail_ref = succ; } Term::PartialString(_, pstr, tail) => { - string += &pstr; + string += pstr; tail_ref = tail; } Term::CompleteString(_, cstr) => { @@ -150,6 +150,7 @@ pub fn get_op_desc(name: Atom, op_dir: &CompositeOpDir) -> Option Parser<'a, R> { // expect a term or non-comma operator. if let TokenType::Comma = desc.tt { return None; - } else if is_term!(desc.spec) || is_op!(desc.spec) { + } else if is_term!(desc.spec) || is_op!(desc.spec) || is_negate!(desc.spec) { arity += 1; } else { return None; @@ -911,9 +912,6 @@ impl<'a, R: CharRead> Parser<'a, R> { // can't be prefix, so either inf == 0 // or post == 0. self.reduce_op(inf + post); - - // let fixity = if inf > 0 { Fixity::In } else { Fixity::Post }; - self.promote_atom_op(name, inf + post, spec & (XFX | XFY | YFX | YF | XF)); } _ => { @@ -927,12 +925,12 @@ impl<'a, R: CharRead> Parser<'a, R> { inf + post, spec & (XFX | XFY | YFX | XF | YF), ); - } else { - self.promote_atom_op(name, pre, spec & (FX | FY | NEGATIVE_SIGN)); + + return Ok(true); } - } else { - self.promote_atom_op(name, pre, spec & (FX | FY | NEGATIVE_SIGN)); } + + self.promote_atom_op(name, pre, spec & (FX | FY | NEGATIVE_SIGN)); } } } else { diff --git a/src/tests/dif.pl b/src/tests/dif.pl index c7dfbdd7b..3a41895b7 100644 --- a/src/tests/dif.pl +++ b/src/tests/dif.pl @@ -1,5 +1,7 @@ /**/ +:- module(dif_tests, []). + :- use_module(library(dcgs)). :- use_module(library(format)). :- use_module(library(lists)). @@ -7,10 +9,30 @@ :- use_module(library(iso_ext)). :- use_module(library(dif)). +:- use_module(test_framework). + +assert_p(A, B) :- + phrase(portray_clause_(A), Portrayed), + phrase((B, ".\n"), Portrayed). + +:- meta_predicate call_residual_goals(0, ?). + +call_residual_goals(Goal, ResidualGoals) :- + call_residue_vars(Goal, Vars), + variables_residual_goals(Vars, ResidualGoals). + +variables_residual_goals(Vars, Goals) :- + phrase(variables_residual_goals(Vars), Goals). + +variables_residual_goals([]) --> []. +variables_residual_goals([Var|Vars]) --> + dif:attribute_goals(Var), + variables_residual_goals(Vars). + % Tests from https://www.complang.tuwien.ac.at/ulrich/iso-prolog/dif test("dif#1",( - call_residual_goals(dif(1,2), Res), + call_residual_goals(dif_tests:dif(1,2), Res), Res = [] )). @@ -19,7 +41,7 @@ )). test("dif#3",( - call_residual_goals((dif(1,Y), Y=2), Res), + call_residual_goals(dif_tests:(dif(1,Y), Y=2), Res), Y == 2, Res = [] )). @@ -47,40 +69,40 @@ % I don't understand exactly what is expected for dif#9 and dif#10 test("dif#11",( - call_residual_goals((X=Y, dif(X-Y,1-2)), Res), + call_residual_goals(dif_tests:(X=Y, dif(X-Y,1-2)), Res), X == Y, Res = [] )). test("dif#12",( - call_residual_goals((dif(X-Y,1-2), X=Y), Res), + call_residual_goals(dif_tests:(dif(X-Y,1-2), X=Y), Res), X == Y, Res = [] )). test("dif#13",( - call_residual_goals((X=Y, Y=1, dif(X-Y,1-2)), Res), + call_residual_goals(dif_tests:(X=Y, Y=1, dif(X-Y,1-2)), Res), X == 1, Y == 1, Res = [] )). test("dif#14",( - call_residual_goals((dif(X-Y,1-2), X=Y, Y=1), Res), + call_residual_goals(dif_tests:(dif(X-Y,1-2), X=Y, Y=1), Res), X == 1, Y == 1, Res = [] )). test("dif#15",( - call_residual_goals((dif(X-Y,1-2), X=Y, X=2), Res), + call_residual_goals(dif_tests:(dif(X-Y,1-2), X=Y, X=2), Res), X == 2, Y == 2, Res = [] )). test("dif#16",( - call_residual_goals((dif(A-C,B-D), C-D=z-z, A-B=1-2), Res), + call_residual_goals(dif_tests:(dif(A-C,B-D), C-D=z-z, A-B=1-2), Res), A == 1, B == 2, C == z, @@ -89,7 +111,7 @@ )). test("dif#17",( - call_residual_goals((A-B=1-2, C-D=z-z, dif(A-C,B-D)), Res), + call_residual_goals(dif_tests:(A-B=1-2, C-D=z-z, dif(A-C,B-D)), Res), A == 1, B == 2, C == z, @@ -98,32 +120,32 @@ )). test("dif#18",( - call_residual_goals((dif(A,[C|B]), A=[[]|_], A=[B]), Res), + call_residual_goals(dif_tests:(dif(A,[C|B]), A=[[]|_], A=[B]), Res), A == [[]], B == [], Res = [dif:dif([[]], [C])] )). test("dif#19",( - call_residual_goals((dif([E],[/]), E=1), Res), + call_residual_goals(dif_tests:(dif([E],[/]), E=1), Res), E == 1, Res = [] )). test("dif#20",( - call_residual_goals((dif([a],B), B=[_|_], B=[b]), Res), + call_residual_goals(dif_tests:(dif([a],B), B=[_|_], B=[b]), Res), B == [b], Res = [] )). test("dif#21",( - call_residual_goals((dif([],A), A = [_]), Res), + call_residual_goals(dif_tests:(dif([],A), A = [_]), Res), A = [_], Res = [] )). test("dif#22",( - call_residual_goals((A = [_], dif([],A)), Res), + call_residual_goals(dif_tests:(A = [_], dif([],A)), Res), A = [_], Res = [] )). @@ -140,7 +162,7 @@ test("dif#t3",( set_prolog_flag(occurs_check, false), - call_residual_goals((-X=X, dif(X,1)), Res), + call_residual_goals(dif_tests:(-X=X, dif(X,1)), Res), X == -X, Res = [] )). @@ -172,26 +194,26 @@ test("dif#o2",( set_prolog_flag(occurs_check, true), - call_residual_goals((dif(-X,X)), Res), + call_residual_goals(dif_tests:(dif(-X,X)), Res), Res = [] )). test("dif#o3",( set_prolog_flag(occurs_check, true), - call_residual_goals((dif(-X,Y), X=Y), Res), + call_residual_goals(dif_tests:(dif(-X,Y), X=Y), Res), X == Y, Res = [] )). test("dif#12 but with multiple variables in the residuals",( - call_residual_goals((dif(X-Y-_, 1-2-3), X = Y), Res), + call_residual_goals(dif_tests:(dif(X-Y-_, 1-2-3), X = Y), Res), X == Y, Res = [] )). % https://github.com/mthom/scryer-prolog/issues/1956 test("scryer-prolog#1956",( - call_residue_vars((dif(a-a,X-_),X=b), Res), + call_residue_vars(dif_tests:(dif(a-a,X-_),X=b), Res), X == b, Res = [] )). @@ -213,65 +235,3 @@ A=_C*[], A=[]*D*B,D=[] )). - -main :- - findall(test(Name, Goal), test(Name, Goal), Tests), - run_tests(Tests, Failed), - show_failed(Failed), - halt. - -main_quiet :- - findall(test(Name, Goal), test(Name, Goal), Tests), - run_tests_quiet(Tests, Failed), - ( Failed = [] -> - format("All tests passed", []) - ; format("Some tests failed", []) - ), - halt. - -portray_failed_([]) --> []. -portray_failed_([F|Fs]) --> - "\"", F, "\"", "\n", portray_failed_(Fs). - -portray_failed([]) --> []. -portray_failed([F|Fs]) --> - "\n", "Failed tests:", "\n", portray_failed_([F|Fs]). - -show_failed(Failed) :- - phrase(portray_failed(Failed), F), - format("~s", [F]). - -run_tests([], []). -run_tests([test(Name, Goal)|Tests], Failed) :- - format("Running test \"~s\"~n", [Name]), - ( call(Goal) -> - Failed = Failed1 - ; format("Failed test \"~s\"~n", [Name]), - Failed = [Name|Failed1] - ), - run_tests(Tests, Failed1). - -run_tests_quiet([], []). -run_tests_quiet([test(Name, Goal)|Tests], Failed) :- - ( call(Goal) -> - Failed = Failed1 - ; Failed = [Name|Failed1] - ), - run_tests_quiet(Tests, Failed1). - -assert_p(A, B) :- - phrase(portray_clause_(A), Portrayed), - phrase((B, ".\n"), Portrayed). - -call_residual_goals(Goal, ResidualGoals) :- - call_residue_vars(Goal, Vars), - variables_residual_goals(Vars, ResidualGoals). - -variables_residual_goals(Vars, Goals) :- - phrase(variables_residual_goals(Vars), Goals). - -variables_residual_goals([]) --> []. -variables_residual_goals([Var|Vars]) --> - dif:attribute_goals(Var), - variables_residual_goals(Vars). - diff --git a/src/tests/ground.pl b/src/tests/ground.pl index 09c398c00..beacdd657 100644 --- a/src/tests/ground.pl +++ b/src/tests/ground.pl @@ -1,11 +1,11 @@ /**/ -:- use_module(library(format)). -:- use_module(library(dcgs)). -:- use_module(library(lists)). -:- use_module(library(debug)). +:- module(ground_tests, []). + :- use_module(library(atts)). +:- use_module(test_framework). + :- attribute a/1. a(Var) :- put_atts(Var, +a(hello)). @@ -36,48 +36,3 @@ _=_B*_,_D=_B*_A,_B=_B*_D,\+ ground(_B), A=[A|B],B=A*B,ground(A) )). - -main :- - findall(test(Name, Goal), test(Name, Goal), Tests), - run_tests(Tests, Failed), - show_failed(Failed), - halt. - -main_quiet :- - findall(test(Name, Goal), test(Name, Goal), Tests), - run_tests_quiet(Tests, Failed), - ( Failed = [] -> - format("All tests passed", []) - ; format("Some tests failed", []) - ), - halt. - -run_tests([], []). -run_tests([test(Name, Goal)|Tests], Failed) :- - format("Running test \"~s\"~n", [Name]), - ( call(Goal) -> - Failed = Failed1 - ; format("Failed test \"~s\"~n", [Name]), - Failed = [Name|Failed1] - ), - run_tests(Tests, Failed1). - -run_tests_quiet([], []). -run_tests_quiet([test(Name, Goal)|Tests], Failed) :- - ( call(Goal) -> - Failed = Failed1 - ; Failed = [Name|Failed1] - ), - run_tests_quiet(Tests, Failed1). - -portray_failed_([]) --> []. -portray_failed_([F|Fs]) --> - "\"", F, "\"", "\n", portray_failed_(Fs). - -portray_failed([]) --> []. -portray_failed([F|Fs]) --> - "\n", "Failed tests:", "\n", portray_failed_([F|Fs]). - -show_failed(Failed) :- - phrase(portray_failed(Failed), F), - format("~s", [F]). diff --git a/src/tests/nth_partial_strings.pl b/src/tests/nth_partial_strings.pl new file mode 100644 index 000000000..97b4c7548 --- /dev/null +++ b/src/tests/nth_partial_strings.pl @@ -0,0 +1,137 @@ +/**/ + +:- module(nth_partial_strings_tests, []). + +:- use_module(library(between)). +:- use_module(library(lists)). + +:- use_module(test_framework). + +test("nth_partial_string_tests#1827_1", ( + L="ab", + findall([N,E], (between(0,2,N), nth0(N,[x|L],E)), S), + S = [[0,x],[1,a],[2,b]] + )). + +test("nth_partial_string_tests#2381_1", ( + G="AA", + G=[_|Gs], + G_=['A'|Gs], + write(G_), + nth0(1,G_,C), + char_code(C,N), + write(N), + nl + )). + +test("nth_partial_string_tests#2382_2", ( + G="AA", + G=[_|Gs], + G_=['A'|Gs], + findall([L,C],nth0(L,G_,C),S), + S=[[0,'A'],[1,'A']] + )). + +test("nth_partial_string_tests#2382_3", ( + G="AA", + G=[_|Gs], + G_=['A'|Gs], + nth0(1,G_,C), + C='A' + )). + + +test("nth_partial_string_tests#2382_4", ( + G="XYZ", + G=[_|Gs], + G_=['A'|Gs], + nth0(2,G_,C), + C='Z' + )). + +test("nth_partial_string_tests#2382_5", ( + G="XYZ", + G=[_|Gs], + G_=['A'|Gs], + nth0(2,G_,C), + C='Z' + )). + +test("nth_partial_string_tests#2382_6", ( + G="XYZ", + G=[_,_|T], + nth0(0,T,C), + C='Z' + )). + +test("nth_partial_string_tests#2382_7", ( + G="XYZ", + G=[_,_|T], + nth0(L,T,C), + L=0, + !, + C='Z' + )). + +test("nth_partial_string_tests#2382_8", ( + G="XYZ", + G=[_,_|T], + L=0, + nth0(L,T,C), + C='Z' + )). + +test("nth_partial_string_tests#2382_9", ( + G="XYZ", + G=[_|T], + nth0(0,T,C), + C='Y' + )). + +test("nth_partial_string_tests#2382_10", ( + G="XYZ", + G=[_|T], + nth0(1,T,C), + C='Z' + )). + +test("nth_partial_string_tests#2382_11", ( + G="XYZ", + T=[G|G], + findall([L,C],nth0(L,T,C),S), + S=[[0, "XYZ"],[1,'X'],[2,'Y'],[3,'Z']] + )). + +test("nth_partial_string_tests#2382_12", ( + G="XYZ", + T=[G|G], + nth0(L,T,C), + L=3, + !, + C='Z' + )). + +test("nth_partial_string_tests#2382_13", ( + G="XYZ", + T=[G|G], + nth0(L,T,C), + L=3, + !, + C='Z' + )). + +test("nth_partial_string_tests#2382_14", ( + G="XYZ", + T=[G|G], + L=3, + nth0(L,T,C), + C='Z' + )). + +test("nth_partial_string_tests#2382_15", ( + G="XYZ", + T=[G|G], + L=2, + nth0(L,T,C), + C='Y' + )). diff --git a/src/tests/term_variables.pl b/src/tests/term_variables.pl index f3ef5b322..2fae094b9 100644 --- a/src/tests/term_variables.pl +++ b/src/tests/term_variables.pl @@ -1,9 +1,8 @@ /**/ -:- use_module(library(format)). -:- use_module(library(dcgs)). -:- use_module(library(lists)). -:- use_module(library(debug)). +:- module(term_variables_tests, []). + +:- use_module(test_framework). test("term_variables#1400", ( term_variables(A+B*C/B-D, Vars), @@ -70,48 +69,3 @@ T4 = [A|_], T3 = A, T0 = A. - -main :- - findall(test(Name, Goal), test(Name, Goal), Tests), - run_tests(Tests, Failed), - show_failed(Failed), - halt. - -main_quiet :- - findall(test(Name, Goal), test(Name, Goal), Tests), - run_tests_quiet(Tests, Failed), - ( Failed = [] -> - format("All tests passed", []) - ; format("Some tests failed", []) - ), - halt. - -run_tests([], []). -run_tests([test(Name, Goal)|Tests], Failed) :- - format("Running test \"~s\"~n", [Name]), - ( call(Goal) -> - Failed = Failed1 - ; format("Failed test \"~s\"~n", [Name]), - Failed = [Name|Failed1] - ), - run_tests(Tests, Failed1). - -run_tests_quiet([], []). -run_tests_quiet([test(Name, Goal)|Tests], Failed) :- - ( call(Goal) -> - Failed = Failed1 - ; Failed = [Name|Failed1] - ), - run_tests_quiet(Tests, Failed1). - -portray_failed_([]) --> []. -portray_failed_([F|Fs]) --> - "\"", F, "\"", "\n", portray_failed_(Fs). - -portray_failed([]) --> []. -portray_failed([F|Fs]) --> - "\n", "Failed tests:", "\n", portray_failed_([F|Fs]). - -show_failed(Failed) :- - phrase(portray_failed(Failed), F), - format("~s", [F]). diff --git a/src/tests/test_framework.pl b/src/tests/test_framework.pl new file mode 100644 index 000000000..58a522a57 --- /dev/null +++ b/src/tests/test_framework.pl @@ -0,0 +1,49 @@ +:- module(test_framework, [main/1, main_quiet/1]). + +:- use_module(library(dcgs)). +:- use_module(library(format)). + +main(TestModule) :- + findall(test(Name, TestModule:Goal), TestModule:test(Name, Goal), Tests), + run_tests(Tests, Failed), + show_failed(Failed), + halt. + +main_quiet(TestModule) :- + findall(test(Name, TestModule:Goal), TestModule:test(Name, Goal), Tests), + run_tests_quiet(Tests, Failed), + ( Failed = [] -> + format("All tests passed", []) + ; format("Some tests failed", []) + ), + halt. + +portray_failed_([]) --> []. +portray_failed_([F|Fs]) --> + "\"", F, "\"", "\n", portray_failed_(Fs). + +portray_failed([]) --> []. +portray_failed([F|Fs]) --> + "\n", "Failed tests:", "\n", portray_failed_([F|Fs]). + +show_failed(Failed) :- + phrase(portray_failed(Failed), F), + format("~s", [F]). + +run_tests([], []). +run_tests([test(Name, Goal)|Tests], Failed) :- + format("Running test \"~s\"~n", [Name]), + ( call(Goal) -> + Failed = Failed1 + ; format("Failed test \"~s\"~n", [Name]), + Failed = [Name|Failed1] + ), + run_tests(Tests, Failed1). + +run_tests_quiet([], []). +run_tests_quiet([test(Name, Goal)|Tests], Failed) :- + ( call(Goal) -> + Failed = Failed1 + ; Failed = [Name|Failed1] + ), + run_tests_quiet(Tests, Failed1). diff --git a/src/tests/when.pl b/src/tests/when.pl index 7356e42ee..20e0600c4 100644 --- a/src/tests/when.pl +++ b/src/tests/when.pl @@ -1,13 +1,11 @@ /**/ -:- use_module(library(iso_ext)). -:- use_module(library(format)). -:- use_module(library(dcgs)). -:- use_module(library(lists)). -:- use_module(library(debug)). +:- module(when_tests, []). :- use_module(library(when)). +:- use_module(test_framework). + test("condition true before ground/1",( A = 1, when(ground(A), Run = true), @@ -81,65 +79,3 @@ B = 1, Run2 == true )). - -main :- - findall(test(Name, Goal), test(Name, Goal), Tests), - run_tests(Tests, Failed), - show_failed(Failed), - halt. - -main_quiet :- - findall(test(Name, Goal), test(Name, Goal), Tests), - run_tests_quiet(Tests, Failed), - ( Failed = [] -> - format("All tests passed", []) - ; format("Some tests failed", []) - ), - halt. - -portray_failed_([]) --> []. -portray_failed_([F|Fs]) --> - "\"", F, "\"", "\n", portray_failed_(Fs). - -portray_failed([]) --> []. -portray_failed([F|Fs]) --> - "\n", "Failed tests:", "\n", portray_failed_([F|Fs]). - -show_failed(Failed) :- - phrase(portray_failed(Failed), F), - format("~s", [F]). - -run_tests([], []). -run_tests([test(Name, Goal)|Tests], Failed) :- - format("Running test \"~s\"~n", [Name]), - ( call(Goal) -> - Failed = Failed1 - ; format("Failed test \"~s\"~n", [Name]), - Failed = [Name|Failed1] - ), - run_tests(Tests, Failed1). - -run_tests_quiet([], []). -run_tests_quiet([test(Name, Goal)|Tests], Failed) :- - ( call(Goal) -> - Failed = Failed1 - ; Failed = [Name|Failed1] - ), - run_tests_quiet(Tests, Failed1). - -assert_p(A, B) :- - phrase(portray_clause_(A), Portrayed), - phrase((B, ".\n"), Portrayed). - -call_residual_goals(Goal, ResidualGoals) :- - call_residue_vars(Goal, Vars), - variables_residual_goals(Vars, ResidualGoals). - -variables_residual_goals(Vars, Goals) :- - phrase(variables_residual_goals(Vars), Goals). - -variables_residual_goals([]) --> []. -variables_residual_goals([Var|Vars]) --> - dif_:attribute_goals(Var), - variables_residual_goals(Vars). - diff --git a/tests-pl/iso-conformity-tests.pl b/tests-pl/iso-conformity-tests.pl index dc08ce2d5..10b85c10d 100644 --- a/tests-pl/iso-conformity-tests.pl +++ b/tests-pl/iso-conformity-tests.pl @@ -230,13 +230,16 @@ test_62 :- atom(-/*.*/-). -test_63_180_64 :- setup_call_cleanup(( current_op(P,fy,-), - op(0,fy,-) - ), - ( integer(-1), - integer(- 1) - ), - op(P,fy,-)). +test_63_180_64_328 :- setup_call_cleanup(( current_op(P,fy,-), + op(0,fy,-) + ), + ( integer(-1), + integer(- 1), + read_from_chars("writeq_term_to_chars([-]).", Writer), + call(Writer, Cs), + Cs == "[-]" + ), + op(P,fy,-)). test_135 :- writeq_term_to_chars(-(1), Chars), Chars == "- (1)". diff --git a/tests-pl/issue2361-call-qualified.pl b/tests-pl/issue2361-call-qualified.pl new file mode 100644 index 000000000..f8c625b20 --- /dev/null +++ b/tests-pl/issue2361-call-qualified.pl @@ -0,0 +1,3 @@ +:- use_module(issue2361_m). + +:- initialization(gs([(length("a",_),length("ab",_))])). diff --git a/tests-pl/issue2361_m.pl b/tests-pl/issue2361_m.pl new file mode 100644 index 000000000..aab18e97d --- /dev/null +++ b/tests-pl/issue2361_m.pl @@ -0,0 +1,8 @@ +:- module(m, [gs/1]). + +:- use_module(library(lists)). + +gs([]). +gs([G|Gs]) :- + G, + gs(Gs). diff --git a/tests/scryer/cli/src_tests/dif_tests.toml b/tests/scryer/cli/src_tests/dif_tests.toml index 62665be2c..cc537bcb8 100644 --- a/tests/scryer/cli/src_tests/dif_tests.toml +++ b/tests/scryer/cli/src_tests/dif_tests.toml @@ -1 +1 @@ -args = ["-f", "--no-add-history", "src/tests/dif.pl", "-f", "-g", "main_quiet"] +args = ["-f", "--no-add-history", "src/tests/dif.pl", "-f", "-g", "use_module(library(dif_tests)), dif_tests:main_quiet(dif_tests)"] diff --git a/tests/scryer/cli/src_tests/ground_tests.toml b/tests/scryer/cli/src_tests/ground_tests.toml index d7925bb78..9cbb3c3f2 100644 --- a/tests/scryer/cli/src_tests/ground_tests.toml +++ b/tests/scryer/cli/src_tests/ground_tests.toml @@ -1 +1 @@ -args = ["-f", "--no-add-history", "src/tests/ground.pl", "-f", "-g", "main_quiet"] +args = ["-f", "--no-add-history", "src/tests/ground.pl", "-f", "-g", "use_module(library(ground_tests)), ground_tests:main_quiet(ground_tests)"] diff --git a/tests/scryer/cli/src_tests/nth_partial_strings_tests.stderr b/tests/scryer/cli/src_tests/nth_partial_strings_tests.stderr new file mode 100644 index 000000000..e69de29bb diff --git a/tests/scryer/cli/src_tests/nth_partial_strings_tests.stdout b/tests/scryer/cli/src_tests/nth_partial_strings_tests.stdout new file mode 100644 index 000000000..00c49bc1b --- /dev/null +++ b/tests/scryer/cli/src_tests/nth_partial_strings_tests.stdout @@ -0,0 +1,2 @@ +[A,A]65 +All tests passed \ No newline at end of file diff --git a/tests/scryer/cli/src_tests/nth_partial_strings_tests.toml b/tests/scryer/cli/src_tests/nth_partial_strings_tests.toml new file mode 100644 index 000000000..0a82fbb38 --- /dev/null +++ b/tests/scryer/cli/src_tests/nth_partial_strings_tests.toml @@ -0,0 +1 @@ +args = ["-f", "--no-add-history", "src/tests/nth_partial_strings.pl", "-f", "-g", "use_module(library(nth_partial_strings_tests)),nth_partial_strings_tests:main_quiet(nth_partial_strings_tests)"] diff --git a/tests/scryer/cli/src_tests/term_variables_tests.toml b/tests/scryer/cli/src_tests/term_variables_tests.toml index 6d75921e7..2b3291bf7 100644 --- a/tests/scryer/cli/src_tests/term_variables_tests.toml +++ b/tests/scryer/cli/src_tests/term_variables_tests.toml @@ -1 +1 @@ -args = ["-f", "--no-add-history", "src/tests/term_variables.pl", "-f", "-g", "main_quiet"] +args = ["-f", "--no-add-history", "src/tests/term_variables.pl", "-f", "-g", "use_module(library(term_variables_tests)),term_variables_tests:main_quiet(term_variables_tests)"] diff --git a/tests/scryer/cli/src_tests/when_tests.toml b/tests/scryer/cli/src_tests/when_tests.toml index ff0a53300..1b57e457f 100644 --- a/tests/scryer/cli/src_tests/when_tests.toml +++ b/tests/scryer/cli/src_tests/when_tests.toml @@ -1 +1 @@ -args = ["-f", "--no-add-history", "src/tests/when.pl", "-f", "-g", "main_quiet"] +args = ["-f", "--no-add-history", "src/tests/when.pl", "-f", "-g", "use_module(library(when_tests)), when_tests:main_quiet(when_tests)"] diff --git a/tests/scryer/issues.rs b/tests/scryer/issues.rs index 39e303780..556bf9d5b 100644 --- a/tests/scryer/issues.rs +++ b/tests/scryer/issues.rs @@ -11,3 +11,10 @@ fn call_0() { " error(existence_error(procedure,call/0),call/0).\n", ); } + +// issue #2361 +#[serial] +#[test] +fn call_qualification() { + load_module_test("tests-pl/issue2361-call-qualified.pl", ""); +} diff --git a/tests/scryer/main.rs b/tests/scryer/main.rs index d1e826f0f..878f0d900 100644 --- a/tests/scryer/main.rs +++ b/tests/scryer/main.rs @@ -13,6 +13,7 @@ mod src_tests; /// to re-generate all reference output files run `TRYCMD=overwrite cargo test -- cli_test` /// then check that the changes are as expected e.g. by looking at the `git diff` #[test] +#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))] #[cfg_attr(miri, ignore = "blocked on crossbeam UB")] fn cli_tests() { trycmd::TestCases::new()