From da78b778a5abde1b72d51c2a2ec12b3b8c82f6ab Mon Sep 17 00:00:00 2001 From: turtle89431 Date: Tue, 5 May 2026 03:14:16 -0700 Subject: [PATCH] Scrape wikipedia-science: 6937 new, 3310 updated, 10541 total (kb-cron) --- _index.db | Bin 86704128 -> 86704128 bytes data/en.wikipedia.org/wiki/MODFLOW-0.md | 951 ++++++++++++++++++ data/en.wikipedia.org/wiki/MODFLOW-1.md | 772 ++++++++++++++ data/en.wikipedia.org/wiki/MODFLOW-2.md | 42 + data/en.wikipedia.org/wiki/MODFLOW-3.md | 48 + .../en.wikipedia.org/wiki/MOEA_Framework-0.md | 33 + data/en.wikipedia.org/wiki/MTEX-0.md | 22 + data/en.wikipedia.org/wiki/MoFEM_JosePH-0.md | 43 + .../wiki/Montage_(image_software)-0.md | 26 + .../wiki/NEST_(software)-0.md | 110 ++ .../wiki/Natural_Language_Toolkit-0.md | 34 + data/en.wikipedia.org/wiki/Nek5000-0.md | 48 + data/en.wikipedia.org/wiki/Nektar++-0.md | 97 ++ data/en.wikipedia.org/wiki/NumPy-0.md | 41 + data/en.wikipedia.org/wiki/NumPy-1.md | 65 ++ data/en.wikipedia.org/wiki/OELib-0.md | 24 + data/en.wikipedia.org/wiki/OProject@Home-0.md | 2 +- data/en.wikipedia.org/wiki/OctaDist-0.md | 59 ++ .../wiki/Octopus_(software)-0.md | 54 + data/en.wikipedia.org/wiki/Olex2-0.md | 29 + data/en.wikipedia.org/wiki/OpenFOAM-0.md | 91 ++ data/en.wikipedia.org/wiki/OpenLB-0.md | 68 ++ data/en.wikipedia.org/wiki/OpenMS-0.md | 48 + .../wiki/Open_Source_Physics-0.md | 45 + .../wiki/Orange_(software)-0.md | 66 ++ .../wiki/Orange_(software)-1.md | 46 + data/en.wikipedia.org/wiki/Orbit@home-0.md | 2 +- .../wiki/Owl_Scientific_Computing-0.md | 61 ++ data/en.wikipedia.org/wiki/POEM@Home-0.md | 2 +- .../wiki/Perl_Data_Language-0.md | 57 ++ .../wiki/Physics_Analysis_Workstation-0.md | 55 + data/en.wikipedia.org/wiki/Plotly-0.md | 66 ++ .../en.wikipedia.org/wiki/Predictor@home-0.md | 2 +- data/en.wikipedia.org/wiki/PrimeGrid-0.md | 2 +- data/en.wikipedia.org/wiki/PrimeGrid-1.md | 2 +- data/en.wikipedia.org/wiki/Proteins@home-0.md | 2 +- data/en.wikipedia.org/wiki/ProteoWizard-0.md | 27 + .../wiki/Psychtoolbox_for_MATLAB-0.md | 20 + .../wiki/Ptolemy_Project-0.md | 22 + data/en.wikipedia.org/wiki/Pwpaw-0.md | 20 + data/en.wikipedia.org/wiki/PyTorch-0.md | 51 + data/en.wikipedia.org/wiki/QMC@Home-0.md | 2 +- .../wiki/Quake-Catcher_Network-0.md | 2 +- .../wiki/Quantum_ESPRESSO-0.md | 50 + .../wiki/Quarto_(software)-0.md | 57 ++ data/en.wikipedia.org/wiki/QuteMol-0.md | 37 + data/en.wikipedia.org/wiki/ROOT-0.md | 133 +++ data/en.wikipedia.org/wiki/RasMol-0.md | 46 + data/en.wikipedia.org/wiki/Rmetrics-0.md | 57 ++ .../en.wikipedia.org/wiki/Rnn_(software)-0.md | 38 + data/en.wikipedia.org/wiki/Rosetta@home-0.md | 2 +- data/en.wikipedia.org/wiki/Rosetta@home-1.md | 2 +- data/en.wikipedia.org/wiki/Rosetta@home-2.md | 2 +- data/en.wikipedia.org/wiki/Rosetta@home-3.md | 2 +- data/en.wikipedia.org/wiki/Rosetta@home-4.md | 2 +- data/en.wikipedia.org/wiki/Rosetta@home-5.md | 2 +- .../wiki/Rule-based_modeling-0.md | 63 ++ data/en.wikipedia.org/wiki/SETI@home-0.md | 2 +- data/en.wikipedia.org/wiki/SETI@home-1.md | 2 +- data/en.wikipedia.org/wiki/SETI@home-2.md | 2 +- data/en.wikipedia.org/wiki/SETI@home-3.md | 2 +- .../en.wikipedia.org/wiki/SETI@home_beta-0.md | 2 +- data/en.wikipedia.org/wiki/SIM.JS-0.md | 29 + data/en.wikipedia.org/wiki/SLinCA@Home-0.md | 2 +- data/en.wikipedia.org/wiki/SU2_code-0.md | 120 +++ data/en.wikipedia.org/wiki/SciPy-0.md | 71 ++ .../wiki/Seasonal_Attribution_Project-0.md | 2 +- data/en.wikipedia.org/wiki/Seismic_Unix-0.md | 63 ++ data/en.wikipedia.org/wiki/ShelXle-0.md | 43 + .../wiki/Shogun_(toolbox)-0.md | 64 ++ data/en.wikipedia.org/wiki/Siconos-0.md | 55 + data/en.wikipedia.org/wiki/SimPy-0.md | 24 + data/en.wikipedia.org/wiki/SimThyr-0.md | 43 + .../wiki/Similarity_Matrix_of_Proteins-0.md | 2 +- .../wiki/Skyline_(software)-0.md | 26 + data/en.wikipedia.org/wiki/SpaCy-0.md | 49 + ...patiotemporal_Epidemiological_Modeler-0.md | 20 + .../en.wikipedia.org/wiki/Spinhenge@Home-0.md | 2 +- .../wiki/Spyder_(software)-0.md | 74 ++ .../wiki/Tanagra_(machine_learning)-0.md | 42 + data/en.wikipedia.org/wiki/TheSkyNet-0.md | 2 +- .../wiki/The_OpenMS_Proteomics_Pipeline-0.md | 20 + .../wiki/Theano_(software)-0.md | 58 ++ data/en.wikipedia.org/wiki/TomoPy-0.md | 19 + .../wiki/Trans-Proteomic_Pipeline-0.md | 33 + data/en.wikipedia.org/wiki/UGENE-0.md | 119 +++ data/en.wikipedia.org/wiki/VCell-0.md | 61 ++ data/en.wikipedia.org/wiki/VTK-0.md | 50 + .../wiki/Waffles_(machine_learning)-0.md | 41 + .../wiki/Weka_(software)-0.md | 59 ++ data/en.wikipedia.org/wiki/Word2vec-0.md | 79 ++ data/en.wikipedia.org/wiki/Word2vec-1.md | 828 +++++++++++++++ data/en.wikipedia.org/wiki/Word2vec-2.md | 47 + data/en.wikipedia.org/wiki/Word2vec-3.md | 47 + .../wiki/World_Community_Grid-0.md | 2 +- .../wiki/World_Community_Grid-1.md | 2 +- .../wiki/World_Community_Grid-2.md | 2 +- .../wiki/World_Community_Grid-3.md | 2 +- .../wiki/World_Community_Grid-4.md | 2 +- .../wiki/World_Community_Grid-5.md | 2 +- .../wiki/World_Community_Grid-6.md | 2 +- 101 files changed, 5938 insertions(+), 32 deletions(-) create mode 100644 data/en.wikipedia.org/wiki/MODFLOW-0.md create mode 100644 data/en.wikipedia.org/wiki/MODFLOW-1.md create mode 100644 data/en.wikipedia.org/wiki/MODFLOW-2.md create mode 100644 data/en.wikipedia.org/wiki/MODFLOW-3.md create mode 100644 data/en.wikipedia.org/wiki/MOEA_Framework-0.md create mode 100644 data/en.wikipedia.org/wiki/MTEX-0.md create mode 100644 data/en.wikipedia.org/wiki/MoFEM_JosePH-0.md create mode 100644 data/en.wikipedia.org/wiki/Montage_(image_software)-0.md create mode 100644 data/en.wikipedia.org/wiki/NEST_(software)-0.md create mode 100644 data/en.wikipedia.org/wiki/Natural_Language_Toolkit-0.md create mode 100644 data/en.wikipedia.org/wiki/Nek5000-0.md create mode 100644 data/en.wikipedia.org/wiki/Nektar++-0.md create mode 100644 data/en.wikipedia.org/wiki/NumPy-0.md create mode 100644 data/en.wikipedia.org/wiki/NumPy-1.md create mode 100644 data/en.wikipedia.org/wiki/OELib-0.md create mode 100644 data/en.wikipedia.org/wiki/OctaDist-0.md create mode 100644 data/en.wikipedia.org/wiki/Octopus_(software)-0.md create mode 100644 data/en.wikipedia.org/wiki/Olex2-0.md create mode 100644 data/en.wikipedia.org/wiki/OpenFOAM-0.md create mode 100644 data/en.wikipedia.org/wiki/OpenLB-0.md create mode 100644 data/en.wikipedia.org/wiki/OpenMS-0.md create mode 100644 data/en.wikipedia.org/wiki/Open_Source_Physics-0.md create mode 100644 data/en.wikipedia.org/wiki/Orange_(software)-0.md create mode 100644 data/en.wikipedia.org/wiki/Orange_(software)-1.md create mode 100644 data/en.wikipedia.org/wiki/Owl_Scientific_Computing-0.md create mode 100644 data/en.wikipedia.org/wiki/Perl_Data_Language-0.md create mode 100644 data/en.wikipedia.org/wiki/Physics_Analysis_Workstation-0.md create mode 100644 data/en.wikipedia.org/wiki/Plotly-0.md create mode 100644 data/en.wikipedia.org/wiki/ProteoWizard-0.md create mode 100644 data/en.wikipedia.org/wiki/Psychtoolbox_for_MATLAB-0.md create mode 100644 data/en.wikipedia.org/wiki/Ptolemy_Project-0.md create mode 100644 data/en.wikipedia.org/wiki/Pwpaw-0.md create mode 100644 data/en.wikipedia.org/wiki/PyTorch-0.md create mode 100644 data/en.wikipedia.org/wiki/Quantum_ESPRESSO-0.md create mode 100644 data/en.wikipedia.org/wiki/Quarto_(software)-0.md create mode 100644 data/en.wikipedia.org/wiki/QuteMol-0.md create mode 100644 data/en.wikipedia.org/wiki/ROOT-0.md create mode 100644 data/en.wikipedia.org/wiki/RasMol-0.md create mode 100644 data/en.wikipedia.org/wiki/Rmetrics-0.md create mode 100644 data/en.wikipedia.org/wiki/Rnn_(software)-0.md create mode 100644 data/en.wikipedia.org/wiki/Rule-based_modeling-0.md create mode 100644 data/en.wikipedia.org/wiki/SIM.JS-0.md create mode 100644 data/en.wikipedia.org/wiki/SU2_code-0.md create mode 100644 data/en.wikipedia.org/wiki/SciPy-0.md create mode 100644 data/en.wikipedia.org/wiki/Seismic_Unix-0.md create mode 100644 data/en.wikipedia.org/wiki/ShelXle-0.md create mode 100644 data/en.wikipedia.org/wiki/Shogun_(toolbox)-0.md create mode 100644 data/en.wikipedia.org/wiki/Siconos-0.md create mode 100644 data/en.wikipedia.org/wiki/SimPy-0.md create mode 100644 data/en.wikipedia.org/wiki/SimThyr-0.md create mode 100644 data/en.wikipedia.org/wiki/Skyline_(software)-0.md create mode 100644 data/en.wikipedia.org/wiki/SpaCy-0.md create mode 100644 data/en.wikipedia.org/wiki/Spatiotemporal_Epidemiological_Modeler-0.md create mode 100644 data/en.wikipedia.org/wiki/Spyder_(software)-0.md create mode 100644 data/en.wikipedia.org/wiki/Tanagra_(machine_learning)-0.md create mode 100644 data/en.wikipedia.org/wiki/The_OpenMS_Proteomics_Pipeline-0.md create mode 100644 data/en.wikipedia.org/wiki/Theano_(software)-0.md create mode 100644 data/en.wikipedia.org/wiki/TomoPy-0.md create mode 100644 data/en.wikipedia.org/wiki/Trans-Proteomic_Pipeline-0.md create mode 100644 data/en.wikipedia.org/wiki/UGENE-0.md create mode 100644 data/en.wikipedia.org/wiki/VCell-0.md create mode 100644 data/en.wikipedia.org/wiki/VTK-0.md create mode 100644 data/en.wikipedia.org/wiki/Waffles_(machine_learning)-0.md create mode 100644 data/en.wikipedia.org/wiki/Weka_(software)-0.md create mode 100644 data/en.wikipedia.org/wiki/Word2vec-0.md create mode 100644 data/en.wikipedia.org/wiki/Word2vec-1.md create mode 100644 data/en.wikipedia.org/wiki/Word2vec-2.md create mode 100644 data/en.wikipedia.org/wiki/Word2vec-3.md diff --git a/_index.db b/_index.db index 9bf3ebd3da57b78e1464ef3952bd85e550c8030d..79a0f8325a81ffe1f48447b4c103840d95488dfe 100644 GIT binary patch delta 314796 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�paljmo+r6!eCrvgGo9UfF~ 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 z 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%0D^j-Av~kVF(nRx>W$qMCALhg=;usb?=R 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 xbR&*kPka4JH};GpJ2ShOW|&v|ktdH + 0.0 + + + + {\displaystyle Q_{i,j,k}>0.0\,} + + is flow in (such as injection) + + + + + + + + S + S + + + + i + , + j + , + k + + + + + + {\displaystyle {\mathit {SS}}_{i,j,k}\,} + + is the specific storage + + + + + Δ + + r + + j + + + Δ + + c + + i + + + Δ + + v + + k + + + + + + {\displaystyle \Delta r_{j}\Delta c_{i}\Delta v_{k}\,} + + are the dimensions of cell i,j,k, which, when multiplied, represent the volume of the cell; and + + + + + + t + + m + + + + + + {\displaystyle t^{m}\,} + + is the time at time step m +This equation is formulated into a system of equations to be solved as: \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/MODFLOW-1.md b/data/en.wikipedia.org/wiki/MODFLOW-1.md new file mode 100644 index 000000000..0dbe5c77d --- /dev/null +++ b/data/en.wikipedia.org/wiki/MODFLOW-1.md @@ -0,0 +1,772 @@ +--- +title: "MODFLOW" +chunk: 2/4 +source: "https://en.wikipedia.org/wiki/MODFLOW" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:39.169012+00:00" +instance: "kb-cron" +--- + + + + + + + + + + + + + C + V + + + + i + , + j + , + k + − + + + + 1 + 2 + + + + + + + h + + i + , + j + , + k + − + 1 + + + m + + + + + + + + C + C + + + + i + − + + + + 1 + 2 + + + + , + j + , + k + + + + h + + i + − + 1 + , + j + , + k + + + m + + + + + + + + C + R + + + + i + , + j + − + + + + 1 + 2 + + + + , + k + + + + h + + i + , + j + − + 1 + , + k + + + m + + + + + + + + + + + + ( + + − + + + + C + V + + + + i + , + j + , + k + − + + + + 1 + 2 + + + + + + − + + + + C + C + + + + i + − + + + + 1 + 2 + + + + , + j + , + k + + + − + + + + C + R + + + + i + , + j + − + + + + 1 + 2 + + + + , + k + + + − + + + + C + R + + + + i + , + j + + + + + + 1 + 2 + + + + , + k + + + − + + + + C + C + + + + i + + + + + + 1 + 2 + + + + , + j + , + k + + + − + + + + C + V + + + + i + , + j + , + k + + + + + + 1 + 2 + + + + + + + + + + + H + C + O + F + + + + i + , + j + , + k + + + + ) + + + h + + i + , + j + , + k + + + m + + + + + + + + + + + + + + C + R + + + + i + , + j + + + + + + 1 + 2 + + + + , + k + + + + h + + i + , + j + + + 1 + , + k + + + m + + + + + + + + C + C + + + + i + + + + + + 1 + 2 + + + + , + j + , + k + + + + h + + i + + + 1 + , + j + , + k + + + m + + + + + + + + C + V + + + + i + , + j + , + k + + + + + + 1 + 2 + + + + + + + h + + i + , + j + , + k + + + 1 + + + m + + + = + + + + R + H + S + + + + i + , + j + , + k + + + + + + + + + {\displaystyle {\begin{aligned}&{\mathit {CV}}_{i,j,k-{\tfrac {1}{2}}}h_{i,j,k-1}^{m}+{\mathit {CC}}_{i-{\tfrac {1}{2}},j,k}h_{i-1,j,k}^{m}+{\mathit {CR}}_{i,j-{\tfrac {1}{2}},k}h_{i,j-1,k}^{m}\\&+\left(-{\mathit {CV}}_{i,j,k-{\tfrac {1}{2}}}-{\mathit {CC}}_{i-{\tfrac {1}{2}},j,k}-{\mathit {CR}}_{i,j-{\tfrac {1}{2}},k}-{\mathit {CR}}_{i,j+{\tfrac {1}{2}},k}-{\mathit {CC}}_{i+{\tfrac {1}{2}},j,k}-{\mathit {CV}}_{i,j,k+{\tfrac {1}{2}}}+{\mathit {HCOF}}_{i,j,k}\right)h_{i,j,k}^{m}\\&+{\mathit {CR}}_{i,j+{\tfrac {1}{2}},k}h_{i,j+1,k}^{m}+{\mathit {CC}}_{i+{\tfrac {1}{2}},j,k}h_{i+1,j,k}^{m}+{\mathit {CV}}_{i,j,k+{\tfrac {1}{2}}}h_{i,j,k+1}^{m}={\mathit {RHS}}_{i,j,k}\end{aligned}}} + + +where + + + + + + + + + + + + H + C + O + F + + + + i + , + j + , + k + + + + + + = + + P + + i + , + j + , + k + + + − + + + + + + + S + S + + + + i + , + j + , + k + + + Δ + + r + + j + + + Δ + + c + + i + + + + Δ + + k + + + + + + t + + m + + + − + + t + + m + − + 1 + + + + + + + + + + + + + R + H + S + + + + i + , + j + , + k + + + + + + = + − + + Q + + i + , + j + , + k + + + − + + + + S + S + + + + i + , + j + , + k + + + Δ + + r + + j + + + Δ + + c + + i + + + Δ + + v + + k + + + + + + h + + i + , + j + , + k + + + m + − + 1 + + + + + t + + m + + + − + + t + + m + − + 1 + + + + + + + + + + + + {\displaystyle {\begin{aligned}{\mathit {HCOF}}_{i,j,k}&=P_{i,j,k}-{\frac {{\mathit {SS}}_{i,j,k}\Delta r_{j}\Delta c_{i}\Delta _{k}}{t^{m}-t^{m-1}}}\\{\mathit {RHS}}_{i,j,k}&=-Q_{i,j,k}-{\mathit {SS}}_{i,j,k}\Delta r_{j}\Delta c_{i}\Delta v_{k}{\frac {h_{i,j,k}^{m-1}}{t^{m}-t^{m-1}}}\end{aligned}}} + + +or in matrix form as: + + + + + A + + h + + = + + q + + + + {\displaystyle A\mathbf {h} =\mathbf {q} } + + +where + +A is a matrix of the coefficients of head for all active nodes in the grid + + + + + + h + + + + {\displaystyle \mathbf {h} } + + is a vector of head values at the end of time step m for all nodes in the grid; and + + + + + + q + + + + {\displaystyle \mathbf {q} } + + is a vector of the constant terms, RHS, for all nodes of the grid. + +=== Limitations === +The water must have a constant density, dynamic viscosity (and consequently temperature) throughout the modelling domain (SEAWAT is a modified version of MODFLOW which is designed for density-dependent groundwater flow and transport) + +The principal components of anisotropy of the hydraulic conductivity used in MODFLOW is displayed on the right. This tensor does not allow non-orthogonal anisotropies, as could be expected from flow in fractures. Horizontal anisotropy for an entire layer can be represented by the coefficient "TRPY" (Data Item 3 Page 153). + +== Versions == + +=== "Modular Model" === +The USGS throughout the 1970s had developed several hundred models, written in different dialects of FORTRAN. At the time, it was common practice to rewrite a new model to fit the need of a new groundwater scenario. The concept for MODFLOW was originally designed in 1981 to provide a common modular groundwater model, which could be compiled on multiple platforms without major (or any) modification, and can read and write common formats. Different aspects of the groundwater system would be handled using the modules, similar to the idea of a "component stereo system". The original name of the code was "The USGS Modular Three-Dimensional Finite-Difference Ground-Water Flow Model", or informally as "The Modular Model". The name MODFLOW was coined several years after the initial code development, which started in 1981. +The first version of MODFLOW was published on December 28, 1983, and was coded entirely in FORTRAN 66. The source code for this version is listed in USGS Open File Report 83-875 referred to above. + +=== MODFLOW-88 === +This version of MODFLOW was rewritten in FORTRAN 77, and was originally released on July 24, 1987. The current version of MODFLOW-88 is 2.6, released on September 20, 1996. +MODPATH, was initially developed in 1989 to post-process the steady-state MODFLOW-88 data to determine three-dimensional pathlines of particles. This innovation has been indispensable for the fields of contaminant hydrogeology. It is still used as a post-processor in recent versions of MODFLOW. +A separate program, MODFLOWP, was developed in 1992 to estimate various parameters used in MODFLOW. This program was eventually built into MODFLOW-2000. + +=== MODFLOW-96 === +MODFLOW-96 (version 3.0) was originally released on December 3, 1996, and is a cleaned-up and revised continuation of MODFLOW-88. There are three final releases of MODFLOW-96: + +MODFLOW-96 (version 3.3, May 2, 2000) +MODFLOW-96h (version 3.3h, July 10, 2000), with HYDMOD package +MODFLOWP (version 3.2, Oct 9, 1997), MODFLOW-96 with parameter-estimation +Several graphical interfaces were first developed using the MODFLOW-96 code. + +=== MODFLOW-2000 === +MODFLOW-2000 (version 1.0; version numbering was reset) was released on July 20, 2000, which merged MODFLOWP and HYDMOD codes into the main program and has integrated observation, sensitivity analysis, parameter estimation, and uncertainty evaluation capabilities. Many new packages and enhancements were also included, including new solvers, stream and saturated flow packages. The internal design concepts also changed from previous versions, such that packages, processes and modules are distinct. This version was coded in a mixture of FORTRAN 77, Fortran 90, and one solver was programmed in C. MODFLOW-2000 can also be compiled for parallel computing, which can allow multiple processors to be used to increase model complexity and/or reduce simulation time. The parallelization capability is designed to support the sensitivity analysis, parameter estimation, and uncertainty analysis capabilities of MODFLOW-2000. +The final version of MODFLOW-2000 (or MF2K) is version 1.19.01, released on March 25, 2010. There are four related or branched codes based on MODFLOW-2000: \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/MODFLOW-2.md b/data/en.wikipedia.org/wiki/MODFLOW-2.md new file mode 100644 index 000000000..705b7da99 --- /dev/null +++ b/data/en.wikipedia.org/wiki/MODFLOW-2.md @@ -0,0 +1,42 @@ +--- +title: "MODFLOW" +chunk: 3/4 +source: "https://en.wikipedia.org/wiki/MODFLOW" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:39.169012+00:00" +instance: "kb-cron" +--- + +MF2K-GWM or GWM-2000 (version 1.1.4, May 31, 2011, branched from mf2k 1.17.2), with groundwater management capability using optimization +MF2K-FMP (version 1.00, May 19, 2006, based on mf2k 1.15.03), with Farm Process +MF2K-GWT (version 1.9.8, October 28, 2008, based on MF2K 1.17.02), groundwater flow and solute-transport model +SEAWAT (version 4.00.05, October 19, 2012), variable-density flow and transport processes +VSF (version 1.01, July 5, 2006), variably saturated flow + +=== MODFLOW-2005 === +MODFLOW-2005 differs from MODFLOW-2000 in that the sensitivity analysis, parameter estimation, and uncertainty evaluation capabilities are removed. Thus, the support for these capabilities now falls to "clip on" codes that are supported externally to the MODFLOW support effort. In addition, the code was reorganized to support multiple models within one MODFLOW run, as needed for the LGR (Local Grid Refinement) capability. MODFLOW-2005 is written primarily in Fortran 90 and C, with C being used for one solver. +The current version of MODFLOW-2005 is version 1.12.00, released on February 3, 2017. Related or branched codes include: + +MODFLOW-CFP (version 1.8.00, February 23, 2011), conduit flow process to simulate turbulent or laminar groundwater flow conditions +MODFLOW-LGR (version 2.0, September 19, 2013), local grid refinement +GWM-2005 (version 1.4.2, March 25, 2013), groundwater management capability using optimization +MF2005-FMP2 (version 1.0.00, October 28, 2009), estimate dynamically integrated supply-and-demand components of irrigated agriculture as part of the simulation of surface-water and ground-water flow +MODFLOW-NWT(version 1.1.3, August 1, 2017), Newton formulation for solving problems involving drying and rewetting nonlinearities of the unconfined groundwater-flow equation. +MODFLOW-OWHMv1 (version 1.00.12, October 1, 2016), The One-Water Hydrologic Flow Model (MF-OWHM1), developed cooperatively between the USGS and the U.S. Bureau of Reclamation, is a fusion of multiple versions of MODFLOW-2005 (NWT, LGR, FMP, SWR, SWI) into ONE version, contains upgrades and new features and allows the simulation of head-dependent flows, flow-dependent flows, and deformation dependent flows that collectively affect conjunctive use of water resources. +MODFLOW-USG. All version of MODFLOW listed above are constructed on what is called a structured grid. That is, the grid is composed of rectilinear blocks. The only exception is the LGR capability, which allows locally refined grids to be inserted into the structure of a "parent" grid. The local area is again composed of rectilinear blocks, but the blocks are smaller. Experimentation with a much more flexible grid structure resulted in the release of MODFLOW-USG (version 1.3.00, December 1, 2015), designed to be adapted to a wide range of grid variations using unstructured grids. MODFLOW-USG has similar capabilities as MODFLOW 6, which provides grid capabilities with and intermediate level of flexibility. +MODFLOW-USG Transport. An update of MODFLOW USG including multiple solute species transport, density dependent flow and transport, use of the Richard's equation for flow and transport in the unsaturated zone and air-water interface sorption. Some of the updates to the model have also been made to accommodate for transport of PFAS. + +=== MODFLOW 6 === +MODFLOW 6 (MF6), first released in 2017, is the sixth core version of MODFLOW to be released by the USGS. This release is a rewrite of MODFLOW following an object-oriented programming paradigm in Fortran, and provides a platform that includes the capabilities from several previous MODFLOW-2005 versions, including MODFLOW-NWT, MODFLOW-USG, and MODFLOW-LGR. MODFLOW 6 supports structured or unstructured grids, has full support for the Newton-Raphson formulation, and has a unique Water Mover Package that allows flows to be routed between the advanced packages, including the Streamflow Routing, Lake, Multi-Aquifer Well, and Unsaturated Zone Flow Packages. MODFLOW 6 also contains a Groundwater Transport (GWT) model that simulates transient three-dimensional solute transport on structured or unstructured grids and through the advanced flow and mover packages. An Application Programming Interface (API) is also available for MODFLOW 6, which allows the program to be coupled with other models or controlled with popular scripting languages, such as Python. While there are a few features lacking in the current release that are supported in MODFLOW-2005, most of the popular capabilities in previous MODFLOW versions are available in MODFLOW 6. The current version is 6.2.2, released July 30, 2021. + +=== MODFLOW-OWHM Version 2 === +The MODFLOW One-Water Hydrologic Flow Model version 2 (MF-OWHM) is a major rewrite of MF-OWHM1 released in 2020. MF-OWHM is a MODFLOW-2005 based integrated hydrologic model designed for the analysis of conjunctive-use management. The term “integrated” refers to the tight coupling of groundwater flow, surface-water flow, landscape processes, aquifer compaction and subsidence, reservoir operations, and conduit (karst) flow. This fusion results in a simulation software capable of addressing water-use and sustainability problems, including conjunctive-use, water-management, water-food-security, and climate-crop-water scenarios. +As a second core version of MODFLOW-2005, MF-OWHM maintains backward compatibility with existing MODFLOW-2005 versions. Existing models developed using MODFLOW-2005, MODFLOW-NWT, MODFLOW-SWI, MODFLOW-SWR, MODFLOW-LGR, and MODFLOW-CFP can also be simulated using MF-OWHM. The Farm Process (FMP) is part of MF-OWHM but is the only component that does not maintain input backward compatibility with past releases (see the FMP_Template for new input structure). MF-OWHM also includes a Surface Water Operations Module (SWO) with a Fortran-like scripting language, Slang, that can specify dynamic reservoir and stream operations. A current major application of MF-OWHM, developed by the USGS, is the California Central Valley (CVHM2). +The current USGS Approved Software version is 2.3.0 released on January 15, 2024, and current preliminary-beta release of 2.3.1b-4 released on February 27, 2025. + +== Packages == +The names in this table are the labels used to turn MODFLOW capabilities on and off via a key input file. Most capabilities have many alternatives or can be omitted, but the ones related to the BASIC Package are always required. Many of the capabilities introduced are supported in later versions, though the grid change enabled with MODFLOW-USG and MODFLOW 6 meant that such backward compatibility was rather selective. + +== Graphical user interfaces == +There are several graphical interfaces to MODFLOW, which often include the compiled MODFLOW code with modifications. These programs aid the input of data for creating MODFLOW models. \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/MODFLOW-3.md b/data/en.wikipedia.org/wiki/MODFLOW-3.md new file mode 100644 index 000000000..4c403bd90 --- /dev/null +++ b/data/en.wikipedia.org/wiki/MODFLOW-3.md @@ -0,0 +1,48 @@ +--- +title: "MODFLOW" +chunk: 4/4 +source: "https://en.wikipedia.org/wiki/MODFLOW" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:39.169012+00:00" +instance: "kb-cron" +--- + +=== Non-commercial interfaces === +Non-commercial MODFLOW versions are free, however, their licensing usually limit the use to non-profit educational or research purposes. + +ModelMuse is a grid-independent graphical user interface from the USGS for MODFLOW 6, MODPATH, SUTRA, and PHAST version 1.51. There are no license restrictions. The source code is included. +FloPy is a Python package for creating, running, and post-processing MODFLOW-based models. +MODFLOW-GUI – Made by the USGS: it is updated often to match the current USGS MODFLOW development. It supports MODFLOW-96, MODFLOW-2000, MODFLOW-2005, MODPATH, ZONEBUDGET, GWT, MT3DMS, SEAWAT, and GWM. Source code for MODFLOW-GUI is included. It depends on Argus ONE: a commercial interface for constructing generic models. There are no license restrictions beyond those of Argus ONE. +PMWIN – "Processing MODFLOW" (for Windows) – powerful freeware for MODFLOW processing and visualization, provided alongside an instructional book; also available in Traditional Chinese. The license for this version is limited to non-commercial use. +mflab - mflab is a MATLAB interface to MODFLOW. The user builds and analyzes models by writing a set of MATLAB scripts. This results in flexible and efficient workflows, allowing a great deal of automation. +iMOD - Free and open source interface developed by Deltares. iMOD contains an accelerated version of MODFLOW with fast, flexible and consistent sub-domain modeling techniques. Facilitating large, high resolution MODFLOW modeling and geo-editing of the subsurface +FREEWAT is a free and open source, QGIS-integrated modelling platform integrating MODFLOW (MODFLOW versions integrated are MODFLOW-2005 and MODFLOW-OWHM) and the following MODFLOW-related simulation codes: MT3DMS, MT3D-USGS, SEAWAT, ZONE BUDGET, MODPATH, UCODE-2014. FREEWAT has been developed in the framework of the H2020 FREEWAT project (FREE and open source software tools for WATer resource management), financed by the EU Commission under the call WATER INNOVATION: BOOSTING ITS VALUE FOR EUROPE. The source code is released under a GNU GENERAL PUBLIC LICENSE, Version 2, June 1991, along with a complete set of User Manuals and tutorials. + +=== Commercial programs === +Commercial MODFLOW programs are typically used by governments and consultants for practical applications of MODFLOW to real-world groundwater problems. Professional versions of MODFLOW are generally priced at a minimum of around $1000 and typically range upward to US$7000. This is a list of commercial programs for MODFLOW: + +Argus ONE +GMS – Groundwater Modeling System +Groundwater Vistas +Leapfrog Hydro +Processing Modflow +Visual MODFLOW +All current versions of these programs run only on Microsoft Windows, however previous versions of GMS (up to Version 3.1) were compiled for several Unix platforms. + +=== Former graphical interfaces === +Graphic Groundwater – Windows-based interface +ModelCad – A Windows-based interface, developed by Geraghty and Miller, Inc. +ModIME Archived 2007-09-30 at the Wayback Machine – A DOS-based interface by S.S. Papadopulos & Associates, Inc. + +== See also == +FEFLOW +PORFLOW +HydroGeoSphere +Hydrological optimization +MIKE SHE +MT3D +Parflow +MARTHE from the French Geological Survey (BRGM) + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/MOEA_Framework-0.md b/data/en.wikipedia.org/wiki/MOEA_Framework-0.md new file mode 100644 index 000000000..70df61abb --- /dev/null +++ b/data/en.wikipedia.org/wiki/MOEA_Framework-0.md @@ -0,0 +1,33 @@ +--- +title: "MOEA Framework" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/MOEA_Framework" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:40.349809+00:00" +instance: "kb-cron" +--- + +The MOEA Framework is an open-source evolutionary computation library for Java that specializes in multi-objective optimization. It supports a variety of multiobjective evolutionary algorithms (MOEAs), including genetic algorithms, genetic programming, grammatical evolution, differential evolution, and particle swarm optimization. As a result, it has been used to conduct numerous comparative studies to assess the efficiency, reliability, and controllability of state-of-the-art MOEAs. + + +== Features == +The MOEA Framework is an extensible framework for rapidly designing, developing, executing, and statistically testing multiobjective evolutionary algorithms (MOEAs). It features 25 different MOEAs and over 80 test problems. +New problems are defined in the MOEA Framework using one or more decision variables of a varying type. This includes common representations such as binary strings, real-valued numbers, and permutations. It additionally supports evolving grammars in Backus–Naur form and programs using an internal Turing complete programming language. Once the problem is defined, the user can optimize the problem using any of supported MOEAs. + + +== Sensitivity analysis == +The MOEA Framework is the only known framework for evolutionary computation that provides support for sensitivity analysis. Sensitivity analysis in this context studies how an MOEA's parameters impact its output (i.e., the quality of the results). Alternatively, sensitivity analysis measures the robustness of an MOEA to changes in its parameters. An MOEA whose behavior is sensitive to its parameterization will not be easily controllable; conversely, an MOEA that is insensitive to its parameters is controllable. By measuring the sensitivities of each MOEA, the MOEA Framework can identify the controlling parameters for each MOEA and provide guidance for fine-tuning the parameters. Additionally, MOEAs that are consistently insensitive to parameter changes across an array of problem domains are regarded highly due to their robust ability to solve optimization problems. + + +== See also == + +ECJ, a toolkit to implement evolutionary algorithms +Paradiseo, a metaheuristics framework + + +== References == + + +== External links == +Official site \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/MTEX-0.md b/data/en.wikipedia.org/wiki/MTEX-0.md new file mode 100644 index 000000000..ba134fdac --- /dev/null +++ b/data/en.wikipedia.org/wiki/MTEX-0.md @@ -0,0 +1,22 @@ +--- +title: "MTEX" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/MTEX" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:43.890528+00:00" +instance: "kb-cron" +--- + +MTEX is an open-source MATLAB package specifically designed for the analysis of electron backscatter diffraction (EBSD) data, which are widely used to analyse the crystallographic orientation of materials at the microscale. + + +== History == +The development of MTEX began in 2008, spearheaded by Ralf Hielscher, who aimed to create a user-friendly platform that could facilitate the analysis of large datasets generated by EBSD. The toolbox has since evolved, incorporating various features that allow for the manipulation and visualisation of crystallographic data. +EBSD allows for the mapping of crystallographic orientations in materials, providing insights into their microstructural properties. The integration of EBSD with MATLAB through MTEX has enabled researchers to perform advanced analyses, such as orientation distribution function (ODF) calculations, pole figure plotting, calculation of anisotropic physical properties from texture data, and grain boundary and grain reconstruction, which are crucial for understanding the mechanical properties of materials, as the crystallographic texture can significantly influence their behaviour under stress. +Moreover, the open-source nature of MTEX has fostered a collaborative environment among researchers, allowing for continuous improvements and updates to the toolbox. This community-driven approach has led to the incorporation of new features and functionalities. +MTEX's versatility is further demonstrated by its application across various fields, including geology, metallurgy, and materials science. In geological studies, for instance, MTEX has been used to analyse the crystallographic orientation of minerals, providing insights into their formation processes and the conditions under which they evolved. Similarly, in metallurgy, researchers have employed MTEX to investigate the effects of processing methods on the texture and grain boundary characteristics of alloys, which are critical for optimising their mechanical properties. +The toolbox has also been instrumental in advancing the understanding of deformation mechanisms in materials. By analysing EBSD data with MTEX, researchers can elucidate the relationship between microstructural features and mechanical behaviour, such as strain localisation and phase transformations during deformation. + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/MoFEM_JosePH-0.md b/data/en.wikipedia.org/wiki/MoFEM_JosePH-0.md new file mode 100644 index 000000000..87ed164fc --- /dev/null +++ b/data/en.wikipedia.org/wiki/MoFEM_JosePH-0.md @@ -0,0 +1,43 @@ +--- +title: "MoFEM JosePH" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/MoFEM_JosePH" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:41.526922+00:00" +instance: "kb-cron" +--- + +MoFEM (Mesh Orientated Finite Element Method) is an open source finite element analysis code developed and maintained at the University of Glasgow. MoFEM is tailored for the solution of multi-physics problems with arbitrary levels of approximation, different levels of mesh refinement and optimised for high-performance computing. MoFEM is the blend of the Boost (C++ libraries) MultiIndex containers, MOAB (Mesh Oriented Database) and PETSc (Portable, Extensible Toolkit for Scientific Computation). MoFEM is developed in C++ and it is open-source software under the GNU Lesser General Public License (GPL). + + +== Motivation == +Building a scientific simulation environment for finite element methods is a complicated task. The longest part of finite element code development is in dealing with technical problems related to software implementation, rather than resolving the underlying physics that the code is intended to tackle. +The demand for accurate solutions of increasingly complicated real-world problems means that the underlying data structures also become increasingly complicated. This is particularly evident with multi-physics, hp-adaptivity, and/or evolving geometries (e.g. crack propagation). Established commercial software is often limited in this respect, or can be relatively slow to adopt new innovations. Working around these problems has been the main motivation for the development of MoFEM, recognising that it is increasingly necessary for engineers, scientists and mathematicians to carry out calculations using several mesh refinements, different approximation orders, multiple degrees of freedom and/or different scales. + + +== History == +MoFEM evolved from YAFEMS (2008), a general and open source finite element code developed at the University of Glasgow. +In 2013 YAFEMS was re-written from scratch and named MoFEM. MoFEM was initiated by two projects. EPSRC founded a project for Providing Confidence in Durable Composites (DURACOMP) in a consortium of three institutions: University of Warwick, University of Glasgow, Newcastle University and several industrial partners. The second project was funded by IAA-EPSRC: Simulation of fracture in nuclear graphite: from academic setting to commercial application and EDF Energy. + + +== Main features == +Solves various linear and nonlinear problems from structural, thermal and fluid mechanics +Efficient parallel processing support based on domain decomposition and message passing paradigms. +Direct as well as iterative solvers are available. Interfaces to PETSc third party linear, nonlinear at time dependent solvers. +Adaptive mesh refinement base on edge based refinement algorithm +Supports hierarchical approximation basis for L2, H1, H-div and H-curl spaces +Calculate stress intensity factors and crack propagation based on configurational mechanics +Arbitrary Lagrangian Formulation with Mesh Smoothing Algorithms based on Volume-Length quality tetrahedral element measure with barrier + + +== License == +MoFEM is free, open source software, released under the GNU Lesser General Public License as published by the Free Software Foundation. + + +== References == + + +== External links == +MoFEM Bitbucket Repository +MOAB \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Montage_(image_software)-0.md b/data/en.wikipedia.org/wiki/Montage_(image_software)-0.md new file mode 100644 index 000000000..dd17379d0 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Montage_(image_software)-0.md @@ -0,0 +1,26 @@ +--- +title: "Montage (image software)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Montage_(image_software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:42.716723+00:00" +instance: "kb-cron" +--- + +Montage is a software toolkit used in astrophotography to assemble astronomical images in Flexible Image Transport System (FITS) format into composite images, called mosaics, that preserve the calibration and positional fidelity of the original input images. It won a NASA Space Act Award in 2006. +Montage was developed to support scientific research. It enables astronomers to create images of regions of the sky that are too large to be produced by astronomical cameras. It also creates composite images of a region of the sky that has been measured with different wavelengths and with different instruments; the composite appears as if the area was measured with the same instrument on the same telescope. There is also associated software developed by the Montage user community including Bash and C shell scripts to make mosaics, and the montage-wrapper Python application programming interface, a part of the Astropy project. +Montage uses a BSD 3-Clause License, which permits unlimited redistribution of the Montage code for any purpose as long as its copyright notices and the license's disclaimers of warranty are included. + + +== See also == +Afocal photography +Outline of photography +Image editing + + +== References == + + +== External links == +Official website \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/NEST_(software)-0.md b/data/en.wikipedia.org/wiki/NEST_(software)-0.md new file mode 100644 index 000000000..436ce39ef --- /dev/null +++ b/data/en.wikipedia.org/wiki/NEST_(software)-0.md @@ -0,0 +1,110 @@ +--- +title: "NEST (software)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/NEST_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:48.597476+00:00" +instance: "kb-cron" +--- + +NEST is a simulation software for spiking neural network models, including large-scale neuronal networks. NEST was initially developed by Markus Diesmann and Marc-Oliver Gewaltig and is now developed and maintained by the NEST Initiative. + + +== Modeling philosophy == +A NEST simulation tries to follow the logic of an electrophysiological experiment that takes place inside a computer with the difference, that the neural system to be investigated must be defined by the experimenter. +The neural system is defined by a possibly large number of neurons and their connections. In a NEST network, different neuron and synapse models can coexist. Any two neurons can have multiple connections with different properties. Thus, the connectivity can in general not be described by a weight or connectivity matrix but rather as an adjacency list. +To manipulate or observe the network dynamics, the experimenter can define so-called devices which represent the various instruments (for measuring and stimulation) found in an experiment. These devices write their data either to memory or to file. +NEST is extensible and new models for neurons, synapses, and devices can be added. + + +== Example == + +The following example simulates spiking activity in a sparse random network with recurrent excitation and inhibition +The figure shows the spiking activity of 50 neurons as a raster plot. Time increases along the horizontal axis, neuron id increases along the vertical axis. Each dot corresponds to a spike of the respective neuron at a given time. The lower part of the figure shows a histogram with the mean firing-rate of the neurons. + + +== Features == + + +=== Neuron models === +Integrate-and-fire models with different types of synaptic currents or potentials +Integrate-and-fire models with conductance based synapses +Single compartment Hodgkin–Huxley models +Adaptive Exponential Integrate and Fire neuron (AdEx) +MAT2 neuron model + + +=== Network models === +Random neural network +Topological networks +Data-driven network models + + +=== Synapse models === +Static synapses with homogeneous or heterogeneous weight and delay. +Spike-timing-dependent plasticity +Short-term plasticity (Tsodyks & Markram synapses) +Neuromodulated synapses, using Dopamine. + + +=== Device models === +Spike detector +Multimeter for potentials, currents, etc. +AC, DC, and step current generators +Noise generators (Poisson, Gauss, Gamma) +Spike generators for replay of spikes + + +=== Accuracy === +NEST aims at high accuracy and precision of its simulations +Each neuron model has its appropriate solver and many models have unit tests. +If possible, exact integration is used. +By default, spikes fall onto the grid, defined by the simulation time-step. Some models support spike-exchange in continuous time. + + +=== Parallel and distributed simulation === +Support for multi-threaded simulation, using OpenMP or POSIX Threads. +Support for hybrid multi-threaded and distributed simulation. +Parallelization is handled semi-automatically by NEST's simulation kernel. +Supra-linear to linear scaling for up to 10000 cores. + + +=== Interoperability === +Interface to the Multi Simulator Coordinator, developed by the INCF. +Interface to the simulator independent simulation language PyNN. + + +== History == +NEST development was started in 1993 by Markus Diesmann and Marc-Oliver Gewaltig at the Ruhr University Bochum, Bochum, Germany and the Weizmann Institute of Science in Rehovot, Israel. At this time, the simulator was called SYNOD and simulations were defined in a stack based simulation language, called SLI. +In 2001, the software changed its name from SYNOD to NEST. Until 2004, NEST was exclusively developed and used by the founding members of the NEST Initiative. The first public release appeared in summer 2004. Since then, NEST was released regularly, about once or twice per year. +Since 2007, NEST supports hybrid parallelism, using POSIX threads and MPI. +In 2008, the stack-based simulation language SLI was superseded by a modern Python interface, however, the old simulation language is still used internally. +At the same time, the simulator independent specification language PyNN was developed with support for NEST. +In 2012, the NEST Initiative changed the license from the proprietary NEST License to GNU GPL V2 or later. + + +== User interfaces == +NEST primary user interface is PyNEST, a Python package that controls the NEST simulation kernel. PyNEST aims at easy usability and seamless interaction with Python and its libraries. +PyNN is a simulator independent language for neural simulations, which supports NEST as well as BRIAN, NEURON, as well as neuromorphic hardware. +NEST also maintains its own simulation language interpreter (SLI), which understands a simple Stack-oriented programming language that is influenced by PostScript. + + +== See also == + +Brian (software) +Computational Neuroscience +GENESIS (software) +MLDesigner +Neuron (software) +OMNeT++ +QualNet + + +== References == + + +== External links == +Official website +List of simulation packages +nest-simulator on GitHub \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Natural_Language_Toolkit-0.md b/data/en.wikipedia.org/wiki/Natural_Language_Toolkit-0.md new file mode 100644 index 000000000..55ef20cbf --- /dev/null +++ b/data/en.wikipedia.org/wiki/Natural_Language_Toolkit-0.md @@ -0,0 +1,34 @@ +--- +title: "Natural Language Toolkit" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Natural_Language_Toolkit" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:45.056399+00:00" +instance: "kb-cron" +--- + +The Natural Language Toolkit, or more commonly NLTK, is a suite of libraries and programs for symbolic and statistical natural language processing (NLP) for English written in the Python programming language. It supports classification, tokenization, stemming, tagging, parsing, and semantic reasoning functionalities. It was developed by Steven Bird and Edward Loper in the Department of Computer and Information Science at the University of Pennsylvania. NLTK includes graphical demonstrations and sample data. It is accompanied by a book that explains the underlying concepts behind the language processing tasks supported by the toolkit, plus a cookbook. +NLTK is intended to support research and teaching in NLP or closely related areas, including empirical linguistics, cognitive science, artificial intelligence, information retrieval, and machine learning. +NLTK has been used successfully as a teaching tool, as an individual study tool, and as a platform for prototyping and building research systems. + + +== Library highlights == +Discourse representation +Lexical analysis: Word and text tokenizer +n-gram and collocations +Part-of-speech tagger +Tree model and Text chunker for capturing +Named-entity recognition + + +== See also == + +SpaCy + + +== References == + + +== External links == +Official website \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Nek5000-0.md b/data/en.wikipedia.org/wiki/Nek5000-0.md new file mode 100644 index 000000000..e8546fcef --- /dev/null +++ b/data/en.wikipedia.org/wiki/Nek5000-0.md @@ -0,0 +1,48 @@ +--- +title: "Nek5000" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Nek5000" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:46.233456+00:00" +instance: "kb-cron" +--- + +Nek5000 is a highly scalable spectral element computational fluid dynamics code for solving the incompressible Navier-Stokes equations on 2D quadrilateral and 3D hexahedral meshes. Nek5000 was awarded the 1999 Gordon Bell Prize and a 2016 R&D 100 Award. + + +== History == + + +== Related and derived codes == + + +=== Gslib === + + +=== Nekbone === + + +=== Neko === + + +=== NekCEM === + + +=== NekLBM === + + +=== NekROM === + + +=== NekRS === + + +=== ParRSB === + + +== See also == +List of computational fluid dynamics software + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Nektar++-0.md b/data/en.wikipedia.org/wiki/Nektar++-0.md new file mode 100644 index 000000000..7402472ec --- /dev/null +++ b/data/en.wikipedia.org/wiki/Nektar++-0.md @@ -0,0 +1,97 @@ +--- +title: "Nektar++" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Nektar++" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:47.396780+00:00" +instance: "kb-cron" +--- + +Nektar++ is a spectral/hp element framework designed to support the construction of efficient high-performance scalable solvers for a wide range of partial differential equations (PDE). The code is released as open-source under the MIT license. Although primarily driven by application-based research, it has been designed as a platform to support the development of novel numerical techniques in the area of high-order finite element methods. +Nektar++ is modern object-oriented code written in C++ and is being actively developed by members of the SherwinLab at Imperial College London (UK) and Kirby's group at the University of Utah (US). + + +== Capabilities == +Nektar++ includes the following capabilities: + +One-, two- and three-dimensional problems; +Multiple and mixed element types, i.e. triangles, quadrilaterals, tetrahedra, prisms and hexahedra; +Both hierarchical and nodal expansion bases with variable and heterogeneous polynomial order between elements; +Continuous Galerkin, discontinuous Galerkin, hybridizable discontinuous Galerkin and flux reconstruction operators; +Multiple implementations of finite element operators for efficient execution on a wide range of CPU architectures; +Comprehensive range of explicit, implicit and implicit-explicit (IMEX) time-integration schemes; +Preconditioners tailored to high-order finite element methods; +Numerical stabilization techniques such as dealiasing and spectral vanishing viscosity; +Parallel execution and scalable to thousands of processor cores; +Pre-processing tools to generate meshes, or manipulate and convert meshes generated with third-party software into a Nektar++-readable format; +Extensive post-processing capabilities for manipulating output data; +Cross platform support for Linux, Mac OS X and Windows; +Support for running jobs on cloud computing platforms via the prototype Nekkloud interface from the libhpc project; +Wide user community, support and annual workshop. +Stable versions of the software are released on a 1-month basis and it is supported by an extensive testing framework which ensures correctness across a range of platforms and architectures. +Other capabilities currently under active development include p-adaption, r-adaption and support for accelerators (GPGPU, Intel Xeon Phi). + + +== Application domains == +The development of the Nektar++ framework is driven by a number of aerodynamics and biomedical engineering applications and consequently the software package includes a number of pre-written solvers for these areas. + + +=== Incompressible flow === +This solver time-integrates the incompressible Navier-Stokes equations for performing large-scale direct numerical simulation (DNS) in complex geometries. It also supports the linearised and adjoint forms of the Navier-Stokes equations for evaluating hydrodynamic stability of flows. + + +=== Compressible flow === +External aerodynamics simulations of high-speed compressible flows are supported through solution of the compressible Euler or Navier-Stokes equations. + + +=== Cardiac Electrophysiology === +This solver supports the solution of the monodomain model and bidomain model of action potential propagation through myocardium. + + +=== Other application areas === +shallow water equations; +reaction-diffusion-advection problems; +pulse wave propagation solver for modelling arterial networks; +acoustic perturbation equations; +linear elasticity equations. + + +== License == +Nektar++ is free and open source software, released under the MIT license. + + +== Alternative software == + + +=== Free and open-source software === +Nek5000 (BSD) +Advanced Simulation Library (AGPL) +Code Saturne (GPL) +FEATool Multiphysics +Gerris Flow Solver (GPL) +OpenFOAM (GPL) +SU2 code (LGPL) +PyFR + + +=== Proprietary software === +ADINA CFD +ANSYS CFX +ANSYS Fluent +COMSOL Multiphysics +Pumplinx +Simcenter STAR-CCM+ +KIVA (software) +RELAP5-3D + + +== References == + + +== External links == + + +=== Official resources === +Nektar++ home page +Nektar++ Gitlab repository \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/NumPy-0.md b/data/en.wikipedia.org/wiki/NumPy-0.md new file mode 100644 index 000000000..e65f830b5 --- /dev/null +++ b/data/en.wikipedia.org/wiki/NumPy-0.md @@ -0,0 +1,41 @@ +--- +title: "NumPy" +chunk: 1/2 +source: "https://en.wikipedia.org/wiki/NumPy" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:49.753519+00:00" +instance: "kb-cron" +--- + +NumPy (pronounced NUM-py) is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays. The predecessor of NumPy, Numeric, was originally created by Jim Hugunin with contributions from several other developers. In 2005, Travis Oliphant created NumPy by incorporating features of the competing Numarray into Numeric, with extensive modifications. NumPy is open-source software and has many contributors. NumPy is fiscally sponsored by NumFOCUS. + +== History == + +=== matrix-sig === +The Python programming language was not originally designed for numerical computing, but attracted the attention of the scientific and engineering community early on. In 1995 the special interest group (SIG) matrix-sig was founded with the aim of defining an array computing package; among its members was Python designer and maintainer Guido van Rossum, who extended Python's syntax (in particular the indexing syntax) to make array computing easier. + +=== Numeric === +An implementation of a matrix package was completed by Jim Fulton, then expanded to support multi-dimensional arrays by Jim Hugunin and called Numeric (also variously known as the "Numerical Python extensions" or "NumPy"), with influences from the APL family of languages, Basis, MATLAB, FORTRAN, S and S+, and others. +Hugunin, a graduate student at the Massachusetts Institute of Technology (MIT), joined the Corporation for National Research Initiatives (CNRI) in 1997 to work on JPython, leaving Paul Dubois of Lawrence Livermore National Laboratory (LLNL) to take over as maintainer. Other early contributors include David Ascher, Konrad Hinsen and Travis Oliphant. + +=== Numarray === +A new package called Numarray was written as a more flexible replacement for Numeric. Like Numeric, it too is now deprecated. Numarray had faster operations for large arrays, but was slower than Numeric on small ones, so for a time both packages were used in parallel for different use cases. The last version of Numeric (v24.2) was released on 11 November 2005, while the last version of numarray (v1.5.2) was released on 24 August 2006. +There was a desire to get Numeric into the Python standard library, but Guido van Rossum decided that the code was not maintainable in its state then. + +=== NumPy === +In early 2005, NumPy developer Travis Oliphant wanted to unify the community around a single array package and ported Numarray's features to Numeric, releasing the result as NumPy 1.0 in 2006. This new project was part of SciPy. To avoid installing the large SciPy package just to get an array object, this new package was separated and called NumPy. Support for Python 3 was added in 2011 with NumPy version 1.5.0. +In 2011, PyPy started development on an implementation of the NumPy API for PyPy. As of 2023, it is not yet fully compatible with NumPy. + +== Features == +NumPy targets the CPython reference implementation of Python, which is a non-optimizing bytecode interpreter. Mathematical algorithms written for this version of Python often run much slower than compiled equivalents due to the absence of compiler optimization. NumPy addresses the slowness problem partly by providing multidimensional arrays and functions and operators that operate efficiently on arrays; using these requires rewriting some code, mostly inner loops, using NumPy. +Using NumPy in Python gives functionality comparable to MATLAB since they are both interpreted, and they both allow the user to write fast programs as long as most operations work on arrays or matrices instead of scalars. In comparison, MATLAB boasts a large number of additional toolboxes, notably Simulink, whereas NumPy is intrinsically integrated with Python, a more modern and complete programming language. Moreover, complementary Python packages are available; SciPy is a library that adds more MATLAB-like functionality and Matplotlib is a plotting package that provides MATLAB-like plotting functionality. Although MATLAB can perform sparse matrix operations, NumPy alone cannot perform such operations and requires the use of the scipy.sparse library. Internally, both MATLAB and NumPy rely on BLAS and LAPACK for efficient linear algebra computations. +Python bindings of the widely used computer vision library OpenCV utilize NumPy arrays to store and operate on data. +Since images with multiple channels are simply represented as three-dimensional arrays, indexing, slicing or masking with other arrays are very efficient ways to access specific pixels of an image. +The NumPy array as universal data structure in OpenCV for images, extracted feature points, filter kernels and many more vastly simplifies the programming workflow and debugging. +Importantly, many NumPy operations release the global interpreter lock, which allows for multithreaded processing. +NumPy also provides a C API, which allows Python code to interoperate with external libraries written in low-level languages. + +=== The ndarray data structure === +The core functionality of NumPy is its "ndarray", for n-dimensional array, data structure. These arrays are strided views on memory. In contrast to Python's built-in list data structure, these arrays are homogeneously typed: all elements of a single array must be of the same type. +Such arrays can also be views into memory buffers allocated by C/C++, Python, and Fortran extensions to the CPython interpreter without the need to copy data around, giving a degree of compatibility with existing numerical libraries. This functionality is exploited by the SciPy package, which wraps a number of such libraries (notably BLAS and LAPACK). NumPy has built-in support for memory-mapped ndarrays. \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/NumPy-1.md b/data/en.wikipedia.org/wiki/NumPy-1.md new file mode 100644 index 000000000..68a77eb9b --- /dev/null +++ b/data/en.wikipedia.org/wiki/NumPy-1.md @@ -0,0 +1,65 @@ +--- +title: "NumPy" +chunk: 2/2 +source: "https://en.wikipedia.org/wiki/NumPy" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:49.753519+00:00" +instance: "kb-cron" +--- + +=== Limitations === +Inserting or appending entries to an array is not as trivially possible as it is with Python's lists. +The np.pad(...) routine to extend arrays actually creates new arrays of the desired shape and padding values, copies the given array into the new one and returns it. +NumPy's np.concatenate([a1,a2]) operation does not actually link the two arrays but returns a new one, filled with the entries from both given arrays in sequence. +Reshaping the dimensionality of an array with np.reshape(...) is only possible as long as the number of elements in the array does not change. +These circumstances originate from the fact that NumPy's arrays must be views on contiguous memory buffers. +Algorithms that are not expressible as a vectorized operation will typically run slowly because they must be implemented in "pure Python", while vectorization may increase memory complexity of some operations from constant to linear, because temporary arrays must be created that are as large as the inputs. Runtime compilation of numerical code has been implemented by several groups to avoid these problems; open source solutions that interoperate with NumPy include numexpr and Numba. Cython and Pythran are static-compiling alternatives to these. +Many modern large-scale scientific computing applications have requirements that exceed the capabilities of the NumPy arrays. +For example, NumPy arrays are usually loaded into a computer's memory, which might have insufficient capacity for the analysis of large datasets. +Further, NumPy operations are executed on a single CPU. +However, many linear algebra operations can be accelerated by executing them on clusters of CPUs or of specialized hardware, such as GPUs and TPUs, which many deep learning applications rely on. +As a result, several alternative array implementations have arisen in the scientific python ecosystem over the recent years, such as Dask for distributed arrays and TensorFlow or JAX for computations on GPUs. +Because of its popularity, these often implement a subset of NumPy's API or mimic it, so that users can change their array implementation with minimal changes to their code required. A library named CuPy, accelerated by Nvidia's CUDA framework, has also shown potential for faster computing, being a 'drop-in replacement' of NumPy. + +== Examples == +NumPy is conventionally imported as np. + +=== Basic operations === + +=== Universal functions === + +=== Linear algebra === + +=== Multidimensional arrays === + +=== Incorporation with OpenCV === + +=== Nearest-neighbor search === +Functional Python and vectorized NumPy version. + +=== F2PY === +Quickly wrap native code for faster scripts. + +== See also == +Array programming +List of numerical-analysis software +List of open-source mathematical libraries +Theano (software) +Matplotlib +Fortran +Row- and column-major order +f2c + +== References == + +== Further reading == +McKinney, Wes (2022). Python for Data Analysis (3rd ed.). O'Reilly. ISBN 978-1098104030. +Bressert, Eli (2012). Scipy and Numpy: An Overview for Developers. O'Reilly. ISBN 978-1-4493-0546-8. +VanderPlas, Jake (2016). "Introduction to NumPy". Python Data Science Handbook: Essential Tools for Working with Data. O'Reilly. pp. 33–96. ISBN 978-1-4919-1205-8. + +== External links == + +Official website +NumPy tutorials +History of NumPy \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/OELib-0.md b/data/en.wikipedia.org/wiki/OELib-0.md new file mode 100644 index 000000000..47ddc61ca --- /dev/null +++ b/data/en.wikipedia.org/wiki/OELib-0.md @@ -0,0 +1,24 @@ +--- +title: "OELib" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/OELib" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:53.370288+00:00" +instance: "kb-cron" +--- + +OELib was an open source Cheminformatics library written by Matt Stahl and based on the ideas of OBabel. Its actual GPLed C++ and Java based successors are OpenBabel and JOELib, with Its commercial successor being called OEChem. + + +== See also == +JOELib +OpenBabel + + +== External links == +Archived copy of OELib in 2008 on Internet Archive. +Design flaws in OELib + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/OProject@Home-0.md b/data/en.wikipedia.org/wiki/OProject@Home-0.md index b2236cdac..dc0aeebcf 100644 --- a/data/en.wikipedia.org/wiki/OProject@Home-0.md +++ b/data/en.wikipedia.org/wiki/OProject@Home-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/OProject@Home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:30.053986+00:00" +date_saved: "2026-05-05T10:13:02.034767+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/OctaDist-0.md b/data/en.wikipedia.org/wiki/OctaDist-0.md new file mode 100644 index 000000000..74ed0494a --- /dev/null +++ b/data/en.wikipedia.org/wiki/OctaDist-0.md @@ -0,0 +1,59 @@ +--- +title: "OctaDist" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/OctaDist" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:50.961916+00:00" +instance: "kb-cron" +--- + +OctaDist is computer software for crystallography and inorganic chemistry program. It is mainly used for computing distortion parameters of coordination complex such as spin crossover complex (SCO), magnetic metal complex and metal–organic framework (MOF). +The program is developed and maintained in an international collaboration between the members of the Computational Chemistry Research Unit at Thammasat University, the Functional Materials & Nanotechnology CoE at Walailak University and the Switchable Molecules and Materials group at University of Bordeaux. +OctaDist is written entirely in Python binding to Tkinter graphical user interface toolkit. It is available for Windows, macOS, and Linux. It is free and open-source software distributed under a GNU General Public License (GPL) 3.0. + + +== Standard abilities == +The following are the main features of the latest version of OctaDist: + +Structural distortion analysis +Determination of regular and irregular distorted octahedral molecular geometry +Octahedral distortion parameters +Volume of the octahedron +Tilting distortion parameter for perovskite complex +Molecular graphics +3D modelling of complex +Display of the eight faces of octahedron +Atomic orthogonal projection and projection plane +Twisting triangular faces +Molecular superposition (Overlay) +Other utilities +Scripting language +Surface area of the faces of octahedron +Jahn–Teller distortion parameters +Root-mean-square deviation of atomic positions + + +== Capabilities == +Simple and flexible processes of use +Cross-platform for both 32-bit and 64-bit systems +Graphical user interface (GUI) +Command-line interface (CLI) +User-friendly interactive scripting code +User-adjustable program setting +On top of huge and complicated complexes +Support for several outputs of computational chemistry software, including Gaussian, Q-Chem, ORCA, and NWChem + + +== See also == +List of quantum chemistry and solid-state physics software + + +== References == + + +== External links == +OctaDist official website +OctaDist at Github repository +OctaDist PyPI package +OctaDist at IUCr software archive \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Octopus_(software)-0.md b/data/en.wikipedia.org/wiki/Octopus_(software)-0.md new file mode 100644 index 000000000..b8ba6647d --- /dev/null +++ b/data/en.wikipedia.org/wiki/Octopus_(software)-0.md @@ -0,0 +1,54 @@ +--- +title: "Octopus (software)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Octopus_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:52.169762+00:00" +instance: "kb-cron" +--- + +Octopus is an open-source software package for performing Kohn‍–‍Sham density functional theory (DFT) and time-dependent density functional theory (TDDFT) calculations. +Octopus employs pseudopotentials and real-space numerical grids to propagate the Kohn‍–‍Sham orbitals in real time under the influence of time-varying electromagnetic fields. Specific functionality is provided for simulating one-, two-, and three-dimensional systems. Octopus can calculate static and dynamic polarizabilities and first hyperpolarizabilities, static magnetic susceptibilities, absorption spectra, and perform molecular dynamics simulations with Ehrenfest and Car–Parrinello methods. +The code is written predominantly in Fortran and is released under the GPL. It supported multiple levels of parallelism using OpenMPI and MPI on the CPU as well as CUDA and ROCm (via HIP) on the GPU. +The latest version 16.3 was released on October 21, 2025. As of version 16, Octopus introduces enhanced GPU parallelization and support for hybrid functionals. + + +== Target problems == +Linear optical (i.e. electronic) response of molecules or clusters, also second-order nonlinear response. +Non-linear response to classical high-intensity electromagnetic fields, taking into account both the ionic and electronic degrees of freedom. +Ground-state and excited state electronic properties of systems with lower dimensionality, such as quantum dots. +Photo-induced reactions of molecules (e.g., photo-dissociation, photo-isomerization, etc.). +Ongoing development includes extensions of these procedures to systems that are infinite and periodic in one or more dimensions (polymers, slabs, nanotubes, solids), and to electronic transport. + + +== Theoretical basis == +The underlying theories are DFT and TDDFT. Also, the code may perform dynamics by considering the classical (i.e. point-particle) approximation for the nuclei. These dynamics may be non-adiabatic, since the system evolves following the Ehrenfest path. It is, however, a mean-field approach. +Regarding TDDFT, one can use three different approaches: +the standard TDDFT-based linear-response theory of Casida, which provides the excitation energies and oscillator strengths for ground-state to excited-state transitions. +the explicit time-propagation of the TDDFT equations, which allows for the use of large external potentials, well beyond the range of validity of perturbation theory. +the Sternheimer equation (density-functional perturbation theory) in the frequency domain, using only occupied states. + + +== Methodology == +As numerical representation, the code works without a basis set, relying on numerical meshes. Nevertheless, auxiliary basis sets (plane waves, atomic orbitals) are used when necessary. The code now offers the possibility of working with non-uniform grids, which adapt to the inhomogeneity of the problem, and of making use of multigrid techniques to accelerate the calculations. +For most calculations, the code relies on the use of pseudopotentials of two types: Troullier-Martins, and Hartwigsen-Goedecker-Hutter. +In addition to being able to treat systems in the standard 3 dimensions, 2D and 1D modes are also available. These are useful for studying, e.g., the two-dimensional electron gas that characterizes a wide class of quantum dots. + + +== Technical aspects == +The code has been designed with emphasis on parallel scalability. In consequence, it allows for multiple task divisions, this utilises mesh division software, MPI and OpenMP. +The language of most of the code is Fortran 2008. Other languages, such as C, are also used. +The package is licensed under the GNU General Public License (GPL). In consequence, it is available for use, inspection, and modification for anyone, at the Octopus git repository. + + +== See also == + +Quantum chemistry computer programs + + +== References == + + +== External links == +Official website \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Olex2-0.md b/data/en.wikipedia.org/wiki/Olex2-0.md new file mode 100644 index 000000000..fd3e0a149 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Olex2-0.md @@ -0,0 +1,29 @@ +--- +title: "Olex2" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Olex2" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:54.531355+00:00" +instance: "kb-cron" +--- + +Olex and Olex2 are versatile software for crystallographic research. Olex used to be a research project developed during PhD to implement topological (as connectivity) analysis of polymeric chemical structures and still is widely used around the world. Olex2 is an open source project with the C++ code portable to Windows, Mac and Linux. Although the projects share the common name they are not related at the source code level. + + +== Olex == +The Olex program is designed for the analysis of extended structural networks. It only runs on Windows systems and source code is available only on request. It allows packing the structure, constructing the topological network and the evaluation of the networks Schläfli and vertex symbols and to produce raster pictures of the model visible on screen. This kind of the topological network analysis is normally done to find relevance of considered structures and possibly to predict physical properties of the investigated material. +Olex2 is a relatively mature open source software with a BSD licence which provides tools for crystallographic structure solution, refinement, and final report preparation. It is still in the stage of active development. Olex2 provides numerous tools for structure analysis and publication, including Fourier maps, void calculation and visualisation, space group determination, calculation of esd's for almost any possible geometrical parameters, CIF translation to HTML and other document formats, hydrogen atom placement, and many others. Olex2 can also provide the final graphic output as raster images or PostScript, Ortep-like or POV-Ray output. +The independent GUI for the Olex2 platform is provided by wxWidgets. Olex2 has an extended HTML based interface, enhanced by Pillow and OpenGL graphics. The software is provided as pre-built binaries for Windows, Mac and Linux as well as in the source code form. Several build scripts (SCons, CMake and make) are provided to help with Olex2 development, but only SCons is supported throughout and used for each release update. Any problems and bugs have to be reported to the supporters, now under OlexSys Ltd. +As a GUI Olex2 is built from two components - the Olex2 core, written in C++ and exposing the underlying model to the GUI, which is mostly based on Python code. This segregation allows extending Olex2 with custom scripts and exploiting its functionality by the user at various levels, such as Miller index operations, file manipulations, and many others. +Olex2 provides a set of commercial extensions: + +3DPlus: provides a way to output STL, VRML and PLY files for 3D printing +ReportPlus: professional-looking structure determination reports including the ability to combine structures + + +== Official Site == +http://www.olexsys.org + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/OpenFOAM-0.md b/data/en.wikipedia.org/wiki/OpenFOAM-0.md new file mode 100644 index 000000000..af414532f --- /dev/null +++ b/data/en.wikipedia.org/wiki/OpenFOAM-0.md @@ -0,0 +1,91 @@ +--- +title: "OpenFOAM" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/OpenFOAM" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:56.783384+00:00" +instance: "kb-cron" +--- + +OpenFOAM (Open Field Operation And Manipulation) is a C++ toolbox for the development of customized numerical solvers, and pre-/post-processing utilities for the solution of continuum mechanics problems, most prominently including computational fluid dynamics (CFD). +The OpenFOAM software is used in research organisations, academic institutes and across many types of industries, for example, automotive, manufacturing, process engineering, environmental engineering and marine energy. +OpenFOAM is open-source software which is freely available and licensed under the GNU General Public License Version 3, with the following variants: + +OpenFOAM, released by OpenCFD Ltd. (with the name trademarked since 2007) first released as open-source in 2004. (Note: since 2012, OpenCFD Ltd is wholly-owned subsidiary of ESI Group) +FOAM-Extend, released by Wikki Ltd. (since 2009) +OpenFOAM, released by OpenFOAM Foundation. (since 2011) + + +== History == + +The name FOAM has been claimed to appear for the first time as a post-processing tool written by Charlie Hill, in the early 90s in Prof. David Gosman's group in Imperial College London. As a counter argument , it has been claimed that Henry Weller created the FOAM library for field operation and manipulation which interfaced to the GUISE (Graphical User Interface Software Environment) which was created by Charlie Hill for interfacing to AVS. +As a continuum mechanics / computational fluid dynamics tool, the first development of FOAM (which became OpenFOAM later on) was virtually always presumed to be initiated by Henry Weller at the same institute by using the C++ programming language rather than the de facto standard programming language FORTRAN of the time to develop a powerful and flexible general simulation platform. From this initiation to the founding of a company called Nabla Ltd, (predominantly) Henry Weller and Hrvoje Jasak carried out the basic development of the software for almost a decade. +For a few years, FOAM was sold as a commercial code by Nabla Ltd., +on 10 December 2004, it was released under GPL and renamed to OpenFOAM. +In 2004, Nabla Ltd was folded. Immediately afterwards, Henry Weller, Chris Greenshields and Mattijs Janssens founded OpenCFD Ltd to develop and release OpenFOAM. At the same time, Hrvoje Jasak founded the consulting company Wikki Ltd and maintained a fork of OpenFOAM called openfoam-extend, later renamed to foam-extend. +In December 2010, the OpenFOAM development moved to using GitHub for its source code repository. +On 5 August 2011, OpenCFD transferred its copyrights and interests in OpenFOAM (source code) and documentation to the newly incorporated OpenFOAM Foundation Inc., registered in the state of Delaware, USA. +On 8 August 2011, OpenCFD was acquired by Silicon Graphics International (SGI). On 12 September 2012, ESI Group announced the acquisition of OpenCFD Ltd, becoming a wholly-owned subsidiary of ESI Group, and OpenCFD retaining its ownership of the OpenFOAM trademark. +On 25 April 2014, The OpenFOAM Foundation Ltd was incorporated in England, as a company limited by guarantee with all assets transferred to the UK and the US entity dissolved, together with changes to the governance of the Foundation. Weller and Greenshields left OpenCFD and formed CFD Direct Ltd in March 2015. +On 3 September 2024, Cristel de Rouvray, CEO of ESI Group (acquired by Keysight Technologies Inc) officially resigned as Founder Member and director of The OpenFOAM Foundation Limited. +The OpenFOAM Foundation Ltd directors are Henry Weller, Chris Greenshields, and Brendan Bouffler. +The following are the three main variants of OpenFOAM: + +OpenFOAM, Foundation, developed and maintained primarily by CFD Direct Ltd with a sequence based identifier (e.g. 6.0) (from 2011). +OpenFOAM, OpenCFD, developed and maintained mainly by OpenCFD Ltd, (ESI Group company since 2012) with a date-of-release identifier (e.g. v1606) (from 2016). +The FOAM-Extend Project, mainly maintained by Wikki Ltd. (from 2009). + + +=== OpenFOAM Governance === + +In 2018, OpenCFD Ltd. and some of its industrial, academic, and community partners established an administrative body, i.e. OpenFOAM Governance, to allow the OpenFOAM's user community to decide/contribute the future development and direction of their variant of the software. +The structure of OpenFOAM Governance consisted of a Steering Committee and various Technical Committees. The Steering Committee comprised representatives from the main sponsors of OpenFOAM in industry, academia, release authorities and consultant organisations. The organisation composition of the initial committee involved members from OpenCFD Ltd., ESI Group, Volkswagen, General Motors, FM Global, TotalSim Ltd., TU Darmstadt, and Wikki Ltd. +In addition, nine technical committees were established in the following areas: Documentation, high performance computing, meshing, multiphase, numerics, optimisation, turbulence, marine applications, and nuclear applications with the members from the organisations of OpenCFD Ltd., CINECA, University of Zagreb, TU Darmstadt, National Technical University of Athens, Upstream CFD GmbH, University of Michigan, and EPFL. + + +== Structure == + + +=== Software structure === +The OpenFOAM directory structure consists of two main directories: + +OpenFOAM-: OpenFOAM libraries whose directory layout is shown in the side-figure +ThirdParty: A set of third-party libraries + + +=== Simulation structure === +OpenFOAM computer simulations are configured by several plain text input files located across the following three directories: + +system/ +controlDict +fvSchemes +fvSolution +fvOptions (optional) +other dictionaries (configuration files in OpenFOAM) +constant +polyMesh/ +other dictionaries +0/ or another initial time directory +field files +Additional directories can be generated, depending on user selections. These may include: + +result time directories: field predictions as a function of iteration count or time +postProcessing/: data typically generated by function objects data conversion, e.g. VTK + + +== See also == +Computer-aided design +Computer-aided engineering +Finite volume method +List of computational fluid dynamics software +ParaView, an open-source multiple-platform application for interactive scientific visualization +VTK (file format) + + +== References == + + +== External links == +OpenFOAM Foundation website +DLR: Future Aircraft Engineering – The Numerical Simulation \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/OpenLB-0.md b/data/en.wikipedia.org/wiki/OpenLB-0.md new file mode 100644 index 000000000..eccd204bc --- /dev/null +++ b/data/en.wikipedia.org/wiki/OpenLB-0.md @@ -0,0 +1,68 @@ +--- +title: "OpenLB" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/OpenLB" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:57.958029+00:00" +instance: "kb-cron" +--- + +OpenLB is an object-oriented implementation of the lattice Boltzmann methods (LBM). It is the first implementation of a generic platform for LBM programming, which is shared with the open source community (GPLv2). +The code is written in C++ and is used by application programmers as well as developers, with the ability to implement custom models +OpenLB supports complex data structures that allow simulations in complex geometries and parallel execution using MPI, OpenMP and CUDA on high-performance computers. +The source code uses the concepts of interfaces and templates, so that efficient, direct and intuitive implementations of the LBM become possible. +The efficiency and scalability has been checked and proved by code reviews. +A user manual and a source code documentation by DoxyGen are available on the project page. + + +== Functions == +OpenLB is being constantly developed. By now the following features are implemented: + +Computational fluid dynamics in complex geometry +Automatic generation of a grid +Turbulent flow +Multi-component flow +Thermal flow +Light radiation +Topology optimizing +Particle flow (Euler–Euler and Euler–Lagrange method) + + +== Automated grid generation == +Automated grid generation is one of the great advantages of OpenLB over other CFD software packages. The main advantages are listed below: + +Use of geometries in the STL file format or geometrically primitive forms (e.g. ball, cylinder, cone) and their union, intersection and difference +Very fast voxelization: 6003 ~ 1 minute +Handling non-watertight surfaces +Memory-friendly using octrees +Load distribution for parallel execution with MPI, OpenMP and CUDA. +The automatic grid generation can assume both an STL file as well as primitive geometries. For the geometry, a uniform and rectangular grid is created which encloses the entire space of the geometry. The superfluous grid cells are then removed and the remaining cuboids are shrunk to fit the given geometry. Finally, the grid is distributed to different threads or processors for the parallel execution of the simulation. The boundary conditions and start values can be set using material numbers. + + +== Literature == +Krause, Mathias J. and Latt, Jonas and Heuveline, Vincent. "Towards a hybrid parallelization of lattice Boltzmann methods." Computers & Mathematics with Applications 58.5 (2009): 1071–1080. +Heuveline, Vincent, and Mathias J. Krause. "OpenLB: towards an efficient parallel open source library for lattice Boltzmann fluid flow simulations." International Workshop on State-of-the-Art in Scientific and Parallel Computing. PARA. Vol. 9. 2010. +Krause, Mathias J., Thomas Gengenbach, and Vincent Heuveline. "Hybrid parallel simulations of fluid flows in complex geometries: Application to the human lungs." European Conference on Parallel Processing. Springer Berlin Heidelberg, 2010. +Krause, Mathias J. "Fluid flow simulation and optimisation with lattice Boltzmann methods on high performance computers: application to the human respiratory system." Karlsruhe Institute of Technology, KIT (2010). +Trunk, Robin, et al. "Inertial dilute particulate fluid flow simulations with an Euler–Euler lattice Boltzmann method." Journal of Computational Science (2016). +Mink, Albert, et al. "A 3D Lattice Boltzmann method for light simulation in participating media." Journal of Computational Science (2016). + + +== Awards == +Winner Mimics Innovation Award (2011) +Honorary certificate in the Group Humanitarian Impact, "Itanium® Solutions Alliance Innovation Awards" (2009) +Finalist in the Group Humanitarian Impact Innovation, "Itanium® Solutions Alliance Innovation Awards" (2007) + + +== See also == +List of computational fluid dynamics software + + +== References == + + +== External links == +Official website +Dynamic Cross Flow Filtration with OpenLB (YouTube Video) +OpenLB Trailer (YouTube Video) \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/OpenMS-0.md b/data/en.wikipedia.org/wiki/OpenMS-0.md new file mode 100644 index 000000000..7b715d4b8 --- /dev/null +++ b/data/en.wikipedia.org/wiki/OpenMS-0.md @@ -0,0 +1,48 @@ +--- +title: "OpenMS" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/OpenMS" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:59.650069+00:00" +instance: "kb-cron" +--- + +OpenMS is an open-source project for data analysis and processing in mass spectrometry and is released under the 3-clause BSD licence. It supports most common operating systems including Microsoft Windows, MacOS and Linux. + +OpenMS has tools for analysis of proteomics data, providing algorithms for signal processing, feature finding (including de-isotoping), visualization in 1D (spectra or chromatogram level), 2D and 3D, map mapping and peptide identification. It supports label-free and isotopic-label based quantification (such as iTRAQ and TMT and SILAC). OpenMS also supports metabolomics workflows and targeted analysis of DIA/SWATH data. Furthermore, OpenMS provides tools for the analysis of cross linking data, including protein-protein, protein-RNA and protein-DNA cross linking. Lastly, OpenMS provides tools for analysis of RNA mass spectrometry data. + + +== History == +OpenMS was originally released in 2007 in version 1.0 and was described in two articles published in Bioinformatics in 2007 and 2008 and has since seen continuous releases. +In 2009, the visualization tool TOPPView was published and in 2012, the workflow manager and editor TOPPAS was described. In 2013, a complete high-throughput label-free analysis pipeline using OpenMS 1.8 was described and compared with similar, proprietary software (such as MaxQuant and Progenesis QI). The authors conclude that "[...] all three software solutions produce adequate and largely comparable quantification results; all have some weaknesses, and none can outperform the other two in every aspect that we examined. However, the performance of OpenMS is on par with that of its two tested competitors [...]". +The OpenMS 1.10 release contained several new analysis tools, including OpenSWATH (a tool for targeted DIA data analysis), a metabolomics feature finder and a TMT analysis tool. Furthermore, full support for TraML 1.0.0 and the search engine MyriMatch were added. The OpenMS 1.11 release was the first release to contain fully integrated bindings to the Python programming language (termed pyOpenMS). In addition, new tools were added to support QcML (for quality control) and for metabolomics accurate mass analysis. Multiple tools were significantly improved with regard to memory and CPU performance. +With OpenMS 2.0, released in April 2015, the project provides a new version that has been completely cleared of GPL code and uses git (in combination with GitHub) for its version control and ticketing system. Other changes include support for mzIdentML, mzQuantML and mzTab while improvements in the kernel allow for faster access to data stored in mzML and provide a novel API for accessing mass spectrometric data. In 2016, the new features of OpenMS 2.0 were described in an article in Nature Methods. +In 2024, OpenMS 3.0 was released, providing support for a wide array of data analysis task in proteomics, metabolomics and MS-based transcriptomics. +OpenMS is currently developed with contributions from the group of Knut Reinert at the Free University of Berlin, the group of Oliver Kohlbacher at the University of Tübingen and the group of Hannes Roest at University of Toronto. + + +== Features == +OpenMS provides a set of over 100 different executable tools than can be chained together into pipelines for mass spectrometry data analysis (the TOPP Tools). It also provides visualization tools for spectra and chromatograms (1D), mass spectrometric heat maps (2D m/z vs RT) as well as a three-dimensional visualization of a mass spectrometry experiment. Finally, OpenMS also provides a C++ library (with bindings to Python available since 1.11) for LC/MS data management and analyses accessible to developers to create new tools and implement their own algorithms using the OpenMS library. OpenMS is free software available under the 3-clause BSD licence (previously under the LGPL). +Among others, it provides algorithms for signal processing, feature finding (including de-isotoping), visualization, map mapping and peptide identification. It supports label-free and isotopic-label based quantification (such as iTRAQ and TMT and SILAC). +The following graphical applications are part an OpenMS release: + +TOPPView is a viewer that allows visualization of mass spectrometric data on MS1 and MS2 level as well as in 3D; additionally it also displays chromatographic data from SRM experiments (in version 1.10). OpenMS is compatible with current and upcoming Proteomics Standard Initiative (PSI) formats for mass spectrometric data. +TOPPAS is a graphical application to build and execute data processing pipelines which consist of TOPP tools. + + +== Releases == + + +== See also == +ProteoWizard +Trans-Proteomic Pipeline +Mass spectrometry software + + +== References == + + +== External links == +OpenMS Project Homepage +OpenMS on GitHub \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Open_Source_Physics-0.md b/data/en.wikipedia.org/wiki/Open_Source_Physics-0.md new file mode 100644 index 000000000..9b74c7b11 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Open_Source_Physics-0.md @@ -0,0 +1,45 @@ +--- +title: "Open Source Physics" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Open_Source_Physics" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:12:55.634947+00:00" +instance: "kb-cron" +--- + +Open Source Physics, or OSP, is a project sponsored by the National Science Foundation and Davidson College, whose mission is to spread the use of open source code libraries that take care of a lot of the heavy lifting for physics: drawing and plotting, differential equation solvers, exporting to animated GIFs and movies, etc., tools, and compiled simulations for physics and other numerical simulations . The OSP collection provides curriculum resources that engage students in physics, computation, and computer modeling. The core library is in the Java programming language and licensed with GNU General Public License (GNU GPL or simply GPL) licenses. The site now serves over 10,000 visitors per month. The Open Source Physics Project is an extension of the Physlet Project. + + +== Sub-projects == +They have four projects with this purpose. + +OSP libraries: Java code libraries for numerical simulations. The OSP code library was created to meet the need by the broader science education community for a synthesis of curriculum development, computational physics, computer science, and physics education that will be useful for scientists and students wishing to write their own simulations and develop their own curricular material. OSP code library is described in the OSP User's Guide by Wolfgang Christian in An Introduction to Computer Simulation Methods by Harvey Gould, Jan Tobochnik, and Wolfgang Christian. +Easy Java Simulations (EJS) (New name: Easy JavaScript Simulations = EJSS): A free and open source computer-based modeling environment used to generate automatically Java and JavaScript code. Easy JavaScript Simulations is an authoring and modeling tool that allows users to create Java or JavaScript programs with minimal programming. EjsS creates programs that other people can easily inspect or modify. +Tracker: An open-source software video analysis and modeling tool designed for use in physics education and distributed under the GNU General Public License. In the context of physics education, video analysis means tracking the motions of objects in videos to obtain their 2-D position-time data and associated physical quantities such as velocity, acceleration, momentum and energy. Computerized video analysis has been used widely in physics education since the 1990s. By contrast, video modeling involves defining a theoretical model and drawing it as an animation directly on a video and was introduced only in 2009. Tracker has a built-in dynamic model builder to define particles that move according to Newton's laws. External models built with spreadsheets, Easy Java Simulations or other modeling program can also be used. Tracker also has a line profile tool for measuring light spectra and other optical phenomena. Tracker 1.0 was distributed on disc at the 2003 Summer Meeting of the American Association of Physics Teachers. The current version, 6.0, was released in 2021. +OSP Curricular Development: A set of programs, packages, and worksheets for the teaching of advanced physics topics. Many instructors do not teach (or do research in) computational physics. For these instructors they have made the various physical models available in an easily accessible, modifiable, and distributable form for teaching of physics. For convenience, OSP programs are almost always packaged in Java archive (jar) files. These jar files contain compiled code and resources such curricular materials, images, and data files. + + +== Awards == +In 2011, the project received an important award, the Science Prize for Online Resources in Education, or SPORE from Science magazine +In 2015, the project received the UNESCO King Hamad Bin Isa Al-Khalifa Prize for the Use of ICTs in Education [1] and Excellence Award Multimedia Physics Teaching and Learning Conference MPTL20 [2] In 2020, the project received the Excellence in Physics Education Award from the American Physical Society [3] + + +== References == + +Notes + + +== External links == +Official website of the Open Source Physics Project +Science education prize goes to Open Source Physics, By John Timmer +NTNUJAVA Virtual Physics Laboratory is the largest library of EJS simulations by Fu-Kwun Hwang +Open Educational Resources / Open Source Physics @ Singapore is the largest library of EJSS simulations outside USA by Loo Kang Lawrence WEE +Easy JavaScript Simulation website by Francisco Esquembre and Félix Jesús Garcia Clemente +Tracker website by Douglas Brown +Educational Resources - Simulations collection of EJS by Marcelo José Rodrigues and Paulo Simeão Carvalho +EJS collection collection of EJS by José Ignacio Fernández Palop +EJS collection collection of EJS by Juan M. Aguirregabiria +EJS collection by teachers in NS548 Computer Modeling course at Boston University. +EJS collection by Eugene Butikov +EJS collection by Andrew Duffy \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Orange_(software)-0.md b/data/en.wikipedia.org/wiki/Orange_(software)-0.md new file mode 100644 index 000000000..955872d25 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Orange_(software)-0.md @@ -0,0 +1,66 @@ +--- +title: "Orange (software)" +chunk: 1/2 +source: "https://en.wikipedia.org/wiki/Orange_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:03.222839+00:00" +instance: "kb-cron" +--- + +Orange is an open-source data visualization, machine learning and data mining toolkit. It features a visual programming front-end for exploratory qualitative data analysis and interactive data visualization. + +== Description == +Orange is a component-based visual programming software package for data visualization, machine learning, data mining, and data analysis. +Orange components are called widgets. They range from simple data visualization, subset selection, and preprocessing to empirical evaluation of learning algorithms +and predictive modeling. +Visual programming is implemented through an interface in which workflows are created by linking predefined or user-designed widgets, while advanced users can use Orange as a Python library for data manipulation and widget alteration. + +== Software == +Orange is an open-source software package released under GPL and hosted on GitHub. Versions up to 3.0 include core components in C++ with wrappers in Python. From version 3.0 onwards, Orange uses common Python open-source libraries for scientific computing, such as numpy, scipy and scikit-learn, while its graphical user interface operates within the cross-platform Qt framework. +The default installation includes a number of machine learning, preprocessing and data visualization algorithms in 6 widget sets (data, transform, visualize, model, evaluate and unsupervised). Additional functionalities are available as add-ons (text-mining, image analytics, bioinformatics, etc.). +Orange is supported on macOS, Windows and Linux and can also be installed from the Python Package Index repository (pip install Orange3). + +== Features == +Orange consists of a canvas interface onto which the user places widgets and creates a data analysis workflow. Widgets offer basic functionalities such as reading the data, showing a data table, selecting features, training predictors, comparing learning algorithms, visualizing data elements, etc. The user can interactively explore visualizations or feed the selected subset into other widgets. + +Canvas: graphical front-end for data analysis +Widgets: +Data: widgets for data input, data filtering, sampling, imputation, feature manipulation and feature selection +Visualize: widgets for common visualization (box plot, histograms, scatter plot) and multivariate visualization (mosaic display, sieve diagram). +Classify: a set of supervised machine learning algorithms for classification +Regression: a set of supervised machine learning algorithms for regression +Evaluate: cross-validation, sampling-based procedures, reliability estimation and scoring of prediction methods +Unsupervised: unsupervised learning algorithms for clustering (k-means, hierarchical clustering) and data projection techniques (multidimensional scaling, principal component analysis, correspondence analysis). + +== Add-ons == +Orange users can extend their core set of components with components in the add-ons. Supported add-ons include: + +Associate: components for mining frequent itemsets and association rule learning. +Bioinformatics: components for gene expression analysis, enrichment, and access to expression databases (e.g., Gene Expression Omnibus) and pathway libraries. +Data fusion: components for fusing different data sets, collective matrix factorization, and exploration of latent factors. +Educational: components for teaching machine learning concepts, such as k-means clustering, polynomial regression, stochastic gradient descent, ... +Explain: provides an extension with components for the model explanation, including Shapley value analysis +Geo: components for working with geospatial data. +Image analytics: components for working with images and ImageNet embeddings +Network: components for graph and network analysis. +Text mining: components for natural language processing and text mining. +Time series: widget components for time series analysis and modeling. +Single-cell: support for single-cell gene expression analysis, including components for loading single-cell data, filtering and batch effect removal, marker genes discovery, scoring of cells and genes, and cell type prediction. +Spectroscopy: components for analyzing and visualization of (hyper)spectral datasets. +Survival analysis: add-on for data analysis dealing with survival data. It includes widgets for standard survival analysis techniques, such as the Kaplan-Meier plot, the Cox regression model, and several derivative widgets. +World Happiness: support for downloading socioeconomic data from a database, including OECD and World Development Indicators. Provides access to thousands of country indicators from various economic databases. +Fairness: add-on for evaluation and creation of fair machine learning models without discrimination. Widgets range from computing fairness metrics like statistical parity to post-, pre-, in-processing methods to build fair models. + +== Objectives == +The program provides a platform for experiment selection, recommendation systems, and predictive modelling and is used in biomedicine, bioinformatics, genomic research, and teaching. In science, it is used as a platform for testing new machine learning algorithms and for implementing new techniques in genetics and bioinformatics. In education, it was used for teaching machine learning and data mining methods to students of biology, biomedicine, and informatics. + +== Extensions == +Various projects build on Orange either by extending the core components with add-ons or using only the Orange Canvas to exploit the implemented visual programming features and GUI. + +OASYS — ORange SYnchrotron Suite +scOrange — single cell biostatistics +Quasar — data analysis in natural sciences + +== History == +In 1996, the University of Ljubljana and Jožef Stefan Institute started development of ML*, a machine learning framework in C++, and Python bindings were developed for this framework in 1997, which, together with emerging Python modules, formed a joint framework called Orange. Over the following years, most contemporary major algorithms for data mining and machine learning were implemented in C++ (Orange's core) or Python modules. \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Orange_(software)-1.md b/data/en.wikipedia.org/wiki/Orange_(software)-1.md new file mode 100644 index 000000000..5d3099938 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Orange_(software)-1.md @@ -0,0 +1,46 @@ +--- +title: "Orange (software)" +chunk: 2/2 +source: "https://en.wikipedia.org/wiki/Orange_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:03.222839+00:00" +instance: "kb-cron" +--- + +In 2002, first prototypes to create a flexible graphical user interface were designed using Pmw Python megawidgets. +In 2003, the graphical user interface was redesigned and re-developed for Qt framework using PyQt Python bindings. The visual programming framework was defined, and the development of widgets (graphical components of the data analysis pipeline) began. +In 2005, extensions for data analysis in bioinformatics was created. +In 2008, Mac OS X DMG and Fink-based installation packages were developed. +In 2009, over 100 widgets were created and maintained. +In 2009, Orange 2.0 beta was released, offering installation packages on the website based on the daily compiling cycle. +In 2012, a new object hierarchy was imposed, replacing the old module-based structure. +In 2013, a significant redesign of the graphical user interface included a new toolbox and depiction of workflows. +In 2015, Orange 3.0 was released. Orange stores the data in NumPy arrays; machine learning algorithms mostly use scikit-learn. +In 2015, a text analysis add-on for Orange3 was released. +In 2016, Orange released version 3.3. Development scheduled a monthly cycle for stable releases. +In 2016, Orange began development and release of an Image Analytics add-on, with server-side deep neural networks for image embedding +In 2017, a Spectroscopy add-on for the analysis of spectral data was introduced. +In 2017, Geo, an add-on for dealing with geo-location data and visualisation of geo maps was introduced +In 2018, Orange began development and release of an add-on for single-cell data analysis. +In 2019, Orange separated its graphical interface for development as a separate project, orange-canvas-core +In 2020, Orange introduced the Explain add-on with widgets for explaining classification models and regression models, highlighting the strength and contributions specific features make towards predicting a specific class. +In 2022, World Happiness, an add-on for the Orange3 data mining suite, was introduced, providing widgets for accessing socioeconomic data from various databases such as World Happiness Report, World Development Indicators, OECD. +In 2022, Orange extended the Explain add-on with an Individual Conditional Expectation plot and the Permutation Feature Importance technique. +In 2023, Orange introduced the Fairness add-on, including widgets to calculate bias metrics, as well as widgets for pre-, post-, and in-processing methods, allowing the creation of models less susceptible to systematic error due to the vagaries of the data set. + +== See also == +Comparison of machine learning software + +== References == + +== Further reading == +Demšar, Janez and Blaž Zupan, Data Mining Fruitful and Fun - A Historical Perspective, Informatica 37, pgs. 55–60, (2013). +Mario Capurso, Data Acquisition, Cleaning, Analysis and Visualization with applications in the Orange Python-based environment, in Data Science and Engineering - A learning path Vol. 1 ISBN 979-8875798641. +Mario Capurso, Exploratory Data Analysis, Metrics, Models with applications in the Orange Python-based environment, in Data Science and Engineering - A learning path Vol. 2 ISBN 979-8874396145. + +== External links == +Official website +OASYS +scOrange +Quasar \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Orbit@home-0.md b/data/en.wikipedia.org/wiki/Orbit@home-0.md index 13df08791..ca8678d80 100644 --- a/data/en.wikipedia.org/wiki/Orbit@home-0.md +++ b/data/en.wikipedia.org/wiki/Orbit@home-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/Orbit@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:31.375026+00:00" +date_saved: "2026-05-05T10:13:04.412283+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Owl_Scientific_Computing-0.md b/data/en.wikipedia.org/wiki/Owl_Scientific_Computing-0.md new file mode 100644 index 000000000..c58ab3b34 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Owl_Scientific_Computing-0.md @@ -0,0 +1,61 @@ +--- +title: "Owl Scientific Computing" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Owl_Scientific_Computing" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:05.560226+00:00" +instance: "kb-cron" +--- + +Owl Scientific Computing is a software system for scientific and engineering computing developed in the Department of Computer Science and Technology, University of Cambridge. +The System Research Group (SRG) in the department recognises Owl as one of the representative systems developed in SRG in the 2010s. +The source code is licensed under the MIT License and can be accessed from the GitHub repository. +The library is mostly designed and developed in the functional programming language OCaml. As a unique functional programming language, OCaml offers runtime efficiency, flexible module system, static type checking, intelligent garbage collector, and powerful type inference. Owl inherits these features directly from OCaml. With Owl, users can write succinct type-safe numerical applications in a concise functional language without sacrificing performance. It speeds up the development life-cycle, and reduces the cost from prototype to production use. The system serves as the de facto tool for computation intensive tasks in OCaml. + + +== History == +Owl was developed when Dr. Liang Wang was working as a Post-Doc in the OCaml Labs. +Owl originated from a research project which studied the design of synchronous parallel machines for large-scale distributed computing in July 2016. +Back then the libraries for numerical computing in OCaml ecosystem were very limited and the tooling was fragmented at that time. In order to test various analytical applications, many numerical functions had to be implemented, from very low level algebra and random number generators to the high level stuff like algorithmic differentiation and deep neural networks. These code snippets started accumulating. These functions were later taken out and wrapped into a standalone library named Owl. +Owl's architecture undertook at least a dozen of iterations in the beginning, and some of the architectural changes are quite drastic. After one-year intensive development, Owl was capable of doing many complicated numerical tasks (e.g. image classification). Dr. Liang Wang held a tutorial at the CUFP 2017 to demonstrate data science in OCaml. +In 2018, Prof. Richard Mortier gave a talk about Owl in the Alan Turing Institute. +To further promote OCaml and functional programming in data science, Owl provides abundant learning materials in the form of a details manual. + + +== Design and features == +Owl has implemented many advanced numerical functions atop of its implementation of n-dimensional arrays. Compared to other numerical libraries, Owl is unique in many perspectives, e.g. algorithmic differentiation and distributed computing have been included as integral components in the core system to maximise developers' productivity. The figure below gives a bird view of Owl's system architecture. The subsystem on the left part is Owl's Numerical system. The modules contained in this subsystem fall into three categories. + +The first is core modules contains basic data structures, i.e., N-dimensional array (Ndarray) in both dense and sparse forms. The Ndarray module supports various number types: float32, float64, complex32, complex64, int16, int32, etc. +Also, the core module provide foreign function interfaces to other low level numerical libraries, such as CBLAS and LAPACK. These libraries are fully interfaced to the Linear Algebra module. +The second category is the classic analytics modules. This part contains basic mathematical and statistical functions, linear algebra, regression, optimisation, plotting, etc. +Advanced math and statistics functions such as statistical hypothesis testing and Markov chain Monte Carlo are also included. +As a core functionality, Owl provides the algorithmic differentiation (or automatic differentiation) and dynamic computation graph modules. +The highest level in the Owl architecture includes modules more advanced numerical applications such as neural network, natural language processing, data processing etc. +The Zoo system is used for efficient scripting and code sharing. +The modules in the second category, especially the algorithmic differentiation, make the code at this level quite concise. +The subsystem on the right is called Actor Subsystem which extends Owl's capability to parallel and distributed computing. The core idea is to transform a user application from sequential execution mode into parallel mode (using various computation engines) with minimal efforts. The method is to compose two subsystems together with functors to generate the parallel version of the module defined in the numerical subsystem. +Besides what have been mentioned in this figure, there are several other features in Owl. For example, the JavaScript and unikernel backends, integration with other frameworks such as TensorFlow and PyTorch, utilising GPU and other accelerator frameworks via symbolic graph, etc. + + +== Research == +The Owl project is research oriented, and supports research of numerical computing in multiple related topics. Some of its research topics are listed below. + +Synchronous parallel distributed machine learning design. Owl is the first to propose using sampling to synchronise nodes in iterative algorithms. The work published on arxiv comes with solid mathematical proof. This idea proves to be advanced and was later proposed in top Machine Learning conferences. +One of the factors that contribute to the small code base of Owl is that it builds advanced analytical functions around the algorithmic differentiation. This idea was also proves to be popular and develops into the paradigm of Differentiable programming. It is now being used in popular numerical packages such as JuliaDiff. +Using the computation graph offers another dimension optimization to the computation in Owl. Besides, the computation graph also bridges Owl application and hardware accelerators such as GPU and TPU. Later, the computation graph becomes a de facto intermediate representation. Standards such as the Open Neural Network Exchange and Neural Network Exchange Format are now widely supported by various deep learning frameworks such as TensorFlow and PyTorch. +The idea of service-level composition and serving was investigated in the Zoo subsystem of Owl. The prototype demonstrates the streamlining various stages in the code development including composition, test, distribution, validation, and deployment. It is very similar to the later MLOps concepts. Recently this topic attracts attention in top system conferences such as OSDI. +As result of research following part of these directions, Owl produces several publications. In 2018, a paper titled Data Analytics Service Composition and Deployment on Edge Devices is accepted at the ACM SIGCOMM 2018 Workshop on Big Data Analytics and Machine Learning for Data Communication Networks. +Two talks are also accepted at the OCaml Workshop of the International Conference on Functional Programming 2019, on the topics of numerical ordinary differential equation solving, +and executing Owl computation on GPUs. +An internship in the OCaml Labs investigates the topic of image segmentation and related memory optimisation in Owl. +In 2022, the book <> was published by Springer. +In 2023, the book <> was published by Apress. + + +== See also == +Array programming +List of numerical-analysis software + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/POEM@Home-0.md b/data/en.wikipedia.org/wiki/POEM@Home-0.md index 805752bc4..292b05212 100644 --- a/data/en.wikipedia.org/wiki/POEM@Home-0.md +++ b/data/en.wikipedia.org/wiki/POEM@Home-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/POEM@Home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:32.549396+00:00" +date_saved: "2026-05-05T10:13:10.235604+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Perl_Data_Language-0.md b/data/en.wikipedia.org/wiki/Perl_Data_Language-0.md new file mode 100644 index 000000000..90962b319 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Perl_Data_Language-0.md @@ -0,0 +1,57 @@ +--- +title: "Perl Data Language" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Perl_Data_Language" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:06.697937+00:00" +instance: "kb-cron" +--- + +Perl Data Language (abbreviated PDL) is a set of free software array programming extensions to the Perl programming language. PDL extends the data structures built into Perl, to include large multidimensional arrays, and adds functionality to manipulate those arrays as vector objects. It also provides tools for image processing, machine learning, computer modeling of physical systems, and graphical plotting and presentation. Simple operations are automatically vectorized across complete arrays, and higher-dimensional operations (such as matrix multiplication) are supported. + + +== Language design == +PDL is a vectorized array programming language: the expression syntax is a variation on standard mathematical vector notation, so that the user can combine and operate on large arrays with simple expressions. In this respect, PDL follows in the footsteps of the APL programming language, and it has been compared to commercial languages such as MATLAB and Interactive Data Language, and to other free languages such as NumPy and Octave. Unlike MATLAB and IDL, PDL allows great flexibility in indexing and vectorization: for example, if a subroutine normally operates on a 2-D matrix array, passing it a 3-D data cube will generally cause the same operation to happen to each 2-D layer of the cube. +PDL borrows from Perl at least three basic types of program structure: imperative programming, functional programming, and pipeline programming forms may be combined. Subroutines may be loaded either via a built-in autoload mechanism or via the usual Perl module mechanism. + + +== Graphics == + +True to the glue language roots of Perl, PDL borrows from several different modules for graphics and plotting support. NetPBM provides image file I/O (though FITS is supported natively). Gnuplot, PLplot, PGPLOT, and Prima modules are supported for 2-D graphics and plotting applications, and Gnuplot and OpenGL are supported for 3-D plotting and rendering. + + +== I/O == +PDL provides facilities to read and write many open data formats, including JPEG, PNG, GIF, PPM, MPEG, FITS, NetCDF, GRIB, raw binary files, and delimited ASCII tables. PDL programmers can use the CPAN Perl I/O libraries to read and write data in hundreds of standard and niche file formats. + + +== Machine learning == +PDL can be used for machine learning. It includes modules that are used to perform classic k-means clustering or general and generalized linear modeling methods such as ANOVA, linear regression, PCA, and logistic regression. Examples of PDL usage for regression modelling tasks include evaluating association between education attainment and ancestry differences of parents, comparison of RNA-protein interaction profiles that needs regression-based normalization and analysis of spectra of galaxies. + + +== perldl == +An installation of PDL usually comes with an interactive shell known as perldl, which can be used to perform simple calculations without requiring the user to create a Perl program file. A typical session of perldl would look something like the following: + +The commands used in the shell are Perl statements that can be used in a program with PDL module included. x is an overloaded operator for matrix multiplication, and p in the last command is a shortcut for print. + + +== Implementation == +The core of PDL is written in C. Most of the functionality is written in PP, a PDL-specific metalanguage that handles the vectorization of simple C snippets and interfaces them with the Perl host language via Perl's XS compiler. Some modules are written in Fortran, with a C/PP interface layer. Many of the supplied functions are written in PDL itself. PP is available to the user to write C-language extensions to PDL. There is also an Inline module (Inline::Pdlpp) that allows PP function definitions to be inserted directly into a Perl script; the relevant code is low-level compiled and made available as a Perl subroutine. +The PDL API uses the basic Perl 5 object-oriented functionality: PDL defines a new type of Perl scalar object (eponymously called a "PDL", or "ndarray") that acts as a Perl scalar, but that contains a conventional typed array of numeric or character values. All of the standard Perl operators are overloaded so that they can be used on PDL objects transparently, and PDLs can be mixed-and-matched with normal Perl scalars. Several hundred object methods for operating on PDLs are supplied by the core modules. + + +== See also == + +List of numerical-analysis software +List of open-source mathematical libraries + + +== References == + + +== External links == +Official website +PDL Quick Reference PDL Intro & resources +Tutorial lecture on PDL +Draft release of the PDL Book for PDL-2.006 +Example of PDL usage in the scientific literature \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Physics_Analysis_Workstation-0.md b/data/en.wikipedia.org/wiki/Physics_Analysis_Workstation-0.md new file mode 100644 index 000000000..2999eda6f --- /dev/null +++ b/data/en.wikipedia.org/wiki/Physics_Analysis_Workstation-0.md @@ -0,0 +1,55 @@ +--- +title: "Physics Analysis Workstation" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Physics_Analysis_Workstation" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:07.854449+00:00" +instance: "kb-cron" +--- + +The Physics Analysis Workstation (PAW) is an interactive, scriptable computer software tool for data analysis and graphical presentation in high-energy physics. +The development of this software tool started at CERN in 1986, it was optimized for the processing of very large amounts of data. It was based on and intended for inter-operation with components of CERNLIB, an extensive collection of Fortran libraries. +PAW had been a standard tool in high energy physics for decades, yet was essentially unmaintained. Despite continuing popularity as of 2008, it has been losing ground to the C++-based ROOT package. Conversion tutorials exist. In 2014, development and support were stopped. + + +== Sample script == +PAW uses its own scripting language. Here is sample code (with its actual output), which can be used to plot data gathered in files. + +* read data +vector/read X,Y input_file.dat + +* eps plot + +fort/file 55 gg_ggg_dsig_dphid_179181.eps +meta 55 -113 + +opt linx | linear scale +opt logy | logarithmic scale + +* here goes plot + +set plci 1 | line color +set lwid 2 | line width +set dmod 1 | line type (solid, dotted, etc.) +graph 32 X Y AL | 32 stands for input data lines in input file + +* plot title and comments + +set txci 1 +atitle '[f] (deg)' 'd[s]/d[f]! (mb)' + +set txci 1 +text 180.0 2e1 '[f]=179...181 deg' 0.12 + +close 55 + + +== References == + + +== External links == +PAW (at CERN) +The PAW History Seen by the CERN Computer News Letters +CERNLIB (at CERN) +ROOT (at CERN) \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Plotly-0.md b/data/en.wikipedia.org/wiki/Plotly-0.md new file mode 100644 index 000000000..60385072d --- /dev/null +++ b/data/en.wikipedia.org/wiki/Plotly-0.md @@ -0,0 +1,66 @@ +--- +title: "Plotly" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Plotly" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:09.001016+00:00" +instance: "kb-cron" +--- + +Plotly is a technical computing company headquartered in Montreal, Quebec, that develops online data analytics and visualization tools. Plotly provides online graphing, analytics, and statistics tools for individuals and collaboration, as well as scientific graphing libraries for Python, R, MATLAB, Perl, Julia, Arduino, JavaScript and REST. + + +== History == +Plotly was founded by Alex Johnson, Jack Parmer, Chris Parmer, and Matthew Sundquist. +The founders' backgrounds are in science, energy, and data analysis and visualization. Early employees include Christophe Viau, a Canadian software engineer and Ben Postlethwaite, a Canadian geophysicist. Plotly was named one of the Top 20 Hottest Innovative Companies in Canada by the Canadian Innovation Exchange. Plotly was featured in "startup row" at PyCon 2013, and sponsored the SciPy 2018 conference. +Plotly raised $5.5 million during its Series A funding, led by MHS Capital, Siemens Venture Capital, Rho Ventures, Real Ventures, and Silicon Valley Bank. +The Boston Globe and Washington Post newsrooms have produced data journalism using Plotly. In 2020, Plotly was named a Best Place to Work by the Canadian SME National Business Awards, and nominated as Business of the Year. + + +== Products == +Plotly offers open-source and enterprise products. + +Dash is an open-source Python, R, and Julia framework for building web-based analytic applications. Many specialized open-source Dash libraries exist that are tailored for building domain-specific Dash components and applications. Some examples are Dash DAQ, for building data acquisition GUIs to use with scientific instruments, and Dash Bio, which enables users to build custom chart types, sequence analysis tools, and 3D rendering tools for bioinformatics applications. +Dash Enterprise is Plotly's paid product for building, testing, deploying, managing and scaling Dash applications organization-wide. +Chart Studio Cloud is a free, online tool for creating interactive graphs. It has a point-and-click graphical user interface for importing and analyzing data into a grid and using stats tools. Graphs can be embedded or downloaded. +Chart Studio Enterprise is a paid product that allows teams to create, style, and share interactive graphs on a single platform. It offers expanded authentication and file export options, and does not limit sharing and viewing. +Data visualization libraries Plotly.js is an open-source JavaScript library for creating graphs and powers Plotly.py for Python, as well as Plotly.R for R, MATLAB, Node.js, Julia, and Arduino and a REST API. Plotly can also be used to style interactive graphs with Jupyter notebook. +Figure converters which convert matplotlib, ggplot2, and IGOR Pro graphs into interactive, online graphs. + + +== Data visualization libraries == +Plotly provides a collection of supported chart types across several programming languages: + + +== Dash == +Dash is a Python framework built on top of React, a JavaScript library. Dash also works for R, and most recently supports Julia. While still described as a Python framework, Python isn't used for the other languages: "... describing Dash as a Python framework misses a key feature of its design: the Python side (the back end/server) of Dash was built to be lightweight and stateless [allowing] multiple back-end languages to coexist on an equal footing". +It is possible to integrate D3.js charts as Dash components. Dash provides the default CSS (plus HTML and JavaScript), but for custom styling Dash applications, CSS can be added, or Dash Enterprise used. + + +=== Dash Enterprise === +Dash Enterprise is Plotly's paid product for building, testing, deploying, managing and scaling Dash applications organization-wide. The product integrates with enterprise IT systems to enable organizations to build, deploy and scale low-code Dash applications. With open-source Dash, analytic applications can be run from a local machine, but cannot be easily accessed by others in the organization. + + +==== Enterprise IT integration ==== +Dash Enterprise installs on cloud environments and on-premises. Amazon Web Services, Google Cloud Platform, and Microsoft Azure are supported, as are multiple Linux on-premises servers. +Authentication integrations include LDAP, AD, PKI, Okta, SAML, OAuth2, SSO, and email authentication, and Dash application access is managed through a GUI rather than code. +Dash Enterprise connects to major big data backends, including Salesforce, PostgreSQL, Databricks via PySpark, Snowflake, Dask, Datashader, and Vaex. In 2020, Plotly partnered with NVIDIA to integrate Dash with RAPIDS, and NVIDIA participated in Plotly's Series C funding round. + + +==== Low-code capabilities ==== +Dash Enterprise enables low-code development of Dash applications, which is not possible with open-source Dash. Enterprise users can write applications in multiple development environments, including Jupyter Notebook. Dash Enterprise ships with several “development engines” for drag-and-drop application editing, application design, and automated reporting, as well as dozens of artificial intelligence and machine learning application templates. + + +==== Deployment and scaling ==== +Dash application code is deployed to Dash Enterprise using the git-push command. Dash application deployments are containerized to avoid dependency conflicts, and can be embedded in existing web platforms without iframes. +Deployed applications can be managed and accessed in a single portal called App Manager, where administrators can control user authentication and view usage analytics. +Dash Enterprise scales horizontally with Kubernetes. Jobs queuing, GPU acceleration, and CPU parallelization support high performance computing requirements. +Plotly also offers professional services for application development and workshop training. + + +== References == + + +== External links == +Official website \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Predictor@home-0.md b/data/en.wikipedia.org/wiki/Predictor@home-0.md index 2ced44d7e..dbe28b22c 100644 --- a/data/en.wikipedia.org/wiki/Predictor@home-0.md +++ b/data/en.wikipedia.org/wiki/Predictor@home-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/Predictor@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:33.792142+00:00" +date_saved: "2026-05-05T10:13:11.432786+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/PrimeGrid-0.md b/data/en.wikipedia.org/wiki/PrimeGrid-0.md index 31f97d6b0..4bd8093e4 100644 --- a/data/en.wikipedia.org/wiki/PrimeGrid-0.md +++ b/data/en.wikipedia.org/wiki/PrimeGrid-0.md @@ -4,7 +4,7 @@ chunk: 1/2 source: "https://en.wikipedia.org/wiki/PrimeGrid" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:35.024524+00:00" +date_saved: "2026-05-05T10:13:12.640012+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/PrimeGrid-1.md b/data/en.wikipedia.org/wiki/PrimeGrid-1.md index 4787463ad..c191d7399 100644 --- a/data/en.wikipedia.org/wiki/PrimeGrid-1.md +++ b/data/en.wikipedia.org/wiki/PrimeGrid-1.md @@ -4,7 +4,7 @@ chunk: 2/2 source: "https://en.wikipedia.org/wiki/PrimeGrid" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:35.024524+00:00" +date_saved: "2026-05-05T10:13:12.640012+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Proteins@home-0.md b/data/en.wikipedia.org/wiki/Proteins@home-0.md index 8e965e5bf..7dc4e9216 100644 --- a/data/en.wikipedia.org/wiki/Proteins@home-0.md +++ b/data/en.wikipedia.org/wiki/Proteins@home-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/Proteins@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:36.209481+00:00" +date_saved: "2026-05-05T10:13:14.003094+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/ProteoWizard-0.md b/data/en.wikipedia.org/wiki/ProteoWizard-0.md new file mode 100644 index 000000000..805d07e98 --- /dev/null +++ b/data/en.wikipedia.org/wiki/ProteoWizard-0.md @@ -0,0 +1,27 @@ +--- +title: "ProteoWizard" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/ProteoWizard" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:15.181942+00:00" +instance: "kb-cron" +--- + +ProteoWizard is a set of open-source, cross-platform tools and libraries for proteomics data analyses. It provides a framework for unified mass spectrometry data file access and performs standard chemistry and LCMS dataset computations. Specifically, it is able to read many of the vendor-specific, proprietary formats and converting the data into an open data format. +On the application level, the software provides executables for data conversion (msConvert, msConvertGUI and idConvert), data visualization (msPicture and seeMS), data access (msAccess, msCat, idCat and msPicture), data analysis (peekaboo and msPrefix14) and basic proteomics utilities (chainsaw). In addition, the project also hosts the Skyline software which helps to create, acquire and analyze targeted proteomics experiments such as SRM experiments. +The main contributors to the project are the Tabb, MacCoss and Mallick research labs as well as Insilicos. + + +== See also == +OpenMS +Trans-Proteomic Pipeline +Mass spectrometry software +Skyline (software) + + +== References == + + +== External links == +Project Homepage \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Psychtoolbox_for_MATLAB-0.md b/data/en.wikipedia.org/wiki/Psychtoolbox_for_MATLAB-0.md new file mode 100644 index 000000000..f8f1f19a3 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Psychtoolbox_for_MATLAB-0.md @@ -0,0 +1,20 @@ +--- +title: "Psychtoolbox for MATLAB" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Psychtoolbox_for_MATLAB" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:16.339780+00:00" +instance: "kb-cron" +--- + +Psychophysics Toolbox Version 3 (PTB-3) is a collection of free functions for MATLAB or GNU Octave intended for use by neuroscience and vision researchers. It synthesizes and shows accurately controlled visual and auditory stimuli and interacts with the observer. It has at least twelve thousand active users, an active forum, and many citations. PTB-3 is based on the Psychophysics Toolbox Version 2 (PTB-2) but its MATLAB extensions (in C) were rewritten to be more modular and use OpenGL. Psychtoolbox is offered alongside many alternative toolboxes for programming Psychophysics and Psychology experiments, such as PsychoPy for Python or jsPsych for JavaScript. +Psychophysics Toolbox Version 3 is free software. Most of it is released under the MIT License, but parts of it are licensed under other open source and free software licenses. + + +== References == + + +== External links == +Official website +Psychtoolbox Forum \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Ptolemy_Project-0.md b/data/en.wikipedia.org/wiki/Ptolemy_Project-0.md new file mode 100644 index 000000000..f29c80c8c --- /dev/null +++ b/data/en.wikipedia.org/wiki/Ptolemy_Project-0.md @@ -0,0 +1,22 @@ +--- +title: "Ptolemy Project" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Ptolemy_Project" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:17.482780+00:00" +instance: "kb-cron" +--- + +The Ptolemy Project is an ongoing project aimed at modeling, simulating, and designing concurrent, real-time, embedded systems. The focus of the Ptolemy Project is on assembling concurrent components. The principal product of the project is the Ptolemy II model based design and simulation tool. The Ptolemy Project is conducted in the Industrial Cyber-Physical Systems Center (iCyPhy) in the Department of Electrical Engineering and Computer Sciences of the University of California, Berkeley, and is directed by Prof. Edward A. Lee. +The key underlying principle in the project is the use of well-defined models of computation that govern the interaction between components. A major problem area being addressed is the use of heterogeneous mixtures of models of computation. +The project is named after Claudius Ptolemaeus, the 2nd century Greek astronomer, mathematician, and geographer. +The Kepler Project, a community-driven collaboration among researchers at three other University of California campuses has created the Kepler scientific workflow system which is based on Ptolemy II. + + +== References == + + +== External links == +Official website +The Kepler Project \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Pwpaw-0.md b/data/en.wikipedia.org/wiki/Pwpaw-0.md new file mode 100644 index 000000000..0e3b48fea --- /dev/null +++ b/data/en.wikipedia.org/wiki/Pwpaw-0.md @@ -0,0 +1,20 @@ +--- +title: "Pwpaw" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Pwpaw" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:18.648838+00:00" +instance: "kb-cron" +--- + +PWPAW A Projector Augmented Wave (PAW) code for electronic structure calculation. It is a free software package, distributed under the copyleft GNU General Public License. It is a plane wave implementation of the projector augmented wave (PAW) method developed by Peter E. Blöchl for electronic structure calculations within the framework of density functional theory. In addition to the self-consistent calculation of the electronic structure of a periodic solid, the program has a number of other capabilities, including structural geometry optimization and molecular dynamics simulations within the Born–Oppenheimer approximation. + + +== See also == +Atompaw Software package for electron configuration calculations +EXCITING +Bloch's theorem + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/PyTorch-0.md b/data/en.wikipedia.org/wiki/PyTorch-0.md new file mode 100644 index 000000000..7d78b2f25 --- /dev/null +++ b/data/en.wikipedia.org/wiki/PyTorch-0.md @@ -0,0 +1,51 @@ +--- +title: "PyTorch" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/PyTorch" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:19.861916+00:00" +instance: "kb-cron" +--- + +PyTorch is an open-source deep learning library, originally developed by Meta Platforms and currently developed with support from the Linux Foundation. The successor to Torch, PyTorch provides a high-level API that builds upon optimised, low-level implementations of deep learning algorithms and architectures, such as the Transformer, or SGD. Notably, this API simplifies model training and inference to a few lines of code. PyTorch allows for automatic parallelization of training and, internally, implements CUDA bindings that speed training further by leveraging GPU resources. +PyTorch utilises the tensor as a fundamental data type, similarly to NumPy. Training is facilitated by a reversed automatic differentiation system, Autograd, that constructs a directed acyclic graph of the operations (and their arguments) executed by a model during its forward pass. With a loss, backpropagation is then undertaken. +As of 2025, PyTorch remains one of the most popular deep learning libraries, alongside others such as TensorFlow and Keras. It can be installed using Anaconda package managers. A number of commercial deep learning architectures are built on top of PyTorch, including ChatGPT, Tesla Autopilot, Uber's Pyro, and Hugging Face's Transformers. + + +== History == +In 2001, Torch was written and released under a GPL. It was a machine-learning library written in C++ and CUDA, supporting methods including neural networks, support vector machines (SVM), hidden Markov models, etc. Around 2010, it was rewritten by Ronan Collobert, Clement Farabet and Koray Kavuckuoglu. This was known as Torch7 or LuaTorch. This was written so that the backend was in C and the frontend was in Lua. In mid-2016, some developers refactored it to decouple the frontend and the backend, with strong influence from torch-autograd and Chainer. In turn, torch-autograd was influenced by HIPS/autograd. Development on Torch7 ceased in 2018 and was subsumed by the PyTorch project. +Meta (formerly known as Facebook) operates both PyTorch and Convolutional Architecture for Fast Feature Embedding (Caffe2), but models defined by the two frameworks were mutually incompatible. The Open Neural Network Exchange (ONNX) project was created by Meta and Microsoft in September 2017 to decouple deep learning frameworks from hardware-specific runtimes, allowing models to be converted between frameworks and optimized for execution providers like NVIDIA’s TensorRT. Caffe2 was merged into PyTorch at the end of March 2018. In September 2022, Meta announced that PyTorch would be governed by the independent PyTorch Foundation, a newly created subsidiary of the Linux Foundation. +PyTorch 2.0 was released on 15 March 2023, introducing TorchDynamo, a Python-level compiler that makes code run up to two times faster, along with significant improvements in training and inference performance across major cloud platforms. + + +== PyTorch tensors == + +PyTorch defines a class called Tensor (torch.Tensor) to store and operate on homogeneous multidimensional rectangular arrays of numbers. PyTorch supports various sub-types of multi-dimensional arrays, or Tensors. PyTorch Tensors are similar to NumPy Arrays, but can also be operated on by a CUDA-capable NVIDIA GPU. PyTorch has also been developing support for other GPU platforms, for example, AMD's ROCm and Apple's Metal Framework. + + +== PyTorch neural networks == + +PyTorch defines a module called nn (torch.nn) to describe neural networks and to support training. This module offers a comprehensive collection of building blocks for neural networks, including various layers and activation functions, enabling the construction of complex models. Networks are built by inheriting from the torch.nn module and defining the sequence of operations in the forward() function. + + +== Example == +The following program shows the low-level functionality of the library with a simple example. + +The following code block defines a neural network with linear layers using the nn module. + + +== See also == + +Comparison of deep learning software +Differentiable programming +DeepSpeed +Open-source artificial intelligence +PyTorch Lightning + + +== References == + + +== External links == +Official website \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/QMC@Home-0.md b/data/en.wikipedia.org/wiki/QMC@Home-0.md index 712efdfeb..d7c864006 100644 --- a/data/en.wikipedia.org/wiki/QMC@Home-0.md +++ b/data/en.wikipedia.org/wiki/QMC@Home-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/QMC@Home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:37.469914+00:00" +date_saved: "2026-05-05T10:13:21.032688+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Quake-Catcher_Network-0.md b/data/en.wikipedia.org/wiki/Quake-Catcher_Network-0.md index f55f1c5f9..f2754fc94 100644 --- a/data/en.wikipedia.org/wiki/Quake-Catcher_Network-0.md +++ b/data/en.wikipedia.org/wiki/Quake-Catcher_Network-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/Quake-Catcher_Network" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:38.652098+00:00" +date_saved: "2026-05-05T10:13:22.263846+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Quantum_ESPRESSO-0.md b/data/en.wikipedia.org/wiki/Quantum_ESPRESSO-0.md new file mode 100644 index 000000000..bcb221cc2 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Quantum_ESPRESSO-0.md @@ -0,0 +1,50 @@ +--- +title: "Quantum ESPRESSO" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Quantum_ESPRESSO" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:23.445932+00:00" +instance: "kb-cron" +--- + +Quantum ESPRESSO (Quantum Open-Source Package for Research in Electronic Structure, Simulation, and Optimization; QE) is a suite for first-principles electronic-structure calculations and materials modeling, distributed for free and as free software under the GNU General Public License. It is based on density functional theory (DFT), plane wave basis sets, and pseudopotentials (both norm-conserving and ultrasoft). +The core plane wave DFT functions of QE are provided by the PWscf component (PWscf previously existed as an independent project). PWscf (Plane-Wave Self-Consistent Field) is a set of programs for electronic structure calculations within DFT and density functional perturbation theory, using plane wave basis sets and pseudopotentials. The software is released under the GNU General Public License. +The latest stable version QE-7.4.1 was released on 14 March 2025. + + +== Quantum ESPRESSO Project == +Quantum ESPRESSO is an open initiative of the CNR-IOM DEMOCRITOS National Simulation Center in Trieste (Italy) and its partners, in collaboration with different centers worldwide such as MIT, Princeton University, the University of Minnesota and the École Polytechnique Fédérale de Lausanne. The project is coordinated by the QUANTUM ESPRESSO foundation, which was formed by many research centers and groups all over the world. The first version, called pw.1.0.0, was released on 15-06-2001. +The program is written mainly in Fortran-90 with some parts in C or in Fortran-77. It is composed of a set of core components, a set of plug-ins for advanced tasks, and a set of third-party packages. +The basic packages include Pwscf, which solves the self-consistent Kohn-Sham equations, obtained for a periodic solid, CP to carry out Car-Parrinello molecular dynamics, and PostProc, which allows data analysis and plotting. Noteworthy additional packages include atomic for pseudopotential generation, PHonon for density-functional perturbation theory (DFPT) and the calculation of second- and third-order derivatives of the energy with respect to atomic displacements, and NEB (nudged elastic band) for the calculation of reaction pathways and energy barriers. + + +== Target problems == +The different tasks that can be performed include + +Ground state calculations +Structural optimization +Transition states and minimum energy paths +Response properties (DFPT), such as phonon frequencies, electron-phonon interactions and EPR and NMR chemical shifts +Ab initio molecular dynamics: Car-Parrinello and Born-Oppenheimer MD +Spectroscopic properties +Quantum import +Generation of pseudopotentials + + +== Parallelization == +The main components of the Quantum ESPRESSO distribution are designed to exploit the architecture of today's supercomputers, which are characterized by multiple levels and layers of inter-processor communication. Parallelization is achieved using both MPI and OpenMP, allowing the main codes of the distribution to run in parallel on most or all parallel machines with very good performance. In recent years of development, Quantum ESPRESSO has increasingly adopted CUDA-based GPU acceleration across the different tools to improve performance. + + +== See also == + +Quantum chemistry computer programs +Density Functional Theory + + +== References == + + +== External links == +Official website +Website of Quantum ESPRESSO Foundation (QEF) \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Quarto_(software)-0.md b/data/en.wikipedia.org/wiki/Quarto_(software)-0.md new file mode 100644 index 000000000..9b3ec8da0 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Quarto_(software)-0.md @@ -0,0 +1,57 @@ +--- +title: "Quarto (software)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Quarto_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:24.596354+00:00" +instance: "kb-cron" +--- + +Quarto is a free and open-source scientific and technical publishing system developed by Posit PBC (formerly RStudio). It is a command-line tool built on Pandoc that converts plain text documents mixed with executable code including Python, R, Julia, and Observable JavaScript into static formats including PDF, HTML, MS Word, PowerPoint, ePub, RevealJS, and MediaWiki. +Quarto is considered the successor to R Markdown, extending support beyond the R ecosystem to support a broader range of data science languages and environments. + + +== History == +Quarto was officially announced in July 2022 at the `rstudio::conf(2022)` conference. The release coincided with the corporate rebranding of the developer from RStudio to Posit. This rebranding and the launch of Quarto reflected a strategic shift to support language-agnostic data science workflows, specifically acknowledging the growing adoption of Python alongside R in scientific research. + + +== Design and implementation == +Quarto is implemented as a Command Line Interface (CLI), which allows it to function independently of any specific Integrated Development Environment (IDE). However, extensions are available for IDEs such as RStudio, Visual Studio Code, and Jupyter. + + +=== File formats === +The native source format for Quarto uses the `.qmd` extension. These files are plain text files that combine Markdown with executable code blocks. Quarto can also render existing Jupyter Notebooks (`.ipynb`) into publication-quality documents without converting them to Markdown first. + + +== Functionality == +Quarto is designed to support reproducible research workflows. By integrating narrative and code into a single source file, the software is intended to ensure that analysis and reporting remain consistent. +Key features include: + +Scientific Publishing: Native support for academic citations, bibliographies, and cross-referencing of figures, tables, and equations. +Multi-format Output: A single source file can be rendered into dozens of formats, including HTML websites, PDF (via LaTeX), EPUB, and presentations (e.g., Reveal.js, Microsoft PowerPoint). + + +== Adoption == +Quarto has been adopted in various institutions for technical reporting, official statistics, open science workflows and documentation. + +The United States Geological Survey (USGS) has released templates and workflows for using Quarto to generate reproducible scientific manuscripts. +Fisheries and Oceans Canada utilizes Quarto for generating reproducible spatial reports. +The Deutsche Bundesbank (German Central Bank) integrates Quarto into its production of official statistics to automate "publication-ready visualisations." +The Bank for International Settlements (BIS) identifies Quarto as a standard platform for conducting deep, reproducible analysis in central banking. + + +== See also == + +Pandoc +RStudio +Jupyter +Literate programming + + +== References == + + +== External links == +Official website +Quarto CLI Source Code on GitHub \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/QuteMol-0.md b/data/en.wikipedia.org/wiki/QuteMol-0.md new file mode 100644 index 000000000..059de9470 --- /dev/null +++ b/data/en.wikipedia.org/wiki/QuteMol-0.md @@ -0,0 +1,37 @@ +--- +title: "QuteMol" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/QuteMol" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:25.744050+00:00" +instance: "kb-cron" +--- + +QuteMol is an open-source, interactive, molecular visualization system that was based on advanced rendering techniques that make possible to have for the first time a set of innovative visualization modalities in an interactive real-time application. QuteMol was the first system to use the capabilities of GPUs through OpenGL shaders to offer an array of innovative visual effects. QuteMol visualization techniques are aimed at improving clarity and an easier understanding of the 3D shape and structure of large molecules or complex proteins. +In 2021 the IEEE Visualization Conference awarded the paper introducing QuteMol with the Test of Time Award to testify that "contents are still vibrant and useful today and have had a major impact and influence within and beyond the visualization community." + +Features available in QuteMol include: + +Real Time ambient occlusion +Depth Aware Silhouette Enhancement +Ball and Sticks, space-filling and Liquorice visualization modes +High resolution antialiased snapshots for creating publication quality renderings +Interactive rendering of large molecules and protein (100k atoms) +Standard Protein Data Bank input. +Notably after many years since the last release QuteMol is still used in the molecular visualization community as can be testified by searching on google scholar for papers citing explicitly the tool or the paper for creating high quality images of molecules. + + +== See also == + +Molecular graphics +Molecular modeling on GPU +List of molecular graphics systems +List of free and open-source software packages + + +== References == + + +== External links == +QuteMol on SourceForge \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/ROOT-0.md b/data/en.wikipedia.org/wiki/ROOT-0.md new file mode 100644 index 000000000..ea02c746f --- /dev/null +++ b/data/en.wikipedia.org/wiki/ROOT-0.md @@ -0,0 +1,133 @@ +--- +title: "ROOT" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/ROOT" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:31.807619+00:00" +instance: "kb-cron" +--- + +ROOT is an object-oriented computer program and library developed by CERN. It was originally designed for particle physics data analysis and contains several features specific to the field, but it is also used in other applications such as astronomy and data mining. The latest minor release is 6.34, as of 2025-04-08. + + +== Description == +CERN maintained the CERN Program Library written in FORTRAN for many years. Its development and maintenance were discontinued in 2003 in favour of ROOT, which is written in the C++ programming language. +ROOT development was initiated by René Brun and Fons Rademakers in 1994. Some parts are published under the GNU Lesser General Public License (LGPL) and others are based on GNU General Public License (GPL) software, and are thus also published under the terms of the GPL. It provides platform independent access to a computer's graphics subsystem and operating system using abstract layers. Parts of the abstract platform are: a graphical user interface and a GUI builder, container classes, reflection, a C++ script and command line interpreter (CINT in version 5, cling in version 6), object serialization and persistence. +The packages provided by ROOT include those for + +Histogramming and graphing to view and analyze distributions and functions, +curve fitting (regression analysis) and minimization of functionals, +statistics tools used for data analysis, +matrix algebra, +four-vector computations, as used in high energy physics, +standard mathematical functions, +multivariate data analysis, e.g. using neural networks, +image manipulation, used, for instance, to analyze astronomical pictures, +access to distributed data (in the context of the Grid), +distributed computing, to parallelize data analyses, +persistence and serialization of objects, which can cope with changes in class definitions of persistent data, +access to databases, +3D visualizations (geometry), +creating files in various graphics formats, like PDF, PostScript, PNG, SVG, LaTeX, etc. +interfacing Python code in both directions, +interfacing Monte Carlo event generators. + +A key feature of ROOT is a data container called tree, with its substructures branches and leaves. A tree can be seen as a sliding window to the raw data, as stored in a file. Data from the next entry in the file can be retrieved by advancing the index in the tree. This avoids memory allocation problems associated with object creation, and allows the tree to act as a lightweight container while handling buffering invisibly. +ROOT is designed for high computing efficiency, as it is required to process data from the Large Hadron Collider's experiments estimated at several petabytes per year. As of 2009 ROOT is mainly used in data analysis and data acquisition in particle physics (high energy physics) experiments, and most current experimental plots and results in those subfields are obtained using ROOT. +The inclusion of a C++ interpreter (CINT until version 5.34, Cling from version 6.00) makes this package very versatile as it can be used in interactive, scripted and compiled modes in a manner similar to commercial products like MATLAB. +On July 4, 2012, the ATLAS and CMS LHC's experiments presented the status of the Standard Model Higgs search. All data plotting presented that day used ROOT. + + +== Applications == +Several particle physics collaborations have written software based on ROOT, often in favor of using more generic solutions (e.g. using ROOT containers instead of STL). + +Some of the running particle physics experiments using software based on ROOT +ALICE +ATLAS +BaBar experiment +Belle Experiment (an electron positron collider at KEK (Japan)) +Belle II experiment (successor of the Belle experiment) +BES III +CB-ELSA/TAPS +CMS +COMPASS experiment (Common Muon and Proton Apparatus for Structure and Spectroscopy) +CUORE (Cryogenic Underground Observatory for Rare Events) +D0 experiment + GlueX Experiment +GRAPES-3 (Gamma Ray Astronomy PeV EnergieS) +H1 (particle detector) at HERA collider at DESY, Hamburg +LHCb +MINERνA (Main Injector Experiment for ν-A) +MINOS (Main injector neutrino oscillation search) +NA61 experiment (SPS Heavy Ion and Neutrino Experiment) +NOνA +OPERA experiment +PHENIX detector +PHOBOS experiment at Relativistic Heavy Ion Collider +SNO+ +STAR detector (Solenoidal Tracker at RHIC) +T2K experiment +Future particle physics experiments currently developing software based on ROOT +Mu2e +Compressed Baryonic Matter experiment (CBM) +PANDA experiment (antiProton Annihilation at Darmstadt (PANDA)) +Deep Underground Neutrino Experiment (DUNE) +Hyper-Kamiokande (HK (Japan)) +Astrophysics (X-ray and gamma-ray astronomy, astroparticle physics) projects using ROOT +AGILE +Alpha Magnetic Spectrometer (AMS) +Antarctic Impulse Transient Antenna (ANITA) +ANTARES neutrino detector +CRESST (Dark Matter Search) +DMTPC +DEAP-3600/Cryogenic Low-Energy Astrophysics with Neon(CLEAN) +Fermi Gamma-ray Space Telescope +ICECUBE +HAWC +High Energy Stereoscopic System (H.E.S.S.) +Hitomi (ASTRO-H) +MAGIC +Milagro +Pierre Auger Observatory +VERITAS +PAMELA +POLAR +PoGOLite + + +== Criticisms == +Criticisms of ROOT include its difficulty for beginners, as well as various aspects of its design and implementation. Frequent causes of frustration include extreme code bloat, heavy use of global variables, and an overcomplicated class hierarchy. From time to time these issues are discussed on the ROOT users mailing list. While scientists dissatisfied with ROOT have in the past managed to work around its flaws, some of the shortcomings are regularly addressed by the ROOT team. The CINT interpreter, for example, has been replaced by the Cling interpreter, and numerous bugs are fixed with every release. + + +== See also == + +Matplotlib – a plotting and analysis system for Python +SciPy – a scientific data analysis system for Python, based on the NumPy classes +Perl Data Language – a set of array programming extensions to the Perl programming language +HippoDraw – an alternative C++-based data analysis system +Java Analysis Studio – a Java-based AIDA-compliant data analysis system +R programming language +AIDA (computing) – open interfaces and formats for particle physics data processing +Geant4 – a platform for the simulation of the passage of particles through matter using Monte Carlo methods +PAW +IGOR Pro +Scientific Linux +Scientific computing +OpenDX +OpenScientist +CERN Program Library – legacy program library written in Fortran77, still available but not updated + + +== References == + + +== External links == + +The ROOT System Home Page +Image galleries +ROOT User's Guide +ROOT Reference Guide +ROOT Forum +The RooFit Toolkit for Data Modeling, an extension to ROOT to facilitate maximum likelihood fits +The Toolkit for Multivariate Data Analysis with ROOT (TMVA) is a ROOT-integrated project providing a machine learning environment for the processing and evaluation of multivariate classification, both binary and multi class, and regression techniques targeting applications in high-energy physics (here or here). \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/RasMol-0.md b/data/en.wikipedia.org/wiki/RasMol-0.md new file mode 100644 index 000000000..1271e98e1 --- /dev/null +++ b/data/en.wikipedia.org/wiki/RasMol-0.md @@ -0,0 +1,46 @@ +--- +title: "RasMol" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/RasMol" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:26.941484+00:00" +instance: "kb-cron" +--- + +RasMol is a computer program written for molecular graphics visualization intended and used mainly to depict and explore biological macromolecule structures, such as those found in the Protein Data Bank (PDB). + + +== History == +It was originally developed by Roger Sayle in the early 1990s. +Historically, it was an important tool for molecular biologists since the extremely optimized program allowed the software to run on (then) modestly powerful personal computers. Before RasMol, visualization software ran on graphics workstations that, due to their cost, were less accessible to scholars. RasMol continues to be important for research in structural biology, and has become important in education. +RasMol has a complex licensing version history. Starting with the version 2.7 series, RasMol source code is dual-licensed under a GNU General Public License (GPL), or custom license RASLIC. Starting with version 2.7.5, a GPL is the only license valid for binary distributions. +RasMol includes a scripting language, to perform many functions such as selecting certain protein chains, changing colors, etc. Jmol and Sirius software have incorporated this language into their commands. +Protein Data Bank (PDB) files can be downloaded for visualization from members of the Worldwide Protein Data Bank (wwPDB). These have been uploaded by researchers who have characterized the structure of molecules usually by X-ray crystallography, protein NMR spectroscopy, or cryogenic electron microscopy. + + +== Interprocess communication == +Rasmol can communicate with other programs via Tcl/Tk on Unix platforms, and via Dynamic Data Exchange (DDE) on Microsoft Windows. +With a multiple sequence alignment program, the responsible Java class can be freely used in other applications. + + +== See also == + +List of molecular graphics systems +Comparison of software for molecular mechanics modeling +Molecular graphics +Molecule editor +List of free and open-source software packages + + +== References == + + +== External links == + +Official website +Download RasMol (production releases) +Source repository (stable) +Source repository (development) +Early +Later \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Rmetrics-0.md b/data/en.wikipedia.org/wiki/Rmetrics-0.md new file mode 100644 index 000000000..2deded25c --- /dev/null +++ b/data/en.wikipedia.org/wiki/Rmetrics-0.md @@ -0,0 +1,57 @@ +--- +title: "Rmetrics" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Rmetrics" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:28.611150+00:00" +instance: "kb-cron" +--- + +Rmetrics is a free and open-source software project designed for teaching computational finance. Rmetrics is based primarily on the statistical R programming language, but does contain contributions in other programming languages, such as Fortran, C, and C++. The project was started in 2001 by Diethelm Wuertz, based at the Swiss Federal Institute of Technology in Zurich. + + +== Rmetrics packages == +Most Rmetrics components are distributed as R packages, which are add-on modules for R. + + +== Goals == +The broad goals of the projects are: + +To provide widespread access to a broad range of powerful statistical and graphical methods for the analysis of market data and risk management in finance. +To provide a common software platform that enables the rapid development and deployment of extensible, scalable, and interoperable software. +To strengthen scientific understanding by producing high-quality documentation and reproducible research. +To train researchers on computational and statistical methods for the analysis of financial data and for financial risk management. + + +== R/Rmetrics project == +Rmetrics provides a high-level interpreted language, as well as data and model visualization capabilities. It allows for research in parallel statistical computing with an object oriented framework for computational finance, and financial engineering. + + +== Open source commitment == +The Rmetrics project has a commitment to full open source discipline, with distribution via a SourceForge.net-like platform. All software contributions are expected to exist under an open source license such as GPL2, Artistic 2.0, or BSD. There are many different reasons why open-source software is beneficial to a software project in finance, including: + +To provide full access to algorithms and their implementation +To facilitate software improvements through bug fixing and software extensions +To encourage good scientific computing and statistical practice by providing appropriate tools and instruction +To provide a workbench of tools that allows researchers to explore and expand the methods used to analyze biological data +To lead and encourage commercial support and development of those tools that are successful +To promote reproducible research by providing open and accessible tools with which to carry out that research (reproducible research is distinct from independent verification) +To encourage users to join the Rmetrics project, either by contributing Rmetrics compliant packages or documentation. + + +== Rmetrics Repository == +The Rmetrics Repository is hosted by R-forge. The following developers (in alphabetical order) contribute or have contributed to the Rmetrics packages: Andrew Ellis, Christophe Dutang, David Lüthi, David Scott, Diethelm Würtz, Francesco Gochez, Juri Hinz, Marco Perlin, Martin Mächler, Maxime Debon, Petr Savicky, Philipp Erb, Pierre Chausse, Sergio Guirreri, Spencer Graves, and Yohan Chalabi. + + +== Resources == +Wuertz, Diethelm; Chalabi, Yohan; Chen, William; Ellis, Andrew (2009). Portfolio Optimization with R/Rmetrics. Finance Online Publishing. ISBN 978-3-906041-01-8. + + +== See also == +Computational finance +R (programming language) + + +== External links == +Official website \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Rnn_(software)-0.md b/data/en.wikipedia.org/wiki/Rnn_(software)-0.md new file mode 100644 index 000000000..c86ab51fe --- /dev/null +++ b/data/en.wikipedia.org/wiki/Rnn_(software)-0.md @@ -0,0 +1,38 @@ +--- +title: "Rnn (software)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Rnn_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:30.648216+00:00" +instance: "kb-cron" +--- + +rnn is an open-source machine learning framework that implements recurrent neural network architectures, such as LSTM and GRU, natively in the R programming language, that has been downloaded over 100,000 times (from the RStudio servers alone). +The rnn package is distributed through the Comprehensive R Archive Network under the open-source GPL v3 license. + + +== Workflow == + +The below example from the rnn documentation show how to train a recurrent neural network to solve the problem of bit-by-bit binary addition. + + +== sigmoid == +The sigmoid functions and derivatives used in the package were originally included in the package, from version 0.8.0 onwards, these were released in a separate R package sigmoid, with the intention to enable more general use. The sigmoid package is a dependency of the rnn package and therefore automatically installed with it. + + +== Reception == +With the release of version 0.3.0 in April 2016 the use in production and research environments became more widespread. The package was reviewed several months later on the R blog The Beginner Programmer as "R provides a simple and very user friendly package named rnn for working with recurrent neural networks.", which further increased usage. +The book Neural Networks in R by Balaji Venkateswaran and Giuseppe Ciaburro uses rnn to demonstrate recurrent neural networks to R users. It is also used in the r-exercises.com course "Neural network exercises". +The RStudio CRAN mirror download logs + show that the package is downloaded on average about 2,000 per month from those servers +, with a total of over 100,000 downloads since the first release, according to RDocumentation.org, this puts the package in the 15th percentile of most popular R packages +. + + +== References == + + +== External links == +Repository on GitHub +rnn package on CRAN \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Rosetta@home-0.md b/data/en.wikipedia.org/wiki/Rosetta@home-0.md index 6ee186dd5..75036e36f 100644 --- a/data/en.wikipedia.org/wiki/Rosetta@home-0.md +++ b/data/en.wikipedia.org/wiki/Rosetta@home-0.md @@ -4,7 +4,7 @@ chunk: 1/6 source: "https://en.wikipedia.org/wiki/Rosetta@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:39.820169+00:00" +date_saved: "2026-05-05T10:13:33.048042+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Rosetta@home-1.md b/data/en.wikipedia.org/wiki/Rosetta@home-1.md index cd22e6b88..f255992f4 100644 --- a/data/en.wikipedia.org/wiki/Rosetta@home-1.md +++ b/data/en.wikipedia.org/wiki/Rosetta@home-1.md @@ -4,7 +4,7 @@ chunk: 2/6 source: "https://en.wikipedia.org/wiki/Rosetta@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:39.820169+00:00" +date_saved: "2026-05-05T10:13:33.048042+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Rosetta@home-2.md b/data/en.wikipedia.org/wiki/Rosetta@home-2.md index 73dded31c..ef1355c9d 100644 --- a/data/en.wikipedia.org/wiki/Rosetta@home-2.md +++ b/data/en.wikipedia.org/wiki/Rosetta@home-2.md @@ -4,7 +4,7 @@ chunk: 3/6 source: "https://en.wikipedia.org/wiki/Rosetta@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:39.820169+00:00" +date_saved: "2026-05-05T10:13:33.048042+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Rosetta@home-3.md b/data/en.wikipedia.org/wiki/Rosetta@home-3.md index 9e0a8f040..d16ba0e0d 100644 --- a/data/en.wikipedia.org/wiki/Rosetta@home-3.md +++ b/data/en.wikipedia.org/wiki/Rosetta@home-3.md @@ -4,7 +4,7 @@ chunk: 4/6 source: "https://en.wikipedia.org/wiki/Rosetta@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:39.820169+00:00" +date_saved: "2026-05-05T10:13:33.048042+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Rosetta@home-4.md b/data/en.wikipedia.org/wiki/Rosetta@home-4.md index 7a863ba74..3bab942a7 100644 --- a/data/en.wikipedia.org/wiki/Rosetta@home-4.md +++ b/data/en.wikipedia.org/wiki/Rosetta@home-4.md @@ -4,7 +4,7 @@ chunk: 5/6 source: "https://en.wikipedia.org/wiki/Rosetta@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:39.820169+00:00" +date_saved: "2026-05-05T10:13:33.048042+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Rosetta@home-5.md b/data/en.wikipedia.org/wiki/Rosetta@home-5.md index 1334b8287..3bed4af9d 100644 --- a/data/en.wikipedia.org/wiki/Rosetta@home-5.md +++ b/data/en.wikipedia.org/wiki/Rosetta@home-5.md @@ -4,7 +4,7 @@ chunk: 6/6 source: "https://en.wikipedia.org/wiki/Rosetta@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:39.820169+00:00" +date_saved: "2026-05-05T10:13:33.048042+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Rule-based_modeling-0.md b/data/en.wikipedia.org/wiki/Rule-based_modeling-0.md new file mode 100644 index 000000000..9c82d5fc9 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Rule-based_modeling-0.md @@ -0,0 +1,63 @@ +--- +title: "Rule-based modeling" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Rule-based_modeling" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:34.226929+00:00" +instance: "kb-cron" +--- + +Rule-based modeling is a modeling approach that uses a set of rules that indirectly specifies a mathematical model. The rule-set can either be translated into a model such as Markov chains or differential equations, or be treated using tools that directly work on the rule-set in place of a translated model, as the latter is typically much bigger. Rule-based modeling is especially effective in cases where the rule-set is significantly simpler than the model it implies, meaning that the model is a repeated manifestation of a limited number of patterns. An important domain where this is often the case is biochemical models of living organisms. Groups of mutually corresponding substances are subject to mutually corresponding interactions. +BioNetGen is a suite of software tools used to generate mathematical models consisting of ordinary differential equations without generating the equations directly. For example below is an example rule in the BioNetGen format: + + + + + A + ( + a + , + a + ) + + + B + ( + b + ) + − + > + A + ( + a + ! + 1 + ) + . + B + ( + b + ! + 1 + ) + + + {\displaystyle A(a,a)+B(b)->A(a!1).B(b!1)} + + +Where: + +A(a,a): Represents a model species A with two free binding sites a +B(b): Represents a model species B with one free binding site +A(a!1).B(b!1): Represents model species where at least one binding site of A is bound to the binding site of B +With the above line of code, BioNetGen will automatically create an ODE for each model species with the correct mass balance. Additionally, an additional species will be created because the rule above implies that two B molecules can bind to a single A molecule since there are two binding sites. Therefore, the following species will be generated: +4. A(a!1,a!2).B(b!1).B(b!2): Molecule A with both binding sites occupied by two different B molecules. + + +== For biochemical systems == +Early efforts to use rule-based modeling in simulation of biochemical systems include the stochastic simulation systems StochSim +A widely used tool for rule-based modeling of biochemical networks is BioNetGen It is released under the GNU GPL, version 3. BioNetGen includes a language to describe chemical substances, including the states they can assume and the bindings they can undergo. These rules can be used to create a reaction network model or to perform computer simulations directly on the rule set. The biochemical modeling framework Virtual Cell includes a BioNetGen interpreter. +A close alternative is the Kappa language. Another alternative is BioChemical Space language. + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/SETI@home-0.md b/data/en.wikipedia.org/wiki/SETI@home-0.md index ec3c420ad..009a6488c 100644 --- a/data/en.wikipedia.org/wiki/SETI@home-0.md +++ b/data/en.wikipedia.org/wiki/SETI@home-0.md @@ -4,7 +4,7 @@ chunk: 1/4 source: "https://en.wikipedia.org/wiki/SETI@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:43.457180+00:00" +date_saved: "2026-05-05T10:13:38.996090+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/SETI@home-1.md b/data/en.wikipedia.org/wiki/SETI@home-1.md index 7b1e82c53..e06ca1a77 100644 --- a/data/en.wikipedia.org/wiki/SETI@home-1.md +++ b/data/en.wikipedia.org/wiki/SETI@home-1.md @@ -4,7 +4,7 @@ chunk: 2/4 source: "https://en.wikipedia.org/wiki/SETI@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:43.457180+00:00" +date_saved: "2026-05-05T10:13:38.996090+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/SETI@home-2.md b/data/en.wikipedia.org/wiki/SETI@home-2.md index 0fc670919..e5be58523 100644 --- a/data/en.wikipedia.org/wiki/SETI@home-2.md +++ b/data/en.wikipedia.org/wiki/SETI@home-2.md @@ -4,7 +4,7 @@ chunk: 3/4 source: "https://en.wikipedia.org/wiki/SETI@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:43.457180+00:00" +date_saved: "2026-05-05T10:13:38.996090+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/SETI@home-3.md b/data/en.wikipedia.org/wiki/SETI@home-3.md index 48ea100cd..6e21194a5 100644 --- a/data/en.wikipedia.org/wiki/SETI@home-3.md +++ b/data/en.wikipedia.org/wiki/SETI@home-3.md @@ -4,7 +4,7 @@ chunk: 4/4 source: "https://en.wikipedia.org/wiki/SETI@home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:43.457180+00:00" +date_saved: "2026-05-05T10:13:38.996090+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/SETI@home_beta-0.md b/data/en.wikipedia.org/wiki/SETI@home_beta-0.md index 87c49a676..9d0159c6e 100644 --- a/data/en.wikipedia.org/wiki/SETI@home_beta-0.md +++ b/data/en.wikipedia.org/wiki/SETI@home_beta-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/SETI@home_beta" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:44.603904+00:00" +date_saved: "2026-05-05T10:13:40.213482+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/SIM.JS-0.md b/data/en.wikipedia.org/wiki/SIM.JS-0.md new file mode 100644 index 000000000..5b982e2df --- /dev/null +++ b/data/en.wikipedia.org/wiki/SIM.JS-0.md @@ -0,0 +1,29 @@ +--- +title: "SIM.JS" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/SIM.JS" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:45.220630+00:00" +instance: "kb-cron" +--- + +SIM.JS is an event-based discrete-event simulation library based on standard +JavaScript. The library has been written in order to enable simulation within standard browsers by utilizing web technology. +SIM.JS supports entities, resources (Facility, Buffers and Stores), communication (via Timers, Events and Messages) and statistics +(with Data Series, Time Series and Population statistics). +The SIM.JS distribution contains tutorials, in-depth documentation, and a large +number of examples. +SIM.JS is released as open source software under the LGPL license. The first version was released in January 2011. + + +== Example == +There are several examples bundled with the library download. Trafficlight simulation is a standard simulation problem, which may be simulated as within this example: + + +== External links == +Analysis of the potential role of open source discrete event simulation software in the manufacturing sector issued by Proceedings of the Operational Research Society Simulation Workshop 2012 comparing SIM.JS among other open source simulation solutions +Bachelor thesis on Web-Based Single-Player Project Simulation Game reviewing SIM.JS +Interactive Model-Centric Systems Engineering report by Systems Engineering Research Center managed by Stevens Institute of Technology mentioning SIM.JS +"Just-In-Time parallel simulation" compares simulation programmed in JIT languages versus AOT languages referencing SIM.JS +Modeling and Simulation of Tape Libraries for Hierarchical Storage Management Systems, Master Thesis reviewing DES frameworks, including SIM.JS \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/SLinCA@Home-0.md b/data/en.wikipedia.org/wiki/SLinCA@Home-0.md index 5a407e764..6c87a66f9 100644 --- a/data/en.wikipedia.org/wiki/SLinCA@Home-0.md +++ b/data/en.wikipedia.org/wiki/SLinCA@Home-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/SLinCA@Home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:47.012139+00:00" +date_saved: "2026-05-05T10:13:51.082867+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/SU2_code-0.md b/data/en.wikipedia.org/wiki/SU2_code-0.md new file mode 100644 index 000000000..9cea954cd --- /dev/null +++ b/data/en.wikipedia.org/wiki/SU2_code-0.md @@ -0,0 +1,120 @@ +--- +title: "SU2 code" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/SU2_code" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:57.043776+00:00" +instance: "kb-cron" +--- + +SU2 (formerly Stanford University Unstructured) is a suite of open-source software tools written in C++ and Python for the numerical solution of partial differential equations (PDE) and performing PDE-constrained optimization. While initially developed for aerodynamics and compressible flow, it has evolved into a general-purpose multiphysics framework capable of simulating incompressible and compressible flows across all Mach regimes, species transport, conjugate heat transfer and combustion. +The framework is specialized for gradient-based design optimization using integrated continuous and discrete adjoint solvers. A distinguishing feature for researchers is its use of algorithmic differentiation (AD) to provide exact discrete adjoint sensitivities for complex multiphysics chains, including fluid-structure interaction (FSI) and conjugate heat transfer. It supports unstructured meshes and offers extensibility through User Defined Functions (UDFs) and high-level Python wrappers. +To stimulate development and use of the software, the SU2 Foundation was established as a non-profit organization to coordinate the global community of users and developers. SU2 is released under the GNU Lesser General Public License (LGPL) version 2.1. + + +== Developers == +SU2 is being developed by individuals and organized teams around the world. The original SU2 Lead Developers are: Dr. Francisco Palacios and Dr. Thomas D. Economon. +The most active groups developing SU2 are: + +Prof. Juan J. Alonso's group at Stanford University. +Prof. Piero Colonna's group at Delft University of Technology. +Prof. Nicolas R. Gauger's group at Kaiserslautern University of Technology. +Prof. Alberto Guardone's group at Polytechnic University of Milan. +Prof. Rafael Palacios' group at Imperial College London. + + +=== Capabilities === +SU2 is a general-purpose multiphysics suite designed for the simulation of partial differential equations (PDE) on unstructured meshes. The framework is built to handle complex multi-physics interactions through a multi-zone approach, allowing different physical models to be solved in connected domains. Its current capabilities include: + +Flow Regimes: Compressible and incompressible solvers for Euler, Navier-Stokes, and RANS equations across all Mach regimes (low-speed to hypersonic). For low Mach incompressible flow problems, preconditioning methods are used. +Turbulence & Transition Modeling: +RANS Models: Includes several variants of the Spalart-Allmaras (SA) and Menter's Shear Stress Transport (SST) models, including curvature and rotation corrections (QCR).. The turbulence models include classical wall functions. +Scale-Resolving Methods: Support for Large eddy simulation (LES), Detached eddy simulation (DES), and Delayed Detached Eddy Simulation (DDES) for unsteady separated flows. +Transition Modeling: + + + + γ + − + R + + e + + θ + + + + + {\displaystyle \gamma -Re_{\theta }} + + transition model. +Design Optimization: Gradient-based shape optimization using integrated continuous and discrete adjoint solvers. It utilizes algorithmic differentiation (via CoDiPack) for exact sensitivities in complex multiphysics chains. +Topology Optimization: Gradient-based structural topology optimization with length scale control via black-white filters +Multiphysics & Structures: +Solid Mechanics: Solvers for linear elasticity to model structural deformation. +Thermal Analysis: Capability for conjugate heat transfer (CHT) to simulate heat exchange between fluid and solid regions. +Fluid-Structure Interaction (FSI): Static and dynamic coupling between fluid and structural solvers. +Chemistry & Hypersonics: +Combustion: Reacting flow modeling using the Flamelet generated manifold (FGM) method. +Hypersonics (NEMO): Simulation of high-enthalpy flows including thermo-chemical non-equilibrium and ionization with detailed chemistry modeling. +Advanced Numerics: Support for high-order Discontinuous Galerkin Method (DG) for improved accuracy in vortex-dominated simulations. +User Interface & Ecosystem: +SU2-GUI: A graphical user interface for mesh importation and solver configuration. +Automation: A high-level Python interface for workflow automation and support for User Defined Functions (UDFs). + + +== License == +SU2 is free and open source software, released under the GNU General Public License version 3 (SU2 v1.0 and v2.0) and GNU Lesser General Public License version 2.1 (SU2 v2.0.7 and later versions). + + +== Alternative software == + + +=== Free and open-source software === +Advanced Simulation Library (AGPL) +Code Saturne (GPL) +FreeFem++ +Gerris Flow Solver (GPL) +OpenFOAM + + +=== Proprietary software === +ADINA CFD +ANSYS CFX +ANSYS Fluent +Pumplinx +STAR-CCM+ +COMSOL Multiphysics +KIVA (software) +RELAP5-3D +SimScale + + +== References == + + +== External links == + + +=== Official resources === +SU2 home page +SU2 Github repository + + +=== Community resources === +SU2 Forum at CFD Online +SU2 wiki page at CFD Online + + +== Further reading == +Economon, T. D.; Palacios, F.; Copeland, S. R.; Lukaczyk, T. W.; Alonso, J. J. (March 2016). "SU2: An Open-Source Suite for Multiphysics Simulation and Design". AIAA Journal. 54 (3): 828–846. Bibcode:2016AIAAJ..54..828E. doi:10.2514/1.J053813. +Bluhdorn, J.; Gomes, P.; Aehle, M.; Gauger, N. (March 2025). "Hybrid parallel discrete adjoints in SU2". Computers & Fluids. 289 106528. doi:10.1016/j.compfluid.2024.106528. +Mayer, D.; Beishuizen, N.; Pitsch, H.; Economon, T. D.; Carrigan, T. (August 2024). "Automatic adjoint-based design optimization for laminar combustion applications". Fuel. 370 131751. Bibcode:2024Fuel..37031751M. doi:10.1016/j.fuel.2024.131751. +Rubino, A.; Vitale, S.; Colonna, P.; Pini, M. (2020). "Fully-turbulent adjoint method for the unsteady shape optimization of multi-row turbomachinery". Aerospace Science and Technology. 106 106132. Bibcode:2020AeST..10606132R. doi:10.1016/j.ast.2020.106132. + + +== External links == +Official website +SU2 Foundation – Official non-profit organization site +SU2 on GitHub – Source code and development repository \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/SciPy-0.md b/data/en.wikipedia.org/wiki/SciPy-0.md new file mode 100644 index 000000000..8e214f0fc --- /dev/null +++ b/data/en.wikipedia.org/wiki/SciPy-0.md @@ -0,0 +1,71 @@ +--- +title: "SciPy" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/SciPy" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:35.400057+00:00" +instance: "kb-cron" +--- + +SciPy (pronounced "sigh pie") is a free and open-source Python library used for scientific computing and technical computing. +SciPy contains modules for optimization, linear algebra, integration, interpolation, special functions, fast Fourier transform, signal and image processing, ordinary differential equation solvers and other tasks common in science and engineering. +SciPy is also a family of conferences for users and developers of these tools: SciPy (in the United States), EuroSciPy (in Europe) and SciPy.in (in India). Enthought originated the SciPy conference in the United States and continues to sponsor many of the international conferences as well as host the SciPy website. +The SciPy library is currently distributed under the BSD license, and its development is sponsored and supported by an open community of developers. It is also supported by NumFOCUS, a community foundation for supporting reproducible and accessible science. + + +== Components == +The SciPy package is at the core of Python's scientific computing capabilities. Available sub-packages include: + +cluster: hierarchical clustering, vector quantization, K-means +constants: physical constants and conversion factors +datasets: various example datasets for demonstrating image and data processing +differentiate: numerical differentiation for first and second derivatives +fft: Discrete Fourier Transform algorithms +fftpack: Legacy interface for Discrete Fourier Transforms +integrate: numerical integration routines +interpolate: interpolation tools +io: data input and output, including support for MATLAB and Matrix Market files +linalg: linear algebra routines +ndimage: various functions for multi-dimensional image processing +odr: orthogonal distance regression classes and algorithms +optimize: optimization algorithms including linear programming and a variety of numerical nonlinear programming optimizers +signal: signal processing tools +sparse: sparse matrices and related algorithms +spatial: algorithms for spatial structures such as k-d trees, nearest neighbors, convex hulls, etc. +special: special functions +stats: statistical functions + + +== Data structures == +The basic data structure used by SciPy is a multidimensional array provided by the NumPy module. NumPy provides some functions for linear algebra, Fourier transforms, and random number generation, but not with the generality of the equivalent functions in SciPy. NumPy can also be used as an efficient multidimensional container of data with arbitrary datatypes. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases. Older versions of SciPy used Numeric as an array type, which is now deprecated in favor of the newer NumPy array code. + + +== History == +In the 1990s, Python was extended to include an array type for numerical computing called Numeric. (This package was eventually replaced by NumPy, which was written by Travis Oliphant in 2006 as a blending of Numeric and Numarray, with Numarray itself being started in 2001.) As of 2000, there was a growing number of extension modules and increasing interest in creating a complete environment for scientific and technical computing. In 2001, Travis Oliphant, Eric Jones, and Pearu Peterson merged code they had written and called the resulting package SciPy. The newly created package provided a standard collection of common numerical operations on top of the Numeric array data structure. Shortly thereafter, Fernando Pérez released IPython, an enhanced interactive shell widely used in the technical computing community, and John Hunter released the first version of Matplotlib, the 2D plotting library for technical computing. Since then the SciPy environment has continued to grow with more packages and tools for technical computing. + + +== Scientific Python versus ScientificPython == +In the scientific literature, SciPy is occasionally referred to as "Scientific Python (SciPy)". This is incorrect: the official name of the project is just "SciPy". +Furthermore, expanding "SciPy" as "Scientific Python" may cause confusion with "ScientificPython", a project led by Konrad Hinsen of Orléans University that was active between 1995 and 2014. +"Scientific Python" is also used for the related ecosystem of tools. + + +== See also == + +List of numerical-analysis software +List of open-source mathematical libraries +Comparison of statistical packages +SageMath +HiGHS optimization solver + + +== Notes == + + +== Further reading == +Nunez-Iglesias, Juan; van der Walt, Stéfan; Dashnow, Harriet (2017). Elegant SciPy: The Art of Scientific Python. O'Reilly. ISBN 978-1-4919-2287-3. + + +== External links == +Official website \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Seasonal_Attribution_Project-0.md b/data/en.wikipedia.org/wiki/Seasonal_Attribution_Project-0.md index 0afbd389c..7eff1c8ed 100644 --- a/data/en.wikipedia.org/wiki/Seasonal_Attribution_Project-0.md +++ b/data/en.wikipedia.org/wiki/Seasonal_Attribution_Project-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/Seasonal_Attribution_Project" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:42.226732+00:00" +date_saved: "2026-05-05T10:13:36.622040+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Seismic_Unix-0.md b/data/en.wikipedia.org/wiki/Seismic_Unix-0.md new file mode 100644 index 000000000..8540a285e --- /dev/null +++ b/data/en.wikipedia.org/wiki/Seismic_Unix-0.md @@ -0,0 +1,63 @@ +--- +title: "Seismic Unix" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Seismic_Unix" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:37.762608+00:00" +instance: "kb-cron" +--- + +Seismic Unix is an open source seismic utilities package which was supported by the Center for Wave Phenomena (CWP) at the Colorado School of Mines (CSM). Currently it is supported by John Stockwell. + + + + +== History == +Einar Kjartansson began writing what is now called SU (the SY package) in the late 1970s while still a graduate student at Jon Claerbout's Stanford Exploration Project (SEP). He continued to expand the package while he was a professor at the University of Utah in the early eighties. In 1984, during an extended visit to SEP Kjartansson introduced SY to Shuki Ronen, then a graduate student at Stanford. Ronen further developed SY from 1984 to 1986. Other students at SEP started to use it and contributed code and ideas. SY was inspired by much other software developed at SEP and benefited from the foundations laid by Claerbout and many of his students; Rob Clayton, Stew Levin, Dave Hale, Jeff Thorson, Chuck Sword, and others who pioneered seismic processing on Unix in the seventies and early eighties. +In 1986, Shuki Ronen brought this work to the CWP at Colorado School of Mines during his one-year postdoctoral appointment there, Ronen aided Cohen in turning SU into a supportable and exportable product. +Chris Liner, while a student at the center, contributed to many of the graphics codes used in the pre-workstation (i.e., graphics terminal) age of SU. Liner continues to promote the use of SU in his students' research at the University of Houston. +Craig Artley, now with the Landmark division of Halliburton, made major contributions to the graphics codes while still a student at CWP and continues to make significant contributions to the general package. +Dave Hale wrote several of the heavy lifting processing codes as well as most of the core scientific and graphics libraries. +John Stockwell's involvement with SU began in 1989. He was largely responsible for the Makefile in the package. He has been the main contact for the project since the first public release of SU in September 1992 (Release 17). After Jack Cohen's death in 1996, Stockwell assumed the role of principal investigator of the SU project and has since remained in that role. The number of lines of code have more than tripled in the 11 years. +There have been many contributors to SU over the past two decades. + + +== Syntax == +The Seismic Unix routines run under the Unix terminal, and can get maximum efficiency when using it with Bourne shell (sh) or Bourne-again shell (bash) scripting techniques. + + +=== Simple routines === +Many of the programs run simply by a command on the terminal, for instance, to visualize a seismogram, as wiggle traces + +or as an image plot + + +=== More elaborated routines === +It is also possible, to use bash features to elaborate more complex processing structures: + +In the example above Seismic Unix will create 100 seismograms in 100 different source positions + + +== SU Data == +Here will have an explanation of how SU data is, it's headers and how they are organized in a big SU file with more than one gather: +--header—data—header—data--... + + +== SU Programs == +Seismic Unix has many of the processes needed on the geophysical processing. It is possible to use it to manipulate and create your own seismograms, and also to convert them between the SU standard file and the industry standard, the SEG Y. +Here you can find a list of the programs that the SU package has, with a brief description and a link to its help page. + + +== Awards == +2002 - Society of Exploration Geophysicists Special Commendation +1994 - University to Industry award from the Colorado chapter of the Technology Transfer Society + + +== References == + + +== See also == +SUguide Seismic Unix Install Guide (hosted in Brazilian page) +Seismic Unix wiki +New Seismic Unix wiki 2019 \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/ShelXle-0.md b/data/en.wikipedia.org/wiki/ShelXle-0.md new file mode 100644 index 000000000..b184eee06 --- /dev/null +++ b/data/en.wikipedia.org/wiki/ShelXle-0.md @@ -0,0 +1,43 @@ +--- +title: "ShelXle" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/ShelXle" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:41.339494+00:00" +instance: "kb-cron" +--- + +The program ShelXle is a graphical user interface for the structure refinement program SHELXL. ShelXle combines an editor with syntax highlighting for the SHELXL-associated .ins (input) and .res (output) files with an interactive graphical display for visualization of a three-dimensional structure including the electron density (Fo) and difference density (Fo-Fc) maps. + + +== Overview == +ShelXle can display electron density maps like the macromolecular program Coot but is more intended for smaller molecules. +A number of excellent graphical user interfaces (GUIs) exist for small molecule crystal structure refinement with SHELX (e.g., WINGX, Olex2, XSEED, PLATON and SYSTEM-S, and the Bruker programs XP and XSHELL) +ShelXle is free software, distributed under the GNU LGPL. It is available from the ShelXle website or from SourceForge. Binaries are available for Windows, macOS and the Linux distributions SuSE, Debian and Ubuntu as well as Arch via the AUR. +The Windows binary is distributed with the NSIS Installer. + + +== Features == +Editor featuring syntax highlighting and code completion for the SHELX instructions. +Clicking on an atom in the structure view sets the text cursor to the line that contains this atom. +Locating atoms in structure view from the editor. +Rename mode with support of residues and disordered parts and free variables. + + +== Program architecture == +ShelXle uses the Qt (framework). It is written entirely in C++ and does not use any scripting language. For the refinement it calls the external binary of SHELXL which might also be SHELXH, SHELXLMP from George M. Sheldrick or XL from Bruker. + + +== SHELX == +SHELX is developed by George M. Sheldrick since the late 1960s. Important releases are SHELX76 and SHELX97. It is still developed but releases are usually after ten years of testing. +Academic users can download the SHELX programs freely after registration. + + +== External links == +ShelXle web site +ShelXle support forum at xrayforum.co.uk +ShelXle at Sourceforge + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Shogun_(toolbox)-0.md b/data/en.wikipedia.org/wiki/Shogun_(toolbox)-0.md new file mode 100644 index 000000000..217a9a8c4 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Shogun_(toolbox)-0.md @@ -0,0 +1,64 @@ +--- +title: "Shogun (toolbox)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Shogun_(toolbox)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:42.507319+00:00" +instance: "kb-cron" +--- + +Shogun is a free, open-source machine learning software library written in C++. It offers numerous algorithms and data structures for machine learning problems. It offers interfaces for Octave, Python, R, Java, Lua, Ruby and C# using SWIG. +It is licensed under the terms of the GNU General Public License version 3 or later. + + +== Description == +The focus of Shogun is on kernel machines such as support vector machines for regression and classification problems. Shogun also offers a full implementation of Hidden Markov models. +The core of Shogun is written in C++ and offers interfaces for MATLAB, Octave, Python, R, Java, Lua, Ruby and C#. +Shogun has been under active development since 1999. Today there is a rich user community across the world using Shogun as a base for research and education, and contributing to the core package. + + +== Supported algorithms == +Currently Shogun supports the following algorithms: + +Support vector machines +Dimensionality reduction algorithms, such as PCA, Kernel PCA, Locally Linear Embedding, Hessian Locally Linear Embedding, Local Tangent Space Alignment, Linear Local Tangent Space Alignment, Kernel Locally Linear Embedding, Kernel Local Tangent Space Alignment, Multidimensional Scaling, Isomap, Diffusion Maps, Laplacian Eigenmaps +Online learning algorithms such as SGD-QN, Vowpal Wabbit +Clustering algorithms: k-means and GMM +Kernel Ridge Regression, Support Vector Regression +Hidden Markov Models +K-Nearest Neighbors +Linear discriminant analysis +Kernel Perceptrons. +Many different kernels are implemented, ranging from kernels for numerical data (such as gaussian or linear kernels) to kernels on special data (such as strings over certain alphabets). The currently implemented kernels for numeric data include: + +linear +gaussian +polynomial +sigmoid kernels +The supported kernels for special data include: + +Spectrum +Weighted Degree +Weighted Degree with Shifts +The latter group of kernels allows processing of arbitrary sequences over fixed alphabets such as DNA sequences as well as whole e-mail texts. + + +== Special features == +As Shogun was developed with bioinformatics applications in mind it is capable of processing huge datasets consisting of up to 10 million samples. Shogun supports the use of pre-calculated kernels. It is also possible to use a combined kernel i.e. a kernel consisting of a linear combination of arbitrary kernels over different domains. The coefficients or weights of the linear combination can be learned as well. For this purpose Shogun offers a multiple kernel learning functionality. + + +== See also == +Comparison of machine learning software + + +== References == +S. Sonnenburg, G. Rätsch, S. Henschel, C. Widmer, J. Behr, A. Zien, F. De Bona, A. Binder, C. Gehl and V. Franc: The SHOGUN Machine Learning Toolbox, Journal of Machine Learning Research, 11:1799−1802, June 11, 2010. +M. Gashler. Waffles: A Machine Learning Toolkit. Journal of Machine Learning Research, 12 (July):2383–2387, 2011. +P. Vincent, Y. Bengio, N. Chapados, and O. Delalleau. Plearn high-performance machine learning library. URL http://plearn.berlios.de/. + + +== External links == +Shogun toolbox homepage +shogun on GitHub +"SHOGUN". Freecode. \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Siconos-0.md b/data/en.wikipedia.org/wiki/Siconos-0.md new file mode 100644 index 000000000..64e2f15f2 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Siconos-0.md @@ -0,0 +1,55 @@ +--- +title: "Siconos" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Siconos" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:43.796765+00:00" +instance: "kb-cron" +--- + +SICONOS is an open source scientific software primarily targeted at +modeling and simulating non-smooth dynamical systems (NSDS): + +Mechanical systems (Rigid body or solid) with Unilateral contact and Coulomb friction as we find in Non-smooth mechanics, Contact dynamics or Granular material. +Switched Electrical Circuit such as Power converter, Rectifier, Phase-locked loop (PLL) or Analog-to-digital converter +Sliding mode control systems +Other applications are found in Systems and Control (hybrid systems, differential inclusions, optimal control with state constraints), Optimization (Complementarity problem and Variational inequality) Biology Gene regulatory network, Fluid Mechanics and Computer graphics, etc. + + +== Components == +The software is based on 3 main components + +Siconos/Numerics (C API). Collection of low-level algorithms for solving basic Algebra and optimization problems arising in the simulation of nonsmooth dynamical systems +Linear complementarity problem (LCP) +Mixed linear complementarity problem (MLCP) +Nonlinear complementarity problem (NCP) +Quadratic programming problems (QP) +Friction-contact problems (2D or 3D) (Second-order cone programming (SOCP)) +Primal or Dual Relay problems +Siconos/Kernel. API C++ that allows one to model and simulate the nonsmooth dynamical systems. It contains +Dynamical systems classes : first order one, Lagrangian systems, Newton-Euler systems +Nonsmooth laws : complementarity, Relay, Friction, Contact, impact +Siconos/Front-end (API Python) Mainly an auto-generated SWIG interface of the API C++ which a special support for data structure. + + +== Performance == +According to peer reviewed studies published by its developers, Siconos was approximately five times faster than Ngspice or ELDO (a commercial SPICE by Mentor Graphics) and 250 times faster than PLECS when solving a buck converter. + + +== See also == +Differential inclusion (an extension of the notion of differential equation) on which much of the NSDS theory relies +Non-smooth mechanics – Modeling approach in mechanics +Contact dynamics – Motion of multibody systems +Rigid body dynamics – Study of the effects of forces on undeformable bodies +Collision detection – Term in computer science +Complementarity theory +Stiffness – Differential equation exhibiting high rate of dissipation, which affects ODEs/DAEs for functions with "sharp turns" and which affects numerical convergence + + +== References == + + +== External links == +The official Siconos site +[1] other related publications \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/SimPy-0.md b/data/en.wikipedia.org/wiki/SimPy-0.md new file mode 100644 index 000000000..5353e4bb2 --- /dev/null +++ b/data/en.wikipedia.org/wiki/SimPy-0.md @@ -0,0 +1,24 @@ +--- +title: "SimPy" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/SimPy" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:47.593139+00:00" +instance: "kb-cron" +--- + +SimPy stands for “Simulation in Python”, is a process-based discrete-event simulation framework based on standard Python. It enables users to model active components such as customers, vehicles, or agents as simple Python generator functions. SimPy is released as open source software under the MIT License. The first version was released in December 2002. + + +== Overview == +Its event dispatcher is based on Python's generators and can be used for asynchronous networking or to implement multi-agent systems (with both, simulated and real communication). Simulations can be performed “as fast as possible”, in real time (wall clock time) or by manually stepping through the events. Though it is theoretically possible to do continuous simulations with SimPy, it lacks features to support them. However, for simulations with a fixed step size where processes don't interact with each other or with shared resources, a simple while loop is sufficient. +Additionally, SimPy provides different types of shared resources to simulate congestion points that have limited capacity, such as servers, checkout counters, and tunnels. In version 3.1 and above, SimPy offers monitoring capabilities to assist in collecting statistics about processes and resources. +SimPy 3.0 requires Python 3., while SimPy 4.0 requires Python 3.6+. SimPy distribution contains tutorials, documentation, and examples. + + +== Example == +The following is a SimPy simulation showing a clock process that prints the current simulation time at each step: + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/SimThyr-0.md b/data/en.wikipedia.org/wiki/SimThyr-0.md new file mode 100644 index 000000000..857eec163 --- /dev/null +++ b/data/en.wikipedia.org/wiki/SimThyr-0.md @@ -0,0 +1,43 @@ +--- +title: "SimThyr" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/SimThyr" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:48.776319+00:00" +instance: "kb-cron" +--- + +SimThyr is a free continuous dynamic simulation program for the pituitary-thyroid feedback control system. The open-source program is based on a nonlinear model of thyroid homeostasis. In addition to simulations in the time domain the software supports various methods of sensitivity analysis. Its simulation engine is multi-threaded and supports multiple processor cores. SimThyr provides a GUI, which allows for visualising time series, modifying constant structure parameters of the feedback loop (e.g. for simulation of certain diseases), storing parameter sets as XML files (referred to as "scenarios" in the software) and exporting results of simulations in various formats that are suitable for statistical software. SimThyr is intended for both educational purposes and in-silico research. + + +== Mathematical model == +The underlying model of thyroid homeostasis is based on fundamental biochemical, physiological and pharmacological principles, e.g. Michaelis-Menten kinetics, non-competitive inhibition and empirically justified kinetic parameters. The model has been validated in healthy controls and in cohorts of patients with hypothyroidism and thyrotoxicosis. + + +== Scientific uses == + +Multiple studies have employed SimThyr for in silico research on the control of thyroid function. +The original version was developed to check hypotheses about the generation of pulsatile TSH release. Later and expanded versions of the software were used to develop the hypothesis of the TSH-T3 shunt in the hypothalamus-pituitary-thyroid axis, to assess the validity of calculated parameters of thyroid homeostasis (including SPINA-GT and SPINA-GD) and to study allostatic mechanisms leading to non-thyroidal illness syndrome. +SimThyr was also used to show that the release rate of thyrotropin is controlled by multiple factors other than T4 and that the relation between free T4 and TSH may be different in euthyroidism, hypothyroidism and thyrotoxicosis. + + +== Public perception, reception and discussion of the software == +SimThyr is free and open-source software. This ensures the source code to be available, which facilitates scientific discussion and reviewing of the underlying model. Additionally, the fact that it is freely available may result in economical benefits. +The software provides an editor that enables users to modify most structure parameters of the information processing structure. This functionality fosters simulation of several functional diseases of the thyroid and the pituitary gland. Parameter sets may be stored as MIRIAM- and MIASE-compliant XML files. +On the other hand, the complexity of the user interface and the lack of the ability to model treatment effects have been criticized. + + +== See also == +Hypothalamic–pituitary–thyroid axis +Thyroid function tests + + +== References == + + +== External links == + +Official website of the SimThyr project +Curated information at Zenodo +Curated information at SciCrunch \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Similarity_Matrix_of_Proteins-0.md b/data/en.wikipedia.org/wiki/Similarity_Matrix_of_Proteins-0.md index 3a0f22303..084376543 100644 --- a/data/en.wikipedia.org/wiki/Similarity_Matrix_of_Proteins-0.md +++ b/data/en.wikipedia.org/wiki/Similarity_Matrix_of_Proteins-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/Similarity_Matrix_of_Proteins" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:45.815944+00:00" +date_saved: "2026-05-05T10:13:46.428893+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Skyline_(software)-0.md b/data/en.wikipedia.org/wiki/Skyline_(software)-0.md new file mode 100644 index 000000000..fab381c5e --- /dev/null +++ b/data/en.wikipedia.org/wiki/Skyline_(software)-0.md @@ -0,0 +1,26 @@ +--- +title: "Skyline (software)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Skyline_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:49.893321+00:00" +instance: "kb-cron" +--- + +Skyline is an open source software for targeted proteomics and metabolomics data analysis. It runs on Microsoft Windows and supports the raw data formats from multiple mass spectrometric vendors. It contains a graphical user interface to display chromatographic data for individual peptide or small molecule analytes. +Skyline supports multiple workflows including selected reaction monitoring (SRM) / multiple reaction monitoring (MRM), parallel reaction monitoring (PRM), data-independent acquisition (DIA/SWATH) and targeted data-dependent acquisition. + + +== See also == +ProteoWizard +OpenMS +Trans-Proteomic Pipeline +Mass spectrometry software + + +== References == + + +== External links == +Skyline Homepage \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/SpaCy-0.md b/data/en.wikipedia.org/wiki/SpaCy-0.md new file mode 100644 index 000000000..927a3b027 --- /dev/null +++ b/data/en.wikipedia.org/wiki/SpaCy-0.md @@ -0,0 +1,49 @@ +--- +title: "SpaCy" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/SpaCy" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:52.274523+00:00" +instance: "kb-cron" +--- + +spaCy ( spay-SEE) is an open-source software library for advanced natural language processing, written in the programming languages Python and Cython. The library is published under the MIT license and its main developers are Matthew Honnibal and Ines Montani, the founders of the software company Explosion. +Unlike NLTK, which is widely used for teaching and research, spaCy focuses on providing software for production usage. spaCy also supports deep learning workflows that allow connecting statistical models trained by popular machine learning libraries like TensorFlow, PyTorch or MXNet through its own machine learning library Thinc. Using Thinc as its backend, spaCy features convolutional neural network models for part-of-speech tagging, dependency parsing, text categorization and named entity recognition (NER). Prebuilt statistical neural network models to perform these tasks are available for 23 languages, including English, Portuguese, Spanish, Russian and Chinese, and there is also a multi-language NER model. Additional support for tokenization for more than 65 languages allows users to train custom models on their own datasets as well. + + +== History == +Version 1.0 was released on October 19, 2016, and included preliminary support for deep learning workflows by supporting custom processing pipelines. It further included a rule matcher that supported entity annotations, and an officially documented training API. +Version 2.0 was released on November 7, 2017, and introduced convolutional neural network models for 7 different languages. It also supported custom processing pipeline components and extension attributes, and featured a built-in trainable text classification component. +Version 3.0 was released on February 1, 2021, and introduced state-of-the-art transformer-based pipelines. It also introduced a new configuration system and training workflow, as well as type hints and project templates. This version dropped support for Python 2. + + +== Main features == +Non-destructive tokenization +"Alpha tokenization" support for over 65 languages +Built-in support for trainable pipeline components such as Named entity recognition, Part-of-speech tagging, dependency parsing, Text classification, Entity Linking and more +Statistical models for 19 languages +Multi-task learning with pretrained transformers like BERT +Support for custom models in PyTorch, TensorFlow and other frameworks +State-of-the-art speed and accuracy +Production-ready training system +Built-in visualizers for syntax and named entities +Easy model packaging, deployment and workflow management + + +== Extensions and visualizers == + +spaCy comes with several extensions and visualizations that are available as free, open-source libraries: + +Thinc: A machine learning library optimized for CPU usage and deep learning with text input. +sense2vec: A library for computing word similarities, based on Word2vec. +displaCy: An open-source dependency parse tree visualizer built with JavaScript, CSS and SVG. +displaCyENT: An open-source named entity visualizer built with JavaScript and CSS. + + +== References == + + +== External links == +Official website +Implementing Spacy Library \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Spatiotemporal_Epidemiological_Modeler-0.md b/data/en.wikipedia.org/wiki/Spatiotemporal_Epidemiological_Modeler-0.md new file mode 100644 index 000000000..b75804482 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Spatiotemporal_Epidemiological_Modeler-0.md @@ -0,0 +1,20 @@ +--- +title: "Spatiotemporal Epidemiological Modeler" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Spatiotemporal_Epidemiological_Modeler" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:53.464871+00:00" +instance: "kb-cron" +--- + +The Spatiotemporal Epidemiological Modeler (STEM) is free software available through the Eclipse Foundation. Originally developed by IBM Research, STEM is a framework and development tool designed to help scientists create and use spatial and temporal models of infectious disease. STEM uses a component software architecture based on the OSGi standard. The Eclipse Equinox platform is a reference implementation of that standard. By using a component software architecture, all of the components or elements required for a disease model, including the code and the data are available as software building blocks that can be independently exchanged, extended, reused, or replaced. These building blocks or plug-ins are called eclipse "plug-ins" or "extensions". STEM plug-ins contain denominator data for administrative regions of interest. The regions are indexed by standard (ISO3166) codes. +STEM currently includes a large number of plug-ins for the 244 countries and dependent areas defined by the Geographic Coding Standard maintained by the International Organization for Standardization. These plug-ins contain global data including geographic data, population data, demographics, and basic models of disease. The disease models distributed with STEM include epidemiological compartment models. Other plug-ins describe relationships between regions including nearest-neighbor or adjacency relationships as well as information about transportation, such as connections by roads and a model of air transportation. +Relationships between regions can then be included in models of how a disease spreads from place to place. To accomplish this, STEM represents the world as a "graph". The nodes in the graph correspond to places or regions, and the edges in the graph describe relationships or connections between regions. Both the nodes and the edges can be labeled or "decorated" with a variety of denominator data and models. This graphical representation is implemented using the Eclipse Modeling Framework (EMF). Since a model can be built up using separate subgraphs, STEM enables model composition. Predefined subgraphs defining different countries can be assembled with a drag and drop interface. New disease vectors can simply be added to existing models by augmenting the model with a new set of edges. The architecture also supports collaboration as users can not only create new models and compose new scenarios but also exchange these models and scenarios as reusable components and thereby build on each other's work. As an open source project, users are encouraged to create their own plug-ins (both data and models) and, if appropriate, to contribute their work back to the project. + + +== References == + + +== External links == +STEM \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Spinhenge@Home-0.md b/data/en.wikipedia.org/wiki/Spinhenge@Home-0.md index dc4102065..66b298d82 100644 --- a/data/en.wikipedia.org/wiki/Spinhenge@Home-0.md +++ b/data/en.wikipedia.org/wiki/Spinhenge@Home-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/Spinhenge@Home" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:48.161591+00:00" +date_saved: "2026-05-05T10:13:54.660926+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/Spyder_(software)-0.md b/data/en.wikipedia.org/wiki/Spyder_(software)-0.md new file mode 100644 index 000000000..379c627aa --- /dev/null +++ b/data/en.wikipedia.org/wiki/Spyder_(software)-0.md @@ -0,0 +1,74 @@ +--- +title: "Spyder (software)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Spyder_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:55.867629+00:00" +instance: "kb-cron" +--- + +Spyder is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, as well as other open-source software. Created by Pierre Raybaut and released in 2009 under the MIT license, since 2012 Spyder has been maintained and continuously improved by Python developers and the community. +Spyder is extensible with first-party and third-party plugins, and includes support for interactive tools for data inspection and embeds Python-specific code quality assurance and introspection instruments, such as Pyflakes, Pylint and Rope. Spyder uses Qt for its GUI and is designed to use either of the PyQt or PySide Python bindings. QtPy, a thin abstraction layer developed by the Spyder project and later adopted by multiple other packages, provides the flexibility to use either backend. + + +== History == +Initially created and developed by Pierre Raybaut, it was published on October 18, 2009 under the MIT license. +Since 2012 Spyder has been maintained and continuously improved by a team of scientific Python developers and the community. As of 2024, the Spyder website lists the Chan Zuckerberg Initiative and NumFOCUS as their two major sponsors, also noting donations received from users through Open Collective. Carlos Cordoba was listed as the lead maintainer of the software, with Daniel Althiz as co-maintainer. + + +== Software == +It is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, including NumPy, SciPy, Matplotlib, pandas, IPython, SymPy and Cython, as well as other open-source software. +Spyder is extensible with first-party and third-party plugins, includes support for interactive tools for data inspection and embeds Python-specific code quality assurance and introspection instruments, such as Pyflakes, Pylint and Rope. It is available cross-platform through Anaconda, on Windows, on macOS through MacPorts, and on major Linux distributions such as Arch Linux, Debian, Fedora, Gentoo Linux, openSUSE and Ubuntu. +Spyder uses Qt for its GUI and is designed to use either of the PyQt or PySide Python bindings. QtPy, a thin abstraction layer developed by the Spyder project and later adopted by multiple other packages, provides the flexibility to use either backend. + + +== Features == +Features include: + +An editor with syntax highlighting, introspection, code completion +Support for multiple IPython consoles +The ability to explore and edit variables from a GUI +A Help pane able to retrieve and render rich text documentation on functions, classes and methods automatically or on-demand +A debugger linked to IPdb, for step-by-step execution +Static code analysis, powered by Pylint +A run-time Profiler, to benchmark code +Project support, allowing work on multiple development efforts simultaneously +A built-in file explorer, for interacting with the filesystem and managing projects +A "Find in Files" feature, allowing full regular expression search over a specified scope +An online help browser, allowing users to search and view Python and package documentation inside the IDE +A history log, recording every user command entered in each console +An internal console, allowing for introspection and control over Spyder's own operation + + +== Plugins == +Available plugins include: + +Spyder-Unittest, which integrates the popular unit testing frameworks Pytest, Unittest and Nose with Spyder +Spyder-Notebook, allowing the viewing and editing of Jupyter Notebooks within the IDE +Download Spyder Notebook +Using conda: conda install spyder-notebook -c spyder-ide +Using pip: pip install spyder-notebook +Spyder-Reports, enabling use of literate programming techniques in Python +Spyder-Terminal, adding the ability to open, control and manage cross-platform system shells within Spyder +Download Spyder Terminal +Using conda: conda install spyder-terminal -c spyder-ide +Using pip: pip install spyder-terminal +Spyder-Vim, containing commands and shortcuts emulating the Vim text editor +Spyder-AutoPEP8, which can automatically conform code to the standard PEP 8 code style +Spyder-Line-Profiler and Spyder-Memory-Profiler, extending the built-in profiling functionality to include testing an individual line, and measuring memory usage + + +== See also == + +Comparison of integrated development environments for Python + + +== References == + + +== External links == + +Official website +Documentation +spyder on GitHub \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Tanagra_(machine_learning)-0.md b/data/en.wikipedia.org/wiki/Tanagra_(machine_learning)-0.md new file mode 100644 index 000000000..27e5104ea --- /dev/null +++ b/data/en.wikipedia.org/wiki/Tanagra_(machine_learning)-0.md @@ -0,0 +1,42 @@ +--- +title: "Tanagra (machine learning)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Tanagra_(machine_learning)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:58.200299+00:00" +instance: "kb-cron" +--- + +Tanagra is a free suite of machine learning software for research and academic purposes +developed by Ricco Rakotomalala at the Lumière University Lyon 2, France. +Tanagra supports several standard data mining tasks such as: Visualization, Descriptive statistics, Instance selection, feature selection, feature construction, regression, factor analysis, clustering, classification and association rule learning. +Tanagra is an academic project. It is widely used in French-speaking universities. Tanagra is frequently used in real studies and in software comparison papers. + + +== History == +The development of Tanagra was started in June 2003. The first version was distributed in December 2003. Tanagra is the successor of Sipina, another free data mining tool which is intended only for supervised learning tasks (classification), especially the interactive and visual construction of decision trees. Sipina is still available online and is maintained. +Tanagra is an "open source project" as every researcher can access the source code and add their own algorithms, as long as they agree and conform to the software distribution license. +The main purpose of the Tanagra project is to give researchers and students a user-friendly data mining software, conforming to the present norms of the software development in this domain (especially in the design of its GUI and the way to use it), and allowing the analyzation of either real or synthetic data. +From 2006, Ricco Rakotomalala made an important documentation effort. A large number of tutorials are published on a dedicated website. They describe the statistical and machine learning methods and their implementation with Tanagra on real case studies. The use of other free data mining tools on the same problems is also widely described. The comparison of the tools enables readers to understand the possible differences in the presentation of results. + + +== Description == + +Tanagra works similarly to current data mining tools. The user can design visually a data mining process in a diagram. Each node is a statistical or machine learning technique, the connection between two nodes represents the data transfer. But unlike the majority of tools which are based on the workflow paradigm, Tanagra is very simplified. The treatments are represented in a tree diagram. The results are displayed in an HTML format. This makes it is easy to export the outputs in order to visualize the results in a browser. It is also possible to copy the result tables to a spreadsheet. +Tanagra makes a good compromise between statistical approaches (e.g. parametric and nonparametric statistical tests), multivariate analysis methods (e.g. factor analysis, correspondence analysis, cluster analysis, regression) and machine learning techniques (e.g. neural network, support vector machine, decision trees, random forest). + + +== See also == + +Data mining +List of numerical analysis software + + +== References == + + +== External links == +Tanagra Project home page +Sipina Project home page +Free Statistical Software on StatPages.net \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/TheSkyNet-0.md b/data/en.wikipedia.org/wiki/TheSkyNet-0.md index 3a26e700b..e54750eb6 100644 --- a/data/en.wikipedia.org/wiki/TheSkyNet-0.md +++ b/data/en.wikipedia.org/wiki/TheSkyNet-0.md @@ -4,7 +4,7 @@ chunk: 1/1 source: "https://en.wikipedia.org/wiki/TheSkyNet" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:49.443078+00:00" +date_saved: "2026-05-05T10:14:01.318409+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/The_OpenMS_Proteomics_Pipeline-0.md b/data/en.wikipedia.org/wiki/The_OpenMS_Proteomics_Pipeline-0.md new file mode 100644 index 000000000..faf3e1939 --- /dev/null +++ b/data/en.wikipedia.org/wiki/The_OpenMS_Proteomics_Pipeline-0.md @@ -0,0 +1,20 @@ +--- +title: "The OpenMS Proteomics Pipeline" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/The_OpenMS_Proteomics_Pipeline" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:13:00.785237+00:00" +instance: "kb-cron" +--- + +The OpenMS Proteomics Pipeline (TOPP) is a set of computational tools that can be chained together to tailor problem-specific analysis pipelines for HPLC-MS data. It transforms most of the OpenMS functionality into small command line tools that are the building blocks for more complex analysis pipelines. The functionality of the tools ranges from data preprocessing (file format conversion, baseline reduction, noise reduction, peak picking, map alignment,...) over quantitation (isotope-labeled and label-free) to identification (wrapper tools for Mascot, Sequest, InsPecT and OMSSA). +TOPP is developed in the groups of Prof. Knut Reinert [1] at the Free University of Berlin and in the group of Prof. Kohlbacher [2] at the University of Tübingen. +For more detailed information about the TOPP tools, see the TOPP documentation of the latest release and the TOPP publication in the references. +The OpenMS Proteomics Pipeline is free software released under the 3-clause BSD license. + + +== References == + +Sturm, Marc; Bertsch, Andreas; Gröpl, Clemens; Hildebrandt, Andreas; Hussong, Rene; Lange, Eva; Pfeifer, Nico; Schulz-Trieglaff, Ole; Zerck, Alexandra; Reinert, Knut; Kohlbacher, Oliver (December 2008). "OpenMS – An open-source software framework for mass spectrometry". BMC Bioinformatics. 9 (1): 163. doi:10.1186/1471-2105-9-163. PMC 2311306. PMID 18366760. +Kohlbacher, O.; Reinert, K.; Gropl, C.; Lange, E.; Pfeifer, N.; Schulz-Trieglaff, O.; Sturm, M. (15 January 2007). "TOPP--the OpenMS proteomics pipeline". Bioinformatics. 23 (2): e191–e197. doi:10.1093/bioinformatics/btl299. PMID 17237091. \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Theano_(software)-0.md b/data/en.wikipedia.org/wiki/Theano_(software)-0.md new file mode 100644 index 000000000..facfd0a04 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Theano_(software)-0.md @@ -0,0 +1,58 @@ +--- +title: "Theano (software)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Theano_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:00.110578+00:00" +instance: "kb-cron" +--- + +Theano is a Python library and optimizing compiler for manipulating and evaluating mathematical expressions, especially matrix-valued ones. +In Theano, computations are expressed using a NumPy-esque syntax and compiled to run efficiently on either CPU or GPU architectures. + + +== History == +Theano is an open source project primarily developed by the Montreal Institute for Learning Algorithms (MILA) at the Université de Montréal. +The name of the software references the ancient philosopher Theano, long associated with the development of the golden mean. +On 28 September 2017, Pascal Lamblin posted a message from Yoshua Bengio, Head of MILA: major development would cease after the 1.0 release due to competing offerings by strong industrial players. Theano 1.0.0 was then released on 15 November 2017. +On 17 May 2018, Chris Fonnesbeck wrote on behalf of the PyMC development team that the PyMC developers will officially assume control of Theano maintenance once the MILA development team steps down. On 29 January 2021, they started using the name Aesara for their fork of Theano. +On 29 Nov 2022, the PyMC development team announced that the PyMC developers will fork the Aesara project under the name PyTensor. + + +== Sample code == +The following code is the original Theano's example. It defines a computational graph with 2 scalars a and b of type double and an operation between them (addition) and then creates a Python function f that does the actual computation. + + +== Examples == + + +=== Matrix Multiplication (Dot Product) === +The following code demonstrates how to perform matrix multiplication using Theano, which is essential for linear algebra operations in many machine learning tasks. + + +=== Gradient Calculation === +The following code uses Theano to compute the gradient of a simple operation (like a neuron) with respect to its input. This is useful in training machine learning models (backpropagation). + + +=== Building a Simple Neural Network === +The following code shows how to start building a simple neural network. This is a very basic neural network with one hidden layer. + + +=== Broadcasting in Theano === +The following code demonstrates how broadcasting works in Theano. Broadcasting allows operations between arrays of different shapes without needing to explicitly reshape them. + + +== See also == + +Comparison of deep learning software +Comparison of machine learning software +Differentiable programming + + +== References == + + +== External links == +Official website (GitHub) +Theano at Deep Learning, Université de Montréal \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/TomoPy-0.md b/data/en.wikipedia.org/wiki/TomoPy-0.md new file mode 100644 index 000000000..67b80e488 --- /dev/null +++ b/data/en.wikipedia.org/wiki/TomoPy-0.md @@ -0,0 +1,19 @@ +--- +title: "TomoPy" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/TomoPy" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:02.467149+00:00" +instance: "kb-cron" +--- + +TomoPy is an open-sourced Python toolbox to perform tomographic data processing and image reconstruction. + + +== Overview == +Tomographic reconstruction creates three-dimensional views of an object by combining two-dimensional images taken from multiple directions, for example in how a computer-aided tomography scanner allows 3D views of the heart or brain. Data collection can be rapid, but the required computations are massive. Further, many common experimental perturbations can degrade the quality of tomographs, unless corrections are applied. Unless automated tools make these corrections, beamline staff can be overwhelmed by data that can be collected far faster than corrections and reconstruction can be performed. +To address the needs for image correction and tomographic reconstruction in an instrument independent manner, the TomoPy code was developed, which is a parallelizable high performance tomography library. + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Trans-Proteomic_Pipeline-0.md b/data/en.wikipedia.org/wiki/Trans-Proteomic_Pipeline-0.md new file mode 100644 index 000000000..795c41a62 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Trans-Proteomic_Pipeline-0.md @@ -0,0 +1,33 @@ +--- +title: "Trans-Proteomic Pipeline" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Trans-Proteomic_Pipeline" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:04.020283+00:00" +instance: "kb-cron" +--- + +The Trans-Proteomic Pipeline (TPP) is an open-source data analysis software for proteomics developed at the Institute for Systems Biology (ISB) by the Ruedi Aebersold group under the Seattle Proteome Center. The TPP includes PeptideProphet, ProteinProphet, ASAPRatio, XPRESS and Libra. + + +== Software Components == + + +=== Probability Assignment and Validation === +PeptideProphet performs statistical validation of peptide-spectra-matches (PSM) using the results of search engines by estimating a false discovery rate (FDR) on PSM level. The initial PeptideProphet used a fit of a Gaussian distribution for the correct identifications and a fit of a gamma distribution for the incorrect identification. A later modification of the program allowed the usage of a target-decoy approach, using either a variable component mixture model or a semi-parametric mixture model. In the PeptideProphet, specifying a decoy tag will use the variable component mixture model while selecting a non-parametric model will use the semi-parametric mixture model. +ProteinProphet identifies proteins based on the results of PeptideProphet. +Mayu performs statistical validation of protein identification by estimating a false discovery rate (FDR) on protein level. + + +=== Spectral library handling === +The SpectraST tool is able to generate spectral libraries and search datasets using these libraries. + + +== See also == +OpenMS +ProteoWizard +Mass spectrometry software + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/UGENE-0.md b/data/en.wikipedia.org/wiki/UGENE-0.md new file mode 100644 index 000000000..495704130 --- /dev/null +++ b/data/en.wikipedia.org/wiki/UGENE-0.md @@ -0,0 +1,119 @@ +--- +title: "UGENE" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/UGENE" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:05.861173+00:00" +instance: "kb-cron" +--- + +UGENE is computer software for bioinformatics. It helps biologists to analyze various biological genetics data, such as sequences, annotations, multiple alignments, phylogenetic trees, NGS assemblies, and others. UGENE integrates dozens of well-known biological tools, algorithms, and original tools in the context of genomics, evolutionary biology, virology, and other branches of life science. +UGENE works on personal computer operating systems such as Windows, macOS, or Linux. It is released as free and open-source software, under a GNU General Public License (GPL) version 2. The data can be stored both locally and on shared/networked storage. The graphical user interface (GUI) provides access to pre-built tools so users with no computer programming experience can access those tools easily. UGENE also has a command-line interface to execute Workflows. +Using UGENE Workflow Designer, it is possible to streamline a multi-step analysis. The workflow consists of blocks such as data readers, blocks executing embedded tools and algorithms, and data writers. Blocks can be created with command line tools or a script. A set of sample workflows is available in the Workflow Designer, to annotate sequences, convert data formats, analyze NGS data, etc. +To improve performance, UGENE uses multi-core processors (CPUs) and graphics processing units (GPUs) to optimize a few algorithms. + + +== Key features == +The software supports the following features: + +Create, edit, and annotate nucleic acid and protein sequences +Fast search in a sequence +Multiple sequence alignment: Clustal W and O, MUSCLE, Kalign, MAFFT, T-Coffee +Create and use shared storage, e.g., lab database +Search through online databases: National Center for Biotechnology Information (NCBI), Protein Data Bank (PDB), UniProtKB/Swiss-Prot, UniProtKB/TrEMBL, DAS servers +Local and NCBI Genbank BLAST search +Open reading frame finder +Restriction enzyme finder with integrated REBASE restriction enzymes list +Integrated Primer3 package for PCR primer design +Plasmid construction and annotation +Cloning in silico by designing of cloning vectors +Genome mapping of short reads with Bowtie, BWA, and UGENE Genome Aligner +Visualize next generation sequencing data (BAM files) using UGENE Assembly Browser +Variant calling with SAMtools +RNA-Seq data analysis with Tuxedo pipeline (TopHat, Cufflinks, etc.) +ChIP-seq data analysis with Cistrome pipeline (MACS, CEAS, etc.) +Raw NGS data processing +HMMER 2 and 3 packages integration +Chromatogram viewer +Search for transcription factor binding sites (TFBS) with weight matrix and SITECON algorithms +Search for direct, inverted, and tandem repeats in DNA sequences +Local sequence alignment with optimized Smith-Waterman algorithm +Build (using integrated PHYLIP neighbor joining, MrBayes, or PhyML Maximum Likelihood) and edit phylogenetic trees +Combine various algorithms into custom workflows with UGENE Workflow Designer +Contigs assembly with CAP3 +3D structure viewer for files in Protein Data Bank (PDB) and Molecular Modeling Database (MMDB) formats, anaglyph view support +Predict protein secondary structure with GOR IV and PSIPRED algorithms +Construct dot plots for nucleic acid sequences +mRNA alignment with Spidey +Search for complex signals with ExpertDiscovery +Search for a pattern of various algorithms' results in a nucleic acid sequence with UGENE Query Designer +PCR in silico for primer designing and mapping +Spade de novo assembler + + +== Sequence View == +The Sequence View is used to visualize, analyze and modify nucleic acid or protein sequences. Depending on the sequence type and the options selected, the following views can be present in the Sequence View window: + +3D structure view +Circular view +Chromatogram view +Graphs View: GC-content, AG-content, and other +Dot plot view + + +== Alignment Editor == +The Alignment Editor allows working with multiple nucleic acid or protein sequences - aligning them, editing the alignment, analyzing it, storing the consensus sequence, building a phylogenetic tree, and so on. + + +== Phylogenetic Tree Viewer == +The Phylogenetic Tree Viewer helps to visualize and edit phylogenetic trees. It is possible to synchronize a tree with the corresponding multiple alignment used to build the tree. + + +== Assembly Browser == + +The Assembly Browser project was started in 2010 as an entry for Illumina iDEA Challenge 2011. The browser allows users to visualize and browse large (up to hundreds of millions of short reads) next generation sequence assemblies. It supports SAM, BAM (the binary version of SAM), and ACE formats. Before browsing assembly data in UGENE, an input file is converted to a UGENE database file automatically. This approach has its pros and cons. The pros are that this allows viewing the whole assembly, navigating in it, and going to well-covered regions rapidly. The cons are that a conversion may take time for a large file, and needs enough disk space to store the database. + + +== Workflow Designer == +UGENE Workflow Designer allows creating and running complex computational workflow schemas. +The distinguishing feature of Workflow Designer, relative to other bioinformatics workflow management systems is that workflows are executed on a local computer. It helps to avoid data transfer issues, whereas other tools’ reliance on remote file storage and internet connectivity does not. +The elements that a workflow consists of correspond to the bulk of algorithms integrated into UGENE. Using Workflow Designer also allows creating custom workflow elements. The elements can be based on a command-line tool or a script. +Workflows are stored in a special text format. This allows their reuse, and transfer between users. +A workflow can be run using the graphical interface or launched from the command line. The graphical interface also allows controlling the workflow execution, storing the parameters, and so on. +There is an embedded library of workflow samples to convert, filter, and annotate data, with several pipelines to analyze NGS data developed in collaboration with NIH NIAID. A wizard is available for each workflow sample. + + +== Supported biological data formats == +Sequences and annotations: FASTA (.fa), GenBank (.gb), EMBL (.emb), GFF (.gff) +Multiple sequence alignments: Clustal (.aln), MSF (.msf), Stockholm (.sto), Nexus (.nex) +3D structures: PDB (.pdb), MMDB (.prt) +Chromatograms: ABIF (.abi), SCF (.scf) +Short reads: Sequence Alignment/Map(SAM) (.sam), binary version of SAM (.bam), ACE (.ace), FASTQ (.fastq) +Phylogenetic trees: Newick (.nwk), PHYLIP (.phy) +Other formats: Bairoch (enzymes info), HMM (HMMER profiles), PWM and PFM (position matrices), SNP and VCF4 (genome variations) + + +== Release cycle == +UGENE is primarily developed by Unipro LLC with headquarters in Akademgorodok of Novosibirsk, Russia. Each iteration lasts about 1–2 months, followed by a new release. Development snapshots may also be downloaded. +The features to include in each release are mostly initiated by users. + + +== See also == +Sequence alignment software +Bioinformatics +Computational biology +List of open source bioinformatics software + + +== References == + + +== External links == +Official website +Official website, UniPro +UGENE podcast Archived 2011-02-10 at the Wayback Machine +UGENE documentation Archived 2008-09-14 at the Wayback Machine +UGENE forum Archived 2011-02-10 at the Wayback Machine +Лучший свободный проект России | Журнал Linux Format - все о Linux по-русски Archived 2010-12-28 at the Wayback Machine +permanent dead link] \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/VCell-0.md b/data/en.wikipedia.org/wiki/VCell-0.md new file mode 100644 index 000000000..160c34b44 --- /dev/null +++ b/data/en.wikipedia.org/wiki/VCell-0.md @@ -0,0 +1,61 @@ +--- +title: "VCell" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/VCell" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:07.768630+00:00" +instance: "kb-cron" +--- + +VCell (Virtual Cell) is an open-source software platform for modeling and simulation of living organisms, primarily cells. It has been designed to be a tool for a wide range of scientists, from experimental cell biologists to theoretical biophysicists. + + +== Concept == +VCell is an advanced software platform for modeling and simulating reaction kinetics, membrane transport and diffusion in the complex geometries of cells and multicellular tissues. VCell models have a hierarchical tree structure. The trunk level is the "Physiology" consisting of compartments, species and chemical reactions, and reaction rates that are functions of concentrations. Given initial concentrations of species, VCell can calculate how these concentrations change over time. How these numerical simulations are performed, is determined through a number of "Applications", which specify whether simulations will be deterministic or stochastic, and spatial or compartmental; multiple "Applications" can also specify initial concentrations, diffusion coefficients, flow rates and a variety of modeling assumptions. Thus "Applications" can be viewed as computational experiments to test ideas about the physiological system. Each "Application" corresponds to a mathematical description, which is automatically translated into the VCell Math Description Language. Multiple "Simulations", including parameter scans and changes in solver specifications, can be run within each "Application". +Models can range from the simple to the highly complex, and can represent a mixture of experimental data and purely theoretical assumptions. +VCell can be used as a distributed application over the Internet or as a standalone application. The graphical user interface allows construction of complex models in biologically relevant terms: compartment dimensions and shape, molecular characteristics, and interaction parameters. VCell converts the biological description into an equivalent mathematical system of differential equations. Users can switch back-and-forth between the schematic biological view and the mathematical view in the common graphical interface. Indeed, if users desire, they can manipulate the mathematical description directly, bypassing the schematic view. VCell allows users a choice of numerical solvers to translate the mathematical description into software code which is executed to perform the simulations. The results can be displayed on-line, or they can be downloaded to the user's computer in a wide variety of export formats. The Virtual Cell license allows free access to all members of the scientific community. +Users may save their models in the VCell DataBase, which is maintained on servers at U. Connecticut. The VCell Database uses an access control system with permissions to allow users to maintain their models private, share them with select collaborators or make them public. The VCell website maintains a searchable list of models that are public and associated with research publications. + + +== Features == +VCell supports the following features: + +Within the "Physiology", models can be specified as reaction networks or reaction rules. +Simulations can be chosen to either resolve variations of concentrations over space (spatial simulations) or assume concentrations constant across compartments (compartmental simulations). +For spatial simulations, geometries can be specified by analytic geometry equations, derived from combination of simple shapes or derived from imported images, such as 3D confocal microscope stacks. Utilities for 3D segmentation of image data into regions such as nucleus, mitochondria, cytosol and extracellular are provided. +Simulations can be based on either integration of differential equations without use of random numbers (deterministic simulations) or be based on random events (stochastic simulations). +Simulations can be run using a variety of solvers including: 6 ordinary differential equation (ODE) solvers, 2 partial differential equation (PDE) solvers, 4 non-spatial stochastic solvers and Smoldyn for stochastic spatial simulations. VCell also offers a hybrid deterministic/stochastic spatial solver for situations where some species are present in low copy number and others are present in high copy number. Most recently, a network free solver, NFSim, was made available for stochastic simulation of large combinatorially complex rule-based models. Most solvers can be run locally, all solvers can be run remotely on VCell servers. +For compartmental deterministic models, the best parameter values to fit experimental data can be estimated using algorithms developed by the COPASI software system. These tools are available in VCell. +Models and simulation setups (so-called Applications) can be stored in local files as Virtual Cell Markup Language (VCML) or stored remotely in the VCell database. +Models can be imported and exported as Systems Biology Markup Language (SBML) +Biological pathways can be imported as Biological Pathway Exchange (BioPAX) to build and annotate models. + + +== Biological and related data sources == +VCell allows users integrated access to a variety of sources to help build and annotate models: + +Models stored in the VCell database can be made accessible by their authors to some users (shared) or all users (public). +VCell can import models from the BioModels Database. +Biological pathways can be imported from Pathway Commons. +Model elements can be annotated with IDs from Pubmed UniProt (proteins) KEGG (reactions and species) GeneOntology (reactions and species), Reactome (reactions and species) and ChEBI (mostly small molecules). + + +== Development == +VCell is being developed at the R. D Berlin Center for Cell Analysis and Modeling at the University of Connecticut Health Center. The team is primarily funded through research grants through the National Institutes of Health. + + +== See also == +List of systems biology modeling software + + +== References == + + +== External links == +VCell home page +VCell Download +VCell user forum +VCell Models in publications +Tutorial about using VCell on YouTube. +Source code on GitHub \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/VTK-0.md b/data/en.wikipedia.org/wiki/VTK-0.md new file mode 100644 index 000000000..e3eb8ce2d --- /dev/null +++ b/data/en.wikipedia.org/wiki/VTK-0.md @@ -0,0 +1,50 @@ +--- +title: "VTK" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/VTK" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:08.973454+00:00" +instance: "kb-cron" +--- + +The Visualization Toolkit (VTK) is a free software system for 3D computer graphics, image processing and scientific visualization. +VTK is distributed under the GNU-approved and FSF-approved BSD 3-clause License. + + +== Functionality == +VTK consists of a C++ class library and several interpreted interface layers including Tcl/Tk, Java, and Python. The toolkit is created and supported by the Kitware team. VTK supports various visualization algorithms including: scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation. VTK has an information visualization framework, has a suite of 3D interaction widgets, supports parallel processing, and integrates with various databases and GUI toolkits such as Qt and Tk. VTK is cross-platform and runs on Linux, Windows, Mac and Unix platforms. The core of VTK is implemented as a C++ toolkit, requiring users to build applications by combining various objects into an application. The system also supports automated wrapping of the C++ core into Python, Java and Tcl, so that VTK applications may also be written using these programming languages. + + +== History == +VTK was initially created in 1993 as companion software to the book The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics. The book and software were written by three researchers (Will Schroeder, Ken Martin and Bill Lorensen) on their own time and with permission from General Electric (thus the ownership of the software resided with, and continues to reside with, the authors). After the core of VTK was written, users and developers around the world began to improve and apply the system to real-world problems. +With the founding of Kitware, the VTK community grew rapidly, and toolkit usage expanded into academic, research and commercial applications. A number of major companies and organizations, such as Sandia National Laboratories, Livermore National Laboratory, Los Alamos National Laboratory funded the development of VTK and even developed a number of VTK modules themselves. VTK forms the core of the 3DSlicer biomedical computing application, and numerous research papers at IEEE Visualization and other conferences based on VTK have appeared. VTK has been used on a large 1024-processor computer at the Los Alamos National Laboratory to process nearly a Petabyte of data. +Later VTK was expanded to support the ingestion, processing and display of informatics data. This work was supported by Sandia National Laboratories under the 'Titan' project. + + +== Criticism == +In 2013, a survey paper on visualization for radiotherapy noticed that while VTK is a powerful and widely known toolkit, it lacked a number of important features, such as multivolume rendering, had no support of proprietary CUDA from NVidia, no support of out-of-core rendering and no native support for visualization of time-dependent volumetric data. +However, since 2013 there have been improvements such as VTK-m which can speed-up and parallelize certain computationally intensive tasks using libraries like Sandia's Kokkos. VTK is also used in the visualization pipeline of radiological imaging software such as MEDInria or Starviewer which perform multi-volume (also called fusion) and time-dependent (also called phase) visualizations. + + +== See also == + +Paraview +Category:Software that uses VTK + + +== References == + + +== Further reading == +Avila, Lisa Sobierajski (2010), The VTK User's Guide (11th ed.), Kitware, ISBN 978-1-930934-23-8 + + +== External links == +Kitware home page +Visualization toolkit (VTK) and official VTK Wiki Archived 2022-03-20 at the Wayback Machine +Parallel Visualization Application (ParaView) and official ParaView Wiki +PDF 9-page technical paper (with color images) +A summary of VTK technical features +vtk.js, a Javascript implementation of VTK +Some of the early history of VTK Archived 2020-02-02 at the Wayback Machine \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Waffles_(machine_learning)-0.md b/data/en.wikipedia.org/wiki/Waffles_(machine_learning)-0.md new file mode 100644 index 000000000..19b208bc0 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Waffles_(machine_learning)-0.md @@ -0,0 +1,41 @@ +--- +title: "Waffles (machine learning)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Waffles_(machine_learning)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:10.119311+00:00" +instance: "kb-cron" +--- + +Waffles is a collection of command-line tools for performing machine learning operations developed at Brigham Young University. These tools are written in C++, and are available under the GNU Lesser General Public License. + + +== Description == +The Waffles machine learning toolkit contains command-line tools for performing various operations related to machine learning, data mining, and predictive modeling. The primary focus of Waffles is to provide tools that are simple to use in scripted experiments or processes. For example, the supervised learning algorithms included in Waffles are all designed to support multi-dimensional labels, classification and regression, automatically impute missing values, and automatically apply necessary filters to transform the data to a type that the algorithm can support, such that arbitrary learning algorithms can be used with arbitrary data sets. Many other machine learning toolkits provide similar functionality, but require the user to explicitly configure data filters and transformations to make it compatible with a particular learning algorithm. The algorithms provided in Waffles also have the ability to automatically tune their own parameters (with the cost of additional computational overhead). +Because Waffles is designed for script-ability, it deliberately avoids presenting its tools in a graphical environment. It does, however, include a graphical "wizard" tool that guides the user to generate a command that will perform a desired task. This wizard does not actually perform the operation, but requires the user to paste the command that it generates into a command terminal or a script. The idea motivating this design is to prevent the user from becoming "locked in" to a graphical interface. +All of the Waffles tools are implemented as thin wrappers around functionality in a C++ class library. This makes it possible to convert scripted processes into native applications with minimal effort. +Waffles was first released as an open source project in 2005. Since that time, it has been developed at Brigham Young University, with a new version having been released approximately every 6–9 months. Waffles is not an acronym—the toolkit was named after the food for historical reasons. + + +== Advantages == +Some of the advantages of Waffles in contrast with other popular open source machine learning toolkits include: + +Waffles automatically takes care of many issues related to data format in order to simplify its tools. +Because it is implemented in C++, many of its algorithms are particularly fast. Also, the lack of dependency on any virtual machine makes it easier to deploy in conjunction with other applications. +The functionality included in Waffles is very broad, including algorithms for dimensionality reduction, collaborative filtering, visualization, clustering, supervised learning, optimization, linear algebra, data transformation, image and signal processing, policy learning, and sparse matrix operations. + + +== Disadvantages == +Although Waffles provides significant breadth, it lacks the depth of many toolkits that focus on a particular area of machine learning. The Weka (machine learning) toolkit, for example, provides many more classification algorithms than Waffles provides. +Waffles only has a limited graphical interface. + + +== See also == + +Weka (machine learning) +RapidMiner (formerly YALE (Yet Another Learning Environment)), a commercial machine learning framework implemented in Java +List of numerical analysis software + + +== References == \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Weka_(software)-0.md b/data/en.wikipedia.org/wiki/Weka_(software)-0.md new file mode 100644 index 000000000..c73a101fd --- /dev/null +++ b/data/en.wikipedia.org/wiki/Weka_(software)-0.md @@ -0,0 +1,59 @@ +--- +title: "Weka (software)" +chunk: 1/1 +source: "https://en.wikipedia.org/wiki/Weka_(software)" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:11.287524+00:00" +instance: "kb-cron" +--- + +Waikato Environment for Knowledge Analysis (Weka) is a collection of machine learning and data analysis free software licensed under the GNU General Public License. It was developed at the University of Waikato, New Zealand and is the companion software to the book "Data Mining: Practical Machine Learning Tools and Techniques". + + +== Description == +Weka contains a collection of visualization tools and algorithms for data analysis and predictive modeling, together with graphical user interfaces for easy access to these functions. The original non-Java version of Weka was a Tcl/Tk front-end to (mostly third-party) modeling algorithms implemented in other programming languages, plus data preprocessing utilities in C, and a makefile-based system for running machine learning experiments. This original version was primarily designed as a tool for analyzing data from agricultural domains, but the more recent fully Java-based version (Weka 3), for which development started in 1997, is now used in many different application areas, in particular for educational purposes and research. Advantages of Weka include: + +Free availability under the GNU General Public License. +Portability, since it is fully implemented in the Java programming language and thus runs on almost any modern computing platform. +A comprehensive collection of data preprocessing and modeling techniques. +Ease of use due to its graphical user interfaces. +Weka supports several standard data mining tasks, more specifically, data preprocessing, clustering, classification, regression, visualization, and feature selection. Input to Weka is expected to be formatted according the Attribute-Relational File Format and with the filename bearing the .arff extension. All of Weka's techniques are predicated on the assumption that the data is available as one flat file or relation, where each data point is described by a fixed number of attributes (normally, numeric or nominal attributes, but some other attribute types are also supported). Weka provides access to SQL databases using Java Database Connectivity and can process the result returned by a database query. Weka provides access to deep learning with Deeplearning4j. It is not capable of multi-relational data mining, but there is separate software for converting a collection of linked database tables into a single table that is suitable for processing using Weka. Another important area that is currently not covered by the algorithms included in the Weka distribution is sequence modeling. + + +== Extension packages == +In version 3.7.2, a package manager was added to allow the easier installation of extension packages. +Some functionality that used to be included with Weka prior to this version has since been moved into such extension packages, but this change also makes it easier for others to contribute extensions to Weka and to maintain the software, as this modular architecture allows independent updates of the Weka core and individual extensions. + + +== History == +In 1993, the University of Waikato in New Zealand began development of the original version of Weka, which became a mix of Tcl/Tk, C, and makefiles. +In 1997, the decision was made to redevelop Weka from scratch in Java, including implementations of modeling algorithms. +In 2005, Weka received the SIGKDD Data Mining and Knowledge Discovery Service Award. +In 2006, Pentaho Corporation acquired an exclusive licence to use Weka for business intelligence. It forms the data mining and predictive analytics component of the Pentaho business intelligence suite. Pentaho has since been acquired by Hitachi Vantara, and Weka now underpins the PMI (Plugin for Machine Intelligence) open source component. + + +== Related tools == +Auto-WEKA is an automated machine learning system for Weka. +Environment for DeveLoping KDD-Applications Supported by Index-Structures (ELKI) is a similar project to Weka with a focus on cluster analysis, i.e., unsupervised methods. +H2O.ai is an open-source data science and machine learning platform +KNIME is a machine learning and data mining software implemented in Java. +Massive Online Analysis (MOA) is an open-source project for large scale mining of data streams, also developed at the University of Waikato in New Zealand. +Neural Designer is a data mining software based on deep learning techniques written in C++. +Orange is a similar open-source project for data mining, machine learning and visualization based on scikit-learn. +RapidMiner is a commercial machine learning framework implemented in Java which integrates Weka. +scikit-learn is a popular machine learning library in Python. + + +== See also == + +Comparison of machine learning software +List of numerical-analysis software + + +== References == + + +== External links == + +Official website at University of Waikato in New Zealand \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Word2vec-0.md b/data/en.wikipedia.org/wiki/Word2vec-0.md new file mode 100644 index 000000000..b63423b75 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Word2vec-0.md @@ -0,0 +1,79 @@ +--- +title: "Word2vec" +chunk: 1/4 +source: "https://en.wikipedia.org/wiki/Word2vec" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:12.458984+00:00" +instance: "kb-cron" +--- + +Word2vec is a technique in natural language processing for obtaining vector representations of words. These vectors capture information about the meaning of the word based on the surrounding words. The word2vec algorithm estimates these representations by modeling text in a large corpus. Once trained, such a model can detect synonymous words or suggest additional words for a partial sentence. Word2vec was developed by Tomáš Mikolov, Kai Chen, Greg Corrado, Ilya Sutskever and Jeff Dean at Google, and published in 2013. +Word2vec represents a word as a high-dimension vector of numbers which capture relationships between words. In particular, words which appear in similar contexts are mapped to vectors which are nearby as measured by cosine similarity. This indicates the level of semantic similarity between the words, so for example the vectors for walk and ran are nearby, as are those for "but" and "however", and "Berlin" and "Germany". + +== Approach == +Word2vec is a group of related models that are used to produce word embeddings. These models are shallow, two-layer neural networks that are trained to reconstruct linguistic contexts of words. Word2vec takes as its input a large corpus of text and produces a mapping of the set of words to a vector space, typically of several hundred dimensions, with each unique word in the corpus being assigned a vector in the space. +Word2vec can use either of two model architectures to produce these distributed representations of words: continuous bag of words (CBOW) or continuously sliding skip-gram. In both architectures, word2vec considers both individual words and a sliding context window as it iterates over the corpus. +The CBOW can be viewed as a 'fill in the blank' task, where the word embedding represents the way the word influences the relative probabilities of other words in the context window. Words which are semantically similar should influence these probabilities in similar ways, because semantically similar words should be used in similar contexts. The order of context words does not influence prediction (bag of words assumption). +In the continuous skip-gram architecture, the model uses the current word to predict the surrounding window of context words. The skip-gram architecture weighs nearby context words more heavily than more distant context words. According to the authors' note, CBOW is faster while skip-gram does a better job for infrequent words. +After the model is trained, the learned word embeddings are positioned in the vector space such that words that share common contexts in the corpus — that is, words that are semantically and syntactically similar — are located close to one another in the space. More dissimilar words are located farther from one another in the space. + +== Mathematical details == +This section is based on expositions. +A corpus is a sequence of words. Both CBOW and skip-gram are methods to learn one vector per word appearing in the corpus. +Let + + + + V + + + {\displaystyle V} + + ("vocabulary") be the set of all words appearing in the corpus + + + + C + + + {\displaystyle C} + +. Our goal is to learn one vector + + + + + v + + w + + + ∈ + + + R + + + d + + + + + {\displaystyle v_{w}\in \mathbb {R} ^{d}} + + for each word + + + + w + ∈ + V + + + {\displaystyle w\in V} + +. +The idea of skip-gram is that the vector of a word should be close to the vector of each of its neighbors. The idea of CBOW is that the vector-sum of a word's neighbors should be close to the vector of the word. + +=== Continuous bag-of-words (CBOW) === \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Word2vec-1.md b/data/en.wikipedia.org/wiki/Word2vec-1.md new file mode 100644 index 000000000..43505837c --- /dev/null +++ b/data/en.wikipedia.org/wiki/Word2vec-1.md @@ -0,0 +1,828 @@ +--- +title: "Word2vec" +chunk: 2/4 +source: "https://en.wikipedia.org/wiki/Word2vec" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:12.458984+00:00" +instance: "kb-cron" +--- + +The idea of CBOW is to represent each word with a vector, such that it is possible to predict a word using the sum of the vectors of its neighbors. Specifically, for each word + + + + + w + + i + + + + + {\displaystyle w_{i}} + + in the corpus, the one-hot encoding of the word is used as the input to the neural network. The output of the neural network is a probability distribution over the dictionary, representing a prediction of individual words in the neighborhood of + + + + + w + + i + + + + + {\displaystyle w_{i}} + +. The objective of training is to maximize + + + + + ∑ + + i + + + ln + ⁡ + Pr + ( + + w + + i + + + ∣ + + w + + i + + + j + + + : + j + ∈ + N + ) + + + {\displaystyle \sum _{i}\ln \Pr(w_{i}\mid w_{i+j}\colon j\in N)} + + where + + + + N + + + {\displaystyle N} + + is a set of (non-zero) indices representing the relative locations of nearby words considered to be in + + + + + w + + i + + + + + {\displaystyle w_{i}} + +'s neighborhood. +For example, if we want each word in the corpus to be predicted by every other word in a small span of 4 words. The set of relative indexes of neighbor words will be: + + + + N + = + { + − + 2 + , + − + 1 + , + + + 1 + , + + + 2 + } + + + {\displaystyle N=\{-2,-1,+1,+2\}} + +, and the objective is to maximize + + + + + ∑ + + i + + + ln + ⁡ + Pr + ( + + w + + i + + + ∣ + + w + + i + − + 2 + + + , + + w + + i + − + 1 + + + , + + w + + i + + + 1 + + + , + + w + + i + + + 2 + + + ) + + + {\displaystyle \sum _{i}\ln \Pr(w_{i}\mid w_{i-2},w_{i-1},w_{i+1},w_{i+2})} + +. +In standard bag-of-words, a word's context is represented by a word-count (aka a word histogram) of its neighboring words. For example, the "sat" in "the cat sat on the mat" is represented as {"the": 2, "cat": 1, "on": 1}. Note that the last word "mat" is not used to represent "sat", because it is outside the neighborhood + + + + N + = + { + − + 2 + , + − + 1 + , + + + 1 + , + + + 2 + } + + + {\displaystyle N=\{-2,-1,+1,+2\}} + +. +In continuous bag-of-words, the histogram is multiplied by a matrix + + + + V + + + {\displaystyle V} + + to obtain a continuous representation of the word's context. The matrix + + + + V + + + {\displaystyle V} + + is also called a dictionary. Its columns are the word vectors. It has + + + + D + + + {\displaystyle D} + + columns, where + + + + D + + + {\displaystyle D} + + is the size of the dictionary. Let + + + + d + + + {\displaystyle d} + + be the length of each word vector. We have + + + + V + ∈ + + + R + + + d + × + D + + + + + {\displaystyle V\in \mathbb {R} ^{d\times D}} + +. +For example, multiplying the word histogram {"the": 2, "cat": 1, "on": 1} with + + + + V + + + {\displaystyle V} + +, we obtain + + + + 2 + + v + + the + + + + + + v + + cat + + + + + + v + + on + + + + + {\displaystyle 2v_{\text{the}}+v_{\text{cat}}+v_{\text{on}}} + +. +This is then multiplied with another matrix + + + + + V + ′ + + + + {\displaystyle V'} + + of shape + + + + + + R + + + D + × + d + + + + + {\displaystyle \mathbb {R} ^{D\times d}} + +. Each row of it is a word vector + + + + + v + ′ + + + + {\displaystyle v'} + +. This results in a vector of length + + + + D + + + {\displaystyle D} + +, one entry per dictionary entry. Then, apply the softmax to obtain a probability distribution over the dictionary. +This system can be visualized as a neural network, similar in spirit to an autoencoder, of architecture linear-linear-softmax, as depicted in the diagram. The system is trained by gradient descent to minimize the cross-entropy loss. +In full formula, the cross-entropy loss is: + + + + − + + ∑ + + i + + + ln + ⁡ + + + + e + + + v + + + w + + i + + + + ′ + + ⋅ + ( + + ∑ + + j + ∈ + N + + + + v + + + w + + j + + + i + + + + + ) + + + + + ∑ + + + w + ′ + + + + + e + + + v + + + w + ′ + + + ′ + + ⋅ + ( + + ∑ + + j + ∈ + N + + + + v + + + w + + j + + + i + + + + + ) + + + + + + + + {\displaystyle -\sum _{i}\ln {\frac {e^{v_{w_{i}}'\cdot (\sum _{j\in N}v_{w_{j+i}})}}{\sum _{w'}e^{v_{w'}'\cdot (\sum _{j\in N}v_{w_{j+i}})}}}} + +where the outer summation + + + + + ∑ + + i + + + + + {\displaystyle \sum _{i}} + + is over the words in a corpus, the quantity + + + + + ∑ + + j + ∈ + N + + + + v + + + w + + j + + + i + + + + + + + {\displaystyle \sum _{j\in N}v_{w_{j+i}}} + + is the sum of a word's neighbors' vectors, etc. +Once such a system is trained, we have two trained matrices + + + + V + , + + V + ′ + + + + {\displaystyle V,V'} + +. Either the column vectors of + + + + V + + + {\displaystyle V} + + or the row vectors of + + + + + V + ′ + + + + {\displaystyle V'} + + can serve as the dictionary. For example, the word "sat" can be represented as either the "sat"-th column of + + + + V + + + {\displaystyle V} + + or the "sat"-th row of + + + + + V + ′ + + + + {\displaystyle V'} + +. It is also possible to simply define + + + + + V + ′ + + = + + V + + ⊤ + + + + + {\displaystyle V'=V^{\top }} + +, in which case there would no longer be a choice. + +=== Skip-gram === + +The idea of skip-gram is to represent each word with a vector, such that it is possible to predict the vectors of its neighbors using the vector of a word. +The architecture is still linear-linear-softmax, the same as CBOW, but the input and the output are switched. Specifically, for each word + + + + + w + + i + + + + + {\displaystyle w_{i}} + + in the corpus, the one-hot encoding of the word is used as the input to the neural network. The output of the neural network is a probability distribution over the dictionary, representing a prediction of individual words in the neighborhood of + + + + + w + + i + + + + + {\displaystyle w_{i}} + +. The objective of training is to maximize + + + + + ∑ + + i + + + + ∑ + + j + ∈ + N + + + ln + ⁡ + Pr + ( + + w + + j + + + i + + + ∣ + + w + + i + + + ) + + + {\displaystyle \sum _{i}\sum _{j\in N}\ln \Pr(w_{j+i}\mid w_{i})} + +. +In full formula, the loss function is + + + + − + + ∑ + + i + + + + ∑ + + j + ∈ + N + + + ln + ⁡ + + + + e + + + v + + + w + + j + + + i + + + + ′ + + ⋅ + + v + + + w + + i + + + + + + + + + ∑ + + + w + ′ + + + + + e + + + v + + + w + ′ + + + ′ + + ⋅ + + v + + + w + + i + + + + + + + + + + + + {\displaystyle -\sum _{i}\sum _{j\in N}\ln {\frac {e^{v_{w_{j+i}}'\cdot v_{w_{i}}}}{\sum _{w'}e^{v_{w'}'\cdot v_{w_{i}}}}}} + +Same as CBOW, once such a system is trained, we have two trained matrices + + + + V + , + + V + ′ + + + + {\displaystyle V,V'} + +. Either the column vectors of + + + + V + + + {\displaystyle V} + + or the row vectors of + + + + + V + ′ + + + + {\displaystyle V'} + + can serve as the dictionary. It is also possible to simply define + + + + + V + ′ + + = + + V + + ⊤ + + + + + {\displaystyle V'=V^{\top }} + +, in which case there would no longer be a choice. +Essentially, skip-gram and CBOW are exactly the same in architecture. They only differ in the objective function during training. \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Word2vec-2.md b/data/en.wikipedia.org/wiki/Word2vec-2.md new file mode 100644 index 000000000..1f8a5b6f4 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Word2vec-2.md @@ -0,0 +1,47 @@ +--- +title: "Word2vec" +chunk: 3/4 +source: "https://en.wikipedia.org/wiki/Word2vec" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:12.458984+00:00" +instance: "kb-cron" +--- + +== History == +During the 1980s, there were some early attempts at using neural networks to represent words and concepts as vectors. +In 2010, Tomáš Mikolov (then at Brno University of Technology) with co-authors applied a simple recurrent neural network with a single hidden layer to language modelling. +Word2vec was created, patented, and published in 2013 by a team of researchers led by Mikolov at Google over two papers. The original paper was rejected by reviewers for ICLR conference 2013. It also took months for the code to be approved for open-sourcing. Other researchers helped analyse and explain the algorithm. +Embedding vectors created using the Word2vec algorithm have some advantages compared to earlier algorithms such as those using n-grams and latent semantic analysis. GloVe was developed by a team at Stanford specifically as a competitor, and the original paper noted multiple improvements of GloVe over word2vec. Mikolov argued that the comparison was unfair as GloVe was trained on more data, and that the fastText project showed that word2vec is superior when trained on the same data. +As of 2022, the straight Word2vec approach was described as "dated". Transformer-based models, such as ELMo and BERT, which add multiple neural-network attention layers on top of a word embedding model similar to Word2vec, have come to be regarded as the state of the art in natural language processing. + +== Parameterization == +Results of word2vec training can be sensitive to parametrization. The following are some important parameters in word2vec training. + +=== Training algorithm === +A Word2vec model can be trained with hierarchical softmax and/or negative sampling. To approximate the conditional log-likelihood a model seeks to maximize, the hierarchical softmax method uses a Huffman tree to reduce calculation. The negative sampling method, on the other hand, approaches the maximization problem by minimizing the log-likelihood of sampled negative instances. According to the authors, hierarchical softmax works better for infrequent words while negative sampling works better for frequent words and better with low dimensional vectors. As training epochs increase, hierarchical softmax stops being useful. + +=== Sub-sampling === +High-frequency and low-frequency words often provide little information. Words with a frequency above a certain threshold, or below a certain threshold, may be subsampled or removed to speed up training. + +=== Dimensionality === +Quality of word embedding increases with higher dimensionality. But after reaching some point, marginal gain diminishes. Typically, the dimensionality of the vectors is set to be between 100 and 1,000. + +=== Context window === +The size of the context window determines how many words before and after a given word are included as context words of the given word. According to the authors' note, the recommended value is 10 for skip-gram and 5 for CBOW. + +== Extensions == +There are a variety of extensions to word2vec. + +=== doc2vec === +doc2vec, generates distributed representations of variable-length pieces of texts, such as sentences, paragraphs, or entire documents. doc2vec has been implemented in the C, Python and Java/Scala tools (see below), with the Java and Python versions also supporting inference of document embeddings on new, unseen documents. +doc2vec estimates the distributed representations of documents much like how word2vec estimates representations of words: doc2vec utilizes either of two model architectures, both of which are allegories to the architectures used in word2vec. The first, Distributed Memory Model of Paragraph Vectors (PV-DM), is identical to CBOW other than it also provides a unique document identifier as a piece of additional context. The second architecture, Distributed Bag of Words version of Paragraph Vector (PV-DBOW), is identical to the skip-gram model except that it attempts to predict the window of surrounding context words from the paragraph identifier instead of the current word. +doc2vec also has the ability to capture the semantic 'meanings' for additional pieces of 'context' around words; doc2vec can estimate the semantic embeddings for speakers or speaker attributes, groups, and periods of time. For example, doc2vec has been used to estimate the political positions of political parties in various Congresses and Parliaments in the U.S. and U.K., respectively, and various governmental institutions. + +=== top2vec === +Another extension of word2vec is top2vec, which leverages both document and word embeddings to estimate distributed representations of topics. top2vec takes document embeddings learned from a doc2vec model and reduces them into a lower dimension (typically using UMAP). The space of documents is then scanned using HDBSCAN, and clusters of similar documents are found. Next, the centroid of documents identified in a cluster is considered to be that cluster's topic vector. Finally, top2vec searches the semantic space for word embeddings located near to the topic vector to ascertain the 'meaning' of the topic. The word with embeddings most similar to the topic vector might be assigned as the topic's title, whereas far away word embeddings may be considered unrelated. +As opposed to other topic models such as LDA, top2vec provides canonical 'distance' metrics between two topics, or between a topic and another embeddings (word, document, or otherwise). Together with results from HDBSCAN, users can generate topic hierarchies, or groups of related topics and subtopics. +Furthermore, a user can use the results of top2vec to infer the topics of out-of-sample documents. After inferring the embedding for a new document, must only search the space of topics for the closest topic vector. + +=== BioVectors === +An extension of word vectors for n-grams in biological sequences (e.g. DNA, RNA, and proteins) for bioinformatics applications has been proposed by Asgari and Mofrad. Named bio-vectors (BioVec) to refer to biological sequences in general with protein-vectors (ProtVec) for proteins (amino-acid sequences) and gene-vectors (GeneVec) for gene sequences, this representation can be widely used in applications of machine learning in proteomics and genomics. The results suggest that BioVectors can characterize biological sequences in terms of biochemical and biophysical interpretations of the underlying patterns. A similar variant, dna2vec, has shown that there is correlation between Needleman–Wunsch similarity score and cosine similarity of dna2vec word vectors. \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/Word2vec-3.md b/data/en.wikipedia.org/wiki/Word2vec-3.md new file mode 100644 index 000000000..6e69c8f45 --- /dev/null +++ b/data/en.wikipedia.org/wiki/Word2vec-3.md @@ -0,0 +1,47 @@ +--- +title: "Word2vec" +chunk: 4/4 +source: "https://en.wikipedia.org/wiki/Word2vec" +category: "reference" +tags: "science, encyclopedia" +date_saved: "2026-05-05T10:14:12.458984+00:00" +instance: "kb-cron" +--- + +=== Radiology and intelligent word embeddings (IWE) === +An extension of word vectors for creating a dense vector representation of unstructured radiology reports has been proposed by Banerjee et al. One of the biggest challenges with Word2vec is how to handle unknown or out-of-vocabulary (OOV) words and morphologically similar words. If the Word2vec model has not encountered a particular word before, it will be forced to use a random vector, which is generally far from its ideal representation. This can particularly be an issue in domains like medicine where synonyms and related words can be used depending on the preferred style of radiologist, and words may have been used infrequently in a large corpus. +IWE combines Word2vec with a semantic dictionary mapping technique to tackle the major challenges of information extraction from clinical texts, which include ambiguity of free text narrative style, lexical variations, use of ungrammatical and telegraphic phases, arbitrary ordering of words, and frequent appearance of abbreviations and acronyms. Of particular interest, the IWE model (trained on the one institutional dataset) successfully translated to a different institutional dataset which demonstrates good generalizability of the approach across institutions. + +== Analysis == +The reasons for successful word embedding learning in the word2vec framework are poorly understood. Goldberg and Levy point out that the word2vec objective function causes words that occur in similar contexts to have similar embeddings (as measured by cosine similarity) and note that this is in line with J. R. Firth's distributional hypothesis. However, they note that this explanation is "very hand-wavy" and argue that a more formal explanation would be preferable. +Levy et al. (2015) show that much of the superior performance of word2vec or similar embeddings in downstream tasks is not a result of the models per se, but of the choice of specific hyperparameters. Transferring these hyperparameters to more 'traditional' approaches yields similar performances in downstream tasks. Arora et al. (2016) explain word2vec and related algorithms as performing inference for a simple generative model for text, which involves a random walk generation process based upon loglinear topic model. They use this to explain some properties of word embeddings, including their use to solve analogies. + +== Preservation of semantic and syntactic relationships == + +The word embedding approach is able to capture multiple different degrees of similarity between words. Mikolov et al. (2013) found that semantic and syntactic patterns can be reproduced using vector arithmetic. Patterns such as "Man is to Woman as Brother is to Sister" can be generated through algebraic operations on the vector representations of these words such that the vector representation of "Brother" - "Man" + "Woman" produces a result which is closest to the vector representation of "Sister" in the model. Such relationships can be generated for a range of semantic relations (such as Country–Capital) as well as syntactic relations (e.g. present tense–past tense). +This facet of word2vec has been exploited in a variety of other contexts. For example, word2vec has been used to map a vector space of words in one language to a vector space constructed from another language. Relationships between translated words in both spaces can be used to assist with machine translation of new words. + +== Assessing the quality of a model == +Mikolov et al. (2013) developed an approach to assessing the quality of a word2vec model which draws on the semantic and syntactic patterns discussed above. They developed a set of 8,869 semantic relations and 10,675 syntactic relations which they use as a benchmark to test the accuracy of a model. When assessing the quality of a vector model, a user may draw on this accuracy test which is implemented in word2vec, or develop their own test set which is meaningful to the corpora which make up the model. This approach offers a more challenging test than simply arguing that the words most similar to a given test word are intuitively plausible. + +=== Parameters and model quality === +The use of different model parameters and different corpus sizes can greatly affect the quality of a word2vec model. Accuracy can be improved in a number of ways, including the choice of model architecture (CBOW or Skip-Gram), increasing the training data set, increasing the number of vector dimensions, and increasing the window size of words considered by the algorithm. Each of these improvements comes with the cost of increased computational complexity and therefore increased model generation time. +In models using large corpora and a high number of dimensions, the skip-gram model yields the highest overall accuracy, and consistently produces the highest accuracy on semantic relationships, as well as yielding the highest syntactic accuracy in most cases. However, the CBOW is less computationally expensive and yields similar accuracy results. +Overall, accuracy increases with the number of words used and the number of dimensions. Mikolov et al. report that doubling the amount of training data results in an increase in computational complexity equivalent to doubling the number of vector dimensions. +Altszyler and coauthors (2017) studied Word2vec performance in two semantic tests for different corpus size. They found that Word2vec has a steep learning curve, outperforming another word-embedding technique, latent semantic analysis (LSA), when it is trained with medium to large corpus size (more than 10 million words). However, with a small training corpus, LSA showed better performance. Additionally they show that the best parameter setting depends on the task and the training corpus. Nevertheless, for skip-gram models trained in medium size corpora, with 50 dimensions, a window size of 15 and 10 negative samples seems to be a good parameter setting. + +== See also == + +== References == + +== External links == +Wikipedia2Vec[1] (introduction) + +=== Implementations === +C +C# +Python (Spark) +Python (TensorFlow) +Python (Gensim) +Java/Scala +R \ No newline at end of file diff --git a/data/en.wikipedia.org/wiki/World_Community_Grid-0.md b/data/en.wikipedia.org/wiki/World_Community_Grid-0.md index 6ba6329d3..962857414 100644 --- a/data/en.wikipedia.org/wiki/World_Community_Grid-0.md +++ b/data/en.wikipedia.org/wiki/World_Community_Grid-0.md @@ -4,7 +4,7 @@ chunk: 1/7 source: "https://en.wikipedia.org/wiki/World_Community_Grid" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:50.771647+00:00" +date_saved: "2026-05-05T10:14:13.754375+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/World_Community_Grid-1.md b/data/en.wikipedia.org/wiki/World_Community_Grid-1.md index f570d072e..20ef876dd 100644 --- a/data/en.wikipedia.org/wiki/World_Community_Grid-1.md +++ b/data/en.wikipedia.org/wiki/World_Community_Grid-1.md @@ -4,7 +4,7 @@ chunk: 2/7 source: "https://en.wikipedia.org/wiki/World_Community_Grid" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:50.771647+00:00" +date_saved: "2026-05-05T10:14:13.754375+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/World_Community_Grid-2.md b/data/en.wikipedia.org/wiki/World_Community_Grid-2.md index 3c37f509d..dedd9a528 100644 --- a/data/en.wikipedia.org/wiki/World_Community_Grid-2.md +++ b/data/en.wikipedia.org/wiki/World_Community_Grid-2.md @@ -4,7 +4,7 @@ chunk: 3/7 source: "https://en.wikipedia.org/wiki/World_Community_Grid" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:50.771647+00:00" +date_saved: "2026-05-05T10:14:13.754375+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/World_Community_Grid-3.md b/data/en.wikipedia.org/wiki/World_Community_Grid-3.md index eda9e9e3d..0832ae2c4 100644 --- a/data/en.wikipedia.org/wiki/World_Community_Grid-3.md +++ b/data/en.wikipedia.org/wiki/World_Community_Grid-3.md @@ -4,7 +4,7 @@ chunk: 4/7 source: "https://en.wikipedia.org/wiki/World_Community_Grid" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:50.771647+00:00" +date_saved: "2026-05-05T10:14:13.754375+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/World_Community_Grid-4.md b/data/en.wikipedia.org/wiki/World_Community_Grid-4.md index c0b73e5fd..a91daf7a0 100644 --- a/data/en.wikipedia.org/wiki/World_Community_Grid-4.md +++ b/data/en.wikipedia.org/wiki/World_Community_Grid-4.md @@ -4,7 +4,7 @@ chunk: 5/7 source: "https://en.wikipedia.org/wiki/World_Community_Grid" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:50.771647+00:00" +date_saved: "2026-05-05T10:14:13.754375+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/World_Community_Grid-5.md b/data/en.wikipedia.org/wiki/World_Community_Grid-5.md index 06e84d036..4d756d3d0 100644 --- a/data/en.wikipedia.org/wiki/World_Community_Grid-5.md +++ b/data/en.wikipedia.org/wiki/World_Community_Grid-5.md @@ -4,7 +4,7 @@ chunk: 6/7 source: "https://en.wikipedia.org/wiki/World_Community_Grid" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:50.771647+00:00" +date_saved: "2026-05-05T10:14:13.754375+00:00" instance: "kb-cron" --- diff --git a/data/en.wikipedia.org/wiki/World_Community_Grid-6.md b/data/en.wikipedia.org/wiki/World_Community_Grid-6.md index 07b1c7a74..cad9a43c6 100644 --- a/data/en.wikipedia.org/wiki/World_Community_Grid-6.md +++ b/data/en.wikipedia.org/wiki/World_Community_Grid-6.md @@ -4,7 +4,7 @@ chunk: 7/7 source: "https://en.wikipedia.org/wiki/World_Community_Grid" category: "reference" tags: "science, encyclopedia" -date_saved: "2026-05-05T06:50:50.771647+00:00" +date_saved: "2026-05-05T10:14:13.754375+00:00" instance: "kb-cron" ---