Giter Site home page Giter Site logo

anacletolab / ensmallen Goto Github PK

View Code? Open in Web Editor NEW
38.0 38.0 12.0 2.07 GB

๐Ÿ‡ Ensmallen is the Rust/Python high-performance graph processing submodule of the GRAPE library.

License: MIT License

Rust 12.58% Makefile 0.01% Python 87.25% Shell 0.01% Jupyter Notebook 0.14% C 0.01% TeX 0.01% Dockerfile 0.01%
graph processing python rust

ensmallen's People

Contributors

bjorn3 avatar caufieldjh avatar cmungall avatar elenacasiraghi avatar justaddcoffee avatar lucacappelletti94 avatar zommiommy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ensmallen's Issues

graph module compiling error on macOS

Hello Team,

Python install succeeds but seperate compiling in the graph module fails:

error: cannot find macro asm in this scope
--> /Users/jianshuzhao/.cargo/git/checkouts/vec_rand-0be24989d24c2226/43472c1/src/xorshift/src/xorshift_avx_ss8.rs:30:9
|
30 | asm!(
| ^^^
|
= note: consider importing one of these items:
std::arch::asm
core::arch::asm

error: cannot find macro asm in this scope
--> /Users/jianshuzhao/.cargo/git/checkouts/vec_rand-0be24989d24c2226/43472c1/src/xorshift/src/xorshift_avx_ss4.rs:27:9
|
27 | asm!(
| ^^^
|
= note: consider importing one of these items:
std::arch::asm
core::arch::asm

error: cannot find macro asm in this scope
--> /Users/jianshuzhao/.cargo/git/checkouts/vec_rand-0be24989d24c2226/43472c1/src/xorshift/src/xorshift_avx.rs:22:9
|
22 | asm!(
| ^^^
|
= note: consider importing one of these items:
std::arch::asm
core::arch::asm

error: cannot find macro asm in this scope
--> /Users/jianshuzhao/.cargo/git/checkouts/vec_rand-0be24989d24c2226/43472c1/src/xorshiro256plus/src/xorshiro256plus_avx_ss4.rs:35:9
|
35 | asm!(
| ^^^
|
= note: consider importing one of these items:
std::arch::asm
core::arch::asm

error: cannot find macro asm in this scope
--> /Users/jianshuzhao/.cargo/git/checkouts/vec_rand-0be24989d24c2226/43472c1/src/xorshiro256plus/src/xorshiro256plus_avx.rs:21:9
|
21 | asm!(
| ^^^
|
= note: consider importing one of these items:
std::arch::asm
core::arch::asm

error: could not compile xorshift due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
error: build failed
/bin/sh: line 9: grcov: command not found
Jianshus-MBP:node2vec-rs jianshuzhao$ The file /Users/jianshuzhao/Github/node2vec-rs/target/debug/coverage/src/index.html does not exist.

Any idea why, it seems the std:asm is not used correctly

Thanks,

Jianshu

Linking error using the `graph` crate in Rust

Hello,

This is my code:

use graph::GraphBuilder;

fn main() {
    println!("Hello, world!");
    let mut graph_builder = GraphBuilder::new(None, Some(false));
}

This is my Cargo.toml file:

[package]
name = "node2vec_walks"
version = "0.1.0"
edition = "2021"

[dependencies]
graph = { path = "../ensmallen/graph"}

And this is my linking error:

error: linking with `link.exe` failed: exit code: 1120
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\Barak\\AppData\\Local\\Temp\\rustcqun4Wj\\symbols.o" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\node2vec_walks.12rfibg2uzdheskt.rcgu.o" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\node2vec_walks.20fttr5soqndpo2.rcgu.o" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\node2vec_walks.26zeao7vfnzkea7k.rcgu.o" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\node2vec_walks.4nucotu8f4bbq2tt.rcgu.o" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\node2vec_walks.4shfofb2cd5mn3zb.rcgu.o" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\node2vec_walks.4u78fdxa322lanea.rcgu.o" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\node2vec_walks.35r3fagrewq67lz8.rcgu.o" "/LIBPATH:C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps" "/LIBPATH:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30133\\atlmfc\\lib\\x64" "/LIBPATH:C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\build\\graph-d9ac150e7aa4c162\\out" "/LIBPATH:C:\\Users\\Barak\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\windows_x86_64_msvc-0.52.5\\lib" "/LIBPATH:C:\\Users\\Barak\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\windows_x86_64_msvc-0.32.0\\lib" "/LIBPATH:C:\\Users\\Barak\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\windows_x86_64_msvc-0.48.5\\lib" "/LIBPATH:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30133\\atlmfc\\lib\\x64" "/LIBPATH:C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\build\\bzip2-sys-e326be90bc26a7b6\\out\\lib" "/LIBPATH:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30133\\atlmfc\\lib\\x64" "/LIBPATH:C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\build\\zstd-sys-cf79f0ae21644e9b\\out" "/LIBPATH:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30133\\atlmfc\\lib\\x64" "/LIBPATH:C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\build\\esaxx-rs-f332fb5e5cd33349\\out" "/LIBPATH:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30133\\atlmfc\\lib\\x64" "/LIBPATH:C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\build\\onig_sys-694189847f5a8d5c\\out" "/LIBPATH:C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libgraph-ffc59acead7496f5.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libvalidator-bb040772c1bcb8c2.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libvalidator_types-936f7901ed4bc8c7.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libsyn-a80f0dc52c9c9456.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libquote-ef0e4efc014c9607.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libproc_macro2-888c19c7fbb04ae3.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libunicode_ident-a803ea052b0d2916.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libproc_macro-ff26d39d5c3a33b8.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libidna-1f4eb76413ea4506.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libmatches-944a779fc638861c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libexpress_measures-7eef3eeee0103519.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libnum_traits-b7b4be6de2972d70.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libindicatif-ae74903a59e59f42.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libportable_atomic-f13ddbcde4bc695f.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libiter_set-f7a45c45df063865.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libnum_cpus-aa3f3d82f79f091b.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libheterogeneous_graphlets-7d6170efbd8a17d0.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libv_htmlescape-f4cf334b1328b55a.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libv_escape-942eb31933e3e083.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbuf_min-32299300299a1777.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbytes-5b79fce8cd8fe25d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtokenizers-20608cbb673e7847.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libesaxx_rs-f133a628d4cc9ba1.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libdirs-d4e03ab2da736197.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libdirs_sys-8d3ce5c681cb6380.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libaho_corasick-867806b848fd723c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libunicode_normalization_alignments-0d3dc828829c1ecd.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libsmallvec-dcab6c96100aee1e.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libonig-713c92fbce42e817.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbitflags-328ecab904d0935c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libonig_sys-998bba4d6f6d1b87.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libspm_precompiled-348227ed14a250db.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbase64-c58609f591eede83.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libunicode_segmentation-893d945e23c02a2a.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libnom-414eb6a237a8237e.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libunicode_categories-c604b4dbcd928d46.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libmacro_rules_attribute-8c712abfc58218a6.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libindicatif-d08772e9f0cc3387.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libnumber_prefix-e8b701ac249b720a.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librayon_cond-341a3996a6fd76dc.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libitertools-7f63e32c70eb3a2b.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libitertools-7aeab284aec2eaca.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcached_path-d2267e294f5c8840.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libserde_json-3e460277c94142d7.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtar-3ba133307af08ceb.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfiletime-2b8481b1b103ac62.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libthiserror-8dc7876905a3c9a1.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libreqwest-e1d46efb878715cc.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librustls_pemfile-95a43457428fe863.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libhyper_tls-cdfc217a5293c082.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbase64-f4d69d8d1ed2fe2d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libwinreg-fb3de9cdc9934346.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libipnet-2acd173344f40fd2.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtokio_native_tls-227633cfe5a128ea.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libserde_urlencoded-86b502ef9832003c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libryu-4f094138c320a397.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libmime-8a0d871b469f919b.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libencoding_rs-31ce44e09d50d21c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libnative_tls-79121a23353a1a19.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libschannel-1397b7f037ba372e.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libhyper-2c6327fef0eca0ef.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libwant-a48b68f4ab3eee9f.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtry_lock-aceb571a77ae5b60.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libhttparse-23dc4fa8e9a5bc2d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libh2-d60bda10a6bc72fa.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libindexmap-dd41e3e42435c7a2.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libequivalent-21e74fe755f473aa.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtokio_util-39fb2de00d0ef800.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfutures_sink-0176d9937dc0e562.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtower_service-6f8200c08cc08529.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtracing-25477c52321e7852.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtracing_core-00d7ed6324606118.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfutures_channel-872c1918c48142b9.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtokio-ea08a34a47a2c536.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libsocket2-80422452caf7408c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libmio-d43d9644af077fc7.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libwindows_sys-bc96ed9f9d107a98.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libwindows_targets-5ea1f08602d9d39a.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libsync_wrapper-6a4285261907ac24.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libhttp_body-1e833dd9456d44de.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfutures_util-2552f0b8bce473ea.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfutures_io-57760cc84d1f55ba.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libslab-137be5d87114e11d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libpin_project_lite-e992ebcd592bab84.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfutures_task-8d3a0083edb3a085.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libpin_utils-cb45053009a65566.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfutures_core-f7bdf6cb3963f0f8.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\liburl-cfcd92ba9b184f7c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libidna-c831f9f98342af47.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libunicode_normalization-ac5e085a1492631f.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtinyvec-8bcdbcc87b35f6bd.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtinyvec_macros-a5b8d8cc33ec45d4.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libunicode_bidi-c1da2507aa64edfc.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libform_urlencoded-71ed0e446242ae88.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libpercent_encoding-f7be7adaab2cc76b.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libhttp-a1cd55d351dd14f4.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libitoa-58ff8cc975d6f409.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbytes-1a0fe397211629ad.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfnv-c3685e653815410e.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librand-1364e0ca93ea3d6c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librand_chacha-960f7ef1e18d2be6.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libglob-af8d278153291b9b.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfs2-a96f76ae1dbbe16c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libwinapi-e314db32f5e13b2f.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libzip_extensions-6476cbc3043c375e.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libzip-218bd5b9f1c0f61d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libpbkdf2-1fd18107d08ee184.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libsha2-6c6503355141c7a5.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libpassword_hash-3ffdcbec17979ab0.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbase64ct-b2ac269ac001decf.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librand_core-f5aec217375d7302.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libgetrandom-ef8af3f84f6deb0d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtime-15d1b29f19a601bd.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtime_core-2044fdf7e36a8846.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libnum_conv-bdcd8a6316d27a7f.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libderanged-6da1d14122be1e65.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libpowerfmt-d136eea5bfe9f9a8.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libzstd-7f7bc324c1a1dae2.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libzstd_safe-69b8f2b108df9127.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libzstd_sys-ec8efba4bc8048d5.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbzip2-655904612ce731da.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbzip2_sys-744e5d3215d25d0b.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\liblibc-1a2742386cea9819.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libaes-68b2b69c8eeae31f.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcipher-7294604b3eba0629.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libinout-7741ed89f110fa83.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libsha1-b53a89d69cbf589b.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcpufeatures-4f0a7fd66a20b2b5.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libhmac-3f3f44fb8ce87dc2.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libdigest-b53cf6cda1f59d35.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libsubtle-e4211783b61f224b.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libblock_buffer-dd4fa9a927dbf7ce.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcrypto_common-2675286437fe5ee2.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libgeneric_array-515a617730c9faeb.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtypenum-fac429f364644814.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libconstant_time_eq-d6c30d032ad61a46.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtempfile-ba66773bc245a3b8.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfastrand-2e7dd07ec23d8698.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libflate2-0a8b9c38db9c6766.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libminiz_oxide-cebba99b26d09599.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libadler-78bde9a32c11ae33.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcrc32fast-019f85b4ace530fb.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libhyperloglog_rs-8e3d4232e1816fc6.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libserde-2e0ab6b72ea1ac61.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libvec_rand-d00250797b06b0b8.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcommon_traits-a34e17a1c3e9949d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libhalf-1a9d103a08cbc8e0.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libanyhow-c9c89d591528b3d7.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librand-81ec7f01c75bb226.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librand_pcg-d03279ef71a5b458.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librand_chacha-292ddcf5d6f64e5c.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libppv_lite86-cdad7c108a09eeb0.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librand_core-3d96fb1f57aa78ce.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libgetrandom-9469c4f04d9397f4.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcounter-033d1bce6a39b669.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libxxhash_rust-a71c973fe63297ff.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libsiphasher-5bfadb121162665d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libelias_fano_rust-ecd5cb6127dca96a.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbitvec-2076b62888949dfe.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libwyz-54325bd5838f335a.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libtap-0ec78cbf3a44fe56.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libradium-e3a94dd28f719cc3.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libfunty-bc7a01af62dd206a.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\liblog-adccab7f17cf5614.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libvisited_rs-cb7697ffe2ee6daa.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libatomic_float-b7be2e8d3c4ab5fd.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libroaring-2b42b413b21d5ff6.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libbyteorder-d7c5d3dcb859e580.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcsr-d97c6d4ef7271aad.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libhashbrown-65becb6d8dae1eef.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libahash-4c20a7c26b70b29e.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libonce_cell-d20b4003b6caba86.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcfg_if-ffb7f842c0820f0d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libzerocopy-2c55f14a76ff9856.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\liballocator_api2-e342a0fcbd99769e.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libparallel_frontier-5c20802e58666357.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libitertools-48f00ef107d21457.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libmmap-4e34fada23d5acca.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libwindows-e66d3fc3056fca8f.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libnum_traits-d95f7f4f1714a1e0.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libindicatif-3f0626c80779b6d0.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libregex-460eb0f4962e4dae.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libregex_automata-2c9638e68f4f1b6b.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libaho_corasick-fe3c2dda2508f072.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libmemchr-0235ca740df64ad8.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libregex_syntax-73e507830b5631a0.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libconsole-c042842541f21ddb.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libencode_unicode-7882354f1955acf8.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libunicode_width-7847f068ec0c6162.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\liblazy_static-379c6c9ceb006e86.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libwindows_sys-ad584eb857a25d43.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libwindows_targets-cf3f24f8545fa24a.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librayon-e9081631107d112d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\librayon_core-432577e3bc2a85b3.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcrossbeam_deque-4cb6985dbd9a149d.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcrossbeam_epoch-a65b1c3e9638c4e3.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libcrossbeam_utils-5fa8b3f7ed753470.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libeither-22ed5801eee3855a.rlib" "C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\libnumber_prefix-d26310c884d07bbd.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-0f6835361444924c.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-19608c59d2dd791f.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-01b173642d25a39e.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-af6e76e97c65dff0.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-4de536de3d4b3075.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-287785eb9fa926b8.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-fa0d9491d453b0ee.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-df78717b93209ac4.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-1b2fe7b84675670a.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-902ac458d355cb4a.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-747897f502f49f1a.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-0a7d9524c210bd3d.rlib" "C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-215c75cf2c5ad4cf.rlib" "ntdll.lib" "windows.0.48.5.lib" "advapi32.lib" "cfgmgr32.lib" "gdi32.lib" "kernel32.lib" "msimg32.lib" "ole32.lib" "opengl32.lib" "shell32.lib" "user32.lib" "winspool.lib" "bcrypt.lib" "advapi32.lib" "legacy_stdio_definitions.lib" "advapi32.lib" "windows.lib" "windows.0.52.0.lib" "kernel32.lib" "advapi32.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "synchronization.lib" "kernel32.lib" "ws2_32.lib" "kernel32.lib" "msvcrt.lib" "/defaultlib:msvcrt" "/NXCOMPAT" "/LIBPATH:C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:C:\\Users\\Barak\\RustroverProjects\\node2vec_walks\\target\\debug\\deps\\node2vec_walks.exe" "/OPT:REF,NOICF" "/DEBUG" "/PDBALTPATH:%_PDB%" "/NATVIS:C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\Barak\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis"
  = note: C:\Users\Barak\RustroverProjects\node2vec_walks\target\debug\deps\libgraph-ffc59acead7496f5.rlib : warning LNK4003: invalid library format; library ignored
          node2vec_walks.4shfofb2cd5mn3zb.rcgu.o : error LNK2019: unresolved external symbol _ZN5graph7builder12GraphBuilder3new17h5fb63ec50cf9c99dE referenced in function _ZN14node2vec_walks4main17h20199afd0b36ca7bE
          node2vec_walks.4u78fdxa322lanea.rcgu.o : error LNK2019: unresolved external symbol _ZN4core3ptr112drop_in_place$LT$alloc..collections..btree..set..BTreeSet$LT$graph..utils..edge_quadruple..EdgeQuadruple$GT$$GT$17h99f97095e857a83cE referenced in function _ZN4core3ptr49drop_in_place$LT$graph..builder..GraphBuilder$GT$17h4de7ccc5444ead02E
          node2vec_walks.4u78fdxa322lanea.rcgu.o : error LNK2019: unresolved external symbol _ZN4core3ptr165drop_in_place$LT$alloc..collections..btree..map..BTreeMap$LT$alloc..string..String$C$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$$GT$17h8c8e66ea39e90399E referenced in function _ZN4core3ptr49drop_in_place$LT$graph..builder..GraphBuilder$GT$17h4de7ccc5444ead02E
          C:\Users\Barak\RustroverProjects\node2vec_walks\target\debug\deps\node2vec_walks.exe : fatal error LNK1120: 3 unresolved externals
          

Any idea what the problem is?

Thanks in advance.

Ensmallen version 0.7.0.dev5 core dumping

To reproduce (possibly might need to be on a machine without AVX):

git clone https://github.com/Knowledge-Graph-Hub/kg-obo
git checkout origin/test_ensmallen_070_run_jenkins
/usr/bin/python3.8 -m venv venv
python3 venv/bin/activate
./venv/bin/pip install pathlib
 ./venv/bin/pip install .
python3 run.py --s3_test --bucket fake_bucket --no_dl_progress --get_only bfo

Output:

Found existing contents at kg-obo/bfo/2019-08-26: ['kg-obo/bfo/2019-08-26/version/']
Found existing contents at kg-obo/bfo: ['kg-obo/bfo/version/']
INFO:kg-obo:Mock created index for bfo and 2019-08-26
processing ontologies: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1/1 [00:09<00:00,  9.52s/it]
INFO:kg-obo:Successfully transformed 1 without errors: ['bfo']
INFO:kg-obo:All available transforms, including old versions (1): ['bfo']
Found existing contents at kg-obo: ['kg-obo/test_obo/', 'kg-obo/test_obo_2/', 'kg-obo/test_obo_2/test_obo_2_version_1/']
Looking for kg-obo/test_obo/index.html
Could not find kg-obo/test_obo/index.html - will not write link
Looking for kg-obo/test_obo_2/index.html
Found kg-obo/test_obo_2/index.html
INFO:kg-obo:Mock updated root index at kg-obo
Mock updated root index at kg-obo
INFO:kg-obo:Removed local data from data.
Testing S3 only - mock checking lock status.
Operation completed without errors (not counting any OBO-specific errors).
Generating reports...
/home/jenkinsuser/test_error/kg-obo/venv/lib/python3.8/site-packages/ensmallen/__init__.py:19: UserWarning: On the current machine, the flags '{'avx2', 'bmi1', 'avx', 'sse4a', 'bmi2'}' are not available.
The library will use a slower but more compatible version.
  warnings.warn(
Illegal instruction (core dumped)

Sorting in Windows

This is a known issue, but one I just encountered:

from ensmallen_graph.datasets.linqs import Cora
cora = Cora()
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\JHCaufield\anaconda3\lib\site-packages\ensmallen_graph\datasets\linqs\cora.py", line 109, in Cora
return AutomaticallyRetrievedGraph(
File "C:\Users\JHCaufield\anaconda3\lib\site-packages\ensmallen_graph\datasets\automatic_graph_retrieval.py", line 85, in init
raise ValueError(
ValueError: Currently preprocessing to optimal edge list is not supported on Windows because the sorting step is based upon the sort command, which is only available to our knowledge on Linux and macOS systems.
Traceback (most recent call last):
File "", line 1, in
NameError: name 'cora' is not defined

There is indeed a sort in Windows and I believe its behavior is mostly the same as Linux/MacOS ... but likely not completely identical.
Any way to make this fail more gracefully, or an option to skip the preprocessing?

feature request - add an option to deal with edge lists that mention nodes that are not in the node list file

While we (@cmungall @caufieldjh @hrshdhgd) were working on oakx-grape, we observed that it'd be useful in this and other use cases to be able to deal with edge lists which contain references to nodes that are not present in the nodes list.

e.g.

nodes.tsv:

id    category
foo  biolink:Gene
bar  biolink:Protein

edges.tsv

subject      predicate                      object
foo          biolink:interacts_with         bar
foo          biolink:interacts_with         baz

Do either of these two possible behaviors seem reasonable/doable?

  1. add an argument to from_csv to ignore edges that reference nodes that are not in the nodes list (ignore_edges_with_unknown_nodes=False or some such?) - here we'd ignore the foo biolink:interacts_with baz edge

  2. add an argument to from_csv to instantiate nodes with the default node type when they are referenced in the edge file but not in the node file (autocreate_nodes_from_edge_list=False or some such?) - here we'd create a node baz with default_node_type

ensmallen uses the term "neighbors" for directed graphs in a non-standard way

For directed graphs, the term neighbors is used in a non-standard way

E.g.
https://www.cs.cmu.edu/afs/cs/academic/class/15210-f14/www/lectures/graph-intro.pdf

Neighbors. A vertex u is a neighbor of (or equivalently adjacent to) a vertex v in a graph
G = (V, E) if there is an edge {u, v} โˆˆ E. For a directed graph a vertex u is an in-neighbor of
a vertex v if (u, v) โˆˆ E and an out-neighbor if (v, u) โˆˆ E. We also say two edges or arcs are
neighbors if they share a vertex

So I would understand neighbors to mean the union of in and out neighbors, but ensmallen uses neighbors to mean out-neighbors.

I don't think the method name should change as that would break code, but I think there should be a simple glossary published in this repo that explains the terminology in the methods

M1 compilation weirdness

While trying python3 build.py on an M1 mac, compilation stops repeatedly and opens a print dialog. Weird. This is what it looks like

image

conda skeleton FileNotFoundError

Hi, I am trying build a conda package, but when I run conda skeleton pypi ensmallen-graph, I get the following error:

with open(os.path.join(src_dir, "setup.py")) as setup:
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmpbdsakwvxconda_skeleton_ensmallen_graph-0.6.0.tar.gz/ensmallen_graph-0.6.0/setup.py'

I'm not sure of a better way to generate the conda recipe in order to build the package.

Any help would be greatly appreciated.

Thank you!

Unable to import Graph crate from git due to error

Hello,

I am trying to use the ensmallen graph crate in my project:

ensmallen = { git = "https://github.com/AnacletoLAB/ensmallen.git"}

Howerver I get the following error while trying to compile the code:

error[E0283]: type annotations needed
     --> C:\Users\Barak\.cargo\git\checkouts\ensmallen-ebfa24490134db1a\73e715b\bindings\python\src\auto_generated_bindings.rs:17509:42
      |
17509 |         .map(|x| x.into_iter().map(|x| x.into()).collect::<Vec<_>>())
      |                                          ^^^^
      |
      = note: cannot satisfy `_: From<u16>`
      = note: required for `u16` to implement `Into<_>`
help: try using a fully qualified path to specify the expected types
      |
17509 |         .map(|x| x.into_iter().map(|x| <u16 as Into<T>>::into(x)).collect::<Vec<_>>())
      |                                        +++++++++++++++++++++++ ~


I actually don't need the binding sub-folder, but unfortunately, rust does not allow to compile only sub-folder like stated here.

Thanks in advance.

Import of `ensmallen` fails due to missing imports

Some (or all?) dependencies aren't getting installed by pip.

Example:
The cpuinfo module may not get installed by pip, but it's imported in the __init__.py.
On a fresh pip install (from grape) and venv:

>>> from ensmallen import Graph
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/harry/test85812/lib/python3.8/site-packages/ensmallen/__init__.py", line 8, in <module>
    import cpuinfo
ModuleNotFoundError: No module named 'cpuinfo'

I see py-cpuinfo is in the Cargo.toml, and if I install it with pip then this solves the problem, but...
then I get a ModuleNotFoundError for bioregistry.
Same for downloaders.

Ensmallen is 0.8.35.

graph features

@LucaCappelletti94 @zommiommy
Hi guys,
As you may remember, I was going to find some graph features of PPI network. Here is the list of features that I was able to get with networkx:

  1. Triadic closure
  2. Power law analysis
  3. Clustering Coefficient
  4. Eigenvector centrality
  5. Assortivity coefficient
  6. Community detection

These are features that I was not able to get with networkx:

  1. Density
  2. Short paths, length of paths, diameter
  3. Betweenness centrality
  4. Small world phenomena (maybe)

As we discussed in the last meeting, the ppi graph should be considered as a simple homogeneous graph.
We can get density from ensmallen, but we need it for the simple PPI graph.
I think to find the other features( Diameter and Betweenness centrality), we just need to find short paths between nodes.

Peter also wanted to know how easy is to calculate all above features in ensmallen?

Thank you:)

Loading graph with from_csv does not load node types

This may be one of those "haven't found the right combination of parameters yet" errors, but here's the issue: when creating a new Graph object with load_csv, node types aren't assigned unless the default_node_type parameter is assigned. Even then, all nodes get assigned whatever the default value is, without appearing to parse values from the input.

Example

Working with test data in the following format:

$ wget https://raw.githubusercontent.com/Knowledge-Graph-Hub/NEAT/main/tests/resources/test_graphs/pos_train_edges.tsv
$ wget https://raw.githubusercontent.com/Knowledge-Graph-Hub/NEAT/main/tests/resources/test_graphs/pos_train_edges.tsv
$ head pos_train_edges.tsv
subject object
ENSP00000000233 ENSP00000432568
ENSP00000000233 ENSP00000427900
ENSP00000000233 ENSP00000354878
ENSP00000000233 ENSP00000405926
ENSP00000000233 ENSP00000314615
ENSP00000000233 ENSP00000414982
ENSP00000000233 ENSP00000480707
ENSP00000000233 ENSP00000324020
ENSP00000000233 ENSP00000300087
$ head pos_train_nodes.tsv
id      category
ENSG00000004059 biolink:Gene
ENSP00000000233 biolink:Protein
ENSG00000143933 biolink:Gene
ENSP00000272298 biolink:Protein
ENSG00000131089 biolink:Gene
ENSP00000253401 biolink:Protein
ENSG00000178607 biolink:Gene
ENSP00000401445 biolink:Protein
ENSG00000147889 biolink:Gene

We load as follows:

>>> from ensmallen import Graph
>>> params = {'directed': False, 'node_path': 'pos_train_nodes.tsv', 'edge_path':'pos_train_edges.tsv', 'verbose': True, 'nodes_column': 'id', 'node_types_column': 'category', 'sources_column': 'subject', 'destinations_column': 'object', 'default_edge_type': 'biolink:related_to'}
>>> testgraph = Graph.from_csv(**params)
>>> testgraph.get_node_type_names()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: The current graph instance does not have node types.

and if we set default_node_type to "TEST"...

>>> set((testgraph.get_node_type_names())[0])
{'TEST'}

How may we get the values from the 'category' column in the node file to get loaded into the graph?

Tag the 0.8.96 release pushed to PyPI

Hi, I'm trying to package ensmallen and other related packages on conda-forge and would be grateful if you could tag the latest version 0.8.96 in this repo. I see the version in PyPI, but not in this github repo.

Introduce color-based holdouts in graphs and multigraphs.

In some experimental setups, we need to have color-based holdouts.

For instance, suppose to have a graph with edges of two colors: red and blue.

In some experimental setup we want all the red edges in the training set alongside with 90% of the blue edges, while the remaining 10% of the blue edges remain in the validation set.

We may be able to do this by introducing a filter method that generates a subgraph based on the color of the edges, that may be called filter_edges_by_type(self, edge_type)->Graph. The holdout mechanism might look as follows:

  1. Split the graph into red_graph and blue_graph using the filter_edges_by_type method.
  2. Randomly split the blue_graph into the desired percentages using random_holdout into train_blue_graph and test_blue_graph. In the expected use case, the blue graph will have a lot of disconnected components while the red graph should be relatively connected, so the number of newly created graph components should be relatively low.
  3. Sum the graphs red_graph + train_blue_graph to obtain the train_graph.

The limitation of this approach is that, if the blue graph connects different components that the red graph does not reach we would be creating new disconnected components in the training graph that are connected in the original graph. This issue might be relatively minimal in our use case and can be measured by using the report method to verify if, in our use case it has a significant impact.

@justaddcoffee, @pnrobinson and @vidarmehr do you think this approach should resolve the holdout as discussed in Friday's call on synthetic lethality?

Ensmallen install fails with `poetry` but not with `pip`

Attempting to install ensmallen=0.8.36, including through grape, with poetry raises this error:

  RuntimeError

  Unable to find installation candidates for ensmallen (0.8.36)

  at ~/.local/venv/lib/python3.10/site-packages/poetry/installation/chooser.py:105 in choose_for
      101โ”‚ 
      102โ”‚             links.append(link)
      103โ”‚ 
      104โ”‚         if not links:
    โ†’ 105โ”‚             raise RuntimeError(f"Unable to find installation candidates for {package}")
      106โ”‚ 
      107โ”‚         # Get the best link
      108โ”‚         chosen = max(links, key=lambda link: self._sort_key(package, link))
      109โ”‚ 

A pip install completes without complaint.

Any relation to #192 ?

G.dump_nodes doesn't respect defaults

Hi,

I just noticed that the default values of Graph.dump_nodes() mentioned in the docs are different than what the code acutally does.
From the python docs:

> G.dump_nodes?
...
verbose: bool = True
    Wether to show a loading bar while writing to file.
separator: str = '\t'
    What separator to use while writing out to file.
header: bool = True
    Wether to write out the header of the file.
nodes_column_number: int = 0
    The column number where to write the nodes.
nodes_column: str = "id"
    The name of the column of the nodes.
node_types_column_number: int = 1
    The column number where to write the node types.
node_type_column: str = "category"
    The name of the column of the node types.

At least I assumed those are defaults specified after the parameter names.

Turns out that if you run

# Just using Hetionet as an example here
from grape.datasets.hetionet import Hetionet
G = Hetionet()
G.dump_nodes('/tmp/node.tsv')

you actually get this:

> head /tmp/nodes.tsv
node_name
Anatomy::UBERON:0000002
Anatomy::UBERON:0000004
...
...

whereas I'd expect (from the defaults):

id    category
Anatomy::UBERON:0000002   Anatomy
...
  • the nodes_column defaults to node_name instead of id
  • the node_type_column is supposed to default to category, but the node type column is missing altogether

Not a big issue, but confusing behavior at first!
Thanks for this great software package!!

404 error getting PheKnowLator graph

I can't download the awesome PheKnowLator graph :(

Jupyter notebook here

!pip install embiggen ensmallen
!pip freeze | grep ensmallen
ensmallen==0.6.6
!pip freeze | grep embiggen
embiggen==0.9.3

from ensmallen import datasets
from ensmallen.datasets.pheknowlatorkg import PheKnowLator
p = PheKnowLator()
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
[<ipython-input-11-732063699a1f>](https://localhost:8080/#) in <module>()
----> 1 p = PheKnowLator()

7 frames
[/usr/local/lib/python3.7/dist-packages/downloaders/downloaders/base_downloader.py](https://localhost:8080/#) in _download(self, url, destination)
    193                             "Request to url {url} finished with status code {status}.".format(
    194                                 url=url,
--> 195                                 status=request.status_code
    196                             )
    197                         )

ValueError: Request to url https://storage.googleapis.com/pheknowlator/archived_builds/release_v3.0.0/build_02OCT2021/knowledge_graphs/subclass_builds/relations_only/owlnets/PheKnowLator_v3.0.0_full_subclass_relationsOnly_OWLNETS_SUBCLASS_purified_Triples_Identifiers.txt finished with status code 404.

Graphs to be added as automatic retrieval

We would like to add some more graphs to the automatic retrieval mechanism.

Currently, we support only StringPPI (human version), CompleteStringPPI (cross-species) and KG-COVID-19.

Which graphs should we add to the list? The requirements for the graph are:

  1. Must be publicly available behind an URL that can be resolved with a wget.
  2. Must be a TSV/CSV/text file with separators.
  3. The server where it is hosted must be reasonably fast.
  4. Can be a zip, gzip, tar.gz or plain file.

Compiling from source results in the compiler being killed.

Log:

2023-12-22T09:38:59.1433785Z   error: could not compile `ensmallen` (lib); 6 warnings emitted
2023-12-22T09:38:59.1434000Z 
2023-12-22T09:38:59.1436615Z   Caused by:
2023-12-22T09:38:59.1463500Z     process didn't exit successfully: `rustc --crate-name ensmallen --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type cdylib --emit=dep-info,link -C opt-level=3 -C lto=fat -C metadata=7ca8d5eb97a83279 --out-dir /home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -C linker=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/_build_env/bin/x86_64-conda-linux-gnu-cc -L dependency=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps -L dependency=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/release/deps --extern cpu_models=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libcpu_models-51fd9a29d9ffbeeb.rlib --extern ctrlc=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libctrlc-91cf31bb2ff926fe.rlib --extern env_logger=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libenv_logger-96127558fbb4d02b.rlib --extern express_measures=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libexpress_measures-27b1a6d1238ed5c8.rlib --extern file_progress=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libfile_progress-fda6988dbf6ae27f.rlib --extern graph=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libgraph-91e82a2dde702c05.rlib --extern half=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libhalf-de6b01e3e7d200cf.rlib --extern hyperloglog_rs=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libhyperloglog_rs-33e40bd194ade49c.rlib --extern indicatif=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libindicatif-985047445dc09ba0.rlib --extern libc=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/liblibc-d0bdd7fd776214bf.rlib --extern markdown=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libmarkdown-89c78a1be76f06e9.rlib --extern mmap=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libmmap-8e46ab8535e6aa50.rlib --extern num_traits=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libnum_traits-79885ae0cbe8bfa1.rlib --extern numpy=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libnumpy-2081fb2a37f413ed.rlib --extern pyo3=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libpyo3-a01b48981f718087.rlib --extern rand=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/librand-77344a499abce7ab.rlib --extern rayon=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/librayon-00e9bae730b3ea34.rlib --extern regex=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libregex-d23550f7549238aa.rlib --extern roaring=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libroaring-ef0464bbc226e363.rlib --extern serde=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libserde-bf200cfd81a7c627.rlib --extern serde_json=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libserde_json-ff535b50b499da7c.rlib --extern strsim=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libstrsim-ac1f46a9ffd1ce7e.rlib --extern tags=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/release/deps/libtags-c49b3ed68ab372e5.so --extern vec_rand=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/deps/libvec_rand-b2d7247b772f2e23.rlib -C link-arg=-Wl,-rpath-link,/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib -C link-arg=-Wl,-rpath,/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib -L native=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/build/graph-a32b3c0f844b5a89/out -L native=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib -L native=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/build/bzip2-sys-b7af8738b29ea1e7/out/lib -L native=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/build/zstd-sys-4eecbdaa7bd1a18b/out -L native=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/build/esaxx-rs-ff12cbbccc5b4fa2/out -L native=/home/conda/staged-recipes/build_artifacts/ensmallen_graph_1703236960059/work/bindings/python/target/x86_64-unknown-linux-gnu/release/build/onig_sys-620bf49004221a5b/out` (signal: 9, SIGKILL: kill)
2023-12-22T09:39:00.1133535Z   ๐Ÿ’ฅ maturin failed

Any ideas on how to fix this?

Error when saving output of get_node_names()

Using this simple ensmallen 0.5.2 -based script:
https://github.com/kbaseIncubator/KE_KG/blob/main/src/embeddings/graphs_stats_degrees_nodes.py

to generate node degrees and node labels. Running this script on a graph that I am sharing with you in slack, gives this graph summary and an error when saving the results of the get_node_labels() call with np.savetxt(), see below:

The undirected graph Graph has 169784 nodes and 2596040 unweighted edges, of which 13026 are self-loops. The graph is quite sparse as it has a density of 0.00018 and has 2 connected components, where the component with most nodes has 169782 nodes and the component with the least nodes has 2 nodes. The graph median node degree is 9, the mean node degree is 30.50 and the node degree mode is 7. The top 5 most central nodes are Virus_topology:linear_contig (degree 96796), NCBItaxon:duplodnaviria;heunggongvirae;uroviricota;caudoviricetes;caudovirales;;; (degree 81390), Contig_length:5 (degree 74875), Contig_length:4 (degree 63612) and Virus_topology:direct_terminal_repeats_(dtrs) (degree 30497).
Traceback (most recent call last):
File "/global/u1/m/marcinj/graphs/embiggen/venv/lib/python3.7/site-packages/numpy/lib/npyio.py", line 1424, in savetxt
v = format % tuple(row) + newline
TypeError: must be real number, not numpy.str_

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "src/embeddings/graphs_stats_degrees_nodes.py", line 25, in
np.savetxt("merged_imgvr_mg_nodes.tsv", nodes, delimiter="\t")
File "<array_function internals>", line 6, in savetxt
File "/global/u1/m/marcinj/graphs/embiggen/venv/lib/python3.7/site-packages/numpy/lib/npyio.py", line 1428, in savetxt
% (str(X.dtype), format))
TypeError: Mismatch between array dtype ('<U173') and format specifier ('%.18e')

Friendly Recipe for Reading a Graph

Good morning!

I thought I'd contribute, as I found this helpful; I wanted to read a large graph from previous existing datasets of nodes and edges; those datasets were kind of large, so I wrote something to help simplify the process and I thought it might make some useful documentation for how Ensmallen builds graphs.

import pyarrow.dataset as ds
from ensmallen import GraphBuilder, Graph

def read_graph_from_datasets(
    node_dataset: ds.Dataset,
    edge_dataset: ds.Dataset,
) -> Tuple[ds.Dataset, ds.Dataset]:
    """Ingest a dataset into an Ensmallen graph.

    Parameters
    ----------
    node_data: ds.Dataset
        This is a dataset of individual label/value pairs.
    edge_dataset: ds.Dataset
        This is a dataset of edges linking label/value pairs.
    
    Returns
    -------
    graph: Graph
    """
    builder = GraphBuilder()
    builder.set_directed(False)
    builder.set_name("NEATO_KEENO_NAMEO")
    # Add the nodes.
    for batch in node_dataset.to_batches():
        for batch_row in batch.select(['node_id', 'feature']).to_pylist():
            builder.add_node(
                name=batch_row['node_id'],
                node_type=[batch_row['feature']],  # Must be list of label
            )
    # Add the edges.
    for batch in edge_dataset.to_batches():
        batch = pa.Table.from_batches([batch])
        batch = batch.append_column(
            'src_col',
            pc.binary_join_element_wise(
                batch.column('left_feature'),
                batch.column('left_value'),
                '_'
            )
        )
        batch = batch.append_column(
            'dst_col',
            pc.binary_join_element_wise(
                batch.column('right_feature'),
                batch.column('right_value'),
                '_'
            )
        )
        batch = batch.append_column(
            'edge_type',
            pc.binary_join_element_wise(
                batch.column('left_feature'),
                batch.column('right_feature'),
                '_'
            )
        )
        for batch_row in batch.select(
            ['src_col', 'dst_col', 'edge_type']
        ).to_pylist():
            builder.add_edge(
                src=batch_row['src_col'],
                dst=batch_row['dst_col'],
                edge_type=batch_row['edge_type']
            )
    # Build the graph
    graph = builder.build()
    return graph

Add a method to include key-value properties on nodes such as for biolink:name / rdfs:label

currently debugging with ensmallen is hard as we just see CURIEs, no labels. It would be useful to have labels for multiple reasons:

  • sanity check/debugging
  • drop in networkx replacement
  • drop in rdflib replacement
  • ML methods that uses lexical information
  • OAK grape plugin

I appreciate ensmallen is built for speed, but what if this were an option, off by default, and it just built an ancilliary node index such that you could do

label = g.get_node_metadata_index_by_name("GO:1234567")["label"]

currently I am getting around this by wrapping grape and either using separate OAK objects to access node information, or by creating 2 graphs, a n2n graph and a n2literal graph

It would be useful to have the analogous operation on edges as in nx, i.e property graphs (there is a ton of useful information there in biolink graphs that should be used in ML - e.g. the frequency of d2p is v important). But this could be considered a separate feature request

KG-OBO download links are broken

This is likely due to something I changed, but the links to KG-OBO graphs are broken. This is due to the filename changing - in the json definitions ensmallen uses, they look like:
https://kg-hub.berkeleybop.io/kg-obo/bfo/2019-08-26/bfo.tar.gz
but the graph files are currently at something more like:
https://kg-hub.berkeleybop.io/kg-obo/bfo/2019-08-26/bfo_kgx_tsv.tar.gz

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.