NetLogo / NetLogo-Libraries

The central repository for the extensions listed in the NetLogo Extension Manager
15 stars 24 forks source link

NetLogo 6.4.0 Metadata Parsing Error in libraries.conf File #68

Closed richardcmckinney closed 10 months ago

richardcmckinney commented 10 months ago

My instance of NetLogo had a problem parsing the libraries metadata. Based on the error message I received, the issue likely stems from a parsing error in the libraries.conf file of NetLogo 6.4.0. Specifically, there seems to be a syntax error related to an improperly closed string quote at line 587.

Remediation will probably involve inspecting the libraries.conf file to locate and correct the syntax error, such as by properly closing the string or adjusting the format to meet the expected configuration syntax. This correction will ensure that the file can be parsed correctly, allowing the metadata loading process to proceed without issues.


extensions: [ { name: "Arduino" codeName: "arduino" shortDescription: "Communicate with an Arduino device" longDescription: """This extension provides 'no-frills' communication between NetLogo and a connected Arduino.""" version: "3.0.1" homepage: "http://ccl.northwestern.edu/netlogo/docs/arduino.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/arduino-3.0.1.zip" } { name: "Array" codeName: "array" shortDescription: "Fixed-size arrays for performance" longDescription: """In general, anything you can do with an array in NetLogo, you could also just use a list for. But you may want to consider using an array instead for speed reasons. Lists and arrays have different performance characteristics, so you may be able to make your model run faster by selecting the appropriate data structure.

Arrays are useful when you need a collection of values whose size is fixed. You can quickly access or alter any item in an array if you know its position.

Unlike NetLogo’s lists and strings, arrays are “mutable”. That means that you can actually modify them directly, rather than constructing an altered copy as with lists. If the array is used in more than one place in your code, any changes you make will show up everywhere. It’s tricky to write code involving mutable structures and it’s easy to make subtle errors or get surprising results, so we suggest sticking with lists and strings unless you’re certain you want and need mutability.""" version: "1.1.1" homepage: "http://ccl.northwestern.edu/netlogo/docs/array.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/array-1.1.1.zip" } { name: "Bitmap" codeName: "bitmap" shortDescription: "Image manipulation and drawing" longDescription: """The Bitmap Extension allows you to manipulate and import images into the drawing and patches. It offers features not provided by the NetLogo core primitives, such as: scaling, manipulation of different color channels, and width and height reporters.""" version: "1.2.1" homepage: "http://ccl.northwestern.edu/netlogo/docs/bitmap.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/bitmap-1.2.1.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "Bitstring datatype for NetLogo" codeName: "bitstring" shortDescription: "Provides bitstrings as datatypes and commands to operate on them" longDescription: """A bitstring extension for NetLogo. Bitstrings are strings of binary digits. This extension provides you with an implementation of bitstrings and a number of commands and reporters to operate on them.""" version: "2.1.0" homepage: "https://github.com/garypolhill/netlogo-bitstring/blob/nl6/README.md" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/bitstring-2.1.0.zip" } { name: "Case based reasoning" codeName: "cbr" shortDescription: "A case based reasoner extension" longDescription: """A case base reasoner that provides the necessary keywords to implement a case based reasoner consistently. A case base consists of the riple: state,decision,outcome. This framework can return single or multiple triples from the case base which match a given state and decision using the the inbuilt distance function or a user defined function. Command to dynamically modify the case base are also provided, such as addition and deletion of specific cases based on age, or size of case base. """ version: "1.0.2" homepage: "https://github.com/DougSalt/cbr.git" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/cbr-1.0.2.zip" } { name: "CLIPS" codeName: "clips" shortDescription: "Run CLIPS code from NetLogo" longDescription: """This NetLogo extension allows you to run CLIPS code inside of the NetLogo environment. There is no need to install CLIPS because this extension includes the CLIPS JNI that contains all the functionality. The CLIPS version compatible with this extension is the v6.3. """ version: "0.1.0" homepage: "https://github.com/aniavasq/NetLogo-CLIPS-Extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/clips-0.1.0.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "CogLogo" codeName: "coglogo" shortDescription: "The Cogniton architecture in NetLogo" longDescription: "Provides a NetLogo implementation of the Cogniton architecture, which focuses on the design of multiagent simulations of complex socio-cognitive systems." version: "1.18.1" homepage: "https://github.com/suroFr/CogLogo/blob/master/readMe.txt" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/coglogo-1.18.1.zip" } { name: "Control Flow" codeName: "cf" shortDescription: "More powerful control flow primitives" longDescription: """This deprecated NetLogo extension adds control-flow ifelse and ifelse-value that allow more than two branches. As of NetLogo 6.1.0 these primitives are built in to NetLogo and this extension is provided for backwards compatibility only.""" version: "2.0.1" homepage: "https://github.com/NetLogo/ControlFlowExtension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/cf-2.0.1.zip" } { name: "CSV" codeName: "csv" shortDescription: "Read and write csv files" longDescription: """""" version: "1.1.1" homepage: "http://ccl.northwestern.edu/netlogo/docs/csv.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/csv-1.1.1.zip" } { name: "DBSCAN" codeName: "dbscan" shortDescription: "Perform unsupervised density-based clustering of turtles and patches based on specified turtle/patch variables or by proximity using the DBSCAN algorithm" longDescription: """NetLogo extension for DBSCAN clustering algorithm

It allows you to perform unsupervised density-based clustering of turtles and patches based on specified turtle/patch variables or by proximity. The main advantage over supervised algorithms such as K-Means is that it is not necessary to specify the number of resulting clusters in advance. See the homepage for detailed documentation and examples.""" version: "0.4" homepage: "https://github.com/chrfrantz/NetLogo-Extension-DBSCAN#readme" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/dbscan-0.4.zip" } { name: "Dist" codeName: "dist" shortDescription: "Plot frequency distributions and complementary cumulative distribution functions" longDescription: "The dist extension makes it easy to plot frequency distributions and complementary cumulative distribution functions in NetLogo." version: "2.0" homepage: "https://github.com/nicolaspayette/DistExtension#readme" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/dist-2.0.zip" } { name: "Dialog" codeName: "dialog" shortDescription: "Displays dialog boxes with a NetLogo Web-compatible feature set" longDescription: "Displays dialog boxes with a NetLogo Web-compatible feature set" version: "1.0.0" homepage: "https://github.com/NetLogo/Dialog-Extension#dialog-extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/dialog-1.0.0.zip" } { name: "Encode" codeName: "encode" shortDescription: "Conversions between byte lists, UTF-8 strings, and base64-encoded strings" longDescription: "This extension is for converting between lists of bytes and strings of different encodings. This is particularly useful for, say, taking binary data and turning it into a base64 string that can be easily passed around, or reading base64 data, converting it to a list of bytes, and directly manipulating those bytes." version: "1.0.1" homepage: "https://github.com/NetLogo/Encode-Extension#encode-extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/encode-1.0.1.zip" } { name: "EpiLogo" codeName: "epilogo" shortDescription: "An epidemiological package for NetLogo" longDescription: "An epidemiological package for NetLogo containing features such as demographic population initialization, agent pathfinding, agent scheduling and disease campaigning. This package allows for easy and less complex development of epidemiological models within NetLogo" version: "4.0.0" homepage: "https://github.com/JakeSaunders1995/EpiLogo" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/epilogo-4.0.0.zip" } { name: "Export-The" codeName: "export-the" shortDescription: "Exports special values as strings instead of as files" longDescription: "Reports special values (such as model file contents, export-world results, export-view results, export-output results, and export-plot results) as strings, so they can be used and/or manipulated from directly within NetLogo. This extension is especially well-suited for use alongside the Import-A extension." version: "1.0.3" homepage: "https://github.com/NetLogo/ExportThe-Extension#readme" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/export-the-1.0.3.zip" } { name: "Factbase" codeName: "factbase" shortDescription: "Adds a new datatype called factbase, a structured set of data" longDescription: """A fact base can be thought of as a table of named columns ("fields"), where each row comprises an entry ("fact").

At creation, the user has to define the structure of the fact base, that means define the field names. Note that in keeping with the NetLogo philosophy of a type-free language, data types for fields are not specified. After creating a fact base, facts can be asserted, queried and retracted. Facts are represented as lists of values, with one value for each field and all values in the same order as defined by the list of field names. Duplicate facts are not allowed.""" version: "1.1" homepage: "https://github.com/ruthmore/netlogo-factbase" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/factbase-1.1.zip" } { name: "Fetch" codeName: "fetch" shortDescription: "Read files and URLs" longDescription: "Primitives for reading files and URLs, with NetLogo Web compatibility" version: "1.0.5" homepage: "https://github.com/NetLogo/Fetch-Extension#fetch-extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/fetch-1.0.5.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "Functional Programming" codeName: "fp" shortDescription: "Use functional programming primitives" longDescription: "Primitives for common functional programming functions and higher-order procedures" version: "1.1.0" homepage: "https://github.com/NetLogo/FP-Extension#netlogo-functional-programming-extension-fp" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/fp-1.1.0.zip" } { name: "Fuzzy Logic" codeName: "fuzzy" shortDescription: "Use fuzzy sets and fuzzy logic" longDescription: "Extension that facilitates the use of fuzzy sets and fuzzy logic within NetLogo." version: "2.0" homepage: "https://github.com/luis-r-izquierdo/netlogo-fuzzy-logic-extension#readme" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/fuzzy-2.0.zip" } { name: "GIS" codeName: "gis" shortDescription: "Analyse, manipulate and draw GIS data" longDescription: """This extension adds GIS (Geographic Information Systems) support to NetLogo. It provides the ability to load vector GIS data (points, lines, and polygons), and raster GIS data (grids) into your model.

The extension supports vector data in the form of ESRI shapefiles and GeoJSON files. The shapefile (.shp) format is the most common format for storing and exchanging vector GIS data, whereas GeoJSON (.geojson or just .json) is a newer, more lightweight alternative. The extension can import and export both file formats. The extension supports single-band raster data in the form of ESRI ASCII Grid files. The ASCII grid file (.asc or .grd) is not as common as the shapefile, but is supported as an interchange format by most GIS platforms and can also be exported by the extension.""" version: "1.3.3" homepage: "http://ccl.northwestern.edu/netlogo/docs/gis.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gis-1.3.3.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "GoGo" codeName: "gogo" shortDescription: "Interact with HID-based GoGo boards" longDescription: """This is the new extension for physical computing, using sensors, motors, etc in NetLogo. It interfaces with GoGo boards running Human Interface Driver (HID) firmware, and it replaces the old GoGo Extension, which used USB-serial communications.""" version: "2.0.9" homepage: "http://ccl.northwestern.edu/netlogo/docs/gogo.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gogo-2.0.9.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "Gnu Pretty Good Privacy" codeName: "gpg" shortDescription: "Gnu Pretty Good Privacy (GnuPG) Extension" longDescription: """Implements a NetLogo extension that utilises GnuPG privacy suite to decrypt data that is encoded symmetrically or asymmetrically. This will allow for the secure storing of sensitive data in public repositories as these keys can be tailored to specific individuals or groups of individuals. Additionally this allows the absolute destruction of publically available data providing the it can be proven that the keys for such data no longer exist.

Note GnuPG must be installed in the command path. """ version: "1.0.0" homepage: "https://github.com/DougSalt/gpg.git" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gpg-1.0.0.zip" } { name: "GPT" codeName: "gpt" shortDescription: "Let agents communicate and make decisions using GPT-3.5 or GPT-4" longDescription: "" version: "0.0.0" homepage: "https://github.com/qiemem/NetLogoGptExtension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gpt-0.0.0.zip" } { name: "Import-A" codeName: "import-a" shortDescription: "Generalized import-* primitives" longDescription: "Primitives for running import-drawing, import-pcolors, and import-pcolors-rgb on base64 strings, and import-world on plain text strings" version: "1.0.6" homepage: "https://github.com/NetLogo/ImportA-Extension#import-a" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/import-a-1.0.6.zip" } { name: "NodeJS" codeName: "js" shortDescription: "Run JavaScript code from NetLogo" longDescription: """This extension allows you to run JavaScript code from within NetLogo. It is built on top of the Node.js runtime, so any Node packages, e.g. from npm, will work as expected. """ version: "0.2.0" homepage: "https://github.com/NetLogo/NodeJS-Extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/js-0.2.0.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "Java Virtual Machine toolkit" codeName: "mgr" shortDescription: "Various commands for accessing information about the Java Virtual Machine running your NetLogo model" longDescription: """The Java Virtual Machine is the 'computer' that runs your NetLogo model, and Java provides various commands to access information about such things as how much of various different kinds of memory you are using, how many threads are running, and how much CPU time your use of NetLogo is taking. The commands in this extension allow you to access this information, which can be helpful, especially in 'headless' mode, in determining whether you need to make adjustments to default settings for the Java Virtual Machines when running the model.""" version: "1.0.1" homepage: "https://github.com/garypolhill/netlogo-jvmgr" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/mgr-1.0.1.zip" } { name: "java.Math" codeName: "math" shortDescription: "Access Java math library from NetLogo" longDescription: """Java's Math library provides a number of mathematical functions that NetLogo doesn't, with guaranteed numerical properties. This extension provides access to them.""" version: "1.0.1" homepage: "https://github.com/garypolhill/netlogo-math" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/math-1.0.1.zip" } { name: "Landscapes" codeName: "landscapes" shortDescription: "For creating continuous function optimization problem landscapes in NetLogo" longDescription: """This extension is a thin wrapper around the continuous function optimization problems classes implemented in the Optimization Algorithm Toolkit (OAT).

A continuous function optimization problem is one where you are are trying to find either the global optima or minima of a continuous function. OAT implements many such problems as Java classes. The goal of this extension is to make most of these problems easily usable from NetLogo.""" version: "1.0.2" homepage: "https://github.com/NetLogo/Landscapes-Extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/landscapes-1.0.2.zip" } { name: "LevelSpace" codeName: "ls" shortDescription: "LevelSpace allows you to run NetLogo models |: from inside NetLogo models :|" longDescription: """LevelSpace is an extension for NetLogo that allows you to run several models concurrently and have them "talk" with each other. LevelSpace models are hierarchical, in that models always belong hierarchically to another model. We will refer to models that have loaded LevelSpace and have opened models as 'parents', and to the models they have opened as 'children' or 'child models'.

Note: As of v2.3.2, LevelSpace will only run on NetLogo 6.2.0 or newer due to changes to the code tab system. As of v2.3.4 LevelSpace requires NetLogo 6.3.0 running Java 11 or higher.

Asking and reporting in LevelSpace is conceptually pretty straight forward: You pass blocks of code to child models, and the child models respond as if you had typed that code into their Command Center. LevelSpace allows you to report strings, numbers, and lists from a child to its parent.

In general, the LevelSpace syntax has been designed to align with existing NetLogo primitives whenever possible.

Changelog:

v2.3.4:

""" version: "2.3.4" homepage: "http://ccl.northwestern.edu/netlogo/docs/ls.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/ls-2.3.4.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "list" codeName: "lt" shortDescription: "A mutable list datatype for NetLogo" longDescription: """NetLogo's built-in list datatype is immutable -- once a list is created, you cannot change it. Instead NetLogo commands such as fput create a new list from the old list and whatever change the command stipulates.

The lt extension provides a mutable list datatype, with commands that change the original list rather than creating a new one. In code where you are working with very long lists, you may find this more efficient.""" version: "1.1.0" homepage: "https://github.com/garypolhill/netlogo-list" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/lt-1.1.0.zip" } { name: "Look up table" codeName: "lkt" shortDescription: "Look up table implementation." longDescription: """Implements a NetLogo extension that uses tree definition files for defining dimensions (which, in a look up table and like R is usually a "factor" or categorical variable), and then a data file mapping the values of these dimensions to outcomes. """ version: "1.0.0" homepage: "https://github.com/DougSalt/lkt.git" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/lkt-1.0.0.zip" } { name: "LPSolver" codeName: "lpsolver" shortDescription: "Adds linear programming support to NetLogo" longDescription: """This extension allows the user to integrate linear programming functionality within NetLogo models, leveraging the open source Linear Program solver lpsolve (available freely via SourceForge).""" version: "3.0" homepage: "https://github.com/AFMac/NetLogoLPSolver" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/lpsolver-3.0.zip" } { name: "Matching" codeName: "matching" shortDescription: "Matching market implementation" longDescription: """""" version: "1.0.0" homepage: "https://github.com/mitre/Matching-Extension#readme" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/matching-1.0.0.zip" } { name: "Matrix" codeName: "matrix" shortDescription: "Matrices support, including manipulation, math operations and some advanced features" longDescription: """Although matrices store numbers, much like a list of lists, or an array of arrays, the primary reason to use the matrix data type is to take advantage of special mathematical operations associated with matrices. For instance, matrix multiplication is a convenient way to perform geometric transformations, and the repeated application of matrix multiplication can also be used to simulate other dynamic processes (for instance, processes on graph/network structures).

If you’d like to know more about matrices and how they can be used, you might consider a course on linear algebra, or search the web for tutorials. The matrix extension also allows you to solve linear algebraic equations (specified in a matrix format), and even to identify trends in your data and perform linear (ordinary least squares) regressions on data sets with multiple explanatory variables.""" version: "1.1.2" homepage: "http://ccl.northwestern.edu/netlogo/docs/matrix.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/matrix-1.1.2.zip" } { name: "Network" codeName: "nw" shortDescription: "NetWork analysis tools" longDescription: """""" version: "4.0.0" homepage: "http://ccl.northwestern.edu/netlogo/docs/nw.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/nw-4.0.0.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "nneco" codeName: "nneco" shortDescription: "This extension can be used to give an artificial neural network to each agent, or to the Observer." longDescription: """ A simple back propagation feed forward neural network adapted for being driven by another user class. It has only one hidden layer. Adapted with corrections from the Neural class by Mark Watson, 1997, Intelligent Java Applications, Morgan Kaufmann, SF:CA. My modifications are based on T. Masters, 1993, Practical Neural Recipes in C++, Academic Press, San Diego: CA. If you use this extension in a publication, please cite it as: Yildizoglu Murat, 2021, "A NetLogo extension implementing feed-forward artificial neural networks for agents", https://yildizoglu.fr/software/nneco/, University of Bordeaux, France. This version is for NetLogo 6.1 and above""" version: "6.1" homepage: "https://yildizoglu.fr/software/nneco/" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/nneco-6.1.zip" } { name: "NumAnal" codeName: "numanal" shortDescription: "A set of numerical analysis routines for NetLogo" longDescription: """The NumAnal extension contains methods for finding the roots of single equations (Brent) and multivariable systems of equations (Newton and Broyden), for finding the minima of single equations (Brent) and multivariable functions (BOBYQA, CDS, CGS, CMAES, DES and Simplex), for solving linear programming problems (LPsimplex and LPdualsimplex), for finding fixed points (Scarf), and for evaluating definite integrals (Romberg). Documentation can be found in the folder/directory where the Extension Manager has installed the extension.""" version: "3.4.0" homepage: "https://github.com/cstaelin/NumAnal-Extension/releases" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/numanal-3.4.0.zip" } { name: "Palette" codeName: "palette" shortDescription: "Control specific components of colors. Use ColorBrewer color schemes." longDescription: """The NetLogo palette extension offers the user more control over their colors. The colors go beyond NetLogo colors, including ColorBrewer color schemes and arbitrary RGB colors. Additionally, users can control specific components of their color such as alpha, hue and red. Users can map values to color gradients and can launch a ColorBrewer dialog for easy scheme selection.""" version: "2.0.1" homepage: "http://ccl.northwestern.edu/netlogo/docs/palette.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/palette-2.0.1.zip" } { name: "Pathdir" codeName: "pathdir" shortDescription: "Some useful operations on files and directories" longDescription: "Pathdir provides tools for finding the name of the current model, the current working, user and model directories; creating, moving, renaming, identifying and deleting directories; and listing the contents of directories. Pathdir also allows one to find the size and modification date of files." version: "3.1.0" homepage: "https://github.com/cstaelin/Pathdir-Extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/pathdir-3.1.0.zip" } { name: "Physics" codeName: "phys" shortDescription: "Extension for simulating physics in NetLogo models" longDescription: "The NetLogo physics extension provides a simple way to simulate physics on agents and patches within models. Currently, to do physics simulation in a model, a great deal of code is required to handle motion, collisions and gravity. In some cases it is possible to copy this code from model to model to implement physics simulations without having a deep level of understanding of the code itself, but this process can still be fairly complicated. The physics extension allows a modeler to interact with a physics simulation that runs outside of the model with a handful of intuitive NetLogo primitives without having to worry about any complicated physics code." version: "0.4.2" homepage: "https://github.com/NetLogo/Physics-Extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/phys-0.4.2.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "Profiler" codeName: "profiler" shortDescription: "See how much time operations take" longDescription: """If you’d like your model to run faster, the profiler extension may be useful to you. It includes primitives that measure how many times the procedures in your model are called during a run and how long each call takes. You can use this information to where to focus your speedup efforts.

Caution:

The profiler extension is experimental. It is not yet well tested or user friendly. Nonetheless, we think some users will find it useful.""" version: "1.2.1" homepage: "http://ccl.northwestern.edu/netlogo/docs/profiler.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/profiler-1.2.1.zip" } { name: "Python" codeName: "py" shortDescription: "Run Python code from NetLogo" longDescription: """This NetLogo extension allows you to run Python code from NetLogo. It works with both Python 2 and 3, and should work with almost all Python libraries.""" version: "0.5.5" homepage: "https://github.com/NetLogo/Python-Extension/releases" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/py-0.5.5.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "Q-Learning Extension" codeName: "qlearningextension" shortDescription: "Provides an easy way to use Q-Learning within Netlogo." longDescription: """Allows you to specify everything Q-Learning needs in a simple way. With this extension, you don't have to worry about creating a Q-Table or updating it with just one command, the extension does it for you.""" version: "2.0" homepage: "https://github.com/KevinKons/qlearning-netlogo-extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/qlearningextension-2.0.zip" } { name: "Queue" codeName: "queue" shortDescription: "A queue with time-weighted statistics" longDescription: """The queue extension provides NetLogo with a queue, a commonly-used data type in discrete-event simulation. Objects can be inserted into a queue at a particular point in simulation time according to a specified queueing strategy (FIFO or LIFO). Requests to remove an element from a queue always returns the top-most object (or nobody if the queue is empty). Queues can be questioned about their current status (length, empty?) and time-weighted statistics are calculated (mean/max length, mean/max waiting time).""" version: "1.1" homepage: "https://github.com/ruthmore/netlogo-queue" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/queue-1.1.zip" } { name: "R" codeName: "r" shortDescription: "Primitives for using the statistical software R" longDescription: """The R-Extension of NetLogo provides primitives to use the statistical software R (Gnu S) (see the R Project website) within a NetLogo model. There are primitives to create R-Variables with values from NetLogo variables or agents and others to evaluate commands in R with and without return values.""" version: "1.2.4" homepage: "http://ccl.northwestern.edu/netlogo/docs/r.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/r-1.2.4.zip" } { name: "Rnd" codeName: "rnd" shortDescription: "Use random with a non-uniform distribution" longDescription: """This extension adds the ability to do roulette wheel selection in NetLogo. It provides a simpler way to accomplish the same thing as the Lottery Example from the NetLogo Models Library.""" version: "3.0.1" homepage: "http://ccl.northwestern.edu/netlogo/docs/rnd.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/rnd-3.0.1.zip" } { name: "Expanded Random Number Generator" codeName: "rngs" shortDescription: "Multiple independent streams and expanded random distributions" longDescription: """This extension allows the user to define multiple independent streams of random numbers and provides access to an expanded selection of discrete and continuous random distributions.""" version: "2.0" homepage: "https://github.com/AFMac/rngs" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/rngs-2.0.zip" } { name: "Sample" codeName: "sample" shortDescription: "An example extension written in Java" longDescription: """""" version: "1.1.1" homepage: "https://github.com/netlogo/sample-extension/#readme" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sample-1.1.1.zip" } { name: "Sample-Scala" codeName: "sample-scala" shortDescription: "An example extension written in Scala" longDescription: """""" version: "1.1.1" homepage: "https://github.com/netlogo/sample-scala-extension/#readme" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sample-scala-1.1.1.zip" } { name: "Send-To" codeName: "send-to" shortDescription: "Send string data to a file" longDescription: "" version: "1.0.1" homepage: "https://github.com/NetLogo/SendTo-Extension#readme" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/send-to-1.0.1.zip" } { name: "Shell" codeName: "shell" shortDescription: "NetLogo extension to run commands, read and write environment variables" longDescription: "" version: "1.0.0" homepage: "https://github.com/NetLogo/Shell-Extension#netlogo-shell-extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/shell-1.0.0.zip" } { name: "Simple R Extension" codeName: "sr" shortDescription: "Simply run R code from within NetLogo models" longDescription: "This extension is an alternative to the built-in R extension that comes with NetLogo. The Simple R extension only requires R version 4 to be installed that you can point to using the built-in configuration menu. It does not require the use of an external Java runtime, the setup of the rjava package inside R, or the manual editing of config files." version: "2.0.3" homepage: "https://github.com/NetLogo/SimpleR-Extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sr-2.0.3.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "Sound" codeName: "sound" shortDescription: "Play notes and sound files" longDescription: """""" version: "1.1.1" homepage: "http://ccl.northwestern.edu/netlogo/docs/sound.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sound-1.1.1.zip" } { name: "Stats" codeName: "stats" shortDescription: "Allows the analyis of collected data and provides some less common probability distributions" longDescription: """The “stats” extension provides basic statistical functions for data generated within NetLogo models. stats maintains an internal data table of observations on an arbitrary number of variables and allows the user to find such statistics for the data as the means, medians, quantiles, percentiles, standard deviations, and variance-covariance and correlation matrices; to regress one or more variables on another; and to forecast the value of any variable into the future based on past observations. Regression statistics include R2, Adjusted R2, F and the probability of F, and for each of the coefficients, the standard error, T statistic and probability of the T statistic. stats also provides values of and the areas under the normal, log-normal, student, binomial, gamma, beta and Chi-Square distributions, and, for some, their inverses.

Although stats can be used to analyze the overall results of a run of a model, it is intended mostly for the use of “smart” agents who gather and analyze data in order to make decisions. Agents can maintain their private data tables, or use tables shared as globals, or both.""" version: "2.1.1" homepage: "https://github.com/cstaelin/Stats-Extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/stats-2.1.1.zip" } { name: "Store" codeName: "store" shortDescription: "This extension provides primitives for writing and reading string values to and from a keyed, persistent data store with callback-based primitives to match NetLogo Web." longDescription: """The primary purpose of this extension on NetLogo desktop is to provide compatibility with the NetLogo Web version. This extension provides a unified way for a model to read and write data that persists across model loads in NetLogo desktop or NetLogo Web.

In NetLogo Web, due to the browser-based runtime environment, persistent storage available between model compiles or page refreshes must be provided in an asynchronous way using web APIs. While NetLogo desktop can simply write and read to files to store data using the built-in file primitives, NetLogo Web has no way to interact with files on a user's computer without user interaction.""" version: "1.0.1" homepage: "https://github.com/NetLogo/Store-Extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/store-1.0.1.zip" } { name: "String" codeName: "string" shortDescription: "The String Extension provides primitives for splitting and joining strings and for using regular expressions." longDescription: "" version: "1.1.1" homepage: "https://github.com/NetLogo/String-Extension" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/string-1.1.1.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "Table" codeName: "table" shortDescription: "Store pairs of values, so you can retrieve the second value by knowing the first one" longDescription: """Tables are useful when you need to do associate values with other values. For example, you might make a table of words and their definitions. Then you can look up the definition of any word. Here, the words are the "keys". You can easily retrieve the value for any key in the table, but not vice versa.""" version: "2.0.0" homepage: "http://ccl.northwestern.edu/netlogo/docs/table.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/table-2.0.0.zip" minNetLogoVersion: "NetLogo 6.3.0" } { name: "Time" codeName: "time" shortDescription: "Date/time utilities, discrete event scheduling and using time-series data" longDescription: """The extension provides tools for representing time explicitly, especially by linking NetLogo’s ticks to a specific time interval. It allows users to do things such as starting a simulation on 1 January of 2010 and end on 31 December 2015, have each tick represent 6 hours, and check whether the current simulation date is between 1 and 15 March.

Modelers commonly need to use time series data in NetLogo. The time-series.nls file in the repo of the time extension provides convenient procedures for handling time series data. With a single command, you can load an entire time series data set from a text file. The first column in that text file holds dates or datetimes. The remaining columns can be numeric or string values. You then access the data by time and by column heading, akin to saying "get the flow from May 8, 2008".

The time extension enables a different approach to scheduling actions in NetLogo. Traditionally, a NetLogo modeler puts a series of actions or procedure calls into the "go" procedure, which is executed once each tick. Sometimes it is more natural or more efficient to instead say "have agent X execute procedure Y at time Z". This is what discrete event scheduling (also know as "dynamic scheduling") enables. Discrete event simulation has a long history and extensive literature, and this extension makes it much easier to use in NetLogo.""" version: "2.0.0" homepage: "https://github.com/NetLogo/Time-Extension/" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/time-2.0.0.zip" } { name: "Vid" codeName: "vid" shortDescription: "Capture videos of the model or from a webcam" longDescription: """""" version: "1.1.2" homepage: "http://ccl.northwestern.edu/netlogo/docs/vid.html" downloadURL: "https://ccl-artifacts.s3.amazonaws.com/extensions/vid-1.1.2.zip" } { name: "View2.5d" codeName: "view2.5d" shortDescription: "Visualize agent properties as height on a 3d surface" longDescription: """""" version: "1.1.9" homepage: "http://ccl.northwestern.edu/netlogo/docs/view2.5d.html" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/view2.5d-1.1.9.zip" } { name: "Web" codeName: "web" shortDescription: "NetLogo primitives for talking to the web and making HTTP requests" longDescription: """Contains numerous primitives for importing data (e.g. import-world) from URLs, and well as exporting data (e.g. export-world) to URLs, as well as a generalized primitive (make-request) for performing plain HTTP requests.""" version: "2.1.0" homepage: "https://github.com/NetLogo/Web-Extension/" downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/web-2.1.0.zip" } ]

org.nlogo.api.MetadataLoadingException: com.typesafe.config.ConfigException$Parse: /Users/rmckinney/Library/Application Support/NetLogo/6.4/libraries.conf: 587: Expecting a value but got wrong token: '' (End of input but string quote was still open) (if you intended '' (End of input but string quote was still open) to be part of a key or string value, try enclosing the key or value in double quotes) at org.nlogo.api.LibraryManager.updateLists(LibraryManager.scala:128) at org.nlogo.api.LibraryManager.updateInstalledVersion(LibraryManager.scala:182) at org.nlogo.api.LibraryManager.installExtension(LibraryManager.scala:88) at org.nlogo.app.tools.LibrariesTab.$anonfun$install$1(LibrariesTab.scala:61) at org.nlogo.app.tools.LibrariesTab.$anonfun$install$1$adapted(LibrariesTab.scala:61) at org.nlogo.app.tools.LibrariesTab.wrappedInstall(LibrariesTab.scala:340) at org.nlogo.app.tools.LibrariesTab.$anonfun$new$13(LibrariesTab.scala:222) at org.nlogo.app.tools.LibrariesTab.$anonfun$new$13$adapted(LibrariesTab.scala:222) at org.nlogo.app.tools.LibrariesTab$Worker.doInBackground(LibrariesTab.scala:411) at org.nlogo.app.tools.LibrariesTab$Worker.doInBackground(LibrariesTab.scala:405) at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at java.desktop/javax.swing.SwingWorker.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) Caused by: com.typesafe.config.ConfigException$Parse: /Users/rmckinney/Library/Application Support/NetLogo/6.4/libraries.conf: 587: Expecting a value but got wrong token: '' (End of input but string quote was still open) (if you intended '' (End of input but string quote was still open) to be part of a key or string value, try enclosing the key or value in double quotes) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:201) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:197) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseValue(ConfigDocumentParser.java:251) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseObject(ConfigDocumentParser.java:475) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseValue(ConfigDocumentParser.java:247) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.consolidateValues(ConfigDocumentParser.java:152) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseArray(ConfigDocumentParser.java:595) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseValue(ConfigDocumentParser.java:249) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.consolidateValues(ConfigDocumentParser.java:152) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseObject(ConfigDocumentParser.java:473) at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parse(ConfigDocumentParser.java:648) at com.typesafe.config.impl.ConfigDocumentParser.parse(ConfigDocumentParser.java:14) at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:262) at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:250) at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:180) at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:174) at com.typesafe.config.impl.Parseable.parse(Parseable.java:301) at com.typesafe.config.ConfigFactory.parseFile(ConfigFactory.java:793) at com.typesafe.config.ConfigFactory.parseFile(ConfigFactory.java:807) at org.nlogo.api.LibraryManager.updateLists(LibraryManager.scala:114) ... 15 more

NetLogo 6.4.0 main: org.nlogo.app.AppFrame thread: AWT-EventQueue-0 OpenJDK 64-Bit Server VM 17.0.8.1 (BellSoft; 17.0.8.1+1-LTS) operating system: Mac OS X 14.2.1 (x86_64 processor) Scala version 2.12.18 JOGL: (3D View not initialized) OpenGL Graphics: (3D View not initialized) model: Carbon Marketplace - ABM (v3.0)

01:10:36.658 InterfaceGlobalEvent (org.nlogo.app.interfacetab.InterfacePanel$$anon$1 (org.nlogo.window.SliderWidget)) AWT-EventQueue-0 01:10:36.658 InterfaceGlobalEvent (org.nlogo.app.interfacetab.InterfacePanel$$anon$1 (org.nlogo.window.SliderWidget)) AWT-EventQueue-0 01:10:36.658 InterfaceGlobalEvent (org.nlogo.app.interfacetab.InterfacePanel$$anon$1 (org.nlogo.window.SliderWidget)) AWT-EventQueue-0 01:10:36.658 InterfaceGlobalEvent (org.nlogo.app.interfacetab.InterfacePanel$$anon$1 (org.nlogo.window.SliderWidget)) AWT-EventQueue-0 01:10:36.658 AddJobEvent (org.nlogo.window.MonitorWidget) AWT-EventQueue-0 01:10:36.658 AddJobEvent (org.nlogo.window.MonitorWidget) AWT-EventQueue-0 01:10:36.658 AddJobEvent (org.nlogo.window.MonitorWidget) AWT-EventQueue-0 01:10:36.658 AddJobEvent (org.nlogo.window.MonitorWidget) AWT-EventQueue-0 01:10:36.658 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0 01:10:36.658 JobRemovedEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) JobThread


LaCuneta commented 10 months ago

@richardcmckinney Thanks for the error report and sorry you ran into this trouble. I've tested NetLogo 6.4 on Linux, macOS, and Windows and the latest version of the file parses correctly. You also reminded me I wanted to setup some automated tests here on GitHub to check the file, so I did that as well and the test parser passes as well.

It's very strange you see this problem on both 6.3 and 6.4. Do you know of any modifications being made to the file on your system after it's installed?

Can you try browsing to the /Users/rmckinney/Library/Application Support/NetLogo/ folder on your computer and deleting the 6.4 folder inside? Afterwards you'll need to reinstall any extensions you were using, but hopefully that gets you past the error. If that doesn't help or the error returns, please let us know.

LaCuneta commented 10 months ago

I'm closing this as we haven't had any other users submit the issue. If you're still encountering it, feel free to let us know and provide any extra information you can and we'll try to help out.